如何使用NetSuite中的脚本检查特定客户的历史信息?

时间:2016-03-02 14:56:51

标签: scripting netsuite

我想在NetSuite中创建一个脚本,需要客户提供一些历史信息。事实上,我需要的信息是知道用户是否购买了物品。 为此,我需要以某种方式访问​​该客户的历史。

巴勃罗。

2 个答案:

答案 0 :(得分:0)

您可以将已保存的搜索nlapiLoadSearchnlapiCreateSearch用于invoices,按客户过滤,还可以报告发票项目(或仅报告特定项目)。使用nlapiCreateSearch可能很难使用,因此我建议您使用用户界面构建已保存的搜索,然后使用nlapiLoadSeach(type, id)

加载

这将为您提供一系列购买物品的发票/客户。

答案 1 :(得分:0)

尝试包含此功能并传递客户的internalID和item internalID

function hasPurchasedBefore(customerInternalID, itemInternalID){
    var results = [];
    var filters = [];
    var columns = [];

    filters.push(new nlobjSearchFilter('internalidnumber', 'customermain', 'equalto', [customerInternalID]))
    filters.push(new nlobjSearchFilter('anylineitem', null, 'anyof', [itemInternalID]));
    filters.push(new nlobjSearchFilter('type', null, 'anyof', ['CustInvc']));
    columns.push(new nlobjSearchColumn('internalid', null, 'GROUP'));

    results = nlapiSearchRecord('transaction', null, filters, columns);

    if (results && results.length){
        return true;
    }
    return false;
}

示例:

var record = nlapiLoadRecord(nlapiGetRecordType(),nlapiGetRecordId());
var customerInternalID = record.getFieldValue('entity');
var itemInternalID = record.getLineItemValue('item', 'item', 1); //Gets line 1 item Internal ID

if( hasPurchasedBefore(customerInternalID, itemInternalID) ) {
    //Has bought something before
}