Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netsuite SuiteScript 2.0:如何通过脚本更新外部ID_Netsuite_Suitescript_Suitescript2.0 - Fatal编程技术网

Netsuite SuiteScript 2.0:如何通过脚本更新外部ID

Netsuite SuiteScript 2.0:如何通过脚本更新外部ID,netsuite,suitescript,suitescript2.0,Netsuite,Suitescript,Suitescript2.0,我正在尝试使用SuiteScript2.0在NetSuite上创建一个脚本文件,以更新分类记录的外部Id。出于某种原因,NetSuite会更新除externalId之外的所有字段 我想创建这个脚本来更新ExternalId,因为我们的CSV模板大多使用ExternalId来查找主数据,如帐户和类。关键是,NetSuite不会在表单上显示ExternalID,并且通过UI创建的所有记录在此字段中没有任何信息。因此,这里的想法是安排一个脚本,根据其他一些字段自动填充此字段 这是我的密码 /** *

我正在尝试使用SuiteScript2.0在NetSuite上创建一个脚本文件,以更新分类记录的外部Id。出于某种原因,NetSuite会更新除externalId之外的所有字段

我想创建这个脚本来更新ExternalId,因为我们的CSV模板大多使用ExternalId来查找主数据,如帐户和类。关键是,NetSuite不会在表单上显示ExternalID,并且通过UI创建的所有记录在此字段中没有任何信息。因此,这里的想法是安排一个脚本,根据其他一些字段自动填充此字段

这是我的密码

/**
 * @NApiVersion 2.0
 * @NScriptType ScheduledScript
 */
define(['N/runtime','N/log','N/record','N/search'], function(runtime,log,record,search) {
    
    var qtyProjects=0;
    
    function execute(context) {
        try
        {
            log.debug('Script Started');
            
            /********** Update Project (Classes) External ID ***********/
            var classificationSearchObj = search.create({
                   type: "classification",
                   filters:
                   [    
                        ["externalid","is","@NONE@"]
                        
                   ],
                   columns:
                    [
                        search.createColumn({name: "name",label: "Name"}),
                        search.createColumn({name: "custrecord_proj_full_name",label: "FullName"}),
                        search.createColumn({name: "custrecord_proj_manager",label: "ProjectManager"}),
                        search.createColumn({name: "externalid",label: "Externalid"})
                    ]
                });
                                        
                var prj_srch = classificationSearchObj.run().each(processProject);
                    
                log.debug('Quantity of projects: ',qtyProjects);
                
                    
                
                log.debug('Script Finished');
        }
        catch(e)
        {
            log.debug('Error',e.message);
        }           
    }
    
     function processProject(result) {
        var number = result.getValue({name: "name"});
        var fullName = result.getValue({name: "custrecord_proj_full_name"});
        var externalid = result.getValue({name: "externalid"});
        
        qtyProjects++;
        
        log.debug('Update Number|Name|ExternalId: ',number + " | " + fullName + " | " + externalid);
     
     record.submitFields({
            "type":'classification',
            "id": result.id,
            "values": {
                "externalId": externalid,
                "custrecord_proj_full_name": "Test Ale 2",
            }
        });
        
        /*
        var project_id = project.save({
                                        enableSourcing: true,
                                        ignoreMandatoryFields: true
                                        }); 
        */
        
        //return true;
     }
    
    
    return {
        execute: execute
    };
});

您是否尝试过加载记录,设置外部id然后保存它?

您错放了ExtermalId的id,它没有大写字母“I”,如
externalid
。这应该行得通。
根据经验,本机字段id中没有大写字母

是的,我尝试加载记录并设置外部id,它对我有效。请使用记录浏览器查看字段的内部id(externalid)。

您的代码正在搜索没有externalid的类,并且正在使用搜索中找到的空值更新该类的externalid。您似乎错过了获取新外部ID的查找。

是的,我尝试加载和设置,但也没有成功:(是的,我尝试过,但也没有成功。project=record.load({type:'classification',id:result.id,isDynamic:true});project.setValue('externalid',externalid);var project_id=project.save({enableSourcing:true,ignoreMandatoryFields:true});谢谢您的回答。我试图更改为externalid,但仍然存在相同的问题。该字段未更新。:(请尝试使用此字段。)
    /**
    * @NApiVersion 2.0
    * @NScriptType ScheduledScript
    */
    define(['N/runtime','N/log','N/record','N/search'], function(runtime,log,record,search) {

    function execute(context) {
    var so = record.load({
                    type: record.Type.SALES_ORDER,
                    id: 12345
                });
      so.setValue('external','6789');
    so.save();
    return true;
    }       

    return {
    execute: execute
    }
    });