2016-11-11 2 views
2

Я хочу, чтобы заказ на поставку был создан, когда пользователь нажимает кнопку одобрения по заказу клиента. У меня есть сценарий, развернутый в записях заказов на продажу, и тип события запускается при нажатии кнопки одобрения. Однако этот код не будет создавать заказ на поставку, потому что у меня есть недопустимое значение поля для значения элемента подписок.Я хочу создать заказ на поставку после нажатия кнопки «одобрить» по заказу клиента

Я использовал как внутренний идентификатор, так и имя строки элемента как значения, и я получаю ту же ошибку «недопустимое значение поля». Кто-нибудь знает, что случилось?

function beforeSubmit(context) { 
    var sRecord = context.newRecord; 
    var user = runtime.getCurrentUser(); 

    //get line count 
    var itemCount = sRecord.getLineCount({ 
     sublistId: 'item' 
    }); 

    for (var i = 0; i<itemCount; i++){ 
     var pOrder = record.create({ 
      type: record.Type.PURCHASE_ORDER, 
      isDynamic: true 
     }); 

     //get item internal id 
     var itemId = sRecord.getSublistValue({ 
      sublistId : 'item', 
      fieldId  : 'item', 
      line  : i 
     }); 

     //get qty 
     var qty = sRecord.getSublistValue({ 
      sublistId : 'item', 
      fieldId  : 'quantity', 
      line  : i 
     }); 

     //get vendor of item 
     var vendor = search.lookupFields({ 
      type : 'item', 
      id  : itemId, 
      columns : ['vendorname'] 
     }); 

     //add vendor to record 
     pOrder.setValue('vendorname', vendor); 

     //selects new line 
     pOrder.selectNewLine({sublistId: 'item'}); 

     //add item to sublist 
     pOrder.setCurrentSublistValue({ 
      sublistId : 'item', 
      fieldId  : 'item', 
      value  : itemId 
     }); 

     //add quantity to sublist 
     pOrder.setCurrentSublistValue({ 
      sublistId : 'item', 
      fieldId  : 'quantity', 
      value  : qty 
     }); 
     pOrder.commitLine({sublistId: 'item'}); 
     pOrder.save(); 

    } 
} 
+0

или есть способ вызвать «создать специальный заказ» для каждой позиции в заказе клиента, когда нажата кнопка одобрения? –

+0

Я предполагаю, что вы попытались установить один из этих элементов в ПО через интерфейс, чтобы убедиться, что он доступен для PO? – W3BGUY

+0

@ W3BGUY да, создание ПО через интерфейс работает отлично. ошибка возникает только в том месте, где я добавляю элемент –

ответ

3

Поле entity является требуется на запись заказа на поставку. Поле vendorname в записи позиции не хранит запись поставщика, и даже если бы это произошло, на PO не было соответствующего поля vendorname. Это значение из записи позиции используется для идентификации имени/кода поставщика для самого элемента, в случае, если у них другое имя.

Как написано, этот код функционирует, по меньшей мере, ситуационно, если на PO задано поле entity. Если вы установили Preferred Vendor или если функция нескольких поставщиков настроила предпочтительного поставщика, вы можете найти соответствующее поле entity непосредственно из записи «Элемент».

Простой способ добиться того, что этот скрипт, как представляется, делает без использования сценариев для инвентаризации и инвентаризации для продажи, заключается в использовании флажка Drop Ship Item или Special Order Item в этих элементах записей. Выбор для каждого подходящего элемента позволит автоматически создать поля для позиций вашего заказа клиента. Поиск Special Order Items в справке Netsuite для получения дополнительной информации о различиях и настройке.

+0

, который я вижу. поэтому я предполагаю, что, поскольку поле объекта не установлено, оно не может найти связанные элементы для заказа на поставку (потому что вам нужно установить поставщика перед добавлением элементов). Это правильно? изменить: я не могу поверить, что это была проблема. хотя я havent повторно развернул сценарий, я думаю, что это была проблема. большое спасибо! –

Смежные вопросы