Custom Item Number Fields as XML Definitions

You can create XML definitions of custom item number fields as SDF custom objects using SuiteCloud Development Framework (SDF). You can either create an itemnumbercustomfield object in a SuiteCloud project or import custom item number fields from a NetSuite account into a SuiteCloud project. For information about creating a custom item number field in a NetSuite account, see the following:

Add custom item number fields to serialized or lot numbered inventory item records to track information specific to each item or workflow unique to your business. For example, you can track quality control procedures or recall information.

Prerequisites for Using Custom Item Number Fields

Before creating a custom item number field, complete the following tasks to ensure the field can be used in a target account. These tasks include:

  1. Enabling Serial Numbered Inventory and Lot Numbered Items.

    To create serialized or lot numbered inventory items, enable both of the inventory features.

  2. Inventory Adjustments.

    To enter new serial or lot numbers for serialized or lot numbered inventory items, enter an Inventory Adjustment. The quantity of serial or lot numbers entered must equal the quantity of the adjustment.

    Adjust the inventory if the inventory item has a quantity on hand amount of zero.

  3. Advanced Bin / Numbered Inventory Management.

    To edit the value of your custom item number field, you must enable the Advanced Bin /Numbered Inventory Management feature. The Advanced Bin / Numbered Inventory Management feature lets you to view an item’s Inventory Detail subrecord, which contains the serial/lot number record.

Setting Values on the itemnumbercustomfield SDF Custom Object

Provide a readable script ID attribute by using the underscore followed by a meaningful name for the SDF custom object. NetSuite automatically adds a customitemnumber prefix that indicates the type of field, for example, customitemnumber_mynewfield

The following fields are required for itemnumbercustomfield objects:

  • label - Specifies the label for the custom field. The label is the text that your users see as the name of the custom field when it is displayed on the record.

  • fieldtype - Specifies the type of custom field. For more information about the possible values of fieldtype, see generic_customfield_fieldtype.

  • selectrecordtype (conditional) - Specifies the list or record that contains the items for the custom field. This field is required only when the fieldtype value is equal to SELECT or MULTISELECT.

The following XML definition example is a basic itemnumbercustomfield object with the required fields:

            <itemnumbercustomfield scriptid="custitemnumber_mynewfield">
...
    <fieldtype>SELECT</fieldtype>
    <label>SAMPLE ITEMNUMBERFIELD</label>
    <selectrecordtype>-127</selectrecordtype>
...
</itemnumbercustomfield> 

          

For more information about possible fields for itemnumbercustomfield objects, see itemnumbercustomfield.

Important:

Your appliestoall field can equal T if either appliestolots, appliestoserialized, or both are set to T as well. Otherwise, the itemnumbercustomfield object does not appear on the serial or lot number records.

If you include any SDF custom objects, files, or scripts in your fields, you must define the dependencies for them in your SuiteCloud project's manifest. For more information, see SDF Custom Object Dependencies in SuiteApps.

After an itemnumbercustomfield object is deployed to an account, an item number field is created.

To apply the custom field to particular items, go to the object’s item number field configuration page. Choose Specific Items. In the Applies To subtab, choose Select Items to Apply Field field, hold down the Ctrl key and click all the items you want this field to apply to, and click Save.

Here is an example of a custom item number field configuration page that applies to specific inventory items:

Item Number Field page.

To view and edit the custom item number field, go to an inventory item record that has the custom field applied to it. On the Inventory Detail subtab, select a number under the Serial/Lot Number column. When you click a number, the serial or lot number record displays in a popup window. The field you created is included here.

Here is an example of a custom item number field included on a serial number record:

Serial Number Record page with custom item number field highlighted.
Note:

In the NetSuite UI, the inventory detail subrecord also displays as a popup window on records and transaction forms when you click the Inventory Detail icon (Inventory Detail icon or Inventory Detail Green icon). On the popup window, click a number under the Serial/Lot Number column to display the serial or lot number record.

Embedding Structured Fields Within an itemnumbercustomfield SDF Custom Object

