Axil
Axil

Reputation: 3311

Netsuite - REST API - Making query with Token Based Authentication (TBA) - (in Python)

This is a follow up to the successful call using Netsuite Token Based Authentication (TBA) REST webservice,

I would like to get some guidance on how to perform a query.

I am supposed to read records like this (please see screenshot)

enter image description here

https://gist.github.com/axilaris/4386c3537d04737d3775c156562b7545 <-- here is the python code for the TBA that has worked successful. I would like to know how to construct the next step on how to perform the query and read specific record (as shown in the screenshot).

This is a custom record with an ID like this customrecord1589

Upvotes: 2

Views: 1167

Answers (1)

Nick
Nick

Reputation: 517

To query a specific record: You're going to need to create/ deploy a RESTlet in Netsuite similar to the following:

/**
 * @NApiVersion 2.1
 * @NScriptType Restlet
 */
define([
    "N/log",
    "N/search",
], function (log, search) {
    
    function post(context) {
        return JSON.stringify(getCustomRecords(context));
    }

    function getCustomRecords(context) {
        log.debug('POST Context', context);
        return search.lookupFields({
            //Change CUSTOM_RECORD to the type of custom record you are querying
            type: search.Type.CUSTOM_RECORD + '1589',
            id: context.id,
            columns: context.fields,
        });
    }

    return {
        post: post,
    };
});

In your Python Script: Make sure you change the URL of the request to the deployment URL of this new RESTlet. Also, make sure to pass any parameters you need (like 'id' or 'fields' in my example) in your POST request payload. So instead of:

payload = {
 "name":"value",
 "foo":"bar",
 "duck":"hunt",
}

pass

payload = {
 "id":"9999999",
 "fields": ["custrecord_field1", "custrecord_field2"],
}

where id is the internalid of the record you want to query and the fields array are the internalids of the fields you want values from.

If this goes successfully, the result should show up as conn.text in your python script!

Upvotes: 1

Related Questions