Was macht NetSuite Automatisierung?
Automatisieren Sie Oracle NetSuite ERP-Operationen, einschließlich der Erstellung von Kunden und Aufträgen, der Ausführung von SuiteQL-Abfragen, des Upsertings von Datensätzen nach externer ID und der Überprüfung von Datensatz-Metadaten für ein umfassendes Geschäftsmanagement.
Toolkit-Dokumentation: composio.dev/toolkits/netsuite
Einrichtung
Diese Fähigkeit erfordert den Rube MCP-Server, der unter https://rube.app/mcp verbunden ist.
Stellen Sie vor der Ausführung von Tools sicher, dass eine aktive Verbindung für das netsuite-Toolkit besteht. Wenn keine aktive Verbindung besteht, initiieren Sie eine über RUBE_MANAGE_CONNECTIONS.
Kern-Workflows
1. Aufträge erstellen
Erstellen Sie Kundenaufträge mit Positionen, einschließlich Artikelreferenzen, Mengen und Preisen.
Tool: NETSUITE_CREATE_SALES_ORDER
Wichtige Parameter:
entity(erforderlich) – Kundenreferenz:{"id": "<interne_id>"}item(erforderlich) – Container mititems-Array, jedes enthält:item(erforderlich) – Artikelreferenz:{"id": "<interne_id>"}quantity(erforderlich) – Zu bestellende Einheiten (nicht negativ)rate– Einzelpreis (optional, wenn der Artikel einen Standardpreis hat)amount– Gesamtpositionsbetrag (Alternative zu rate)taxcode– Steuercode-Referenz:{"id": "<interne_id>"}(erforderlich, wenn SuiteTax aktiviert ist)description– Notizen zur Position
tranDate– Transaktionsdatum im FormatJJJJ-MM-TTmemo– Kopf-MemoorderStatus–"A"(ausstehende Genehmigung) oder"B"(ausstehende Erfüllung)otherrefnum– Externe Referenz oder Bestellnummer
Beispiel:
Tool: NETSUITE_CREATE_SALES_ORDER
Argumente:
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: "Erstauftrag Q1"
orderStatus: "B"
2. SuiteQL-Abfragen ausführen
Führen Sie Ad-hoc-SQL-Abfragen gegen NetSuite-Daten mit serverseitigem Paging aus.
Tool: NETSUITE_RUN_SUITEQL_QUERY
Wichtige Parameter:
q(erforderlich) – SuiteQL SELECT-Anweisunglimit– Zeilen pro Seite (Standard variiert)offset– Nullbasierter Index der ersten Zeile (muss ein Vielfaches von limit sein)
Beispiele:
Tool: NETSUITE_RUN_SUITEQL_QUERY
Argumente:
q: "SELECT id, companyname, email FROM customer WHERE isinactive = 'F' ORDER BY companyname"
limit: 100
offset: 0
Tool: NETSUITE_RUN_SUITEQL_QUERY
Argumente:
q: "SELECT id, entitystatus, total FROM transaction WHERE type = 'SalesOrd' AND trandate >= '2026-01-01'"
limit: 50
3. Kunden erstellen und verwalten
Erstellen Sie neue Kundendatensätze mit Niederlassungszuordnung und Kontaktdaten.
Tools:
NETSUITE_CREATE_CUSTOMER– Neuen Kunden erstellenNETSUITE_GET_CUSTOMER– Kunden nach interner ID abrufenNETSUITE_UPDATE_CUSTOMER– Bestehenden Kunden aktualisieren (PATCH-Semantik)
Wichtige Parameter für NETSUITE_CREATE_CUSTOMER:
body(erforderlich) – JSON-Objekt mit Kundendaten. Erforderliche Felder:subsidiary– Objekt mitid(interne ID der Niederlassung)- Entweder
companyName(für Unternehmen) oderfirstName+lastName(für Einzelpersonen) - Optional:
email,phone,isPerson(auf"T"setzen für Einzelpersonen),comments
replace– Komma-getrennte Sublistennamen zum vollständigen Ersetzen (z. B."contacts,addressbook")
Beispiel:
Tool: NETSUITE_CREATE_CUSTOMER
Argumente:
body: {
"companyName": "Acme GmbH",
"subsidiary": {"id": "1"},
"email": "[email protected]",
"phone": "555-0100"
}
4. Datensätze per externer ID upserten
Erstellen oder aktualisieren Sie Datensätze idempotent unter Verwendung einer externen Kennung. Unverzichtbar für Sync-Workflows.
Tool: NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID
Wichtige Parameter:
record_type(erforderlich) – Datensatztyp-Name, z. B."customer","salesorder","customrecord_myrec"external_id(erforderlich) – Wert der externen ID (nur Buchstaben, Zahlen, Unterstrich, Bindestrich)body(erforderlich) – JSON-Objekt, das dem Datensatzschema entspricht; beim Erstellen Pflichtfelder einschließen
Beispiel:
Tool: NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID
Argumente:
record_type: "customer"
external_id: "CRM-CUST-42"
body: {
"companyName": "Acme GmbH",
"subsidiary": {"id": "1"},
"email": "[email protected]"
}
Warnung: Idempotenz hängt von der konsistenten Verwendung der externen ID ab. Nichtübereinstimmungen erstellen stillschweigend zusätzliche Datensätze anstatt zu aktualisieren.
5. Datensatz-Metadaten überprüfen
Entdecken Sie verfügbare Felder, Datentypen, Einschränkungen und Anforderungen, bevor Sie Datensätze erstellen oder aktualisieren.
Tool: NETSUITE_GET_RECORD_METADATA
Wichtige Parameter:
record_type(erforderlich) – z. B."customer","salesorder","invoice","vendor","employee","item"accept–"application/schema+json"(Standard, JSON Schema) oder"application/swagger+json"(OpenAPI 3.0)
Beispiel:
Tool: NETSUITE_GET_RECORD_METADATA
Argumente:
record_type: "salesorder"
6. Datensätze auflisten und filtern
Rufen Sie mehrere Datensätze mit optionaler Filterung und Paginierung ab.
Tool: NETSUITE_LIST_RECORDS
Wichtige Parameter:
recordType(erforderlich) – z. B."customer","salesorder"q– Filterausdruck mit N/query-Operatoren, z. B."email START_WITH \"barbara\""limit– Max. Datensätze pro Seite (1--1000, Standard 1000)offset– Nullbasierter Index (muss durch limit teilbar sein)
Unterstützende Tools:
NETSUITE_FILTER_RECORD_COLLECTION– Alternative Filterung (sekundär zu SuiteQL)NETSUITE_GET_RECORD_SELECTED_FIELDS– Nur bestimmte Felder abrufen (reduzierte Nutzlast)
Empfohlener Ausführungsplan
- Überprüfen Sie das Datensatzschema mit
NETSUITE_GET_RECORD_METADATA, um erforderliche Felder zu ermitteln - Suchen Sie nach vorhandenen Datensätzen mit
NETSUITE_RUN_SUITEQL_QUERY, um Duplikate zu vermeiden - Suchen Sie den Kunden per E-Mail mit SuiteQL; rufen Sie Details mit
NETSUITE_GET_CUSTOMERab, falls gefunden - Erstellen Sie bei Bedarf den Kunden mit
NETSUITE_CREATE_CUSTOMER(stellen Sie sicher, dass subsidiary gesetzt ist) - Validieren Sie die internen IDs der Artikel mit
NETSUITE_LIST_RECORDSoder SuiteQL - Erstellen Sie den Auftrag mit
NETSUITE_CREATE_SALES_ORDERmit validierten Referenzen - Optional per externer ID upserten mit
NETSUITE_UPSERT_RECORD_BY_EXTERNAL_IDfür Sync-Workflows - Überprüfen Sie die Ergebnisse mit
NETSUITE_GET_RECORD_SELECTED_FIELDS, um Preise/Summen zu bestätigen
Bekannte Fallstricke
| Fallstrick | Detail |
|---|---|
| Ungültige Artikel-IDs | NETSUITE_CREATE_SALES_ORDER wirft USER_ERROR, wenn die interne Artikel-ID ungültig ist. Vorab validieren via NETSUITE_LIST_RECORDS oder NETSUITE_RUN_SUITEQL_QUERY. |
| Fehlende Pflichtfelder | NETSUITE_CREATE_CUSTOMER gibt 400 zurück, wenn Pflichtfelder (z. B. subsidiary) fehlen. Immer zuerst mit NETSUITE_GET_RECORD_METADATA überprüfen. |
| SuiteQL-Feldnamen | Abfrageunterschiede je nach Konto können zu leeren Ergebnissen führen. Feldnamen über NETSUITE_GET_RECORD_METADATA bestätigen, wenn Ergebnisse falsch aussehen. |
| Grenzen von Filterausdrücken | NETSUITE_FILTER_RECORD_COLLECTION kann fehlschlagen, wenn die Filtersyntax nicht unterstützt wird. Als sekundär zu SuiteQL behandeln. |
| Externe ID-Idempotenz | NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID hängt von konsistenten externen IDs ab. Nichtübereinstimmungen erstellen stillschweigend Duplikate anstatt zu aktualisieren. |
| SuiteTax-Positionen | Konten mit aktiviertem SuiteTax erfordern taxcode für jede Position. Das Weglassen führt zu Erstellungsfehlern. |
Kurzreferenz
| Tool Slug | Beschreibung |
|---|---|
NETSUITE_CREATE_SALES_ORDER | Erstellt einen neuen Auftrag mit Positionen |
NETSUITE_RUN_SUITEQL_QUERY | Führt Ad-hoc-SuiteQL-Abfragen mit Paging aus |
NETSUITE_CREATE_CUSTOMER | Erstellt einen neuen Kundendatensatz |
NETSUITE_GET_CUSTOMER | Ruft einen Kunden nach interner ID ab |
NETSUITE_UPDATE_CUSTOMER | Aktualisiert einen bestehenden Kunden (PATCH) |
NETSUITE_UPSERT_RECORD_BY_EXTERNAL_ID | Erstellt oder aktualisiert einen Datensatz per externer ID |
NETSUITE_GET_RECORD_METADATA | Überprüft das Datensatzschema und Felddefinitionen |
NETSUITE_LIST_RECORDS | Listet Datensätze mit Filterung und Paginierung auf |
NETSUITE_FILTER_RECORD_COLLECTION | Alternative Datensatzfilterung |
NETSUITE_GET_RECORD_SELECTED_FIELDS | Ruft bestimmte Felder aus einem Datensatz ab |
Powered by Composio