NS 里面,records, fields 分别代表什么?transactions, lists, 分别怎么理解
在 NetSuite 里:
🧠 records 与 fields 是整个系统最核心的两个概念
可以简单理解成:
| 概念 | 类比数据库 | 业务理解 |
|---|---|---|
| Record | Table(表) | 一个业务对象 |
| Field | Column(字段) | 对象上的属性 |
✅ 一句话理解
Record = 一类业务数据
Field = 这类数据的具体属性
📦 一、什么是 Record(记录/对象)
Record 是:
一个完整业务对象
例如:
| Record | 含义 |
|---|---|
| Customer | 客户 |
| Sales Order | 销售订单 |
| Item | 商品 |
| Vendor | 供应商 |
| Invoice | 发票 |
| Employee | 员工 |
🧠 类比数据库
例如:
table customer
在 NetSuite 里:
Customer Record
📌 一个 Record 包含:
-
多个字段(Fields)
-
多条数据(Rows)
示例
Customer Record
可能包含:
| internalid | companyname | |
|---|---|---|
| 1001 | ABC Inc | a@abc.com |
🚀 在 NetSuite API 里
Record 对应:
/record/v1/customer
📦 二、什么是 Field(字段)
Field 是:
Record 上的属性
例如:
Customer Record 上:
| Field | 含义 |
|---|---|
| entityid | 客户编号 |
| companyname | 公司名 |
| 邮箱 | |
| phone | 电话 |
🧠 类比数据库
SELECT companyname
FROM customer
这里:
companyname
就是 Field。
📌 Field 的本质
Field 定义:
-
数据类型
-
是否必填
-
是否可编辑
-
是否可搜索
-
是否关联其他 Record
🔗 三、Record 与 Field 的关系
Customer Record
├── entityid
├── companyname
├── email
├── subsidiary
└── salesrep
🧠 NetSuite 本质是:
Metadata Driven ERP
意思是:
系统核心其实是:
Record Definition + Field Definition
📌 四、NetSuite 里的 Field 类型(很重要)
1️⃣ Standard Field(标准字段)
系统自带:
例如:
entityid
trandate
amount
2️⃣ Custom Field(自定义字段)
用户创建:
通常:
custbody_xxx
custentity_xxx
custitem_xxx
📌 示例
custbody_region
表示:
销售订单上的:
区域字段
🧠 五、Field 为什么很重要(BI核心)
你现在做:
-
Redshift
-
Power BI
-
SuiteQL
实际上:
本质都在处理:
Record + Fields
例如:
Transaction Record
字段:
| Field | 含义 |
|---|---|
| trandate | 交易日期 |
| amount | 金额 |
| entity | 客户 |
| location | 地点 |
SuiteQL:
SELECT
trandate,
amount
FROM
transaction
🚀 六、NetSuite 的 Record 类型(重点)
1️⃣ Entity Records
主体对象:
-
customer
-
vendor
-
employee
2️⃣ Transaction Records
交易对象:
-
salesorder
-
invoice
-
itemfulfillment
3️⃣ Item Records
商品对象:
-
inventoryitem
-
assemblyitem
4️⃣ Setup Records
配置对象:
-
subsidiary
-
location
-
department
5️⃣ Custom Records
用户自己建:
customrecord_xxx
🧠 七、为什么 metadata-catalog 很重要
因为:
它返回:
Record 的所有 fields
例如:
{
"fields": {
"entityid": {
"type": "string"
}
}
}
🔥 八、NetSuite 最容易混淆的几个词
| 名称 | 真正含义 |
|---|---|
| Record | 表/业务对象 |
| Record Instance | 一条数据 |
| Field | 字段 |
| Sublist | 子表 |
| Subrecord | 子结构 |
| Metadata | schema定义 |
📌 九、举一个完整真实例子(非常重要)
Sales Order Record
Header Fields(主字段)
| Field | 含义 |
|---|---|
| tranid | 订单号 |
| trandate | 日期 |
| entity | 客户 |
Item Sublist(子表)
| item | quantity | amount |
|---|
Inventory Detail(Subrecord)
再往下:
lot
serial
bin
🧠 所以 NetSuite 数据结构其实是:
Record
└── Fields
└── Sublists
└── Subrecords
🚀 十、从你现在项目角度理解(关键)
你现在:
-
SuiteQL
-
REST API
-
Redshift
其实就是:
把 NetSuite Record + Fields
转换成:
数仓 Table + Columns
🔥 最后一条(企业级理解)
NetSuite 本质不是:
ERP 页面系统
而是:
一个 Metadata 驱动的数据平台
页面、API、Search、Workflow:
全部基于:
Record + Field
动态生成。
在 NetSuite(NS)里:
🧠 Transactions 与 Lists
是系统最核心的两大数据分类。
可以理解成:
| 分类 | 本质 | 类比 |
|---|---|---|
| Transactions | 业务过程数据 | 流水/事件 |
| Lists | 主数据/基础档案 | 维表/Master Data |
✅ 一句话理解
Transactions = “发生了什么”
Lists = “谁/什么”
📦 一、什么是 Transactions(交易)
Transactions 是:
会“发生”、会“流转”、会“影响财务/库存”的业务行为
📌 常见 Transaction
| Transaction | 含义 |
|---|---|
| Sales Order | 销售订单 |
| Invoice | 发票 |
| Item Fulfillment | 发货 |
| Purchase Order | 采购订单 |
| Vendor Bill | 供应商发票 |
| Inventory Adjustment | 库存调整 |
| Cash Sale | 现金销售 |
🧠 核心特点
Transactions:
✅ 有日期
✅ 有状态
✅ 会变化
✅ 有流程
✅ 通常影响:
-
GL(总账)
-
库存
-
AR/AP
📌 例如:
Sales Order
客户下了一个订单
这是:
一次业务事件
所以属于:
Transaction
🔗 Transaction 的典型流程
Sales Order
↓
Item Fulfillment
↓
Invoice
↓
Customer Payment
🧠 从数据库角度理解
Transactions:
类似:
fact table
因为:
-
数据量大
-
不断新增
-
带时间属性
📦 二、什么是 Lists(列表/主数据)
Lists 是:
相对稳定的基础对象
也叫:
Master Data(主数据)
📌 常见 Lists
| List | 含义 |
|---|---|
| Customer | 客户 |
| Vendor | 供应商 |
| Item | 商品 |
| Employee | 员工 |
| Location | 仓库 |
| Department | 部门 |
| Class | 分类 |
| Currency | 币种 |
🧠 核心特点
Lists:
✅ 相对稳定
✅ 更新不频繁
✅ 被 Transactions 引用
✅ 属于“维度”
📌 例如:
Customer
ABC公司
它不是事件。
它是:
一个业务主体
所以属于:
List
🔗 Transactions 与 Lists 的关系(重点)
示例
Sales Order
字段:
| Field | 来源 |
|---|---|
| customer | Customer List |
| item | Item List |
| location | Location List |
🧠 本质:
Transactions 会引用 Lists。
📌 数据模型视角
Transaction
├── Customer
├── Item
├── Location
└── Department
🚀 BI / 数仓里怎么理解(非常重要)
Transactions
通常:
Fact Table
例如:
fact_sales
fact_inventory
fact_po
Lists
通常:
Dimension Table
例如:
dim_customer
dim_item
dim_location
🧠 这是标准星型模型
dim_customer
|
dim_item --- fact_sales --- dim_location
📦 三、NetSuite UI 为什么分:
Transactions / Lists / Relationships
因为:
NetSuite 本质按业务对象分类。
Transactions 菜单
通常:
Transactions
→ Sales
→ Purchases
→ Inventory
Lists 菜单
通常:
Lists
→ Relationships
→ Accounting
→ Employees
🧠 四、为什么这个概念特别重要(你现在项目核心)
你现在做:
-
SuiteQL
-
Redshift
-
Power BI
本质就是:
Transactions + Lists 建模
📌 例如:
Transaction Fact
transactionline
Dimension
customer
item
location
🔥 五、Transactions 的特殊点(NetSuite 很重要)
NetSuite 的 Transaction:
实际上:
很多类型共用一张底层表
SuiteQL 中:
FROM transaction
包含:
-
SO
-
Invoice
-
PO
-
Fulfillment
全部。
区分方式:
type
字段。
📌 例如:
WHERE type = 'SalesOrd'
🧠 六、Lists 的特殊点
很多 Lists:
是独立 Record。
例如:
| List | Record Type |
|---|---|
| Customer | customer |
| Item | item |
| Vendor | vendor |
🚀 七、从 REST API 角度理解
Transaction API
/record/v1/salesOrder
List API
/record/v1/customer
🧠 八、真正企业级理解(非常关键)
NetSuite 本质:
不是:
Transactions vs Lists
而是:
Event Data vs Master Data
Event Data(Transactions)
记录:
发生了什么
Master Data(Lists)
定义:
谁、什么、在哪里
🔥 九、对你当前项目最关键的一句话
你现在 Redshift 建模:
应该:
Transactions
做:
Fact Tables
Lists
做:
Dimension Tables
Inventory Snapshot
做:
Periodic Snapshot Fact
🚀 十、推荐你重点研究的 NS Transaction 表(BI核心)
| 表 | 用途 |
|---|---|
| transaction | 交易头 |
| transactionline | 交易行 |
| inventorybalance | 库存 |
| itemfulfillment | 发货 |
| invoice | 开票 |
推荐重点研究的 Lists
| 表 | 用途 |
|---|---|
| item | 商品维度 |
| customer | 客户维度 |
| location | 仓库维度 |
| subsidiary | 公司维度 |
这些会构成你 Power BI 的核心星型模型。
浙公网安备 33010602011771号