Tak, to jest to, co robię (hardcoding najwięcej wartości teraz, po prostu staramy się nauczyć NS):Programowo utworzyć rekord PAYMENT_VENDOR w NetSuite?
var vendorBillPayment = record.create({
type: record.Type.VENDOR_PAYMENT,
isDynamic: false,
defaultValues: {
entity: 45
}
})
vendorBillPayment.setValue({
fieldId: 'entityname',
value: "Superior ISP"
})
vendorBillPayment.setValue({
fieldId: 'account',
value: 129
})
vendorBillPayment.setValue({
fieldId: 'currency',
value: 1
})
vendorBillPayment.setValue({
fieldId: 'customform',
value: 45
})
vendorBillPayment.setValue({
fieldId: 'exchangerate',
value: "1.00"
})
var recordId = vendorBillPayment.save({
enableSourcing: false,
ignoreMandatoryFields: true
})
Teraz, problem zaczyna się w poniższym fragmencie, rekord VendorPayment ma podmenu „Zastosuj” , która jest listą rachunków, których płatność musi dotyczyć.
vendorBillPayment.setSublistValue({
sublistId: 'apply',
fieldId: 'internalid',
line: 1,
value: "303"
});
Zwracany błędu:
error message:{"type":"error.SuiteScriptError","name":"UNEXPECTED_ERROR","message":null,"stack":["anonymous(N/recordService)","<anonymous>(/SuiteScripts/..)"],"cause":{"type":"internal error","code":"UNEXPECTED_ERROR","details":null,"userEvent":null,"stackTrace":["anonymous(N/recordService)","<anonymous>(/SuiteScripts/..)"],"notifyOff":false},"id":"","notifyOff":false}
Oznacza to, że nie bardzo przydatne wiadomości. Przejrzałem ich dokumentację, ale nie wygrałem.
EDYCJA: okazuje się, że lista podrzędna dotyczy listy typów. Oznacza to, że NIE można programowo dodawać/usuwać linii z tej podlisty. Wystarczy edytować istniejące linie.
Czy istnieje inny sposób programowego opłacania rachunku dostawcy, poza tworzeniem rekordu VENDOR_PAYMENT?
Pierwszy indeks podlisty w SuiteScript 2.0 to '0', a nie' 1'; spróbuj zamiast tego ustawić 'line' na' 0'. Myślę, że będziesz musiał również sprawdzić pole 'apply' na linii podlisty, więc musisz także ustawić' apply' na 'true' na linii. – erictgrubaugh
@erictgrubaugh Witam, przepraszam za opóźnioną odpowiedź i dziękuję za odpowiedź. Teraz, w odniesieniu do pytania - nie można tego zrobić z rekordem VENDOR_PAYMENT na netsuite. Powodem jest to, że podlista "zastosuj" jest typu "lista", co oznacza, że NIE możesz dynamicznie dodawać/usuwać linii. Możesz edytować tylko istniejące linie. – user2187935
Interesujące. Chociaż nie próbowałem tego specjalnie w odniesieniu do płatności dla dostawców, wiem, że to ograniczenie nie istnieje w przypadku płatności dla klientów. – erictgrubaugh