2016-04-07 30 views
0

我正在嘗試編寫一個腳本,用於防止在裝配體構建正在等待批准時從庫存中取出成品。這是我做過的第一個腳本,第一次使用Javascript,所以我很抱歉,如果我迄今爲止沒有任何意義(如果我聽起來很愚蠢)。該腳本檢查記錄是否正在創建或編輯的程序集版本,然後創建一個臨時字段「數量待定」。保存時,如果審批狀態爲「等待批准」,則腳本將待處理數量的值分配給要生成的數量中的值,然後將要生成的數量設置爲0,並提交記錄。如果批准狀態被批准,則「數量建立」設置爲待處理數量中存儲的值,並將待處理數量設置爲0,然後提交記錄。我再次道歉,如果這沒有意義。NetSuite:腳本程序集構建僅在批准時撤銷庫存

我嘗試使用腳本調試器,但我不認爲我的代碼工程。有人能指出我出錯的地方或我是否在正確的軌道上?

這是我到目前爲止。如果任何人做過這樣的事情,或者知道更好的方法,我全都耳熟能詳。

function commitIfApproved() { 
    var cR = nlapiGetOldRecord();  
    var recordId = cR.nlapiGetRecordID();  
    var recordType = cR.nlapiGetRecordType();  
    if (recordId == 'assemblybuild') {  
     if(recordType = 'create' || 'edit') {  
      var approvalstatus = cR.nlapiGetFieldValue('approval status');  
      var quantityPending = cR.nlapiGetFieldValue('quantity to build - pending');  
      if (approvalstatus == "Awaiting Approval") {  
       cR.nlapiSetFieldValue('quantity to build', '0');   
       cR.nlapiSetFieldValue('quantity to build - pending', quantityPending);  
       cR.nlapiSubmitRecord();  
       alert("Finished goods will not be taken from inventory until this assembly build is approved."); 
      } 
      if (approvalstatus == "Approved") {  
       cR.nlapiSetFieldValue('quantity to build', quantityPending);  
       cR.nlapiSetFieldValue('quantity to build - pending', '0');  
       cR.nlapiSubmitRecord();  
       alert("This assembly build has been approved. Finished goods have been subtracted from inventory."); 
      } 
     } 
    } 
} 

回答

0

我看到的第一個錯誤是與您的recordId比較。您需要更改與相比的if聲明,以便使用recordType而不是recordId

其次是您的recordIdrecordType作業中的方法調用。 nlapiGetRecordId()nlapiGetRecordType()是全局靜態方法。實例方法是getRecordType()getId()。所有致電setFieldValue的電話都是如此。有關記錄對象的API的詳細信息,請參閱標題爲nlobjRecord的幫助文章。

var recordId = nlapiGetRecordId(); // alternatively, cr.getId() var recordType = nlapiGetRecordType(); // alternatively, cr.getRecordType();

最後,你的域ID都是錯誤的。 'quantity to build'不是真實的ID。您需要在Eclipse IDE中查看記錄瀏覽器(幫助> NetSuite記錄瀏覽器)以查看組件生成記錄中的頁面,以查看所有字段及其各自的ID。

+0

非常感謝您發現我的錯誤並且非常清楚地解釋它!到目前爲止,我還沒有對我的代碼進行過任何調整,但是如果它有效,我會告訴你!出於某種原因,很難在NetSuite文章和幫助中找到好的資源。 – Jordan