!!1. Write a detailed description of what the user calculation is required to do. 
A user calc is required to issue a message instructing the user to complete the employee's I9 information in IEPI, take the user to the employee's IEPI screen and issue an email to the employee's manager/supervisor.

!!2. Divide the description into logical sections. The following questions can help you do this.
!Section 1
''Who must be processed?''
This UserCalc is intended for all new hires.

!Section 2
''What information is necessary for the process?''
Custom Function called New Hire
Three workflow actions called __ADD_I9_FOR_EE__, __COMPLETE_IPRLU__ and __WELCOME_NEW_EE__.

!Section 3
''What is the calculation?''
This does not apply to the example above.

!!3. Create all the necessary 'components' needed for the UserCalc.
||Workflow Action Event |IMWA |COMPLETE_IPRLU
||Workflow Action Event| IMWA |NEW_EE-MGR
||Variable| IMUC| Gender
||Custom Function| | Custom functions are normally created by our Developers based on requests from the client base. Some of these are very custom specific to a clients business while others are more general and can be used by all clients. With recent changes to the system customers can now create there own custom functions provided they abide by the rules of the system.

!!4. Code the UserCalc on the Maintain UserCalc FORM ([IMUC])
%%information Only fields within the tables that are specified within the WF Product (i.e. WF_EASD) can be referenced within the UserCalc. In this example, the WF Product that is used is WF_EASD, therefore only fields from the tables supplied in [IMPT] for that product can be referenced in this UserCalc.

Columns that are on the triggering table itself are accessed with OV/NV and the columns from the other tables are accessed through DB. %%
||\\Line ||\\CMD ||Type\\1||Operand\\1||OPER||Type\\2||Operand\\2||Type\\3||Operand\\3||If\\GOTO||Else\\GOTO
|00010   |IF     |CF      |NewHire    |EQ   | B      |TRUE       |        |           | 00020   |99999
|00020   |IF     |DB      |EID.GENDER |EQ   |A       |01         |        |           | 00030   |00040
|00030   |LET    |V       |Gender     |EQ   |A       |His        |        |           | 00100   |
|00040   |LET    |V       |Gender     |EQ   |A       |Her        |        |           | 00100   |
|00100   |LET    |V       |Department |EQ   |DB      |DDP.DEPARTMENT_CODE| |          | 00110   |
|00110   |LET    |V       |Group      |EQ   |DB      |DGR.GROUP_CODE     | |          | 00120   |
|00120   |LET    |V       |Assignment_Title|EQ|NV    |Assignment_Title   | |          | 00300   |
|00300   |ACT    |AC      |NEW_EEMGR  |LOG  |$S      |CURRENT-DATE |RT    | Manager   | 00310   |
|00310   |ACT    |AC      |COMPLETE_IPRLU|LOG|$S     |CURRENT-DATE |RT    | Current User | 99999 |
|99999   |EXIT   |        |           |     |        |           |        |           |         |

!!5. Compile and publish the UserCalc

!!6. Link the UserCalc to the Calling Program or Application.
%%warning Workflow UserCalcs are not attached to any program or application. %%