NetSuite - 供应商导入问题的多重补贴

时间:2016-06-12 14:30:56

标签: restlet netsuite suitescript

当我们将供应商大量导入NetSuite时,我们无法在映射中指定多个子公司,因此看起来存在限制。

由于我需要导入少数100个供应商,因此我不希望编辑供应商需要的多个供应商记录而不是子公司。

我们是否能够在代码中为此做任何聪明的事情,或者是否有人为此限制获得了解决方案?

由于

2 个答案:

答案 0 :(得分:2)

您尝试过两次导入。

第一个在Netsuite中创建供应商记录,如果是子公司,只需分配一个。然后将您的CSV文件编辑为以下内容:

Vendor A, Sub B
Vendor A, Sub C

然后执行更新的CSV导入。

答案 1 :(得分:1)

作为Rusty Shackles的替代品,可以在子公司的供应商记录中访问未记录的子列表。该子列表的名称为submachine。无论出于何种原因,必须使用record.selectLineItem,record.setCurrentLineItemValue和record.commitLineItem来访问它,而不是使用record.setLineItemValue API函数。

例如,我有一个批量更新脚本,用于在批量更新搜索中替换每个供应商的子公司。这是代码示例

function massUpdate(recType, recId) {
    var context = nlapiGetContext();
    var subToRemove = context.getSetting('SCRIPT', 'custscript_subsidiary_to_remove');
    var subToReplace = context.getSetting('SCRIPT', 'custscript_replacement_sub');
    var record = nlapiLoadRecord('vendor', recId);
    var lineCount = record.getLineItemCount('submachine');
    nlapiLogExecution('DEBUG', 'lineCount = ' + lineCount)
    if (lineCount > 0){
        for (var i = 1; i <= lineCount; i++){
            record.selectLineItem('submachine', i);
            var sub = record.getCurrentLineItemValue('submachine', 'subsidiary')
            nlapiLogExecution('DEBUG', i, sub);
            if (sub == subToRemove){
                record.setCurrentLineItemValue('submachine', 'subsidiary', subToReplace);
                record.commitLineItem('submachine');
                break;
            }
        }
    }
    nlapiSubmitRecord(record);
}

这样就可以编写自己的预定脚本来处理文件并更新子列表,无论出于何种原因,CSV上传都是不可用的。