2016-03-28 13 views
1

In NetSuite gibt es eine praktische Schaltfläche zum Abbrechen einer salesorder. Wir versuchen, das Verhalten dieses Klicks in einem RESTlet zu replizieren. Wir haben versucht, die folgenden:NetSuite: Abbrechen einer Bestellung in SuiteScript

var order = nlapiLoadRecord('salesorder', 802); 
order.setFieldText('orderstatus', 'Cancelled'); 
nlapiSubmitRecord(order); 

Aber wir haben eine Fehlermeldung, dass wir einen Wert für das Feld Status eingeben benötigt. Wir haben auch folgendes versucht:

nlapiVoidTransaction('salesorder', 802); 

Aber das gab uns einen ungültigen Datensatztyp Fehler. Irgendwelche Gedanken oder Hilfe würden geschätzt.

Antwort

3

Ich habe einen offenen Verbesserungsvorschlag für diesen (# 275848). Laut NetSuite-Unterstützung gibt es keine Möglichkeit, einen Kundenauftrag über SuiteScript oder Workflow abzubrechen.

0

Sie sollten folgenden Code und Bestellstatuscode über SuiteScript setzen -

nlapiSubmitField('salesorder',soID,'orderstatus','C',false); 
+0

Als ein FYI-das hat nicht funktioniert. Es gab den gleichen Fehler: – 2ps

1

Wie wäre:

nlapiRequestURL('/app/accounting/transactions/salesordermanager.nl?type=cancel&id=' + nlapiGetRecordId()); 
+0

Gut, aber nicht sicher, wenn Netsuite ändert die URL abbrechen, das Skript wird nicht funktionieren –

0

nur ein Gedanke, statt den Kundenauftrag zu stornieren, können Sie nicht nur die closed Feld auf ‚T‘.

-1

Wie Netsuite Expert sagte, können Sie die Kundenauftragstransaktion durch stornieren, indem Sie die einzelnen Positionen im Kundenauftrag schließen.

for(var i = 1; i <= nlapiGetLineItemCount('item'); i++){ 
    nlapiSetLineItemValue('item', 'isclosed', i, 'T'); 
} 

Dies ist ein Beispiel für Benutzerereignisskript.

+0

Es wird den Verkaufsauftrag zu schließen, nicht stornieren –

+0

Stornierte Auftrag unterscheidet sich von geschlossenen Auftrag – eliseobeltran