NetSuite自动化Skill NetSuiteAutomation

NetSuite自动化技能用于通过Oracle NetSuite ERP自动化管理客户、销售订单、发票、库存和记录,支持SuiteQL查询,提升企业运营效率和数据集成能力。关键词:NetSuite, ERP自动化, SuiteQL, 销售订单管理, 客户管理, 数据查询, 企业集成, 自动化工具。

低代码开发 0 次安装 0 次浏览 更新于 3/12/2026

name: NetSuite自动化 description: “NetSuite自动化:通过Oracle NetSuite ERP管理客户、销售订单、发票、库存和记录,支持SuiteQL查询” requires: mcp: [rube]

NetSuite自动化

自动化Oracle NetSuite ERP操作,包括创建客户和销售订单、运行SuiteQL查询、通过外部ID更新记录以及检查记录元数据,用于全面的业务管理。

工具包文档: composio.dev/toolkits/netsuite


设置

此技能需要连接到 https://rube.app/mcpRube MCP 服务器

在执行任何工具之前,请确保 netsuite 工具包有活跃连接。如果没有活跃连接,请通过 RUBE_MANAGE_CONNECTIONS 启动一个。


核心工作流

1. 创建销售订单

创建包含行项目的客户订单,包括商品引用、数量和定价。

工具: NETSUITE_CREATE_SALES_ORDER

关键参数:

  • entity(必需) – 客户引用:{"id": "<internal_id>"}
  • item(必需) – 包含 items 数组的容器,每个数组元素包含:
    • item(必需) – 商品引用:{"id": "<internal_id>"}
    • quantity(必需) – 订购单位(非负数)
    • rate – 单位价格(如果商品有默认定价则为可选)
    • amount – 总行金额(替代rate)
    • taxcode – 税务代码引用:{"id": "<internal_id>"}(如果启用SuiteTax则为必需)
    • description – 行项目备注
  • tranDate – 交易日期,格式为 YYYY-MM-DD
  • memo – 头部备注
  • orderStatus"A"(待批准)或 "B"(待履行)
  • otherrefnum – 外部参考或采购订单号

示例:

工具: NETSUITE_CREATE_SALES_ORDER
参数:
  entity: {"id": "1234"}
  item: {
    "items": [
      {"item": {"id": "56"}, "quantity": 10, "rate": 25.00},
      {"item": {"id": "78"}, "quantity": 5, "rate": 50.00}
    ]
  }
  tranDate: "2026-02-11"
  memo: "第一季度批量订单"
  orderStatus: "B"

2. 运行SuiteQL查询

对NetSuite数据执行临时SQL查询,支持服务器端分页。

工具: NETSUITE_RUN_SUITEQL_QUERY

关键参数:

  • q(必需) – SuiteQL SELECT语句
  • limit – 每页行数(默认值可变)
  • offset – 第一行的零基索引(必须是 limit 的倍数)

示例:

工具: NETSUITE_RUN_SUITEQL_QUERY
参数:
  q: "SELECT id, companyname, email FROM customer WHERE isinactive = 'F' ORDER BY companyname"
  limit: 100
  offset: 0
工具: NETSUITE_RUN_SUITEQL_QUERY
参数:
  q: "SELECT id, entitystatus, total FROM transaction WHERE type = 'SalesOrd' AND trandate >= '2026-01-01'"
  limit: 50

3. 创建和管理客户

创建新的客户记录,包括子公司分配和联系详情。

工具:

  • NETSUITE_CREATE_CUSTOMER – 创建新客户
  • NETSUITE_GET_CUSTOMER – 通过内部ID检索客户
  • NETSUITE_UPDATE_CUSTOMER – 更新现有客户(PATCH语义)