You can create custom filters for your custom field by embedding customfieldfilter structured fields within the itemnumbercustomfield SDF custom object. You can also customize the default access that a role has to the custom field by embedding roleaccess structured fields within the itemnumbercustomfield object.

For more information about the possible fields to define for these structured fields, see the following:

To view a full XML definition example for an itemnumbercustomfield object, see Example of an itemnumbercustomfield SDF Custom Object.

Custom Field Filters

You can add custom field filters to a list/record or multiple select custom field to filter the choices available in that custom field on records and transactions. In SDF, you can use custom field filters by embedding customfieldfilter structured fields within a custom field object.

Note:

Filtering can apply only when the fieldtype value of your custom field object is equal to SELECT or MULTISELECT. It does not apply to custom lists, meaning if you include customfieldfilter structured fields, your selectrecordtype value cannot equal a custom list scriptid.

customfieldfilters is the parent element and customfieldfilter is the child element. You can include multiple customfieldfilter child elements within the parent.

The fldfilter subfield specifies a standard field on the list/record that you entered for the selectrecordtype field. The fldfilter subfield is required. For more information about the supported fields and values for customfieldfilter structured fields, see customfieldfilter.

When an object with a customfieldfilter structured field is deployed to a target account, the Sourcing & Filtering subtab of the custom field record is populated with the field values specified by the structured field. The choices available to users in a record or transaction for that custom field are tailored by the filter settings from the structured field.

Here is an example of a custom item field configuration page in NetSuite with filters set for the field:

Custom Item Field page with Name filter highlighted.
Important:

If you change the field type or the list/record for a field that is used for sourcing or filtering on other custom fields, all sourcing and filtering based on the field is removed.

Additionally, you can define custom field filters in NetSuite. For more information, see Setting Filtering Criteria.

Example of a customfieldfilter Structured Field

The following XML definition example is a customfieldfilter structured field embedded within an itemcustomfield object whose fieldtype equals SELECT. After this object is deployed to the target account, a custom item field labeled SAMPLE ITEMCUSTOMFIELD appears on the Main tab of all Inventory item records. The fldfiltercomparetype equals LIKE and fildfilterval equals paid. Therefore, the field’s dropdown list is filtered to display only accounts that contain “paid” in the account name.

                <itemcustomfield scriptid="custitem_sample_itemcust">
    <appliestoinventory>T</appliestoinventory>
    <fieldtype>SELECT</fieldtype>
    <label>SAMPLE ITEMCUSTOMFIELD</label>
    <selectrecordtype>-112</selectrecordtype>
...
    <customfieldfilters>
        <customfieldfilter>
            <fldcomparefield></fldcomparefield>
            <fldfilter>STDRECORDACCOUNTACCTNAME</fldfilter>
            <fldfilterchecked></fldfilterchecked>
            <fldfiltercomparetype>LIKE</fldfiltercomparetype>
            <fldfilternotnull>F</fldfilternotnull>
            <fldfilternull>F</fldfilternull>
            <fldfiltersel></fldfiltersel>
            <fldfilterval>paid>
        </customfieldfilter>
    </customfieldfilters>
...
</itemcustomfield> 

              

Role Accesses

In SDF, you can control how roles access the information in custom fields by embedding roleaccess structured fields within a custom field object. The accesses that you specify determines how the custom field can be accessed on the record or through search results and reports. This helps you to maintain the security of your business information.

roleaccesses is the parent element and roleaccess is the child element. You can include multiple roleaccess child elements within the parent.

After an object with a roleaccess structured field is deployed to a NetSuite account, the Role section under the Access subtab of the custom field record is populated with the access level values of the fields specified by the structured field.

Here is an example of a custom item field configuration page in NetSuite with access levels set for a role:

Custom Item Field page with Accountant role highlighted.

The following subfields are required for roleaccess structured fields:

  • role - Specifies the role.

  • accesslevel - Specifies the access level granted to the role for the custom field object.

    Possible access level values:

    • 0 - None

    • 1 - View

    • 2 - Edit

  • searchlevel - Specifies the access level granted to the role for the custom field object through search results and reports.

    Possible access level values:

    • 0 - None

    • 1 - Run

    • 2 - Edit

