SuiteScript - removeLine не удаляет последнюю строку - PullRequest
2 голосов
/ 08 июля 2020

Я создал pageInit SuiteScript, который должен удалять позиции из заказа на продажу, если у них есть заполненное настраиваемое поле. Проблема, с которой я столкнулся, заключается в том, что он не удалит строку, если это последняя строка, и никакая другая строка не имеет значения для потерь.

function pageInit(context) {

    var objRec = context.currentRecord;

    var itemsLength = objRec.getLineCount({
        sublistId: 'item'
    });

    for (var i = itemsLength-1; i >= 0; i--){
        var loss = objRec.getSublistValue({
            sublistId: 'item',
            fieldId: 'custcol_linelossreason',
            line: i
        });

        if (loss) {
            objRec.removeLine({
                sublistId: 'item',
                line: i,
                ignoreRecalc: true
            });
            log.debug('removed', 'Line ' + i + ' has been removed.');
        } else {
            log.debug('no removal', 'Line ' + i + ' will remain.');
        }
    }

1 Ответ

1 голос
/ 09 июля 2020

Единственное, что я могу найти, это то, что, возможно, в этой строке отсутствует значение потери ...? Я тестировал ваш код без потери части, и он работал отлично. Вот что я пробовал.

**
 * @NApiVersion 2.x
 * @NScriptType ClientScript
 * @NModuleScope SameAccount
 * 
 */
define(['N/record'],function(record){
  function pageInit(context){
    var objRec=context.currentRecord;
    var itemsLength=objRec.getLineCount({
      sublistId:'item'
    });
    log.debug('itemsLength',itemsLength);
    for(var i=itemsLength-1;i>=0;i--){
      log.debug('running line ',i+' of '+itemsLength);
      /*
      var loss=objRec.getSublistValue({
        sublistId:'item',
        fieldId:'custcol_linelossreason',
        line: i
      });
      */
      //if(loss){
      objRec.removeLine({
        sublistId:'item',
        line:i,
        ignoreRecalc:true
      });
      log.debug('removed','Line '+i+' has been removed.');
     /*
      }else{
        log.debug('no removal','Line '+i+' will remain.');
      }
      */
    }
  }

  return{
    pageInit:pageInit
  }
});
...