Я пытаюсь установить поле «Клиент» на уровне линии заказа на поставку, когда я создаю PO через скрипт. Я хочу, чтобы значение было заданием из соответствующего заказа клиента. Если вы перейдете в пользовательский интерфейс, чтобы отредактировать это поле, вы можете ввести как Рабочие места, так и Клиенты (поле имеет тип объекта, поэтому оба работают).Настройка поля «Клиент» на уровне линии PO
Мой код после записи записи (пользовательское мероприятие). Вот фрагмент кода:
var objcurrentSO = nlapiLoadRecord('salesorder', nlapiGetRecordId());
var ijob = objcurrentSO.getFieldValue('job');
nlapiLogExecution("DEBUG", "JOB ID", "Job: "+ijob);
//get line Item information from SO and store into arrlines array
var objPO = nlapiCreateRecord('purchaseorder');
//set header fields for objPo
for (var j = 0; j < arrlines.length; j++)
{
objPO.selectNewLineItem('item');
objPO.setCurrentLineItemValue('item', 'item', arrlines[j].Item);
objPO.setCurrentLineItemValue('item', 'description', arrlines[j].Description);
objPO.setCurrentLineItemValue('item', 'rate', arrlines[j].Itemcost);
objPO.setCurrentLineItemValue('item', 'quantity', arrlines[j].Itemquantity);
objPO.setCurrentLineItemValue('item', 'department', 71);
objPO.setCurrentLineItemValue('item', 'class', arrlines[j].Class);
objPO.setCurrentLineItemValue('item', 'location', ilocation);
objPO.setCurrentLineItemValue('item', 'customer', ijob); //project set on line level
objPO.commitLineItem('item');
nlapiLogExecution('DEBUG', 'Setting PO line values', "Line: " + j + "; Item: " + arrlines[j].Itemtext + "; Itemcost: " + arrlines[j].Itemcost + "; Itemdescription: " + arrlines[j].Description);
}
// отправить PO
При всем этом, что в настоящее время происходит, создает ПО, но поле клиента не установлен вообще. Выполнение моего журнала показывает правильный идентификатор задания, который я ожидаю. Я могу вручную добавить задание в пользовательский интерфейс.
Любые идеи?
Одна вещь, которая расстраивает об этом является то, что ваш пост подразумевает ваш код работает на всех. Идиома setCurrentLineItem предназначена для клиентских скриптов и записей, загруженных/созданных в динамическом режиме. – bknights
Есть ли причина, по которой вы не можете использовать функциональность «специальный заказ» или «падение корабля», так что ПО генерируется автоматически? – bknights
Одна вещь, которая появляется на ум, не имея возможности запросить больше кода/конфигурации, заключается в том, что дочерняя компания-покупатель не соответствует дочерней компании в Заказе на покупку? –