簡體   English   中英

NetSuite:從彈出窗口/子記錄中檢索值

[英]NetSuite: Retrieve a value from a popup/subrecord

感謝您的點擊。

地址子選項卡中的客戶記錄中,我有一個包含地址的子列表。 每行都有一個編輯按鈕 (見第一張圖)

單擊編輯將彈出一個彈出窗口 window,其中包含一些在 Field Explorer 中看不到的字段。 這是我真正想從中檢索值的這些字段之一。 (見第二張圖)

看第三張圖,看看我要檢索的字段記錄是什么樣子的。

我嘗試load the customer record並使用lookupFields 但是我想要的字段不能僅僅通過客戶記錄訪問。 查看字段記錄,它表示它用於Address類型的記錄。 但它說這是記錄瀏覽器中的子記錄,我真的不知道如何訪問它。

我是否需要創建搜索才能找到它? 或者是使用 SuiteQL 的更好方法?

我對 NetSuite 還是有點陌生,還沒有真正使用過 SuiteQL。 因此,非常感謝任何幫助和指導。

地址子列表地址子列表

彈出窗口

彈出窗口

場地場地

有不同的選擇。

  1. 當您加載客戶記錄時,您應該加載地址子列表記錄以訪問該值。
define(['N/record'], function(record) {

  var myRecord = record.load({
    type: record.Type.CUSTOMER,
    id: INTERNALID_OF_YOUR_CUSTOMER
  })

  for (var line = 0; line < myRecord.getLineCount({}); line++) {
    var address = myRecord.getSublistSubrecord({ sublistId: 'addressbook', line: line, fieldId: 'addressbookaddress' })
    var accountNo = address.getValue({ fieldId: FIELDID_OF_YOUR_CUSTOM_FIELD })
  }

})

  1. 使用 N/search 模塊
define(['N/search'], function(search) {
  
  var mySearch = search.create({
    type: search.Type.CUSTOMER,
    columns: [
      'internalid',
      'entityid',
      'companyname',
      { join: 'Address', name: 'city' },
      { join: 'Address', name: FIELDID_OF_YOUR_CUSTOM_FIELD },
    ],
    filters: [ 'internalid', search.Operator.IS, INTERNALID_OF_YOUR_CUSTOMER ]
  })
  
  mySearch.run().each(function(result) {
    ...DO SOMETHING
    return true;
  })

})

您需要加載子記錄以獲取地址的值。您可以使用 API recordObj.getCurrentSublistSubrecord 這是我用來獲取值的代碼:-

1-首先在腳本中加載客戶記錄。

var customerObj = record.load({
             type: record.Type.CUSTOMER,
             id: customerRecordId,
             isDynamic:true
         });
 var addressSubrecord = customerObj.getCurrentSublistSubrecord({
         sublistId: 'addressbook',
         fieldId: 'addressbookaddress'
         });
        addressSubrecord.getValue({
             fieldId: 'addr1',
             value: linedata1.address1
         });

         addressSubrecord.getText({
             fieldId: 'country'
         });
         
         addressSubrecord.getValue({
             fieldId: 'addr2'
         });
         addressSubrecord.getValue({
             fieldId: 'zip'
         });

2-如果根據使用 API 的行放入for 循環並添加行。

var numLines = objRecord.getLineCount({
    sublistId: 'addressbook'
});

您可以使用他們的字段 ID 獲取所有數據。

暫無
暫無

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

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