SGCO Dynamic RMS / DBMS API For OpenVMS

Let's Get Technical

We appreciate that every installation is different and as a result, most administrators/CIOs will have questions that may be unique to their network. If you don’t see the answers you need below feel free to submit your ques3ons directly to our software engineers. You will receive a personal email with the answers to your questions and your submission may be posted on this page as well.

What will the SGCO API allow me to do?

Our API gives you a real-time solution to remotely accessing your RMS data not only for reading but also for deletes, updates and writes.


How does the SGCO API work?

Our API will enable a listening port on tcp on your OpenVMS box to all outside access to your RMS data. Our API provides an industry standard REST JSON interface that can be used with all current platforms and programming languages. It has been designed around normal RMS type requests. You send a 4- parameter request that identifies the RMS file name, the simple or compound key number, key value(s), and the action create, remove, update or delete. File locking rules for these actions are determined at the time of installation if defaults are not acceptable.


What is the cost of the SGCO API?

Basic licensing is $7,500 per year. $1000.00 cluster server


What about installation?

Generally, SGCO will sell a block of hours for the first year to assist with setup, mapping, tuning RMS data files etc. Our API is already working with x86 as well, so any investment if future proofed should you later decide to switch to that platform. Due to the fact that our API uses a single copy of the RMS data rather than making a copy to MsSQL and the declining support from Attunity and Connex we have be receiving many requests.


What does a typical json request looks like ?

Here is a typical API call. This call uses a 3 part compound key with part 2 a partial wildcard and part 3 full wildcard: {"acNon": "search", "key_file": "prtlxref"", "key": "6", "key_value": "1661|201901||"} Action will be what you want to do our of CRUD functionality, key file is the RMS file referenced in the config that the API is running as, key is the FDL key number, and key value.


Does the API call involve the path and file name?

The path is defined in the config file depending on the function of that instance. There can be multiple instances of the API running each stated with a command line switch that defines the config section that will apply, This allows instances of the API to run as SSL on port 443 for production, no-SSL on 80 for development etc. as well as to define paths for production and development RMS data files.


Does the API call require the fdl file to be sent or to be read?

FDL files are only needed during initial installation and module creation/mapping.


Can the output from an API call be formatted?

The output values can be formatted however you decide. We often have RMS files that contain binary packed data that needs to be unpacked before delivery. Here are a couple examples of what is returned from the above query:


RAW JSON:

[{"CONTRACT_COST_WITHOUT_IDC": " 28933.54", "INCOME_START_DATE": "20190102", "SALESMAN_NUMBER": " 4119", "CHILD SALESREP": " ", "INCOME_STATUS": "A", "VENDOR_NUMBER": " 1661", "CUSTOMER_STATE": "MA", "VENDOR_CUSTOMER_NUMBER": " ", "VENDOR_MASTER": " ", "CALCULATED_MATURITY_DATE": "20240131", "CONTRACT_COST_INCLUDES_IDC": " 29456.60", "SALESMAN_GP": " 9901", "UP_FRONT_TAX_AMOUNT___TAXES_FIN": " 1933.54", "SALESMAN_P": " 1999", "BOOKING_ACCOUNTING_PERIOD": "201901", "FIRST_PAYMENT_DUE_DATE": "20190101", "DESCRIPTION_LINE_NO1_PRIMARY": "ELEMENT 2 ", "CUSTOMER_NAME": "SIMPLY P", "CONTRACT_NUMBER": " 20190001", "CREDIT_LOG_NUMBER": "2018110217"}, {"CONTRACT_COST_WITHOUT_IDC": " 27909.14", "INCOME_START_DATE": "20190102", "SALESMAN_NUMBER": " 4119", "CHILD SALESREP": " ", "INCOME_STATUS": "A", "VENDOR_NUMBER": " 1661", "CUSTOMER_STATE": "NC", "VENDOR_CUSTOMER_NUMBER": " ", "VENDOR_MASTER": " ", "CALCULATED_MATURITY_DATE": "20240131", "CONTRACT_COST_INCLUDES_IDC": " 28413.70", "SALESMAN_GP": " 9901", "UP_FRONT_TAX_AMOUNT___TAXES_FIN": " 0.00", "SALESMAN_P": " 1999", "BOOKING_ACCOUNTING_PERIOD": "201901", "FIRST_PAYMENT_DUE_DATE": "20190101", "DESCRIPTION_LINE_NO1_PRIMARY": "ELEMENT 2 ", "CUSTOMER_NAME": "MATTHEW J.", "CONTRACT_NUMBER": " 20190005", "CREDIT_LOG_NUMBER": "2018120206"}, {"CONTRACT_COST_WITHOUT_IDC": " 29400.00", "INCOME_START_DATE": "20190102",
JSON ARRAY:

[
{
"CONTRACT_COST_WITHOUT_IDC": " 28933.54", "INCOME_START_DATE": "20190102", "SALESMAN_NUMBER": " 4119", "CHILD SALESREP": " ", "INCOME_STATUS": "A", "VENDOR_NUMBER": " 1661", "CUSTOMER_STATE": "MA", "VENDOR_CUSTOMER_NUMBER": " ", "VENDOR_MASTER": " ", "CALCULATED_MATURITY_DATE": "20240131", "CONTRACT_COST_INCLUDES_IDC": " 29456.60", "SALESMAN_GP": " 9901", "UP_FRONT_TAX_AMOUNT___TAXES_FIN": " 1933.54", "SALESMAN_P": " 1999", "BOOKING_ACCOUNTING_PERIOD": "201901", "FIRST_PAYMENT_DUE_DATE": "20190101", "DESCRIPTION_LINE_NO1_PRIMARY": "ELEMENT 2 ", "CUSTOMER_NAME": "SIMPLY P", "CONTRACT_NUMBER": " 20190001", "CREDIT_LOG_NUMBER": "2018110217" },

{
"CONTRACT_COST_WITHOUT_IDC": " 27909.14", "INCOME_START_DATE": "20190102", "SALESMAN_NUMBER": " 4119", "CHILD SALESREP": " ", "INCOME_STATUS": "A", "VENDOR_NUMBER": " 1661", "CUSTOMER_STATE": "NC", "VENDOR_CUSTOMER_NUMBER": " ", "VENDOR_MASTER": " ", "CALCULATED_MATURITY_DATE": "20240131", "CONTRACT_COST_INCLUDES_IDC": " 28413.70", "SALESMAN_GP": " 9901", "UP_FRONT_TAX_AMOUNT___TAXES_FIN": " 0.00", "SALESMAN_P": " 1999", "BOOKING_ACCOUNTING_PERIOD": "201901", "FIRST_PAYMENT_DUE_DATE": "20190101", "DESCRIPTION_LINE_NO1_PRIMARY": "ELEMENT 2 ", "CUSTOMER_NAME": "MATTHEW ", "CONTRACT_NUMBER": " 20190005", "CREDIT_LOG_NUMBER": "2018120206"
},

Can decimals be exported as decimals, dates as dates?

Yes. Any format can be delivered.


Can simple calculated exports be done such as ( / 1000)?

Yes. Pre-processing can to whatever needs to be done before the data leave OpenVMS.


Can a result be a query of multiple files?

Yes, we have the ability to use preprocess logic before returning files. This is much faster to do on OpenVMS side than after delivery to a remote location


DON’T SEE WHAT YOU NEED TO KNOW?

Submit a question below and we will provide you an answer quickly. Or if you wish we can speak by phone.

Get in Touch

Submit a Question