DEFINE USER CALCULATIONS#

UserCalcs may be defined within the Define UserCalcs (IMUC) form. This screen will allow you to create the lines, variables, commands, etc. for each UserCalc. The definition data for the Define User Calculations screen is stored in the P2K_AM_USER_CALCS tables.

User Calc
This field refers to the user-defined name given to the UserCalc. Once the UserCalc has been created it can be edited, however, you can not edit it once the UserCalc is in production. You have to Un-Publish it on IMUCA first. As with Benefit and Attendance UserCalcs, we recommend that a naming convention be used for Workflow UserCalcs. For example, AT is used for the Attendance application, BE for the Benefits application and WF for the Workflow application. This will allow for efficient queries once the UserCalc list becomes large. See special characters section for naming rules.
Description
The description field may be used to further define the purpose of the UserCalc in more detail than is available in the UserCalc name.
Product
The product indicates which module the UserCalc has been defined for. For example, PR-Payroll, BE-Benefits, AT- Attendance, FC-Forecasting & Costing and WF-Workflow.

With respect to Workflow, this field specifies the table code on which the workflow trigger is located. This field should be identical to the name of the "Table" in IMWA. In all cases except workflow, it is the application that controls which fields in which tables will be accessible by the UserCalc. For example, in an Attendance UserCalc, the Leave Accrual Table would be accessible, but not benefits information.

NOTE In the NG system (5.01+), the PRODUCT field can not be changed once it has been added. This was done to avoid issues/errors arising from building a user calc for one product and then changing it to another.
Status
This field describes the status of the UserCalc. The following values are available.
Under ConstructionThis status value indicates that the UserCalc has not been completed and therefore will not be published.
Being Tested This status value indicates that the UserCalc has been completed, compiled and is being tested by the user who created it. It will not be published.
To Be Published This status value indicates that the UserCalc is ready for publishing. You can not set the user calc to this value manually.
In Production This status value indicates that the UserCalc has already been published and is in use.
User Calc Type
The 'type' of UserCalc defines what values may be used/passed between UserCalcs and what capabilities may be performed. Three types are available:
Qualifiers Used to reduce the number of employees or calculations processed by the UserCalc.
Functions Used to perform a calculation or query, and return a value to the calculation. The Attendance and Benefits Applications use Functions exclusively.
Calculations Used as the main program area, and may call Qualifiers and Functions in order to perform some kind of customized action or operation. Calculations are only performed in the Payroll Calculation, and Forecasting and Costing applications.
Return Value
The return value is used by Functions and Qualifiers to define what type of value will be returned by the Function or Qualifier UserCalc. If the UserCalc type is Qualifier, the return value will be set to Boolean. If the UserCalc type is Function, the user may choose Boolean, Char(acter), Date or Number as the type of value that will be returned.
Usage
The Usage field defines whether or not the UserCalc will be used to print a disbursement message. Disbursement messages are lines of information that will print on the employee's payroll stub/deposit stub.
Disbursement Messagethe UserCalc will be executed when UPDISB is run.
Not SpecifiedUse this or leave it blank for most purposes.
Secondary WF This option tells the Workflow engine that this User Calc is ONLY to be called from another user calc and should NOT be fired on its own by the triggering product.
Pro-Active WFIf the user calc is used for Pro-Active Workflow, then this must be selected. Using this selection will allow the UMPWF to execute the user calc.
WF Firing Sequence
not used by the system;
Compile
This button allows the user to check the syntax of a UserCalc by creating the SQL code. This step does not ensure accuracy of the UserCalc, it merely checks that there are no UserCalc language errors such as incorrect syntax or infinite loops. This button is only available when the status of the UserCalc is 'Under Construction'.
Pre-Publish
When the UserCalc has been Compiled, the UserCalc may be 'pre-published'. This will change the status from 'Under Construction' to 'To Be Published'. Once in this status, the UserCalc may be officially published in IMUCA.
If a user has taken a copy of an 'In Production' UserCalc and wishes to test it without losing the original UserCalc, then they may publish it. This means that wherever the original UserCalc is referenced, Personality will now use the newly published version.

Lines tab#

The data shown in this tab is stored in the P2K_AM_USER_CALC_DETAILS table.

Line
This field defines the sequential order in which the UserCalcs will follow instructions. (00010, 00020, etc.)
CMD
Commands are used to perform operations within a UserCalc. See detailed descriptions in the User Calc Commands section.
Type 1
Operand Types declare what value the Operand will have and how to process it within the UserCalc. See detailed descriptions in the Operand Types section.
Operand 1
Operand 1 is typically used to store the result of any line of a UserCalc, or to compare to a value in Operand2.
OPER
Operators are the action to be taken in regard to the command issued and the operands indicated. See detailed description in the Operators section.

Type^2
Operand Types declare what value the Operand will have and how to process it within the UserCalc.
Operand 2
Operand2 is used to compare values or assign values.
Type^3
Operand Types declare what value the Operand will have and how to process it within the UserCalc.
Operand 3
Operand 3 is used, when necessary, to further define Operand 2, or in mathematical operations.
If Goto
The If Goto field must be completed for every line. For any IF, FREQ, PPE, BOM, or EOM command there must be a true path (If Goto), and a false path (Else Goto).

The If Goto field tells the UserCalc program which line to proceed to in a True situation. In a situation without a true and false path (i.e. Let PC 110 Equal +12), only the If Goto field is mandatory.

If the If Goto column is double-clicked on the user will be taken to that line.
Else Goto
For any IF, FREQ, PPE, BOM or EOM command, the Else Goto field tells the program which line to proceed to in the False situation. If the 'Else Goto' column is double-clicked on the user will be taken to that line.
Description
To make UserCalcs more easily read and maintained, a Notes field has been provided. Notes should be used to explain the calculations made and the logic of the UserCalc. If the user calc is used for workflow emails, the text of the email body is added here. The text used in the description should not use ORACLE RESERVED words or special characters.

Variables tab#

Data from the Variables tab is stored in P2K_AM_USER_CALC_VARIABLES table. Variables are used as temporary working storage to hold values required by the UserCalc. See the User Calc Variables Section.
Name
This is a user-defined name for the variable.
Type
The user may choose Boolean, Number, Char(acter) or Date as the type of variable to be stored.
Initial Value
For Numeric Types the 'Initial Value' should be '0'.
Length
The number of characters used to make up the length of the variable is stated here.

Globals tab#

Global values are used to hold information between UserCalcs. Data for UserCalc Global Variables is stored in the P2K_AM_USER_CALC_GLOBALS table. See the page Global Variables for additional information on Global Variables.

Name
This is a user-defined name for the variable.
Type
The user may choose Boolean, Number, Char(acter) or Date as the type of variable to be stored.
Scope
This provides for the ability to alter the 'Life' of a Global Variable. They can be reset at the beginning of an employee, or at the beginning of a pay. This is needed when there are multiple pays for an employee in the same pay run (Multiple Assignments).
Initial Value
For Numeric types, the 'Initial Value' should be '0'.
Length
The number of characters used to make up the length of the variable is stated here.

Commands tab#

Within the IMUC form users may view the commands that are available. Commands are used to perform operations within a UserCalc. See detailed descriptions in the Commands section. This tab is for viewing purposes only; you may not edit the data.


Operators tab#

Within the IMUC form users may view the operators that are available. An Operator denotes an action that is to be taken on the Operands indicated. See detailed descriptions in the Operators section. This tab is for viewing purposes only; you may not edit the data.

View SQL tab#

Once the UserCalc has been compiled, this tab will display the SQL query that is automatically created from the user calc lines.

please note that user calculations are limited to 30,000 bytes. If you have a usercalc that exceeds this volume it is recommended to use the "CALL" program to reduce the size, or to break the usercalculation into smaller logical components.

Bytes will also include logic called in the "Notes" section of the user calculation.


Notes #

Click to create a new notes page