2015-11-09 2 views
1

Unable to find a matching line for sublist apply with key: [doc,line] and value: [5489377,1].Проблема со списком Наносить NetSuite

Я вижу эту ошибку, когда я пытаюсь обновить список применить на объекте транзакции NetSuite. «Doc» - это внутренний идентификатор объекта, а номер строки соответствует номеру строки на объекте.

Почему это происходит? Кажется, не может найти решение.

+0

какой тип сценария. Какой тип записи вы пытаетесь обновить? Обычно вы начинаете с кредитного авизо или оплаты клиента, а линии подачи уже заполнены идентификаторами счетов. Вы можете проверить флаг применения и обновить сумму, но вы не можете добавить строку в список приложений. – bknights

+0

Я пишу это через Java с SOAP wsdl. Я пытаюсь применить кредитное авизо к открытому счету. Когда я смотрю заметку в пользовательском интерфейсе, на вкладке «Применить» я не вижу никаких заполненных идентификаторов счетов. – mattklamp

+0

Возможно, вы захотите также проверить статус счета в пользовательском интерфейсе. Никогда не применялись к SuiteTalk. – bknights

ответ

0

Это работает для применения кредитного авизо к конкретному счету. invId является внутренним в записи счета:

function applyPayment(creditMemo, payAmount, invId){ 
    var didApply = false; 
    creditMemo.setFieldValue('autoapply', 'F'); 
    if(payAmount === null) payAmount = creditMemo.getFieldValue('amountremaining'); 
    for(var i = 1; i<=creditMemo.getLineItemCount('apply'); i++){ 
     if(invId == creditMemo.getLineItemValue('apply', 'doc', i)){ 
      didApply = true; 
      creditMemo.setLineItemValue('apply', 'apply', i, 'T'); 
      creditMemo.setLineItemValue('apply', 'amount',i, payAmount); 
     }else if('T' == creditMemo.getLineItemValue('apply', 'apply', i)) creditMemo.setLineItemValue('apply', 'apply', i, 'F'); 
    } 
    if(didApply) nlapiSubmitRecord(creditMemo); 
} 
Смежные вопросы