Changes to IWDBP Strategies & Subroutines in 8.5.105
Code has been refactored in order to simplify IWD strategies.
Prioritization Strategy
The purpose of this strategy is to invoke the corresponding prioritization rules, analyze the result of the rules application and place the interaction into the appropriate queue, depending on the result.
This strategy processes interactions from the following queues:
- iwd_bp_comp.Main.iWD_Captured—Interactions have to satisfy the following conditions:
- Active interactions only (interactions which do not have the property IWD_activationDateTime set, or this property has a time stamp which is in the past.
- Interactions are taken in the order they were submitted.
Changes in 8.5.105
Code that was previously in the Prioritization strategy has been moved to the InvokeGRE and InvokeUCS strategies.
Composer Configuration
Flow Summary
Flow Detail
- Entry to Prioritization workflow.
- The InvokeGRE subroutine is invoked.
- Log message in case if interaction was from some reasons deleted.
- Invoke AssignLastError subroutine with attributes:
- vInLastErrorkey—IWD_GRE_Error
- vInLastErrorString—Error description that occurred in InvokeGRE subroutine.
- The interaction is placed in the iwd_bp_comp.Main.iWD_ErrorHeld queue.
- Exit Prioritization workflow.
Distribution Strategy
This strategy routes interactions to a requested Agent, requested Agent Group, requested Skill, or to the default iWD Agent Group. This strategy processes interactions from the following queues:
- iwd_bp_comp.Main.iWD_Queued—Interactions have to satisfy the following conditions:
- Interactions that are not subject for immediate reprioritization (interactions that do not have the property IWD_reprioritizeDateTime set, or that have this property set to a time stamp that is in the future).
- Interactions are taken in order of priority (highest priority first)
Changes in 8.5.105
- A Segmentation feature has been added to the Distribution routing strategy in the iWD Business Processes for Composer/ORS. Segmenting interactions ensures that all agents are kept busy by distributing tasks in each segment separately. As a result, even in a Distribution strategy that is populated by high-priority tasks assigned to small groups of agents, the strategy will not become so saturated that distribution of tasks to other agents is blocked.
- Segmentation settings have been added to the ToDistribute view of the Distribution routing strategy. The Distribution strategy can now make a call to the segmentation setting and add an IWD_Segment attribute to the interaction data.
Composer Configuration - Segmentation View
Flow Summary
Part 1
Click to enlarge.
Part 2
Click to enlarge.
Part 3
Click to enlarge.
Flow Detail
- Entry to Distribution workflow.
- A variables are initialized:
- vRequestedAgentGroup—Read from task attribute IWD_ext_requestedAgentGroup
- vRequestedAgentGroup—Read from task attribute IWD_ext_requestedAgent
- vRequestedSkill—Read from task attribute IWD_ext_requestedSkill
- vCurrentTint—Current time in seconds
- vReprioritizeDint—Read from task attribute IWD_businessValue
- vDefaultTargetTimeout—Default target timeout set to 3600 seconds
- vInxPriority—Read from task attribute Priority
- Delete IWD_Route_Error from attached data. Calculate WaitTarget timeout based on vReprioritizeDTInt and vCurrentDTInt. Sets URS priority.
- Set information about clear IWD_Route_Error attribute.
- Invoke AssignLastError subroutine with attributes:
- vInLastErrorkey—IWD_Error
- vInLastErrorString—Error description: 'Update IWD_Route_Error timeout'
- The interaction is placed in the iwd_bp_comp.Main.iWD_ErrorHeld queue.
- Calculate vWaitTargetTimeout.
- Check if calculated vWaitTargetTimeout is in range (0, vDefaultTargetTimeout>.
- Set vWaitTargetTimeout to vDefaultTargetTimeout.
- Exit Distribution workflow.
- Check if particular Agent is requested.
- Assign vRequestedAgent + '.a' to vRequestedAgent variable.
- Set vIWDSegment to '_requested_agent'.
- Route interaction to requested vRequestedAgent without waiting.
- Set vIWDSegment to '_requested_skill'.
- Route interaction to requested vRequestedAgent with requested skill without waiting.
- Check if particular AgentGroup is requested.
- Assign vRequestedAgentGroup + '.qa' to vRequestedAgentGroup variable.
- Set vIWDSegment to '_requested_agent_group'.
- Route interaction to requested vRequestedAgentGroup with vWaitTargetTimeout.
- Set vIWDSegment to 'default'.
- Route interaction to IWD Agent Group with vWaitTargetTimeout.
- Log message in case if interaction was from some reasons deleted.
- Assign last route interaction error to vLastError.
- Exit Distribution workflow.
- Check if route interaction finished with an error.
- Invoke AssignLastError subroutine with attributes:
- vInLastErrorkey—IWD_Route_Error
- vInLastErrorString—Error description that occurred in route interaction
- Exit Distribution workflow.
Invoke GRE Strategy
Changes in 8.5.105
Code that was previously in the Prioritization strategy has been moved to the InvokeGRE and InvokeUCS strategies.
Composer Configuration
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.
- 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.
- 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.
CheckBusinessValueAndPriority Subroutine
The purpose of this workflow is to verify if Priority and IWD_businessValue have correct values.
Changes in 8.5.105
Code has been refactored in order to simplify this IWD strategy.
Flow Summary
Part 1
Part 1
Flow Detail
- Entry to CheckBusinessValueAndPriority workflow.
- Variables are initialized:
- vIwdBusinessValue—Read from task attribute IWD_businessValue
- vIwdPriority—Read from task attribute Priority
- Validate if vIwdBusinessValue is valid.
- Set vIwdBusinessValue to vMinBusinessValue.
- Set vIwdBusinessValue to vMaxBusinessValue.
- Update IWD_businessValue to vIwdBusinessValue.
- Validate if vIwdPriority is valid.
- Set vIwdPriority to vMinPriority.
- Set vIwdPriority to vMaxPriority.
- Update Priority to vIwdPriority.
- Exit CheckBusinessValueAndPriority workflow.
- Invoke AssignLastError subroutine with attributes:
- vInLastErrorkey—IWD_Error
- vInLastErrorString - Error description: 'Update Priority timeout'
- Invoke AssignLastError subroutine with attributes:
- vInLastErrorkey—IWD_Error
- vInLastErrorString— Error description: 'Update iWD_businessValue timeout'
- The interaction is placed in the iwd_bp_comp.Main.iWD_ErrorHeld queue.
- Exit CheckBusinessValueAndPriority workflow.