Marty Zigman

Conversations with Marty Zigman

Certified Administrator • ERP • SuiteCloud

Marty Zigman LinkedIn

Marty Zigman

Holding all three official certifications, Marty is regarded as the top NetSuite expert and leads a team of senior professionals at Prolecto Resources, Inc.. He is a former Deloitte & Touche CPA and has held CTO roles. For over 30 years, Marty has produced leadership in ERP, CRM, and eCommerce business systems. Contact Marty to set up a conversation.

BiographyYouTubeLinkedInX (Twitter)

10 thoughts on “NetSuite SearchFilter Transaction Internal Status List

  1. Very valuable information.

    When you fetch a transaction record in SuiteScript, you get something similar to this (in this case, an item fulfillment):


    "shipstatus": {
    "name": "Shipped",
    "internalid": "C"
    }

    So, surely, a search filter with shipstatus, anyof, and [“C”], should find this same record, right?

    Nope.

    Not only do you have to use status in place of shipstatus, but you also have to use ItemShip:C in place of C.

    Even clicking on the field in NetSuite tells you that the internal ID of the field is shipstatus.

  2. This works for searching but not always for changing status from script.

    I’m trying to start, complete, and approve an inventory count from script and it just ignores the change. Any hints to help?

  3. I find it astonishing that five years later this information is *still* not documented anywhere by NetSuite (that I’ve been able to find). Thank you for this excellent resource!

  4. I’ve got this page bookmarked for good reason – thanks for providing this resource Marty!

    I’d like to add a note for anyone who encounters this obstacle related to transaction statuses and SuiteQL:

    SELECT DISTINCT status
    FROM transaction
    WHERE type = 'Opprtnty'
    AND status NOT IN ('C', 'D')
    ORDER BY status

    /* results
    STATUS
    A
    B
    C
    D
    */

    You may notice that the statuses (‘C’,’D’) still appear in that list even though I ruled them out. Taking a cue from the composed status as listed in Marty’s article (Opprtnty:C, Opprtnty:D), the approach should be

    SELECT DISTINCT status
    FROM transaction
    WHERE type = 'Opprtnty'
    AND status NOT IN (type||':C', type||':D')
    ORDER BY status

    /* results
    STATUS
    A
    B
    */

    This isn’t readily apparent from inspecting the results of a query returning the status column, but a query filtering by status must concatenate the transaction type and the status as shown above.

    I hope this helps someone else that runs into a similar situation in the future!

Leave a Reply

Your email address will not be published. Required fields are marked *