Step 4. Record Switch History using the Virtual Clipboard
In this step you will record the switch history using the virtual clipboard so that the end-user will be able return to the object that initiated the switch.
To use the virtual clipboard most effectively you need to devise a standardized naming protocol for items that are posted onto it. In this exercise you will use this standard to store the switch history:
ID1 |
SWITCH_HISTORY |
ID2 |
Target Business Object Name |
ID3 |
Target Command Name |
ID4 |
OBJECT_NAME or COMMAND_NAME |
FromAValue |
<object or command name> |
In effect you will be storing a switch history table on the clipboard. The first key or ID is the code SWITCH_HISTORY to indicate that all records with this ID are related to switching history.
The ID2 and ID3 contain which business object and command respectively that you are switching to. ID4 contains where you came from. Therefore you need to add two records to the virtual clipboard; one where ID4 equals OBJECT_NAME (the business object) and another where ID4 equals COMMAND_NAME (the command).
1. Display the Source tab of the Sections’ Details command handler.
2. In the PHBN_1.Click event, before the avSwitch command, write this code to add the appropriate records to the switch history:
* Save to clipboard return list
#avframeworkmanager.avsavevalue WithID1(SWITCH_HISTORY) WithID2(EMPLOYEES) WithID3(DETAILS) WithID4(OBJECT_NAME) FromAValue(#com_owner.Avobjecttype)
#avframeworkmanager.avsavevalue WithID1(SWITCH_HISTORY) WithID2(EMPLOYEES) WithID3(DETAILS) WithID4(COMMAND_NAME) FromAValue(#com_owner.avcommandtype)
Use your business object name for the WithID2() parameter.
Note that the actual business object name and command name are placed in the clipboard using the FromAValue parameter. Notice how you can use avobjecttype to get the current business object name and avcommandtype to get the current command name. You should not hard code these values.
Your code should now look like this:
3. Compile the command handler.
4. Close the command handler.