Skip to content
NetSuite Reference

fulfillmentrequest

transactionSubsidiary-scopedLocation-scoped

The fulfillment-request document: a store or site being asked to fulfill part of an order, with its own number, date, status, fulfillment type, assignee and pickup-hold state.

Module: Fulfillment & LogisticsSubsidiary- and location-scoped
Grain note

this record is FEATURE-GATED — it exists in the analytics catalog whether or not your account runs the fulfillment-request flow, so an empty table here is a configuration answer, not an extraction bug.

Notes

Browser page name is fulfillmentRequest. Unlike the documents on the transaction spine it is a record of its own, with a scalar subsidiary and a fulfillment location that both partition it. createdfrom points at the order it came from; the item lines live on a request-item record that is not cataloged here. Its status values, like the spine's, have no public enumeration — see quirks #status-codes. One caveat on the generated location anchor: a request that has not been assigned to a site yet carries no location, so an active anchor there excludes exactly the unassigned backlog you may be looking for — drop it when that is the question.

What the badges mean
master
Data class: what the record holds — master data, transaction documents, control/configuration, or a documented convenience record. NetSuite has no product-family or schema axis, so this is the whole classification.

Structural facts — how the record is partitioned, not a trap by itself

Subsidiary-scoped
The record carries a subsidiary column that partitions its rows, so the generated SQL anchors it. On a few records the column is a multiselect rather than a scalar foreign key — the table notes say which (see the quirks guide).
Location-scoped
The record carries a location column — an org segment in NetSuite before it is a warehouse — and the generated SQL anchors it the same way.

Join & extract hazards — verify before you rely on this

View
A documented convenience record rather than a stored one. Land the records it stands in for instead of assuming it extracts as-is — the table notes say where the rows actually live.
In field listings, the Key chip marks a primary-key field, and the T/F chip marks a check-box column Connect returns as a 'T'/'F' string.

Fields

19 fields · 1 key

19 fields.

Table fields: position, field name, description, data type, and flags. 19 fields.
#FieldDescriptionTypeFlags
1idInternal IDNUMBER
Primary-key field
2tranidFulfillment number as printedVARCHAR
3transactionnumberTransaction numberVARCHAR
4trandateRequest dateDATE
The record's primary analysis date — a real DATE/TIMESTAMP column, no conversion needed
5statusRequest status (internal id) — no public value list; see quirks #status-codesNUMBER
6fulfillmenttypeFulfillment type (internal id) — ship-from-store, pickup in store, and their relativesNUMBER
7entityCustomer (internal id)NUMBER
8subsidiarySubsidiary (internal id)NUMBER
9locationFulfillment location (internal id) — the site being asked to fulfillNUMBER
10createdfromOrder this request was created from (internal id)NUMBER
11assigneeAssigned employee (internal id)NUMBER
12pickupholdPickup hold state (internal id)NUMBER
13voidedRequest voidedVARCHAR
14memoMemoVARCHAR
15createdbyCreated by (internal id)NUMBER
16lastmodifiedbyLast modified by (internal id)NUMBER
17createddateDate createdTIMESTAMP
18lastmodifieddateLast modified — the incremental watermarkTIMESTAMP
19externalidExternal IDVARCHAR

Field provenance: hand-curated. 1 key field.

Boilerplate SQL

Starting point for reading the Connect-landed copy of fulfillmentrequest on Databricks — dates are real DATE/TIMESTAMP columns and need no conversion, and the partition anchors are already in place. The lastmodifieddate watermark is in place too. Set your Unity Catalog location, schema, and filter values below; they’re substituted into the SQL and the copy button.

Query parameters

8 parameters not filled: <catalog>, <schema>, <subsidiary_id>, <location_id>, <id>, <DATE_FROM>, <DATE_TO>, <watermark>