For more information about the supported fields and values for roleaccess, see roleaccess.

Additionally, you can define role accesses to custom fields from a NetSuite account. For more information, see Restricting Access to Custom Fields.

Example of a roleaccess Structured Field

The following XML definition example is a roleaccess structured field embedded within a itemcustomfield object. In this example, the accesslevel for the Accountant role equals 1 and the searchlevel equals 1. Therefore, the role’s access to the field is set to View and the access level through searching and reporting is set to Run.

                <itemcustomfield scriptid="custitem_sample_itemcust">
    <appliestoinventory>T</appliestoinventory>
    <fieldtype>SELECT</fieldtype>
    <label>SAMPLE ITEMCUSTOMFIELD</label>
    <selectrecordtype>-112</selectrecordtype>
...
    <roleaccesses>
        <roleaccess>
            <accesslevel>1</accesslevel>
            <role>ACCOUNTANT</role>
            <searchlevel>1</searchlevel>
        </roleaccess>
    </roleaccesses>
...
</itemcustomfield> 

              

Example of an itemnumbercustomfield SDF Custom Object

The following XML definition example is for an itemnumbercustomfield SDF custom object. After this object is deployed to the target account, a custom item number field labeled SAMPLE ITEMNUMBERFIELD appears on all serial and lot number records. The fieldtype equals SELECT. Therefore, a value for selectrecordtype is required.

            <itemnumbercustomfield scriptid="custitemnumber_record_nbr">
    <accesslevel>2</accesslevel>
    <appliestoallitems>T</appliestoallitems>
    <appliestogiftcerts>F</appliestogiftcerts>
    <appliestolots>T</appliestolots>
    <appliestoserialized>T</appliestoserialized>
    <applyformatting>F</applyformatting>
    <checkspelling>F</checkspelling>
    <defaultchecked>F</defaultchecked>
    <defaultselection></defaultselection>
    <defaultvalue></defaultvalue>
    <description>Sample description for field.</description>
    <displayheight></displayheight>
    <displaytype>NORMAL</displaytype>
    <displaywidth></displaywidth>
    <dynamicdefault></dynamicdefault>
    <encryptatrest>F</encryptatrest>
    <fieldtype>SELECT</fieldtype>
    <help>Enter a brief explanation of the kind of information you want entered in this field.</help>
    <isformula>F</isformula>
    <ismandatory>F</ismandatory>
    <label>SAMPLE ITEMNUMBERFIELD</label>
    <linktext></linktext>
    <maxlength></maxlength>
    <maxvalue></maxvalue>
    <minvalue></minvalue>
    <onparentdelete>NO_ACTION</onparentdelete>
    <searchcomparefield></searchcomparefield>
    <searchdefault></searchdefault>
    <searchlevel>2</searchlevel>
    <selectrecordtype>-127</selectrecordtype>
    <showhierarchy>T</showhierarchy>
    <showinlist>F</showinlist>
    <sourcefilterby></sourcefilterby>
    <sourcefrom></sourcefrom>
    <sourcelist></sourcelist>
    <storevalue>T</storevalue>
    <customfieldfilters>
        <customfieldfilter>
            <fldcomparefield></fldcomparefield>
            <fldfilter>STDRECORDTAXPERIODPERIODNAME</fldfilter>
            <fldfilterchecked></fldfilterchecked>
            <fldfiltercomparetype>LIKE</fldfiltercomparetype>
            <fldfilternotnull>F</fldfilternotnull>
            <fldfilternull>F</fldfilternull>
            <fldfiltersel></fldfiltersel>
            <fldfilterval>2013</fldfilterval>
        </customfieldfilter>
    </customfieldfilters>
    <roleaccesses>
        <roleaccess>
            <accesslevel>1</accesslevel>
            <role>ACCOUNTANT</role>
            <searchlevel>1</searchlevel>
        </roleaccess>
    </roleaccesses>
</itemnumbercustomfield> 

          

Related Topics

General Notices