【问题标题】:Is it possible for a script to reference a line on a new record?脚本是否可以引用新记录上的一行?
【发布时间】:2019-08-15 21:42:06
【问题描述】:

这与 SuiteScript 1.0 上的一些旧问题有关。我有一个必须是 2.0 的 2.0 脚本,所以我不能使用旧的 nlapiGetLineItemValue - 它必须是 Record.getSublistValue(options)。但我需要它来获取新的未保存记录BeforeSubmit 上的行值。

它一直返回“getSublistValue”在对象中没有定义,检查NetSuite Field Explorer确认未保存的记录没有定义的行。 这同样适用于AfterSubmit

那么在创建记录时是否有任何解决方法,或者甚至有可能引用行项目值?

添加一些代码,问题适用:

var recNew = context.newRecord
var ItemID = recNew.getSublistValue({
    sublistId: 'items',
    fieldId: 'itemid',
});
var listIDs = ["6646", "17745", "17945", "21349"];

var a_filters = [];
a_filters.push(new nlobjSearchFilter(ItemID, null, 'anyof', listIDs));
{
   // an action
   }

【问题讨论】:

  • 如果您可以分享您的完整代码,或者至少是相关部分,将会很有帮助。

标签: field netsuite suitescript


【解决方案1】:

getSublistValue 要求您传递行号。

var recNew = context.newRecord 
for (var x =0; x< recNew.getLineCount({sublistId:'item'}); x++) {
     var ItemID = recNew.getSublistValue({ sublistId: 'item', fieldId: 'item', line: x });
     // DO STUFF
}

【讨论】:

    【解决方案2】:

    尝试使用

    if(scriptContext.type == 'edit'){
        var recNew = scriptContext.newRecord
            recNew.getSublistValue(options)
    }
    

    【讨论】:

    • vVinceth,我刚刚按照 erictgrubaugh 的建议添加了一些代码,并添加了您的建议 - 现在收到一个错误,提示我缺少必需的参数。我在任何地方都没有提到 context.Type,因为我在编辑和创建(特别是创建)上都需要它。跟这有关系吗?
    • 感谢@vVinceth - 只有我现在收到错误“JS_EXCEPTION”。我会将整个脚本摘录和错误消息插入评论或问题中。我看不出我哪里出错了,这让我很困惑。
    • if (scriptContext.type == 'create') { var recNew = scriptContext.newRecord var itemCount = recNew.getLineCount({ sublistId: 'item' }); for (var i=0;i&lt;=itemCount;i++){ var ItemID = recNew.getSublistValue({ sublistId: 'item', fieldId: 'item', line: i }); var listIDs = ["6646", "17745", "17945", "21349"]; var filters = []; filters.push(new search.createFilter({ name: ItemID, operator: 'ANYOF', values: listIDs }) );
    • JS_EXCEPTION {userFacing=true, stack=[Ljava.lang.Object;@6f0fe897, requireType=define, requireMap={originalName=_$Y$, parentMap=null, isDefine=true, prefix= null, unnormalized=false, name=_$Y$, id=_$Y$, url=_$Y$.js}, cause={name=A1Error, notifyOff=false, message=Unable to Process 由于 A1,抱歉!},type=error.SuiteScriptError,message=由于 A1 无法处理,抱歉!toJSON=gen.api.rhino.v2x.error@6c1df477,requireModules=[Ljava.lang.Object;@368b2783,name= A1Error, notifyOff=false, toString=org.mozilla.javascript.InterpretedFunction@3ea6fd2b, id=}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    相关资源
    最近更新 更多