How To Configure Supplementary Transaction Reference Entity
Introduction
The Supplementary Transaction Reference feature enables reference codes - such as gift receipt references - to be attached to POS transactions for scanning, storage, and retrieval. Once configured, customers can use the supplementary reference number to return a transaction without the original receipt.
The purpose of this guide is to demonstrate the steps required to configure the Supplementary Transaction Reference feature in Enactor POS, update the return prompt message in Application Translations, and broadcast the configuration to the POS.
Overview
The following steps are required to enable Supplementary Transaction Reference:
- Importing the Process Connection XMLs - Import the RestServiceConnection XML configuration files into the Estate Manager
- Application Translations - Update the return screen prompt to reflect the supplementary reference number as an accepted input
- Broadcasting - Deliver configuration changes to the POS
Prerequisites
Before starting, you should have the following resources in place:
- Enactor Estate Manager
- Enactor POS (configured and connected to the Estate Manager)
You should be familiar with the following:
- Estate Manager configuration
- Data broadcasting
Configuration Steps
Importing the Process Connection XMLs
The RestServiceConnection Process Connection Type must be present on the Estate Manager. Import the two XML configuration samples below into the Estate Manager before proceeding.
core:processConnections
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch>
<core:processConnections xmlns:core="http://www.enactor.com/core" xmlns:hta="http://docs.oasis-open.org/ns/bpel4people/ws-humantask/api/200803" xmlns:htd="http://docs.oasis-open.org/ns/bpel4people/ws-humantask/200803" xmlns:htt="http://docs.oasis-open.org/ns/bpel4people/ws-humantask/types/200803" xmlns:ns10="http://www.enactor.com/retail/storedRestaurantSaleTransaction/service" xmlns:ns11="http://www.enactor.com/addressLookup/service" xmlns:ns13="http://www.enactor.com/retail/restaurantTableStatus/service" xmlns:ns14="http://www.enactor.com/crm/customerLoyalty/service" xmlns:ns4="http://www.enactor.com/crm" xmlns:ns9="http://www.enactor.com/retail/storedRetailTransaction/service" xmlns:retail="http://www.enactor.com/retail" xmlns:sref="http://docs.oasis-open.org/wsbpel/2.0/serviceref" xmlns:tools="http://www.enactor.com/tools" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<core:processConnectionsId>RestServiceConnections</core:processConnectionsId>
<core:name>Extension for Rest Connections</core:name>
<core:connectedProcesses>
<core:connectedApplication>
<core:processId>TransactionReference</core:processId>
<core:connectedApplicationProcessMetaData>
<core:inputs/>
<core:outputs>
<core:output>SaveTransactionReference</core:output>
<core:output>SearchTransactionReference</core:output>
</core:outputs>
</core:connectedApplicationProcessMetaData>
<core:uiSettings xsi:type="tools:ConnectedProcessEditorSettings">
<core:constraint xsi:type="core:UIPositionConstraint">
<core:x>161</core:x>
<core:y>228</core:y>
</core:constraint>
<tools:displayedSections>
<item>OUTPUTS</item>
</tools:displayedSections>
</core:uiSettings>
</core:connectedApplication>
</core:connectedProcesses>
<core:connectionProviders>
<core:restServiceConnection>
<core:endpointReference xsi:type="core:restEndpoint">
<core:accountCredentialsId>REST_API_ACCESS</core:accountCredentialsId>
<core:isDynamicEndpoint>true</core:isDynamicEndpoint>
<core:url>${Server.EMWS.URL.Base}/WebRestApi/rest/retailTransaction/reference</core:url>
<core:httpMethod>POST</core:httpMethod>
<core:queryParams/>
<core:headers/>
<core:authenticationType>BASIC</core:authenticationType>
<core:payloadFormat>JSON</core:payloadFormat>
<core:requestTransformParams/>
<core:responseTransformParams/>
</core:endpointReference>
<core:connectionProviderId>SaveTransactionReferenceREST</core:connectionProviderId>
<core:name>SaveTransactionReference-REST</core:name>
</core:restServiceConnection>
<core:restServiceConnection>
<core:endpointReference xsi:type="core:restEndpoint">
<core:accountCredentialsId>REST_API_ACCESS</core:accountCredentialsId>
<core:isDynamicEndpoint>true</core:isDynamicEndpoint>
<core:url>${Server.EMWS.URL.Base}/WebRestApi/rest/retailTransaction/reference/search</core:url>
<core:httpMethod>GET</core:httpMethod>
<core:queryParams>
<core:param value="#{transactionId}" name="transactionId">
<core:interfaceName>java.lang.String</core:interfaceName>
</core:param>
<core:param value="#{supplementaryReference}" name="supplementaryReference">
<core:interfaceName>java.lang.String</core:interfaceName>
</core:param>
</core:queryParams>
<core:headers/>
<core:authenticationType>BASIC</core:authenticationType>
<core:payloadFormat>JSON</core:payloadFormat>
<core:requestTransformParams/>
<core:responseTransformParams/>
</core:endpointReference>
<core:connectionProviderId>SearchTransactionReferenceREST</core:connectionProviderId>
<core:name>SearchTransactionReference-REST</core:name>
</core:restServiceConnection>
</core:connectionProviders>
<core:queues/>
<core:webServiceGroups>
<core:webServiceGroup>
<core:processId>TransactionReferenceService</core:processId>
<core:webServiceGroupMetaData>
<core:connectionProviders>
<core:provider>SaveTransactionReferenceREST</core:provider>
<core:provider>SearchTransactionReferenceREST</core:provider>
</core:connectionProviders>
</core:webServiceGroupMetaData>
<core:uiSettings xsi:type="core:UIEditorSettings">
<core:constraint xsi:type="core:UIPositionConstraint">
<core:x>457</core:x>
<core:y>227</core:y>
</core:constraint>
</core:uiSettings>
</core:webServiceGroup>
</core:webServiceGroups>
<core:connections>
<core:processConnection>
<core:connectionId>TransactionReference-1</core:connectionId>
<core:fromId>TransactionReference</core:fromId>
<core:fromOutputId>SaveTransactionReference</core:fromOutputId>
<core:fromType>PROCESS</core:fromType>
<core:toId>TransactionReferenceService</core:toId>
<core:toType>SERVICE</core:toType>
<core:providerId>SaveTransactionReferenceREST</core:providerId>
</core:processConnection>
<core:processConnection>
<core:connectionId>TransactionReference-2</core:connectionId>
<core:fromId>TransactionReference</core:fromId>
<core:fromOutputId>SearchTransactionReference</core:fromOutputId>
<core:fromType>PROCESS</core:fromType>
<core:toId>TransactionReferenceService</core:toId>
<core:toType>SERVICE</core:toType>
<core:providerId>SearchTransactionReferenceREST</core:providerId>
</core:processConnection>
</core:connections>
<core:parameters/>
</core:processConnections>
</Batch>
core:processConnectionsType
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Batch>
<core:processConnectionsType xmlns:core="http://www.enactor.com/core" xmlns:hta="http://docs.oasis-open.org/ns/bpel4people/ws-humantask/api/200803" xmlns:htd="http://docs.oasis-open.org/ns/bpel4people/ws-humantask/200803" xmlns:htt="http://docs.oasis-open.org/ns/bpel4people/ws-humantask/types/200803" xmlns:ns14="http://www.enactor.com/crm/customerLoyalty/service" xmlns:ns4="http://www.enactor.com/crm" xmlns:ns5="http://www.enactor.com/retail/storedRestaurantSaleTransaction/service" xmlns:ns6="http://www.enactor.com/retail/storedRetailTransaction/service" xmlns:ns8="http://www.enactor.com/retail/restaurantTableStatus/service" xmlns:ns9="http://www.enactor.com/addressLookup/service" xmlns:retail="http://www.enactor.com/retail" xmlns:sref="http://docs.oasis-open.org/wsbpel/2.0/serviceref" xmlns:tools="http://www.enactor.com/tools" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<core:description>Connection strategy for Pos and Estate Manager for Rest Services</core:description>
<core:name>Extension for Rest Service Connections</core:name>
<core:processConnectionsDefId>RestServiceConnections</core:processConnectionsDefId>
<core:extendingConnectedProcessId>StandardPosBackOfficeEstateManager</core:extendingConnectedProcessId>
<core:extensionApplicableHostIds>
<core:extensionApplicableHostId>POS</core:extensionApplicableHostId>
<core:extensionApplicableHostId>MASTER_POS</core:extensionApplicableHostId>
<core:extensionApplicableHostId>ESTATE_MANAGER</core:extensionApplicableHostId>
</core:extensionApplicableHostIds>
</core:processConnectionsType>
</Batch>
This completes the Importing the Process Connection XMLs configuration.
Application Translations
The return screen prompt can be updated to reflect that a supplementary reference number is an accepted input. This is configured in Application Translations Maintenance on the Estate Manager.
Navigate to Application Translations Maintenance using the Search or the path:
Configuration > Organisation > Application Translations

