Table of contents
- Goals
- Architecture – HTTP REDIRECT/GET
- Architecture – JSON/Complex data
- User experience
- oasis.xml
- CMQ setup
- External developer responsibilities
- Example initial URL
- Example redirect URL
- JSON direct to CMQ
Goals
- Full HTML5 support for manufacturer configurators
- Supports current GUI-based OASIS
- Supports future web base OASIS projects and orders
- Easier to code against and debug
Architecture – HTTP REDIRECT/GET
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
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
- Setup the specialization as required
- Key in the manufacturer
- Click on Tools -> Configurator
- Or <SHIFT> <F6>
- Work the configuration in the browser window
- When “Accept” or “Return to OASIS” is pressed, the browser window closes
- The configuration comes into the project/order
oasis.xml
- The <configurator> tag must have browser=“EXTERNAL”
- The brand must match what has been setup for CMQ
- The locator will be used to find CMQ (cannot be turned off)
CMQ setup
- One CMQ currently at https://web2.OasisSalesSoftware.com/CMQ
- Files stored at lib/CMQ/conf and ending with _cmq.xml
- The Name is how entries are matched
- If access global=“any”, no security enforcement
- Otherwise, the database DBID must be listed for access and the DBID must be part of the session ID request
- Data and logs stored at lib/CMQ/data
External developer responsibilities
- Must accept a URL with the session ID, a redirect URL, and optional catalog number
- Other data may be embedded on the initial URL – but will likely require custom code
- 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
- 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
- The initial URL is sent to the local OS to open the default browser:
- 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
- Only two elements must be stored by the remote system
- SessionID – this is how we communicate back to the requestor using JSON only
- redirect= - this is the base URL we redirect to if not calling CMQ directly using JSON
Example redirect URL
- The redirect URL is sent to the browser after the item is configured:
- 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
- Essentially any data may be added to the URL in an order. However, the minimum information is
- SessionID=……….
- Catalog=
- Standardized items are: SessionID, Catalog, Description, Low, LowCommission, Overageable and OverageableCommission
JSON direct to CMQ
- If the configurator is to pass a more complex JSON object to OASIS, the CMQ service must be called directly
- The JSON object may be of arbitrary complexity
- The request must contain a session id and a configuration key:
-
{"SessionID": ".....","configuration":{ ... JSON ... }}
-
- The configuration key value is returned to OASIS and must be parseable JSON.
Comments
0 comments
Please sign in to leave a comment.