How to distinguish post and commit_form

In one when-button-pressed event I am calling "post". Afterwards I want to know whether the "commit" is encountered or still it is in post. How can distinguish post and commit programmatically. Since in both the cases the system status is QUERY.
Who is Participating?
dmcgregorConnect With a Mentor Commented:
Create a control block with one item -- a flag.  [The flag may also be included in the
independent block.]  Set the flag to "No" whenever you do a POST.
The real key to making this work is the form-level trigger WHEN-DATABASE-COMMIT.
This trigger will fire *only* after the data is committed to the DB;  it will *not* fire after
the POST command.  In that trigger, set the flag I mentioned above to "Yes".
Now, whenever you move between master records, just check the flag.  If it is "No",
then the DB commit has not occurred; if it is "Yes", it has.  [You may also need to give
it a third value if you are likely to check *before* the POST occurs.]
Note that this will work for Oracle Forms 4.5 (Developer/2000 1.3.2).  Check your docs
if you have a more recent version, such as Forms 5.0 (Dev/2000 v. 2.0).

santhoshnAuthor Commented:
Edited text of question
santhoshnAuthor Commented:
Edited text of question
Cloud Class® Course: Python 3 Fundamentals

This course will teach participants about installing and configuring Python, syntax, importing, statements, types, strings, booleans, files, lists, tuples, comprehensions, functions, and classes.

You talk about the record status here.
I think the form status is still 'CHANGED' when you posted but not committed. (But I must say I'm not sure).

You can also use a global variable that sets to 'POSTED' if you use the post built-in and sets to 'COMMITTED' when you use the commit built-in. The global variable is best set to 'NOTPOSTED' in the WHEN-NEW-ITEM-INSTANCE trigger on FORM-level when the form status changes to 'CHANGED'.

santhoshnAuthor Commented:
Hi Peter

Thank you for responding my question.

But actually after "POST" all the system status including form status is "QUERY" only.
Now I am using global variable only. This gives me lot of maintenance problems. I will give you a brief of my problem.

In my form there are three blocks are there. One is master another is detail and one is
independent block. Here I will select what are rows I want using check box(Multi select) from the independent block and move all the selected rows to the detail block by pressing a button . While moving I am giving one "POST". Now when I navigate to next record of the master block. This time I want to ask the alert "Do you want to save the changes". Since I gave the POST the default alert won't come. So explicitly I need to show the alert. If the user pressed the COMMIT then it should not ask. This is my requirement.

If know any less maintainence logic please let me know.



Why do u post after moving the records from the independent block to the detail block ?
If u insert the records in the table without committing, the form will ask if u want to commit if the user jumps to another master record. It will also show the not-committed details if u query the detail block.
Just an idea. The solution from dmcgregor looks also right.
santhoshnAuthor Commented:
Hi dmcgregor

Thank you very much for your answer and is working fine.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.