For years, users have wanted to gain access to the OASIS database to integrate software on their own. However, the database is fairly complex, and external software has been known to produce performance issues. Enter JSON.
JSON is an internet standard and is simple to understand and utilize by any trained software developer. There are several benefits of using JSON:
- Some third party software is able to integrate with applications like OASIS with a basic JSON API
- JSON accesses the same routines used in OASIS and produces the same totals seen on screen.
- Routines are programmed with locking technology, which reduces the performance of impact of external access to the OASIS database.
- The API is fairly stable. Changes to the database happen regularly as data is moved from one table to another to implement new features. The listing, TSet, and other similar technologies are updated and draw data from the new database storage area.
Support
The JSON calls are offered WITHOUT SUPPORT. Only the following support actions are offered:
- this document
- If a defect is found, submit details to support@oasissalessoftware.com. Analysis and development teams will follow standard software development processes. No priorities will be accepted.
- Professional services or custom software development may be requested FOR CHARGE. Note: developer questions are a for charge service.
Logistics and Rollout
To comply with our vendor licensing, we have the following methods to access the JSON API. Note: what can be done and what can be done without breaking a contract are two entirely different things. Contact Ingen Software support (501 843 6750) if you have any questions. Our vendors are billion dollar companies and have no problem verifying your licensing or ours.
OASIS O4- Ingen Cloud Servers
Due to licensing changes by our database vendors, the best option is to use JSON and integrate with OASIS. To do so, complete the following:
- Call customer support to start the OASIS O4 Cloud
- Confirm any login to be used when logging into the UI URL. O4 cloud URLs will look something like "https://webXX.oasissalessoftware.com/COMPANY/UI" Note: the UI is User Interface.
- The JSON interface is an API URL. Switch the UI with API and continue below.
Use of APIs and integration require full "per core" database licenses from the database vendors. Because Ingen Software is required to buy this kind of license for OASIS O4 Cloud servers, you can use our licenses. Note: we do monitor usage. If usae is high, we will initally disable the APA and contact you to ensure a login has not been hacked. To re-instate, we will limit the call bandwidth or charge.
JSON- The Call Technical Details
The call is a HTTP 1.1 call where the JSON request is made either as a POST or a GET:
- POST- the JSON request is sent as the POST data.
- GET- the JSON request is "flattened" to be a URL encoded key value pairs. Note: this method is not supported by all OASIS JSON APIs.
In both cases, the response is usually as JSON and is returned by the server. Note: attachment API calls will return attachment data.
In either case, the URL must have an ajax= key value to select the requested API: http://localhost:8080/OASIS/API?ajax=POListing
JSON- Security
This section will change over time as we adapt the technology and keep it secure. For now the most efficient method to make a JSON call is to include the user email and password on the URL:
http://{O4 URL}/OASIS/API?ajax=POListing&EMail=demo@demo.com&Password=demo
When sending a request using HTTP POST, then Security or Login object may be sent in the request:
POST http://{O4 URL}/OASIS/API?ajax=POListing HTTP1.1
Content-Type: application/x-www-form-urlencoded
Content-Length: ...
{"Login":{"EMail":"test","Password":"test"},"Find": ...
Note: the content length would be required in most implementations but may only be calculated once the rest of the request was known.
JSON- Listing APIs
This group of JSON APIs essentially perform the common OASIS function of searching in one of the OASIS applications using the "Find" feature and showing the columns available in the "Preferences" feature. Note: this documentation refers one to the File->Find and File->Preferences in the related application for field names to use in the JSON Calls.
The calls may be made as a GET or a POST:
- GET - Place the find field values as key-value pairs in the URL. Add in a comma separated list of columns to return in the Listing= key as shown below.
- http://{O4 URL}/OASIS/API?EMail=&Password=&ajax=POListing&PONumber=A*&Listing=PONumber
- POST- place the find object and the listing array in the request object as shown.
- {"Login":{"EMail":"","Password":""},
"Find":{"PONumber":"A*"},
"Listing":["PONumber"]}
- {"Login":{"EMail":"","Password":""},
The result will be an object with an array with each returned row under the key "Listing."
Example
Request: http://{O4 URL}/OASIS/API?EMail=&Password=&ajax=POListing&PONumber_fnd=A*&Listing=PONumber
Result: {"Listing":[{"PONumber":"A1","Total Price":"0.00"},{"PONumber":"AA98234","Total Price":"200.00"},{"PONumber":"AAA","Total Price":"0.00"},{"PONumber":"AAA","Total Price":"0.00"},{"PONumber":"AAABBZZZ","Total Price":"0.00"},{"PONumber":"AABBOUT","Total Price":"0.00"},{"PONumber":"AABB1122","Total Price":"0.00"},{"PONumber":"AABB33","Total Price":"0.00"},{"PONumber":"AABB3322","Total Price":"0.00"},{"PONumber":"AABB777238","Total Price":"0.00"},{"PONumber":"AABB9898","Total Price":"0.00"},{"PONumber":"AABBCC","Total Price":"0.00"},{"PONumber":"AABBCC333","Total Price":"0.00"},{"PONumber":"ABC","Total Price":"100.00"},{"PONumber":"ABC123","Total Price":"0.00"},{"PONumber":"AE TEST 1","Total Price":"1822.40"},{"PONumber":"AFTER INITIAL SYNC","Total Price":"1050.00"},{"PONumber":"AGENCY HOLD TEST","Total Price":"0.00"},{"PONumber":"AGENT NUMBER TEST","Total Price":"0.00"},{"PONumber":"AGENT NUMBER TEST","Total Price":"0.00"},{"PONumber":"AHFR001","Total Price":"0.00"},{"PONumber":"AHFR002","Total Price":"0.00"},{"PONumber":"AHFR003","Total Price":"0.00"},{"PONumber":"AHFR T1","Total Price":"0.00"},{"PONumber":"AHFR T2","Total Price":"0.00"},{"PONumber":"AHID","Total Price":"0.00"},{"PONumber":"AHTEST1","Total Price":"0.00"},{"PONumber":"ALA EXAMPLE","Total Price":"200.00"},{"PONumber":"ALA EXAMPLE 2","Total Price":"340.00"},{"PONumber":"ALT TST","Total Price":"100.00"},{"PONumber":"ANOTHER ORDER","Total Price":"200.00"},{"PONumber":"ANOTHER RELEASE","Total Price":"1000.00"},{"PONumber":"A PO NUMBER","Total Price":"0.00"},{"PONumber":"A PO NUMBER 12","Total Price":"0.00"},{"PONumber":"APONUMBER13","Total Price":"0.00"},{"PONumber":"A PO NUMBER 2","Total Price":"0.00"},{"PONumber":"A PO NUMBER 3","Total Price":"0.00"},{"PONumber":"A PO NUMBER 4","Total Price":"0.00"},{"PONumber":"A PO NUMBER 5","Total Price":"0.00"},{"PONumber":"APPLY 1 TEST","Total Price":"0.00"},{"PONumber":"AR2323","Total Price":"0.00"},{"PONumber":"ARCH_LED_004","Total Price":"0.00"},{"PONumber":"ARCH_LED_004","Total Price":"0.00"},{"PONumber":"ARCHER TRAINING","Total Price":"155.00"},{"PONumber":"A RESELL TEST PO NUMBER 5","Total Price":"2380.00"},{"PONumber":"ASDASDF","Total Price":"0.00"},{"PONumber":"ASDF","Total Price":"1000.00"},{"PONumber":"ASDF","Total Price":"2200.00"},{"PONumber":"ASDFO987","Total Price":"0.00"},{"PONumber":"ASDF12345","Total Price":"0.00"},{"PONumber":"ASDFADFS","Total Price":"4090.00"},{"PONumber":"ASDFASDF","Total Price":"0.00"},{"PONumber":"ASDFASDF","Total Price":"0.00"},{"PONumber":"ASDFASDF222","Total Price":"0.00"},{"PONumber":"ASDFASDFPICKER","Total Price":"20.00"},{"PONumber":"ASDLKJ897","Total Price":"2000.00"},{"PONumber":"ATTACH TEST 2","Total Price":"0.00"},{"PONumber":"ATTACH TEST 3","Total Price":"0.00"},{"PONumber":"ATT TEST 1","Total Price":"1000.00"},{"PONumber":"AUTO 1","Total Price":"100.00"},{"PONumber":"AUTO CLOER","Total Price":"0.00"}]}
Implemented Listing APIs
- ContactsListing- find and listing parameters from the Contacts section of OASIS
- CustomersListing- find and listing parameters from the Customers section of OASIS
- ManufacturersListing- find and listing parameters from the Manufacturers section of OASIS
- POListing- find and listing parameters from the Orders section of OASIS
- QuoteListing- find and listing parameters from the Quotes section of OASIS
- PaymentListing- find and listing parameters from the Payments section of OASIS
Comments
0 comments
Please sign in to leave a comment.