使用 SuiteScript 获取促销行项目值

Get Promotion line item value with SuiteScript

我正在尝试使用 SuiteScript 获取 "Promotions" 子列表中的值数组(SuitePromotions 已打开)。 nlapiGetLineItemField 返回一个奇怪的输出 "com.netledger.app.common.scripting.version1.nlobjFieldImplV1@1e874f2e" 而不是促销的内部 ID 或名称。如何访问此对象中的子列表数据?这是我的代码:

            //get the promotions used on the transaction
        var transPromos = [];
        var promoCount = nlapiGetLineItemCount('promotions');
        for (var promoNum = 1; promoNum <= promoCount; promoNum++){
        var promoName = nlapiGetLineItemField('promotions', 'promocode', promoNum);
            transPromos.push(promoName);
        }
       nlapiLogExecution('DEBUG', 'transPromos', transPromos);

然后……

       for (var k = 0; k < transPromos.length; k++){    
       nlapiLogExecution('DEBUG', 'transpromo' + k.toString(), transPromos[k]);
       }

日志显示:

transPromos: com.netledger.app.common.scripting.version1.nlobjFieldImplV1@592bd210 transpromo0: com.netledger.app.common.scripting.version1.nlobjFieldImplV1@592bd210

我希望它打印内部 ID 或促销名称。我在这里错过了什么?为什么它显示这个奇怪的代码而不是内部 ID?

我想出了一个办法。我使用 nlapiGetLineItemText() 而不是 nlapiGetLineItemField() 来获取促销名称。