Marty Zigman - The NetSuite Expert

Conversations with Marty Zigman

Certified Administrator • ERP • SuiteCloud

Prolecto Labs Accelerator Templates

Mystery Solved: Multiple Lines on NetSuite Item Fulfillments and Receipts

Accounting NetSuite Reporting

Tags:

This article is relevant if you are working with NetSuite aggregate or summary searches and you are find that you getting difficult to explain values when you search on Item Fulfillments or Item Receipts.

Background

In recent work for a client who was not well guided by another NetSuite implementation firm relative to use of NetSuite item kits, we assisted them to produce item-kit based profitability reports.  How we solved that concern (it was not easy) is the subject of another article.  However, while doing work there, we encountered a number of concerns while producing saved searches on Item Receipts and Item Fulfillments.  As such, I thought it would be valuable to share my understanding for how NetSuite works with Item Fulfillments and Item Receipts as it pertains to inventory based transactions.

How NetSuite Inventory Balances are Calculated

Many times, when I work with NetSuite customers for the first time, especially with accountants that have many years working with other financial systems, I suggest that NetSuite is different because it is  effectively a transaction system.  Meaning, there is no summary ledger with detail subledgers like we see in older computer architecture which used to mimic paper based accounting systems.  They key is that NetSuite summarizes transaction records to produce a balance as needed.  The most common is balances on the balance sheet. With NetSuite’s architecture, you can’t get out of sync between summary and detail tables. Readers may be interested in articles I have written before on this:  See Philosophies on Batch versus Real-Time Accounting Systems and Produce NetSuite Balance Sheet Amounts via Saved Search among others.

The Inventory balance is no different.  A stock ledger is effectively composed of three transaction types:

  1. Item Receipt: the quantity adds to the stock ledger
  2. Item Fulfillment: the quantity removes from the stock ledger
  3. Item Adjustment: the quantity is deliberately changed as needed.
These are not the only transactions that affect the stock ledger.  An invoice that does not have a related Item Fulfillment record may affect the stock ledger.  The point though is that the inventory balance is comprised of the sum of transaction records.  If you are interested in reproducing NetSuite’s Inventory balance by location, create a saved search that summarizes on GL Inventory Account, Item, Quantity, and Location.    Let’s though look more closely at what is going on.

Item Fulfillments and Item Receipts Saved Searches Generate Three Lines

NetSuite Administrators quickly learn how to produce Transaction based Saved Searches.  The conventional way to think about these transaction searches is as follows:
  1. Header: The transaction header is the “Mainline” and will be presented as an asterisk in the results set. This is where the transaction body fields live.
  2. Line: The transaction detail lines represent the non-Mainline items.  This is where the transaction column fields live.
Once you get used to thinking this way, it’s easy to assume all transactions work this way.  More importantly, the key to understand NetSuite is to remember that transactions may have  financial impact and thus they need to have related General Ledger (GL) lines.  Most of the time, the pattern above holds true.  For example, on an invoice you will see:
  1. Mainline: Debit Accounts Receivable (the A/R “control” account)
  2. Non-Mainline Lines: Credit Revenue
Yet, when you are working with Item Fulfillments and Item Receipts, more is going on.

Why NetSuite Returns Three Lines on Item Fulfillments and Item Receipts

When it comes to inventory operations, the general ledger routing is controlled by the item definition.  Each item can point to different inventory and cost of goods sold general ledger accounts.  Thus, the assumption that the transaction header points to the “control” account won’t work because each item may have a different general ledger pointer.

Each item on an item fulfillment and or item receipt needs to affect the inventory stock ledger.  The inventory stock ledger is basically a general ledger “Other Asset” account where the “Inventory” inventory is on.  NetSuite wants to summarize, as I shared above, by Item, by GL Account, and by Location.   Since an item fulfillment needs to decrement inventory, the quantity needs to be expressed as negative.  However, when you create an item fulfillment record, you work in positive quantity numbers.  It’s funny to see negative and positive numbers when you perform a saved search.

Thus, the key to understanding the saved search results are as follows:
  1. Operational Line Zero: The first line has no general ledger impact.  Thus it is effectively the line that you are working with while you edit the transaction.  I call this the operation line.   When you commit the transaction, NetSuite produces two more general ledger lines.
  2. GL Line 1: One new line is to the stock ledger inventory account.
  3. GL Line 2: The subsequent line is the offset general ledger account.

Saved Search Challenges with Item Fulfillments and Item Receipts

Without this background understanding, you may find that your aggregate searches are not returning the right information.  Here, it’s important to understand that you can key on the general ledger account as a way to isolate out the line(s) you care about.  Another approach, suggested by NetSuite, is to do divisor math on the line sequence number to determine if you are line zero, 1, or 2.  I find that approach not very intuitive but it is an option.

Key Major Saved Search Challenge when working with Custom Transaction Columns

The real major challenge presents itself if you want to key on your custom transaction columns via your saved searches.  NetSuite will not stamp the general ledger lines with your custom column.  Oh no!  Thus, if you want to perform some type of inventory lookup that leverages your custom field on the transaction, you can’t get to it!

For example, I have created techniques where I want to group items together under my own control with a custom transaction column.  Yet the conventional approach will not work (see image).  I have discovered that you can produce a custom GL segment and this will come over.  But for transactions already written in a closed accounting period, it’s going to take some work to retrofit.

Get Superior Help on your NetSuite Account

They key to getting the most of NetSuite is to demand what you want from professionals that understand the product while also having strong fundamental understanding of business and accounting concepts.  If the success of your ambition depends on NetSuite performing to your requirements, and you are not satisfied with the thinking and care around you, perhaps we should have a conversation?

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.

More Posts - Website - Twitter - Facebook - LinkedIn - YouTube

