How to set block property with ONETIME_WHERE predicate from C code user_exit?
When user clicks on Find button then PRE-QUERY event will be executed and we can set the required predicates for the BLOCK using below code from forms code flow.
SET_BLOCK_PROPERTY('BLOCK', ONETIME_WHERE, predicate);
But we need to set the predicate from the C code user_exit flow.
This user_exit is part of common EBS library and can be invoked from multiple product forms. Each product form can have multiple blocks. The block for which this ONETIME_WHERE property needs to be set could vary and also the where clause also would vary. For some forms, there could be multiple blocks for which this may need to be set. Hence all this is dynamically derived runtime in the C code and set. but stuck with the part of setting block property in C code.
Is there any forms C header and C function that I can make use of to set a block's property from C code ?
Forms builder version: Forms 10.1 (Forms Builder) Version 10.1.2.0.2 (Production)
I cannot take the approach of adding code in PRE-QUERY trigger as that would require all EBS forms to be changed to add code in PRE-QUERY trigger
Tried below options and did not help,
- Used EXEC TOOLS SET :block_name.ONETIME_WHERE VALUES (:where_clause);
- Used EXEC TOOLS SET :BLOCK_PROPERTY VALUES (:where_clause);
- Used existing function which sets form field value by passing “BLOCK.ONETIME_WHERE”.