javascript Suitescript -在脚本中使用动态创建的“fieldId”

2lpgd968  于 2023-05-27  发布在  Java
关注(0)|答案(1)|浏览(198)

我想根据结果动态创建字段ID。我有一个非常基本的脚本来展示我正在尝试做的事情。它仍然不检索信息。我尝试使用+而不是concat(''custitem '+ testtext +''')。当我记录字段名称时-它正确地显示'custitemdoe_jane'。
您可以看到脚本以两种不同的方式使用公式。这能做到吗??

/**
 * This script looks for RTAs - updates the purchase Order and the CT record
 * 
 * @NApiVersion 2.x
 * @NScriptType ScheduledScript
 * @NModuleScope SameAccount
 */
 
define(['N/file', 'N/search', 'N/record', 'N/format', 'N/email'],
        
function(file, search, record, format, email) {
    
    function execute(scriptContext) {
    var texty = '\'custitem';
    var testtext = 'doe_jane';
    var texty3 = '\'';
    var fieldname = texty.concat(testtext);
    var fieldname = fieldname.concat(texty3);
    
    log.debug('fieldname', fieldname);

//这里的最终结果是带引号的'custitemdoe_jane'

var itemfix = record.load({
        type: record.Type.INVENTORY_ITEM, 
        id: 488, 
        isDynamic: false
        });
            
        var values = itemfix.getText({fieldId: fieldname});   
        var values2 = itemfix.getValue({fieldId: fieldname});    
        log.debug('values', values);
        log.debug('values', values2);

       var values3 = itemfix.getText({fieldId: fieldname.concat(texty3)});   
        var values4 = itemfix.getValue({fieldId: fieldname.concat(texty3)});    
        log.debug('values', values3);
        log.debug('values', values4);

//以上都是空的

itemfix.save({
            enableSourcing: true
        });             
        }
        
return {execute: execute};
    
});
von4xj4u

von4xj4u1#

您的主要问题是字段名称中可能没有引号。所以你需要有custitemdoe_jane而不是'custitemdoe_jane'
如果你知道你在做什么(我没有得到你的代码的目的),根据在var testtext中更改的值生成fieldname,你至少需要:
而不是:

var texty = '\'custitem';
var testtext = 'doe_jane';
var texty3 = '\'';
var fieldname = texty.concat(testtext);
var fieldname = fieldname.concat(texty3);

有这个(这些是最小的修改,为了清楚起见):

var texty = 'custitem';
var testtext = 'doe_jane';
var fieldname = texty + testtext;

这样,您将拥有'custitemdoe_jane'作为字段名称,这至少是一个有效的名称。

相关问题