Generic restlet for netsuite that allow work with records like SuiteTalk, but using JSON.
First, you will need Ramda.js, after download ramda.min.js, put it in the source folder. Upload the src files to File Cabinet, then create and implement a RESTlet script.
Sending a HTTP POST request to the restlet with this sample payload:
{
"type": "invoice",
"isDynamic": false,
"columns": {
"customer": "14"
},
"lines": [
{
"sublistId": "item",
"lineItems": [
{
"item": 1,
"amount": 14.0
},
{
"item": 2,
"amount": 16.0
}
]
}
],
"options": {
"ignoreMandatoryFields": false
}
}
Using HTTP GET request, you can create searches, load searches and lookup records:
To create a search, you must send the following parameters (query string):
- type - the record type
- filters - filters are separated by semicolons (to name, operator and value) and then by comma. Formulas are not supported yet. To join tables, use dot separator (eg. customer.name)
- columns - columns are separated by comma. Formulas are not supported yet. To join, use dot separator (eg. customer.name)
Example:
curl -XGET https://your-url-reslet?type=invoice&filters=date;within;01/01/2018;05/02/2018,entity.name;is;Foo&columns=amount,trandate
To load a search you must send the following parameters:
- searchId - the id of saved search in NetSuite
Example:
curl -XGET https://your-url-reslet?searchId=your-search-id
To lookup record fields, you must send the following parameters:
- type - record type
- recordId - record id
- columns - columns separated by comma. To join, use dot separator (eg. customer.name)
Example:
curl -XGET https://your-url-reslet?type=customer&recordId=15&columns=companyname,phone
All search options accepts pagination and sort columns, just use the following parameters:
- page - page number
- sortdir - sort direction (ASC|DESC|NONE)
- sortcol - column number to be sorted (begin with 0)
All GET request can be cached, just use the following parameters:
- cache - Cache name and key (separated by dot)
Send a HTTP PUT request to the restlet with this sample payload:
{
"type": "invoice",
"recordId": 14,
"values": {
"trandate": "01/03/2018"
},
"options":{
"isDynamic": false
}
}
Update lines is not supported yet.
Send a delete request to delete a record, following the parameters:
curl -XGET https://your-url-reslet?type=customer&recordId=15
In test folder has a .https file that allows you to use the restclient (for emacs) to make requests tests.