Proposal Summary
This proposal summarizes the requirements and solutions for integrating real-time business data with Netsuite and CAAPS.
Requirement
Integration between the Netsuite & the CAAPS system should be implemented to send the vendor details, GL code/Chart of Account, Purchase order, Item receipts.
The client would like to have a bulk extraction of the following data
- Vendor details
- GL Code / Chart of account details
- Purchase Orders & Receipts
Note: Request will be made for only records created or updated in the last 24 hours. Also, a request will be made for a set of deleted vendors from the last 24 hours
Along with the bulk extraction, the CAAPS system will be submitting payment requests to create vendor bill payments.
They require detailed documentation on all required endpoints. The solution can be the standard REST/ SOAP Web services and if they are not going to do the job, we can create a custom rest endpoint to achieve the requirements.
Our Solution
We propose a solution that will provide the business data from Netsuite to CAAPS and specific data will be received from CAAPS to Netsuite system. The data will be sent from the Netsuite to CAAPS through a RESTlet script.
We are assuming that CAAPS will make the request to extract all vendor records, Chart of Account, Purchase order (Approved only), Item receipts from Netsuite through Netsuite API (SOAP or REST).
We need to do an API setup for using the REST or SOAP web services. Authentication will be Token Based on Authentication.
API Set Up
API credentials will be shared with the Application user to fetch the data from Netsuite. The Integration record will be created in the Netsuite. Consumer tokens (Consumer Key and Consumer Secret) will be generated for the customized role.
Steps in customized role setup:
- “External API User” role will be created in the account for the user to Use the API with limited permissions
- Employee records will be created for the external API user.
- Roles will be added to the new user. In the role only the required permissions will be granted. This will ensure the security of the NetSuite datas
- Access Tokens (Access Token and Token Secret) will be generated for the new customized role.
We are proposing two approaches for the bulk extraction of data and creating Vendor Bills
Approach I(40hrs)
Vendor and GL Codes can be fetched using SuiteQL. Here we just need to develop the query for fetching the data and we can directly extract the data. We can directly fetch the data in a single call.
Purchase Orders Can be fetched using REST Web services. As the record is not Beta, the NetSuite provides REST services to fetch the purchase orders. We can directly fetch the data in a single call.
Since the Item Receipt is a Beta record for Rest Services and also the record details cannot be fetched using the SuiteQL, bulk extraction of item Receipts needs to be done using SOAP Request. In SOAP requests, the first step is that we need to fetch all item Receipts Internal IDs using Advanced Search operation. In the advanced Search operation, we can add the filters to filter out the list of item receipts based on the different criteria (say last modified date). Then using the internal id of each item receipt, we can retrieve item receipt record details using the get/getList Soap operation.
Vendor Bill Creation on request can be done using SOAP Request. There is no option to create vendor bills using REST and suiteQL. Vendor Bill Can be created using add/addList SOAP operation. The add operation is used to add a new instance of a record in NetSuite.
The details of the body and item lines/expense lines fields should be passed while the add SOAP operation for the vendor bill creation.
Approach II(45hrs)
In this approach, we are doing all the processes via a SOAP request.
Following records will be bulk extracted using the SOAP request:
- Vendors
- GL Codes/Accounts
- Purchase Orders
- Item Receipts
In SOAP requests, the first step is that we need to fetch all internal ids using the Advanced Search operation for all the above records. In the advanced search operation, we can add the filters to filter out the lists based on the different criteria(say last modified date). Then using the Internal ID of each record, we can retrieve a list of record details using the get/getList Soap operation.
Vendor Bill Creation on request can be done using SOAP Request. There is no option to create vendor bills using REST and suiteQL. Vendor Bill Can be created using add/addList SOAP operation. The add operation is used to add a new instance of a record in NetSuite.
The details of the body and item lines/expense lines fields should be passed while the add SOAP operation for the vendor bill creation.
Assumptions
- For the SOAP request, we need to create the XML schema for each and every action.
- We are assuming Beta features are not enabled in the account.