-- ============================================================
-- Table  : fulfillmentrequest — The fulfillment-request document: a store or site being asked to fulfill part of an order, with its own number, date, status, fulfillment type, assignee and pickup-hold state.
-- Purpose: Column-selected read of fulfillmentrequest — auto-generated from field metadata
-- Grain  : One row per id
-- Caution: this record is FEATURE-GATED — it exists in the analytics catalog whether or not your account runs the fulfillment-request flow, so an empty table here is a configuration answer, not an extraction bug.
-- Notes  : Auto-generated skeleton for NetSuite data landed in your lakehouse from a SuiteAnalytics Connect (or SuiteQL) extract — it never addresses live NetSuite. Identifiers are lowercase as NetSuite2.com renders them. Select-type columns hold numeric internal ids: BUILTIN.DF() display resolution exists only at extraction time, so decode ids by joining the landed list records; see quirks #display-values. Check-box columns arrive as 'T'/'F' strings; see quirks #tf-booleans.
-- ============================================================
SELECT
  t.id AS "Internal ID",
  t.tranid AS "Fulfillment number as printed",
  t.transactionnumber AS "Transaction number",
  t.trandate AS "Request date",
  t.status AS "Request status (internal id) — no public value list; see quirks #status-codes",
  t.fulfillmenttype AS "Fulfillment type (internal id) — ship-from-store, pickup in store, and their relatives",
  t.entity AS "Customer (internal id)",
  t.subsidiary AS "Subsidiary (internal id)",
  t.location AS "Fulfillment location (internal id) — the site being asked to fulfill",
  t.createdfrom AS "Order this request was created from (internal id)",
  t.assignee AS "Assigned employee (internal id)",
  t.pickuphold AS "Pickup hold state (internal id)",
  t.voided AS "Request voided",  -- 'T'/'F' string — compare = 'T', or CAST via CASE; see quirks #tf-booleans
  t.memo AS "Memo",
  t.createdby AS "Created by (internal id)",
  t.lastmodifiedby AS "Last modified by (internal id)",
  t.createddate AS "Date created",
  t.lastmodifieddate AS "Last modified — the incremental watermark",
  t.externalid AS "External ID"
FROM <catalog>.<schema>.fulfillmentrequest t
WHERE
  t.subsidiary = <subsidiary_id>  -- OneWorld partition — see quirks guide #oneworld
  AND t.location = <location_id>  -- location scope — see quirks guide #oneworld
  -- AND t.id = <id>
  -- AND t.trandate >= DATE '<DATE_FROM>'
  -- AND t.trandate <= DATE '<DATE_TO>'
  -- AND t.lastmodifieddate >= TIMESTAMP '<watermark>'  -- inserts and updates only — deletes never appear here; diff deletedrecord, which is itself blind to line-level deletes (see quirks #deletes)
ORDER BY t.id;

Verified August 2026 · Analytics Browser 2021.1 · corroborated 2025.2

Select columns hold internal ids, not display text — see decoding display values.

Relationships

Diagram of 1-hop neighbors — join details below. Document-link edges are highlighted; they chain one document to the next and are the joins newcomers most often get wrong.

Join details

  • fulfillmentrequestentityforeign key · N:1
    ON fulfillmentrequest.entity = entity.id
  • fulfillmentrequestsubsidiaryforeign key · N:1
    ON fulfillmentrequest.subsidiary = subsidiary.id
  • fulfillmentrequestlocationforeign key · N:1
    ON fulfillmentrequest.location = location.id
  • fulfillmentrequestentityforeign key · N:1
    ON fulfillmentrequest.createdby = entity.id
  • fulfillmentrequestentityforeign key · N:1
    ON fulfillmentrequest.lastmodifiedby = entity.id

Browse more Fulfillment & Logistics tables

More Fulfillment & Logistics tables

Maintained by Summit Analytics, a supply chain analytics practice. The tools and references are free — the consulting is selective.

Part of the Summit Analytics reference library.

Work with the practice

Not affiliated with or endorsed by Oracle or NetSuite. NetSuite is a registered trademark of Oracle and/or its affiliates.