簡體   English   中英

如何使用SuiteScript 2.0在客戶上設置地址

[英]How to set an address on customer using SuiteScript 2.0

我正在嘗試在客戶記錄上設置地址。 我已經了解到該地址是客戶子列表​​的子記錄,我相信我能夠在該子記錄上設置字段,但是我無法保存所做的更改。 如何使用SuiteScript 2.0在客戶上設置地址信息?

當前代碼:

customer.selectNewLine({
  sublistId: 'addressbook'
});

var addressSubrecord = customer.getCurrentSublistSubrecord({
  sublistId: 'addressbook',
  fieldId: 'addressbookaddress'
});

subrecordAddressDetail.setValue({
  fieldId: 'addr1',
  value: 'Test Street'
});

subrecordAddressDetail.setValue({
    fieldId: 'country',
    value: 'US'
});

customer.commitLine({
  sublistId: 'addressbook'
});

我也曾嘗試在.commitList之后添加customer.save() ,但是在嘗試這樣做時,我收到錯誤Record has changed

我缺少的部分是,您需要保存父記錄才能使對子列表的子記錄的任何更改生效。 我無法保存該父記錄,因為我已經對該記錄進行了更改並先前保存了它們,從而導致Record has already changed error

通常,可以通過以下方式將地址添加到客戶記錄中:

  1. addressbook子列表中選擇一行。
  2. 檢索當前所選行的地址子記錄。
  3. 更新子記錄。
  4. 提交addressbook簿子列表中的選定行。
  5. 保存父記錄。

例如,這將更新給定客戶的第一個地址,或者如果尚不存在則創建它:

function updateAddress(customer, address) {
    var currentAddressCount = customer.getLineCount({
      'sublistId': 'addressbook'
    });

    if (currentAddressCount === 0){
      customer.selectNewLine({
         sublistId: 'addressbook'
       });
    } else {
      customer.selectLine({
        sublistId: 'addressbook',
        line: 0
      });     
    } 

    var addressSubrecord = customer.getCurrentSublistSubrecord({
      sublistId: 'addressbook',
      fieldId: 'addressbookaddress'
    });

    // Set all required values here.
    addressSubrecord.setValue({
        fieldId: 'addr1',
        value: address.line_one
    })

    customer.commitLine({
       sublistId: 'addressbook'
    });
    customer.save()
  }

我認為您需要將地址視為適當的記錄。 因此,在檢索它之后,設置其值,然后分別提交。 遵循以下原則:

customer.selectNewLine({
    sublistId: 'addressbook'
});

var addressSubrecord = customer.getCurrentSublistSubrecord({
    sublistId: 'addressbook',
    fieldId: 'addressbookaddress'
});

addressSubrecord.setValue({
    fieldId: 'addr1',
    value: 'Test Street'
});

addressSubrecord.setValue({
    fieldId: 'country',
    value: 'US'
});

addressSubrecord.save()

customer.commitLine({ //probably not necessary since address is already updated
    sublistId: 'addressbook' 
});

暫無
暫無

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

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