Menu items can be added 
to forms using personalization to add functionality to the form that can
 be invoked as and when required by the user.
As part of one 
requirement we had to give the user the option of initiating a workflow 
after making a change on the Supplier form. We created a menu item using
 personalization for the users to click and initiate the workflow. The 
personalization steps are given below
Open the Supplier form
Responsibility: Payables Administrator
Navigation: Suppliers > Entry
| Supplier form | 
Navigate to Help > Diagnostics > Custom Code > Personalize
Condition
| Personalize | 
Seq: Next available
Description: Create Menu Item – Nshore 69658
Trigger Event: When-New-Form-Instance
Trigger Object:
Condition: ${ps.org_id.value} NOT IN (103, 4763) – We do not want the personalization for 2 orgs
Processing Mode: Both
Actions
| Action | 
Seq: 10
Type: Menu
Description: Create menu item
Language: All
Menu Entry: Special3
Menu Label: Approve Site
Icon Name:
Enabled in Block(s): SITE, SITE_USES
The menu item is created
 so far. Now we have to add logic/code to the menu item. All Menu 
entries of named as SPECIAL are shown in the Tools menu bar on the form.
Condition
| Add condition | 
Seq: <<Any number>>
Description: Add code to Menu Item – Nshore 69658
Trigger Event: Special3
Trigger Object:
Condition:
| xxey_ost_vendor_approval_pkg.chk_existing_wf (xxey_ost_vendor_approval_pkg.generate_user_key(${item.vndr.vendor_id.value},${item.site.vendor_site_id.value}, NULL, NULL)) = 0AND${ps.org_id.value} NOTIN(103, 4763)AND${item.site.inactive_date.value} ISNOTNULL | 
Processing Mode: Not in Enter-Query Mode
The condition calls a 
packaged function, xxey_ost_vendor_approval_pkg.chk_existing_wf, to 
check if a running workflow exists for a supplier or not.
Actions
| Action to initiate workflow | 
Seq: 10
Type: Builtin
Description: Execute workflow
Language: All
Builtin Type: Execute a procedure
Argument:
The 
code in the argument is calling the packaged procedure, 
xxey_ost_vendor_approval_pkg.start_wf, after passing the parameters from
 the Supplier Site form, to initiate the workflow.
| ='beginxxey_ost_vendor_approval_pkg.start_wf('''||:SYSTEM.CURRENT_FORM|| ''','''||${item.vndr.vendor_id.value}|| ''','''||${item.site.vendor_site_id.value}|| ''','''||NULL|| ''','''||NULL|| ''');end' | 
| Action to show message to user | 
Seq: 15
Type: Message
Description: Show message to user
Language: All
Message Type: Show
Message Text: = Approval has been sent to approver.
After the workflow has been initiated a message is shown to the user.
Usage of the personalization
Responsibility: Payables Administrator
Navigation: Suppliers > Entry
| Supplier form showing menu item | 
Notice the new menu 
item, “Approve Site”. This was created through personalization. Also 
note that on the Supplier master block the menu item is disabled as we 
have set the personalization on the Site block and Site Uses block.
Click on Sites button
| Item is enabled on Supplier Site form | 
Click on Approve Site menu item
| Message to user after workflow initiation | 
The user gets a message as part of Action 2, after Action 1 is executed, i.e. after the workflow has been kicked off.
 
No comments:
Post a Comment