2016-03-02 77 views
0

我想在NetSuite中創建一個需要客戶一些歷史信息的腳本。事實上,我需要的信息是知道用戶是否購買了物品。 爲此,我需要以某種方式訪問​​此客戶的歷史記錄。如何使用NetSuite中的腳本檢查特定客戶的歷史信息?

Pablo。

+0

如果您恰當地使用在客戶記錄_Stage_字段,然後,有一個客戶的任何記錄_Customer_的_Stage_應該購買了一些東西。如果你沒有這樣使用Stage字段,那麼這看起來不像是一個難以建立的搜索。 您對「用戶購買物品」的定義是什麼?是否爲此客戶提供銷售訂單?發票?現金出售? – erictgrubaugh

回答

0

嘗試加入這個功能並通過客戶的internalID和項目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 
} 
+0

嗨阿道夫感謝的腳本,它沒有實際工作。它始終得到客戶從未購買過物品。順便說一下,我可以從哪裏獲得所有要搜索的實體?像客戶,銷售,交易等?再次感謝好友 – Pablo

+0

以下是類型,您可以將它們添加到您的過濾器中:http://blog.prolecto.com/2014/01/03/netsuite-searchfilter-internal-transaction-type-codes/ –

+0

謝謝阿道夫..我會檢查並讓你知道。 – Pablo

0

您可以使用已保存的搜索nlapiLoadSearchnlapiCreateSearch代替invoices,由客戶過濾,還可以報告發票項目(或只是特定項目)。使用nlapiCreateSearch可能會非常棘手使用,所以我建議建立使用UI保存的搜索,然後使用nlapiLoadSeach(type, id)

這會給你發票/購買了你的產品的客戶的數組加載它。

相關問題