About Marty Zigman

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.

Biography • Website • X (Twitter) • Facebook • LinkedIn • YouTube

16 thoughts on “Mystery Solved: Multiple Lines on NetSuite Item Fulfillments and Receipts

  1. John Cirocco says:

    I also have had to work with Item Receipts when Landed Cost is used. You may want to do a “Part 2” to discuss this as it does take a bit of getting used to because the line sequence number goes out the window. Also the fact that the quantity field is not available on all lines makes this a challenge.

    Thanks for a good article.

  2. Alex Placito says:

    I find that using the “Quantity Fulfilled/Received” column, instead of “Quantity”, helps greatly when constructing searches.

  3. Caleb Skipper says:

    I have a Saved Summary search looking for Transfer Orders. I am also showing the Fulfilling/Receiving transaction data. For Item Receipts, I am getting a GL impact value, but for the Item Fulfilment records they are all blank. When I drill down my summary search to just an Item fulfilment, it is only showing me the Operational Zero Line. Question: Is there a way to return either the GL line 1, or the GL line 2?

  4. Marty Zigman says:

    Hello Celeb,

    You can use Oracle’s REMAINDER( m, n ) function to help you divide the Line Number element to focus on certain lines in the output.

    Marty

  5. Divya John says:

    Hello Marty,

    Just wanted to know how to update line level field ‘Class’ for all lines on the Item Fulfillment. I have created a Saved Search and in the results have created a formula to determine which class is to be set for the lines,but don’t know how to update it now on the IF.It doesn’t seem possible through CSV or Mass Update. Please requesting you to guide me with the approach to be taken.

  6. Marty Zigman says:

    Ah, the Item Fulfillment record. NetSuite does not provide a tool to update the item fulfillment, only create on shipment. However, we solve this problem using this tool:

    https://blog.prolecto.com/2020/04/04/fully-automate-complex-netsuite-data-imports/

    Marty

  7. Andrew Sladen says:

    Hey Marty,

    Absolutely love your articles.

    When I’m dealing with Item Fulfilments, when what I’m interested in is getting just “the normal lines without duplicates”, and when I’m not particularly interested in the account/GL side of things, what I’ve settled on as my simplest “pattern” is querying on the “Applied To Link Type” field.

    My go-to criteria now is “Applied To Link Type IN (‘Order Picking/Packing’,’Receipt/Fulfillment’)”

    This avoids the duplicates, and also the Kit child-items that show up with “Applied To Link Type=Kit Shipment”.

    This works well for me when what I’m after is something that basically shows a subset of the data from the Sales Order, and without duplicates.

    And if I *did* want the kit child items instead of parent, I would do either

    “Applied To Link Type IN (‘Order Picking/Packing’,’Receipt/Fulfillment’,’Kit Shipment’) AND Item Type NOT IN (‘Kit’)”

    or just the simpler

    “Account Type in (‘Cost of Goods Sold’)”

    I was just wondering what you thought of these approaches, and whether there’s any drawbacks to them.

    Cheers.

  8. Marty Zigman says:

    Andrew,

    This is quite helpful. Thank you for sharing and helping all of us! I need to use the Applied to Link Type in more of my queries. You opened my mind!

    Marty

  9. Andrew Sladen says:

    Awesome, glad to hear it!

    I should mention for interest, it’s probably an obvious point; but if you were starting at a Sales Order and linking to fields from the Item Fulfilment, you can get the same outcomes using the mirror-image field “Applying Link Type”. And using the “Applying Transaction Fields…” to bring out the columns you want from Item Fulfilment.

    You can even get a functional “left join” by allowing Applying Link Type to also be “–None–“. Although *other* applying transactions could complicate this, depending on your situation.

    And so perhaps
    “Quantity Picked = 0 OR Applying Link Type IN (…)”
    is better. Or
    “Quantity Shipped = 0 OR Applying Link Type IN (…)”.

    Ah it seems like I could talk about Item Fulfilments all day 🙂

  10. Marty Zigman says:

    Thank you Andrew. More gratitude!

  11. Chintan Ganatra says:

    Love this blog. Have referred to it a few times in the past and it has helped big time! Thanks Marty.

    For this specific issue, I want to thank Andrew for providing the Applying Link Type solution to get rid of the duplicates.
    Netsuite sometimes seems very funny, and geniuses like you all help us navigate hurdles along the way.
    Thank you!

  12. Marty Zigman says:

    Thank you Chintan, for the kind words. Let’s keep learning.

    Marty

  13. David Weiss says:

    Criteria of Account Type AnyOf None will strip out the GL lines from your search result on Item Fulfillments and you can also display your custom column field results data if populated.

  14. Marty Zigman says:

    Hi David,

    I like your solution for criteria! Thank you.

    Marty

  15. Ryan says:

    I want to go back to @andrew sladens comment. Im starting at the sales order type and am attempting to link order reservation qty’s and fields. Order reservations are relatively new and I know there is not alot of support for this. Any suggestions ? There is not a link type it appears for order reservation records.

  16. Jagdish Chamat says:

    Marty Zigman and Andrew Sladen
    Thanks for the insights.

    I did NOT find the field “Applied To Link Type IN”.

    I did find the filed “Applied To Link Type”
    Used Applied To Link Type
    any of
    Order Picking/Packing

    and got very few result. (Doubt it did not include all the IF)

    I used
    Type is Item Fulfillment
    COGS Line is False
    Main Line is False
    Tax Line is False
    Shipping Line is False
    Formula Numeric NVL({quantity},0) is greater than or equal to 1

    and got relatively more reliable results with NOT duplicate lines. I also verified in the Excel.

    Could you please convey if I made any mistake here as I am new to NS.

Leave a Reply

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