My Menu - Simphony Communication Public Static IP
My Menu - Simphony Communication Public Static IP
TRANSACTION SERVICE
COMMUNICATION
The POS client provides a user interface for all POS operations in the Simphony system. The order taker
can log on to the POS client using valid credentials and add a transaction to create a guest check. As part
of a transaction, he or she can add menu items, discounts, service charges, multiple tax rates, and tender
details to the guest check and save it to the POS database. The guest checks created on one workstation
of the property can be accessed from other workstations of the same property using the CAPS (Check and
Posting) service.
TS web service uses the same underlying business libraries used by the POS client for all POS operations.
Technically TS web service is a version of the POS client without the UI.
The guest check created through the Transaction Services API will post to the enterprise database
(MCRSPOS) for reporting purposes via CAPS. All transactions made through the TS web service or POS
client UI will first be stored in the local POS database named DataStore. The CAPS that owns
CheckAndPostingDB database will post all transactional data to the enterprise database (MCRSPOS) with
the help of EGateway service, which is hosted on the Simphony application server.
All configuration changes made by the EMC application at the enterprise server are downloaded to the
local POS database of each workstation using a DB Sync component. By default, the DB Sync operation
runs every 30 minutes. Thus, any configuration changes made at the enterprise server for a specific
property or workstation will be available for Transaction Services and the POS client within 30 minutes.
The DB Sync can also be manually initiated anytime using a function button in the POS client.
Direct Posting Services is a Windows service that runs on the application server to upload data from the
transaction database (MCRSPOS) to one of the reporting databases named LOCATION_ACTIVITY_DB. Any
workstation in a store can be configured to host TS API.
The Service Host, configured via EMC to run on a workstation, hosts the Transaction Services API as a web
service by default at port 8080. The format of the web service URL is (optional to replace the localhost
address with the IP Address of the workstation):
http://127.0.0.1:8080/EGateway/SimphonyPosApiWeb.asmx
Apart from this method (that is, hosting TS web service on Service Host), TS web service can be hosted on
the application server as well, but it will never be applied because the application server is beyond the
boundary of third-party clients. By default, the Simphony application server has the TS web service
installed and hosted after the successful execution of Simphony installation media. This web service can
access the application server with the right URL. It is normally hosted on the following URL. Replace the
placeholder with the IP address of the application server below.
Note: Simphony Transaction Services is an API exposed at the location, typically on a workstation. Oracle
does not provide a function or mechanism to expose the API outside the location. Customers and their
Integrators will need to implement a service (i.e., Secure VPN, etc.) to establish communication with the
premise and local API.
My Menu servers are isolated from the public internet and lie inside the private subnet. All the requests
originating from the different MM servers are routed to the public via the NAT Gateway. The NAT gateway
has a static IP address. For integrations that require whitelisting of IP addresses, clients will whitelist the
NAT Gateways IP address. The incoming requests to the My Menu are routed through the Internet
Gateway(IG), and then IG forward the requests to the load balancer, and finally, it reaches the MM
Servers.
For WebSocket communication, MM uses AWS APIGateway. AWS fully manages this service, and there is
no static IP address. For any integration that uses WebSocket communication, the client will have to
whitelist the URLs instead of the IP address.
My Menu static IP address is 15.184.81.153. This IP address needs to be whitelisted for incoming requests.
For the incoming request, My Menu expects a status from the TS. So, clients have to whitelist outgoing
requests for the response.
Diagram 1.1
Messages:
Endpoint: <ReverseProxy>/EGateway/SimphonyPosApiWeb.asmx
Packet flow:
Request: MM Cloud -> Hotel IP/Reverse Proxy -> TS Webservice
Payload:
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetConfigurationInfo
xmlns="http://micros-hosting.com/EGateway/">
<vendorCode />
<employeeObjectNum>1</employeeObjectNum>
<revenueCenter>11</revenueCenter>
<configurationInfoType>
<int>16</int>
</configurationInfoType>
</GetConfigurationInfo>
</soap:Body>
</soap:Envelope>
Fig: 1.1
Response:
2. Menu Sync
The method used to pull Menu details from TS API
Endpoint: <ReverseProxy>/EGateway/SimphonyPosApiWeb.asmx
Packet flow:
Request: MM Cloud -> Hotel IP/Reverse Proxy -> TS Webservice
Payload:
<soap:Envelope
<EConfigurationInfoType>MENUITEMMASTERS</EConfigurationInfoType>
<EConfigurationInfoType>FAMILYGROUP</EConfigurationInfoType>
</ConfigInfoType>
<FamilyGroups>
<?xml version="1.0" encoding="utf-8"?>
<?micros-type
Micros.PosCore.Extensibility.DataStore.DbRecords.DbFamilyGroup[], PosCore,
Version=2.5.0.0, Culture=neutral, PublicKeyToken=null?>
<ArrayOfDbFamilyGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DbFamilyGroup>
<FamGrpID>474</FamGrpID>
<HierStrucID>722</HierStrucID>
<ObjectNumber>100</ObjectNumber>
<Name>
<StringNumberId>132769</StringNumberId>
<StringText>"***FOOD***"</StringText>
</Name>
</DbFamilyGroup>
</ArrayOfDbFamilyGroup>
</FamilyGroups>
</configInfoResponse>
</GetConfigurationInfoResponse>
</soap:Body>
Fig: 1.4
3. Order Post
The method used to push the order details to the TS API
Endpoint: <ReverseProxy>/EGateway/SimphonyPosApiWeb.asmx
Packet flow:
Request: MM Cloud -> Hotel IP/Reverse Proxy -> TS Webservice
Payload:
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<PostTransactionEx2
xmlns="http://micros-hosting.com/EGateway/">
<pGuestCheck>
<CheckDateToFire>2023-02-10T07:01:02</CheckDateToFire>
<CheckEmployeeObjectNum>1009</CheckEmployeeObjectNum>
<CheckGuestCount>0</CheckGuestCount>
<CheckID />
<CheckNum>0</CheckNum>
<CheckOrderType>1</CheckOrderType>
<CheckRevenueCenterID>40</CheckRevenueCenterID>
<CheckSeq>0</CheckSeq>
<CheckStatusBits>0</CheckStatusBits>
<CheckTableObjectNum>1604</CheckTableObjectNum>
<EventObjectNum>0</EventObjectNum>
<PCheckInfoLines>
<string>*** Paid - 53.78