NetSuite Development Tip: XML Representation of Entity and Transaction Records

Published on May 29, 2019

I'm not sure where I picked up this NetSuite tip, but I'm glad I did...

If you've done any development with NetSuite - and especially with SuiteScript - then you know that it can sometimes be difficult to determine the name of a field, and in some cases even the record type, that you're trying to work with. This tip helps with that, at least to some degree.

Here's how it works...

Navigate to any page in NetSuite where either a transaction or entity is being displayed. It doesn't matter what it is - an employee, customer, sales order - anything. Then, in your browser, add this to the end of the URL:

&xml=t

Click enter, and when the page loads, an XML-formatted version of the record that you were viewing will be displayed. This includes the record type, its fields, and sublists that were being displayed and their fields, and more.

For example, here's the XML representation of an item receipt.

<?xml version="1.0" encoding="UTF-8"?>
<nsResponse>
   <record recordType="itemreceipt" id="20" perm="4" fields="_eml_nkey_,_multibtnstate_,selectedtab,nsapiPI,nsapiSR,nsapiVF,nsapiFC,nsapiPS,nsapiVI,nsapiVD,nsapiPD,nsapiVL,nsapiRC,nsapiLI,nsapiLC,nsapiCT,nsbrowserenv,wfPI,wfSR,wfVF,wfFC,wfPS,type,id,externalid,whence,customwhence,entryformquerystring,_csrf,wfinstances,dbstrantype,bulk,createddate,lastmodifieddate,periodclosed,allownonglchanges,taxperiod,version,voided,cleared,cleareddate,linked,linkedrevrecje,linkedclosedperioddiscounts,entityname,trantypepermcheck,ntype,nluser,nlrole,nldept,nlloc,nlsub,baserecordtype,nlapiCC,entityfieldname,currencysymbol,exchangerate,isbasecurrency,currencyprecision,prevdate,ppsetbyuser,ppsetbyuservalue,pp_s,pp_e,tranid,entity,employee,createdfrom,trandate,postingperiod,partner,memo,currency,subsidiary,department,class,location,transactionnumber,orderid,ordertype,processtype,companyid,isadvbill,istransforming">
      <_csrf>0c4uZVF0Md332EM5w-GucJREAmA8RnRpLhI9lXq2iyV3ZoEsipo2f3nP2ieQQCMClRL0gbnHdTRK-diSRwKm690GHmbhheH_JbqkU8qwigM0hWrfEbv6sBekZmzhdirDoBqnhWJf_wfHytg8=</_csrf>
      <_eml_nkey_>92833536</_eml_nkey_>
      <baserecordtype>itemreceipt</baserecordtype>
      <cleared>F</cleared>
      <companyid>24</companyid>
      <createddate>5/28/2019 12:29 pm</createddate>
      <createdfrom>19</createdfrom>
      <currency>1</currency>
      <currencyprecision>2</currencyprecision>
      <currencysymbol>USD</currencysymbol>
      <dbstrantype>ItemRcpt</dbstrantype>
      <entity>24</entity>
      <entityfieldname>entity</entityfieldname>
      <entityname>3 TestCo</entityname>
      <entryformquerystring>id=20&whence=&xml=t</entryformquerystring>
      <exchangerate>1</exchangerate>
      <id>20</id>
      <isadvbill>F</isadvbill>
      <isbasecurrency>T</isbasecurrency>
      <istransforming>F</istransforming>
      <lastmodifieddate>5/28/2019 12:29 pm</lastmodifieddate>
      <linked>F</linked>
      <linkedclosedperioddiscounts>F</linkedclosedperioddiscounts>
      <linkedrevrecje>F</linkedrevrecje>
      <location>1</location>
      <nlapiCC>F</nlapiCC>
      <nldept>0</nldept>
      <nlloc>0</nlloc>
      <nlrole>3</nlrole>
      <nlsub>1</nlsub>
      <nluser>-5</nluser>
      <nsapiCT>1559144656310</nsapiCT>
      <ntype>16</ntype>
      <orderid>19</orderid>
      <ordertype>RtnAuth</ordertype>
      <postingperiod>37</postingperiod>
      <pp_e>1/31/2014</pp_e>
      <pp_s>1/1/2014</pp_s>
      <ppsetbyuser>F</ppsetbyuser>
      <prevdate>5/28/2019</prevdate>
      <processtype>CustCred</processtype>
      <subsidiary>1</subsidiary>
      <trandate>5/28/2019</trandate>
      <tranid>1</tranid>
      <transactionnumber>1</transactionnumber>
      <type>itemrcpt</type>
      <version>1</version>
      <voided>F</voided>
      <machine name="item" type="list" fields="line,orderdoc,orderline,itemreceive,generateaccruals,item,itemname,description,onhand,location,quantity,unitsdisplay,serialnumbers,options,restock,isdropshipment,unitcostoverride,itemupc,department,class,itemweight,itemtype,itemsubtype,isnoninventory,itemkey,sitemname,itemdescription,itemunitprice,itemquantity,itemfxamount,producer,manufacturername,multmanufactureaddr,manufactureraddr1,manufacturercity,manufacturerstate,manufacturerzip,countryofmanufacture,manufacturertaxid,manufacturertariff,preferencecriterion,schedulebnumber,schedulebquantity,schedulebcode,ishazmatitem,hazmatid,hazmatshippingname,hazmathazardclass,hazmatpackinggroup,hazmatitemunits,hazmatitemunitsqty,locweightuom,locdimuom,originalquantity,units,unitconversion,isserialitem,islotitem,isserialorlotitem,serialnumbersvalid,invttype,itemname_selector">
         <line>
            <description>Printer Cables 6'</description>
            <generateaccruals>F</generateaccruals>
            <invttype>T</invttype>
            <isdropshipment>F</isdropshipment>
            <ishazmatitem>F</ishazmatitem>
            <islotitem>F</islotitem>
            <isnoninventory>F</isnoninventory>
            <isserialitem>F</isserialitem>
            <isserialorlotitem>F</isserialorlotitem>
            <item>35</item>
            <itemdescription>Printer Cables 6'</itemdescription>
            <itemfxamount>25</itemfxamount>
            <itemkey>35</itemkey>
            <itemname>Printer Cables</itemname>
            <itemname_selector>Printer Cables</itemname_selector>
            <itemquantity>1</itemquantity>
            <itemreceive>T</itemreceive>
            <itemtype>InvtPart</itemtype>
            <itemunitprice>25</itemunitprice>
            <itemweight>8</itemweight>
            <line>1</line>
            <location>1</location>
            <locdimuom>in</locdimuom>
            <locweightuom>lbs</locweightuom>
            <multmanufactureaddr>F</multmanufactureaddr>
            <onhand>0</onhand>
            <orderdoc>19</orderdoc>
            <orderline>1</orderline>
            <originalquantity>1</originalquantity>
            <quantity>1</quantity>
            <restock>F</restock>
            <serialnumbersvalid>T</serialnumbersvalid>
            <sitemname>Printer Cables</sitemname>
            <unitconversion>1</unitconversion>
         </line>
      </machine>
      <machine name="expense" type="list" fields="acct_key,orderdoc,orderline,markreceived,account,memo,amount" />
   </record>
</nsResponse>

This isn't a replacement for the SuiteScript Records Browser. However, it can come in handy - and give you some important clues - in those situations where the field you are looking for isn't clear.