Comments on: Another VPD challenge with our Oracle Designer generated Web Forms application: No Data Found when synchronizing server derived values https://technology.amis.nl/2005/12/02/another-vpd-challenge-with-our-oracle-designer-generated-web-forms-application-no-data-found-when-synchronizing-server-derived-values/ Friends of Oracle and Java Wed, 15 Apr 2015 12:11:59 +0000 hourly 1 http://wordpress.org/?v=4.1.1 By: Lucas Jellema https://technology.amis.nl/2005/12/02/another-vpd-challenge-with-our-oracle-designer-generated-web-forms-application-no-data-found-when-synchronizing-server-derived-values/#comment-2642 Fri, 02 Dec 2005 12:51:18 +0000 http://technology.amis.nl/blog/?p=927#comment-2642 We previously ran into problems with VPD DML policies in combination with Forms – see post Violation of VPD Policy on DML raises FRM-40654 :Record Has Been Changed by Another User error in Oracle Forms: the Form expects an update of one record, finds that zero records were updated and raise an error. So it would take me from the rain into the drip…. (we used to have VPD DML policies but removed them because of this error; currently we use CDM RuleFrame business rules to enforce DML rules).

]]>
By: Wilfred https://technology.amis.nl/2005/12/02/another-vpd-challenge-with-our-oracle-designer-generated-web-forms-application-no-data-found-when-synchronizing-server-derived-values/#comment-2641 Fri, 02 Dec 2005 12:41:29 +0000 http://technology.amis.nl/blog/?p=927#comment-2641 You can have different policies for SELECT, INSERT, UPDATE and DELETE. Why not make your VPD rules so that you can still SELECT the record, but no longer UPDATE it. Can you keep it so simple that the VPD policy will allow SELECT request with all statusses, have the restriction on In Progress requests in the WHERE clause of the block in Forms. You can have a more restricted UPDATE (and DELETE or INSERT?) rule that will not allow DML on anything but In Progress requests.

PS. This will also be tricky to handle in Forms, since it will just try to UPDATE the record. The VPD policy will add a predicate to the UPDATE statement resulting in 0 rows being update. This is (unfortunately) not checked by Oracle Forms, so it will just inform you of a succesfull update of 1 record.

]]>
By: harm https://technology.amis.nl/2005/12/02/another-vpd-challenge-with-our-oracle-designer-generated-web-forms-application-no-data-found-when-synchronizing-server-derived-values/#comment-2640 Fri, 02 Dec 2005 06:38:37 +0000 http://technology.amis.nl/blog/?p=927#comment-2640 Hi Lucas,

There is another option: overriding the generated synch-code either with a if..then construction which synchronises the record only when allowed by the policies (no_data_found wouldn’t occur) or adding an proper exception handling (i.e. when no_data_found then null;) as you propose, but without the neccety to now the JDAPI-framework.

On the other hand, the disadvantage of overriding generated code in my opinion is always that you should check that code for changes. This is not easy as you must check if no new server derived items are added on the views/tables that are used in the module component. And manually add them to the synch-code.

]]>