NETSUITE_CREATE_CUSTOMER 的关键参数:

  • body(必需) – 包含客户数据的JSON对象。必需字段:
    • subsidiary – 包含 id 的对象(子公司内部ID)
    • 要么 companyName(用于企业)要么 firstName + lastName(用于个人)
    • 可选: email, phone, isPerson(设置为 "T" 表示个人), comments
  • replace – 逗号分隔的子列表名称以完全替换(例如 "contacts,addressbook"

示例:

工具: NETSUITE_CREATE_CUSTOMER
参数:
  body: {
    "companyName": "Acme Corp",
    "subsidiary": {"id": "1"},
    "email": "info@acme.com",
    "phone": "555-0100"
  }

4. 通过外部ID更新记录

使用外部标识符以幂等方式创建或更新记录。同步工作流的关键。

工具: NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID

关键参数:

  • record_type(必需) – 记录类型名称,例如 "customer", "salesorder", "customrecord_myrec"
  • external_id(必需) – 外部ID值(仅字母、数字、下划线、连字符)
  • body(必需) – 匹配记录模式的JSON对象;创建时包括必需字段

示例:

工具: NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID
参数:
  record_type: "customer"
  external_id: "CRM-CUST-42"
  body: {
    "companyName": "Acme Corp",
    "subsidiary": {"id": "1"},
    "email": "updated@acme.com"
  }

警告: 幂等性取决于一致的外部ID使用。不匹配会静默创建额外记录而不是更新。


5. 检查记录元数据

在创建或更新记录前,发现可用字段、数据类型、约束和要求。

工具: NETSUITE_GET_RECORD_METADATA

关键参数:

  • record_type(必需) – 例如 "customer", "salesorder", "invoice", "vendor", "employee", "item"
  • accept"application/schema+json"(默认,JSON Schema)或 "application/swagger+json"(OpenAPI 3.0)

示例:

工具: NETSUITE_GET_RECORD_METADATA
参数:
  record_type: "salesorder"

6. 列出和筛选记录

检索多个记录,支持可选筛选和分页。

工具: NETSUITE_LIST_RECORDS

关键参数:

  • recordType(必需) – 例如 "customer", "salesorder"
  • q – 使用N/query操作符的筛选表达式,例如 "email START_WITH \"barbara\""
  • limit – 每页最大记录数(1–1000,默认1000)
  • offset – 零基索引(必须能被limit整除)

支持工具:

  • NETSUITE_FILTER_RECORD_COLLECTION – 替代筛选(次于SuiteQL)
  • NETSUITE_GET_RECORD_SELECTED_FIELDS – 仅检索特定字段(减少负载)

推荐执行计划

  1. 检查记录模式 使用 NETSUITE_GET_RECORD_METADATA 发现必需字段
  2. 搜索现有记录 使用 NETSUITE_RUN_SUITEQL_QUERY 避免重复
  3. 通过电子邮件查找客户 使用SuiteQL;如果找到,用 NETSUITE_GET_CUSTOMER 获取详情
  4. 如果需要创建客户 使用 NETSUITE_CREATE_CUSTOMER(确保设置 subsidiary
  5. 验证商品内部ID 使用 NETSUITE_LIST_RECORDS 或 SuiteQL
  6. 创建销售订单 使用 NETSUITE_CREATE_SALES_ORDER 使用已验证的引用
  7. 可选通过外部ID更新 使用 NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID 用于同步工作流
  8. 验证结果 使用 NETSUITE_GET_RECORD_SELECTED_FIELDS 确认定价/总额

已知陷阱

陷阱 详情
无效商品ID NETSUITE_CREATE_SALES_ORDER 在商品内部ID无效时抛出USER_ERROR。通过 NETSUITE_LIST_RECORDSNETSUITE_RUN_SUITEQL_QUERY 预验证。
缺失必需字段 NETSUITE_CREATE_CUSTOMER 当必需字段(例如 subsidiary)缺失时返回400。始终先用 NETSUITE_GET_RECORD_METADATA 检查。
SuiteQL字段名 账户间的查询差异可能导致空结果。当结果看起来错误时,通过 NETSUITE_GET_RECORD_METADATA 确认字段名。
筛选表达式限制 NETSUITE_FILTER_RECORD_COLLECTION 如果筛选语法不受支持可能失败。视为次于SuiteQL。
外部ID幂等性 NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID 取决于一致的外部ID。不匹配会静默创建副本而不是更新。
SuiteTax行项目 启用SuiteTax的账户需要在每个行项目上提供 taxcode。省略会导致创建失败。

快速参考

工具标识 描述
NETSUITE_CREATE_SALES_ORDER 创建带行项目的新销售订单
NETSUITE_RUN_SUITEQL_QUERY 执行带分页的临时SuiteQL查询
NETSUITE_CREATE_CUSTOMER 创建新客户记录
NETSUITE_GET_CUSTOMER 通过内部ID检索客户
NETSUITE_UPDATE_CUSTOMER 更新现有客户(PATCH)
NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID 通过外部ID创建或更新记录
NETSUITE_GET_RECORD_METADATA 检查记录模式和字段定义
NETSUITE_LIST_RECORDS 列出带筛选和分页的记录
NETSUITE_FILTER_RECORD_COLLECTION 替代记录筛选
NETSUITE_GET_RECORD_SELECTED_FIELDS 从记录中检索特定字段

Composio 提供支持