11.01.2013 Views

Oracle Forms Developer – Form Builder Reference, Volume 1

Oracle Forms Developer – Form Builder Reference, Volume 1

Oracle Forms Developer – Form Builder Reference, Volume 1

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

SYSTEM.COORDINATION_OPERATION system variable<br />

Syntax<br />

SYSTEM.COORDINATION_OPERATION<br />

Description<br />

This system variable works with its companion SYSTEM.MASTER_BLOCK to help an On-Clear-<br />

Details trigger determine what type of coordination-causing operation fired the trigger, and on which<br />

master block of a master/detail relation.<br />

The values of the two system variables remain constant throughout the clearing phase of any block<br />

synchronization. SYSTEM.MASTER_BLOCK represents the name of the driving master block, and<br />

SYSTEM.COORDINATION_OPERATION represents the coordination-causing event that occurred on<br />

the master block.<br />

The Clear_All_Master_Details procedure, which is automatically generated when a relation is created,<br />

checks the value of SYSTEM.COORDINATION_OPERATION to provide special handling for the<br />

CLEAR_RECORD and SYNCHRONIZE events, which may be different from the handling for other<br />

coordination-causing events. The Clear_All_Master_Details procedure also checks the value of<br />

SYSTEM.MASTER_BLOCK , to verify that while it is processing the master block of a relation<br />

coordination, it is searching only for blocks containing changes.<br />

For example, given the relation hierarchy between blocks shown below, moving to the next record using<br />

the [Next Record] key or the Record, Next menu command while in Block C would cause blocks E, F, G,<br />

and H to be cleared (and perhaps subsequently queried, depending on the Deferred_Coordination<br />

property of the CE and the CF relations).<br />

When the On-Clear-Details trigger fires for block C, the result is:<br />

:System.Cooordination_Operation = ’NEXT_RECORD’<br />

:System.Master_Block = ’C’<br />

The Clear_All_Master_Details procedure will clear all of block C’s details, causing a "chain reaction" of<br />

Clear_Block operations. Consequently, block F is cleared.<br />

Since F is a master for both G and H, and it is being cleared, an On-Clear-Details trigger will fire for<br />

block F as well. However, since the clearing of block F was driven (indirectly) by a coordination-causing<br />

event in block C, these remain the values in the On-Clear-Details trigger for block F:<br />

:System.Cooordination_Operation = ’NEXT_RECORD’<br />

:System.Master_Block = ’C’<br />

Note: The values of these two system variables are well-defined only in the scope of an On-Clear-<br />

Details trigger, or any program unit called by that trigger. Outside this narrow context, the values of<br />

these two variables are undefined and should not be used.<br />

The possible values of SYSTEM.COORDINATION_OPERATION, when it is appropriate to check that<br />

variable, are described in the following table.<br />

Value Description Caused By<br />

MOUSE Mouse to non-current record Mouse<br />

UP Move up a record Menu, key, PL/SQL<br />

375

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!