Skip to Main Content

Oracle Forms

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How to set block property with ONETIME_WHERE predicate from C code?

DURGANAGAVIJAY KADARI-OracleJul 18 2025 — edited Jul 18 2025

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,

  1. Used EXEC TOOLS SET :block_name.ONETIME_WHERE VALUES (:where_clause);
  2. Used EXEC TOOLS SET :BLOCK_PROPERTY VALUES (:where_clause);
  3. Used existing function which sets form field value by passing “BLOCK.ONETIME_WHERE”.
Comments
Post Details
Added on Jul 18 2025
3 comments
133 views