Ошибка «Запись была изменена» при изменении статуса заказов на продажу на Ожидание выполнения с помощью Suitescript - PullRequest
0 голосов
/ 18 октября 2019

Я хочу отредактировать заказ на продажу, добавив новый сервисный элемент, и после добавления мне нужно утвердить / изменить статус SO на «Ожидание выполнения». При сохранении товар добавляется в заказ клиента, но выдает ошибку в строке изменения статуса, поскольку «Запись была изменена». Сценарий разработан в Suitescript 1.0

Шаг 1: Я загружаю заказ на продажу, добавляю в него элемент обслуживания и сохраняю запись.

Шаг 2: Снова загружаем заказ на продажу и устанавливаемСтатус заказа на продажу «Ожидает выполнения» и сохраните запись. Он не сохраняется и заканчивается ошибкой «Запись была изменена».

На шаге 2 вместо изменения статуса заказа на продажу я попытался изменить другое поле, и на этот раз SO было сохранено. Так что проблема только в изменении статуса SO.

Я попробовал API "nlapiSubmitField", и это также не решило мою проблему.

var soRec = nlapiLoadRecord('salesorder', SOId);
....
soRec.selectNewLineItem("item");
soRec.setCurrentLineItemValue("item","item",1093360);
soRec.setCurrentLineItemValue("item","custcol5",ringDesc);
soRec.setCurrentLineItemValue("item","povendor",46063);
soRec.commitLineItem("item");
var order_id = nlapiSubmitRecord(soRec, true, true);

var soObj = nlapiLoadRecord("salesorder", order_id);
soObj.setFieldValue("orderstatus", "B"); // B : Pending Fulfilment
var order_id = nlapiSubmitRecord(soObj, true, true);

SO содержит элементы челнока, поэтому при сохраненииSO, SO должен быть сохранен, и должно быть создано соответствующее PO.

1 Ответ

0 голосов
/ 01 ноября 2019

На самом деле проблема в том, что SO получает слишком много времени для сохранения записи (на шаге 1). Перед завершением действия сохранения запись снова загружается со следующего шага и снова пытается сохранить. Поэтому я установил сценарий setTimeout , чтобы приостановить процесс на некоторое время и продолжить загрузку заказа клиента на шаге 2.

...