Best Practices for Creating Third-Party Custom Connections and Queues in Retail Pro Prism
Custom connections in Retail Pro Prism allow for near real-time data exchanges between RP Prism and third-party integrations. The third party can then create an application to directly receive messages from a custom Rabbit MQ queue or set up an opposing Rabbit MQ server to fetch messages. For more API information please refer to Rabbit MQ‘s website https://www.rabbitmq.com/.
To enable this kind of data exchange, you will need to set up a Custom Rabbit MQ Queue in RP Prism.
Custom elements can be created in the Custom Dashboard section of the Connection Manager. Within the Custom Dashboard, you will notice the following:
- Only Day-to-Day activity can be sent to and from a custom connection. No initializations are possible. If you need to send past data, please contact Retail Pro Professional Services.
- Status reporting for messages occurs on the inbound side only. As the other side of the connection will be a third party, only the Retail Pro side of the integration will be recorded.
- The Connection tab will only contain the RP Prism Connection information.
- The Profiles tab contains Sender profiles defined on the RP Prism side. Profiles only affect sent data.
Creating a Custom Connection
- Enter the custom Name and RIL Server Address.
2. When the Connection is first created, it is not active or connected. To connect, select the Row and then click Connect.
3. If required, you can create a Profile that sends only particular required data.
4. Assign the created Profile to the Custom Connection.
5. The Connection will now be created in Rabbit MQ and data can be sent and received through this queue.
Testing the Connection
The Rabbit MQ interface can be used to help test the connection.
- Connect to Rabbit MQ.
- Open a browser and navigate to http://
:15672 - Log into RabbitMQ
User: prismrs
Password: M3ssag1ngR0cks
2. Navigate to the Queue tab. The Queue name will be
3. Because there are no third-party consuming messages at this point the message will be pending in the queue.
4. To review the message, scroll down on the Queue page to the "Get Messages" Node.
- If you only want to view the message and not delete it, make sure you have the Ack Mode set to "Nack message requeue true."
- Click the "Get Message(s)" button.
- The headers information will be necessary for integration. At minimum, the third-Party system will need to know the resource.
delivery_mode: |
2 |
||||||||||||||||||||||||
headers: |
|
||||||||||||||||||||||||
content_type: |
text/plain |
- The Payload will contain the information of the resource sent. In most cases the format will be in JSON format and can be copied and passed into a JSON viewer.
Note: Some resources will be in the JSON format but will have embedded XML in various fields, as in Z-OUT Control and other resources.
Tips:
Compression
By default, RP Prism configures Rabbit MQ to compress messages. This helps with reducing bandwidth when communicating to stores. However, your third-party system may not be able to uncompress the message. In this case we recommend changing the compression value to a very large value, like COMPRESSION=10000. This is done in the PrismMQService.ini file found in the C:\ProgramData\RetailPro\Server\Conf\ directory.
Custom Connection Record
In RP Prism Custom Queue creation, the controller record is "Null" by default when the custom connection is created, leaving the controller record incomplete. However, the controller number field in the rps.controller table cannot be null. This will cause problems with joining the enterprise and access violations in Techtoolkit. Resolving this requires direct updates to the database.