簡體   English   中英

Netsuite:SuiteScript 2.0 - 獲取最新的傳輸訂單

[英]Netsuite: SuiteScript 2.0 - get latest transfer order

我正在嘗試向 Netsuite 中的轉移訂單添加行。 我想將它們添加到在兩個特定位置之間創建的最新訂單上。

我正在嘗試這個:

    var s = search.create({
    type : search.Type.TRANSACTION,
    columns : ['internalid'],
    filters : [
              ["location","anyof","61"], 
              "AND", 
              ["transferlocation","anyof","62"], 
              "AND", 
              ["mainline","is","T"], 
              "AND", 
              ["trandate","on","today"]
              ]
        }); 
    
    var resultSet = s.run();
    var latestTO = resultSet[0];

但是當我嘗試向 latestTO 添加一行時出現此錯誤:

{"type":"error.SuiteScriptError","name":"UNEXPECTED_ERROR","message":null,"stack":["anonymous(N/recordImpl)","onAction(/SuiteScripts/TEST.js:67 )"],"cause":{"type":"內部錯誤","code":"UNEXPECTED_ERROR","details":null,"userEvent":null,"stackTrace"

如果我對最新轉移訂單的 internalID 進行“硬編碼”,我的腳本就可以工作。

有任何想法嗎?

如果您嘗試創建一個已保存的搜索來訪問轉移訂單,您可以使用SORT BY功能。 您可以使用“創建日期”按降序排序。

在此處輸入圖片說明

我建議您創建 Saved Search 並測試您的所有要求。 稍后您可以將此保存的搜索導出為腳本並在您的代碼中使用它。

為了獲得最新的轉移訂單值,您只需在結果選項卡中包含 InternalID 列。

columns : ['internalid']

稍后,您必須使用腳本執行此保存的搜索。

var s = search.create({
    type : search.Type.TRANSACTION,
    columns : ['internalid'],
    filters : [
              ["location","anyof","61"], 
              "AND", 
              ["transferlocation","anyof","62"], 
              "AND", 
              ["mainline","is","T"], 
              "AND", 
              ["trandate","on","today"]
              ]
        });


var searchResultCount = s.runPaged().count;
log.debug("s result count",searchResultCount);
s.run().each(function(result){
   // .run().each has a limit of 4,000 results
   return true;
});

var searchResult = s.run().getRange({start:0,end:999});

變量searchResultCount存儲結果總數

變量searchResult包含所有數據

為了獲得最近創建的 TO,只需獲取第一個值。

for(var j=0;j<1;j++) {
    var latestTO = searchResult[j].getValue({name:'internalid'});;
}

變量 latestTO 現在將具有 internalID。 使用它來加載記錄。

如果有任何問題,請在評論部分告訴我。

另一個問題是,如果我將我的變量 latestTO 硬編碼為:

var latestTO = '1337';

並進行更新:

                            var TO = record.load({
                            type: 'transferOrder', 
                            id: latestTO,
                            isDynamic: true
                            });

沒發生什么事。

但如果我這樣做:

                            var TO = record.load({
                            type: 'transferOrder', 
                            id: 1337,
                            isDynamic: true
                            });

有用...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM