Contents
Changes to IWDBP Strategies & Subroutines in 8.5.108.01
InvokeGRE Strategy
During the task lifecycle, GRE changes interaction properties. This is done asynchronously, so sometimes ORS does not have enough time to receive confirmation event from Interaction Server and continue execution of the workflow. This could lead to unexpected behavior—for example, tasks could go to the ErrorHeld queue sporadically without visible reasons.
A Pause block with a configurable delay has been added into the InvokeGRE workflow after the AfterESPCallActivities block to guarantee that interaction updates will be received. This delay is set in milliseconds. By default it is set to 0.
If it is observed that ORS has already moved to the next workflow step but has still not received a confirmation event from Interaction Server, then this delay needs to be configured. The value should be calculated individually and specifically, depending on the delay in the Interaction Server response.
Composer configuration
The delay can be set via the vInxSrvResponseWaitMs variable. To set its value, do the following:
- Click on the Entry block of the InvokeGRE strategy.
- Select the Properties tab at the bottom of the Composer window.
- Click on the dots next to Global Settings -> Variables to open the Application Variables window.
- Expand the User Variables item and set the vInxSrvResponseWaitMs value.
Flow Summary
Part 1
Part 2
Part 3
Flow Detail
- Entry to InvokeGRE strategy.
- Check if in_method_name is set to SetBusinessContext or Prioritize.
- Invoke AssignLastError subroutine with attributes:
- vInLastErrorkey—IWD_GRE_Error
- vInLastErrorString—Error informs that: vInMethodName + ' is not valid'
- The interaction is placed in the iwd_bp_comp.Main.iWD_ErrorHeld queue.
- Exit InvokeGRE workflow.
- The FindListObjectItem subroutine is invoked to determine the name of the Genesys Rules Engine Application. The subroutine uses the List Object list GREServerList:
- vInItemName—GREServerList
- vInListName—Iwd_Esp_List
- Check if vInCustomPackageName was published to this subroutine. If it is set then vInCustomPackageName will be run. Otherwise package name needs to be found in Iwd_Package_List.
- Assign vInCustomPackageName to vGrePackageName.
- Delete IWD_GRE_Result, IWD_Error, RulePhase before Invoke GRE.
- Invoke AssignLastError subroutine with attributes:
- vInLastErrorkey—IWD_GRE_Determination_Error
- vInLastErrorString—Error description that occurred in FindListObjectItem subroutine.
- The FindListObjectItem subroutine is invoked to determine the name of the rule package that the Genesys Rules Engine will be invoking to evaluate the classification rules:
- vInItemName—RulePackageList
- vInListName—Iwd_Package_List
- Invoke AssignLastError subroutine with attributes:
- vInLastErrorkey—IWD_Rule_Package_Determination_Error
- vInLastErrorString—Error description that occurred in FindListObjectItem subroutine.
- An ESP request is sent to the Genesys Rules Engine to evaluate the classification rules.
ImportantAll user data that needs to be added to ESP request must be added in User Data attributes.
- Parse ESP result and attach to the interaction all attributes modified by the GRE.
- Assign the string AfterEspCallActivities timeout to the vLastError variable.
- Invoke AssignLastError subroutine with attributes:
- vInLastErrorkey—IWD_GRE_Error
- vInLastErrorString—Error informs that: Attach GreResult timeout
- The interaction is placed in the iwd_bp_comp.Main.iWD_ErrorHeld queue.
- Exit InvokeGRE workflow.
- A delay is introduced, based on the value of the vInxSrvResponseWaitMs variable which can be set in the Entry block.
- CheckBusinessValueAndPriority subroutine is called to verify if IWD_businessValue and Priority have correct values.
- Check if in_method_name is set to SetBusinessContext or Prioritize.
- Check if IWD_processId was set by any rules or when task was created.
- Check is made to see if this is the first time that prioritization rules are being evaluated for the interaction, and the priority was not set up by any rules.
- Get last error that was occured in GRE call and assign it to vLastError variable.
- A check is done to see if the error code is related to the ESP server communication.
- A delay is introduced, based on the value of the _delay_ms variable. The flow goes back to step 11 to retry the connection to the ESP server.
- The last Interaction Server-related error is extracted from a variable.
- Invoke AssignLastError subroutine with attributes:
- vInLastErrorkey—IWD_GRE_Error
- vInLastErrorString—The last Interaction Server-related error is extracted from a variable.
- Invoke AssignLastError subroutine with attributes:
- vInLastErrorkey—IWD_GRE_Error
- vInLastErrorString—The last Interaction Server-related error is extracted from a variable.
- Invoke AssignLastError subroutine with attributes:
- vInLastErrorkey—IWD_GRE_Error
- vInLastErrorString—The last Interaction Server-related error is extracted from a variable
- The interaction is placed in the iwd_bp_comp.Main.iWD_Rejected queue.
- Exit InvokeGRE workflow.
- Invoke AssignLastError subroutine with attributes:
- vInLastErrorkey—IWD_Prioritization_Error
- vInLastErrorString—Error description: 'Priority is not set up by rules'.
- The interaction is placed in the iwd_bp_comp.Main.iWD_Queued queue.
- The interaction is placed in the iwd_bp_comp.Main.iWD_Captured queue.
- The interaction is placed in the iwd_bp_comp.Main.iWD_ErrorHeld queue.
- Exit InvokeGRE workflow.