Select Enactor POS from the Application Package dropdown and wait for the Message Sets list to load.

Scroll to the Transaction Message Set and select the + symbol to expand it, or the edit icon if amendments have already been made.

Scroll to the message with ID ENTER_ORIGINAL_TRANSACTION_ID and enter the
amended message text.

ENTER_ORIGINAL_TRANSACTION_ID message and enter the updated prompt text. Select Save to apply the changes.
The table below shows where the return message is stored:
| Field | Value |
|---|---|
| Application Package | Enactor POS |
| Message Set | Transaction |
| Message File | Pos/Transaction/TransactionMessages |
| Message ID | ENTER_ORIGINAL_TRANSACTION_ID |
For example, update the message from "Please scan the transaction ID or select one of the available options." to "Please scan the transaction ID or enter the supplementary reference number." This ensures clarity for users at the point of return.
This completes the Application Translations configuration.
Broadcasting
To deliver the configuration changes to the POS, broadcast the following entities:
- Process Connections Def
- Process Connections Type
- Message Resources
This completes the Broadcasting configuration.
POS Functionality
Gift Receipt Reference Functionality
Start the POS and log in.

Select Sales > Receipts > Request Gift Receipt.

Add an item to the basket and select total, then select a receipt style and complete the transaction.

Transaction XML Without Supplementary Reference
The following shows the transaction XML structure for a standard transaction without a supplementary reference attached:

supplementaryReference element is present.
Transaction XML With Supplementary Reference
The following shows the transaction XML structure for a transaction with a supplementary reference attached:


supplementaryReference element structure within the transaction XML, showing the reference code and type values.
Returning a Transaction via Supplementary Reference Number
Select Returns from the POS main menu.

Select Return from Receipt and enter the supplementary reference number.


