OASIS Configurator Message Queue

Have more questions? Submit a request

Table of contents

 

Goals

  1. Full HTML5 support for manufacturer configurators
  2. Supports current GUI-based OASIS
  3. Supports future web base OASIS projects and orders
  4. Easier to code against and debug

 

Architecture – HTTP REDIRECT/GET

arch.PNG

1.Request session from CMQ

2.Return session ID and URL

3.Launch browser with “adjusted” URL (with catalog number)

4.Interact with the website to configure an item

5.Configurator sends a redirect to CMQ with data in URL

6.The browser accesses CMQ and data is bound to the session

7.(N) OASIS is polling until data is bound to the session

 

Architecture – JSON/Complex data

json.PNG

1.Request session from CMQ

2.Return session ID and URL

3.Launch browser with “adjusted” URL (with catalog number)

4.Interact with the website to configure the item

5.Configurator sends a complex JSON object directly to CMQ

6.(N) OASIS is polling until data is bound to the session

 

User experience – no change

  1. Setup the specialization as required
  2. Key in the manufacturer
  3. Click on Tools -> Configurator
  4. Or <SHIFT> <F6>
  5. Work the configuration in the browser window
  6. When “Accept” or “Return to OASIS” is pressed, the browser window closes
  7. The configuration comes into the project/order

 

oasis.xml

  1. The <configurator> tag must have browser=“EXTERNAL”
  2. The brand must match what has been setup for CMQ
  3. The locator will be used to find CMQ (cannot be turned off)

 

CMQ setup

  1. One CMQ currently at https://web2.OasisSalesSoftware.com/CMQ
  2. Files stored at lib/CMQ/conf and ending with _cmq.xml
  3. The Name is how entries are matched
  4. If access global=“any”, no security enforcement
  5. Otherwise, the database DBID must be listed for access and the DBID must be part of the session ID request
  6. Data and logs stored at lib/CMQ/data

 

External developer responsibilities

  1. Must accept a URL with the session ID, a redirect URL, and optional catalog number
  2. Other data may be embedded on the initial URL – but will likely require custom code
  3. Once the configuration is complete, the web application must send a browser redirect to the redirect URL with all the data URL encoded. SessionID=value is required as well
  4. Optionally, the web application may make a JSON call to deliver a more complex JSON object to CMQ for queuing to OASIS. Custom code will be required for complex JSON objects (in OASIS only).

 

Example initial URL

  1. The initial URL is sent to the local OS to open the default browser: 
    1. http://localhost:8080/OASIS/UI?PageID=PLUConfigurator:manufacturer:RV:part:ABC&redirect=http://localhost:8080/CMQ/CMQ?SessionID=KENALL_2019-04-25_08.31.34.452-10002
  2. Only two elements must be stored by the remote system
  3. SessionID – this is how we communicate back to the requestor using JSON only
  4. redirect= - this is the base URL we redirect to if not calling CMQ directly using JSON

 

 

Example redirect URL

  1. The redirect URL is sent to the browser after the item is configured: 
    1. http://localhost:8080/CMQ/CMQ?SessionID=RV_2019-04-25_10.17.57.931-10001&Catalog=SCL-42-4-CLR-B&Low=37.50&LowCommission=5.00&Overageable=47.50&OverageableCommission=10.00
  2. Essentially any data may be added to the URL in an order. However, the minimum information is
    1. SessionID=……….
    2. Catalog=
  3. Standardized items are: SessionID, Catalog, Description, Low, LowCommission, Overageable and OverageableCommission

 

JSON direct to CMQ

  1. If the configurator is to pass a more complex JSON object to OASIS, the CMQ service must be called directly
  2. The JSON object may be of arbitrary complexity
  3. The request must contain a session id and a configuration key:
    1. {"SessionID": ".....","configuration":{ ... JSON ... }}

  4. The configuration key value is returned to OASIS and must be parseable JSON.

Articles in this section

Was this article helpful?
0 out of 1 found this helpful

Comments

0 comments

Please sign in to leave a comment.