Skip to main content

UC API - Extension Points

This section describes the extension points used by the Enactor UC implementation.


enactor.uc.PreSignOnExtension

This extension will be called immediately before the standard Sign On form is displayed.

PropertyValue
Extension Point LocationPos/SignOn/WaitForSignOn

Supported Outcomes:

  • Success - If a User has been supplied, the POS will bypass the Login phase and proceed directly to the Launch phase. Otherwise, the POS will proceed to the Sign On phase as normal.

Implementation Notes:

This extension should be added immediately before the 'TestTerminalMode' action. Upon completion, check the output data from the extension. If a User is supplied then bypass the 'TestTerminalMode' action and navigate directly to the 'WriteToView' action. Otherwise continue to the 'TestTerminalMode' action.


enactor.uc.SignOnExtension

This extension is available to handle UC events while the Sign On form is displayed.

PropertyValue
Extension Point LocationPos/SignOn/SignOn

Supported Outcomes:

  • Success - If a User has been supplied, the POS will continue to the Launch phase. Otherwise the standard Login form will be re-displayed.

Implementation Notes:

Update the 'EnterUserState' to have a wildcard event: enactor.uc.*. If an event matching the pattern is raised, forward it to the new extension point process. When the extension completes, check the output data for a User. If one is supplied then navigate to the 'RaiseEvent' action. Otherwise, return to the 'EnactorUserState'.


enactor.uc.PreLaunchExtension

This extension is called after the user has logged in, but before the Enactor POS will display the Launch screen.

PropertyValue
Extension Point LocationPos/Transactions/LaunchScreen

Supported Outcomes:

  • Success - If items have been added to the basket, the POS will proceed to the Sale phase. Otherwise the POS will navigate to the Launch phase as normal.
  • Sales - The POS will bypass the Launch phase and proceed to the Sale phase.
  • Tender - The POS will bypass the Launch and Sale phases, and proceed to the Tender phase.
  • SignOff - The POS will sign-off the current user and return to the Sign On phase.

Implementation Notes:

Insert the extension point after the 'Send Event' action. If the extension completes with Success, check if there are any items on the basket. If that is the case, or the extension completed with the 'Sales' outcome, proceed to the EndProcessNewTransaction end process action.

To support the 'Tender' outcome a new outcome will be added to the LaunchScreen process.

If the 'SignOff' outcome is raised, connect to the SignOffUser action.


enactor.uc.LaunchExtension

This extension is available to handle UC events while the Launch screen is displayed.

PropertyValue
Extension Point LocationPos/Transactions/LaunchScreen

Supported Outcomes:

  • Success - If items have been added to the basket, the POS will proceed to the Sale phase. Otherwise the POS will redisplay the Launch screen.
  • Sales - The POS will navigate to the Sale phase.
  • Tender - The POS will bypass the Sale phase, and proceed to the Tender phase.
  • SignOff - The POS will sign-off the current user and return to the Sign On phase.

Implementation Notes:

Update the 'Prompt State' to have a wildcard event: enactor.uc.*. If an event matching the pattern is raised, forward it to the new extension point process. If the extension completes with Success, check if there are any items on the basket. If that is the case, or the extension completed with the 'Sales' outcome, proceed to the EndProcessNewTransaction end process action.

To support the 'Tender' outcome a new outcome will be added to the LaunchScreen process.

If the 'SignOff' outcome is raised, connect to the SignOffUser action.


enactor.uc.PreSaleExtension

This extension is called as the user moves from the Launch phase to the Sale phase (it is not called if the user navigates back from Tendering, or from the End Transaction transition).

PropertyValue
Extension Point LocationPos/Sale/Sale

Supported Outcomes:

  • Success - The POS will continue to the Sale phase.
  • Tender - The POS will bypass the Sale phase, and proceed to the Tender phase.

Implementation Notes:

This extension should be added after the 'Start' state. Depending on the outcome from the extension, continue to the 'getModelFromHandler' action, for Success, or to the 'DoTendering' action, for Tender.


enactor.uc.SaleExtension

This extension is called to handle the Enactor UC events during the Sale phase.

PropertyValue
Extension Point LocationPos/Sale/Sale

Supported Outcomes:

  • Success - The POS will redisplay the Sale screen.
  • Tender - The POS will proceed to the Tender phase.

Implementation Notes:

Update the 'SignedOnState' state to have a wildcard event: enactor.uc.*. If an event matching the pattern is raised, forward it to the new extension point process. If the extension completes with Success, return to the 'PromptState' state. Otherwise, if the outcome is 'Tender' navigate to the 'DoTendering' action.


enactor.uc.PreTenderingExtension

This extension is called when the 'Total' button on the POS is pressed, before the Enactor POS performs any of its standard 'On Total' event handling. If the Operator is returned to the Sale screen, and then pressed 'Total' again, the extension will be called again.

PropertyValue
Extension Point LocationPos/Sale/DoTendering

Supported Outcomes:

  • Success - The POS will continue to the Tender phase.
  • Sales - The POS will return to the Sales phase.

Implementation Notes:

Insert the extension point after the 'Start' state. If the extension completes with success, continue to the 'CallUpdateScreenControls' action. Otherwise, if the extension completes with 'Sales' connect to the 'ReturnToSales' end process action.


enactor.uc.TenderingExtension

This extension is called to handle the Enactor UC events during the Tendering phase.

PropertyValue
Extension Point LocationPos/Tender/DoTender

Supported Outcomes:

  • Success - If the basket is now balanced, the POS will transition to the End Transaction phase. Otherwise the Tender screen will be redisplayed.
  • Sales - The POS will return to the sale screen.

Implementation Notes:

Update the 'SelectTender' state to have a wildcard event: enactor.uc.*. If an event matching the pattern is raised, forward it to the new extension point process. If the extension completes with Success, connect to the 'TestBasket' state. Otherwise, if the outcome is 'Sales' connect to the 'ReturnToSales' end process action. Note that if the basket is balanced when a 'Success' outcome is raised, the POS should automatically begin the 'end transaction' flow as normal.


enactor.uc.EndTransactionExtension

This extension is called immediately before the basket is printed and the transaction is submitted for processing.

PropertyValue
Extension Point LocationPos/Transactions/EndTransaction

Supported Outcomes:

  • Success - The POS will continue with its normal behaviour.
  • Fail - The POS will return to the sale screen.

Implementation Notes:

Add the extension after the existing EndTransactionExternal hook action. If the extension completes with Success, connect to the EndTransactionCustomerOrder action. Connect to the EndTransactionFail end process action if a 'Fail' is returned from the extension.