Loading
設定並維護您的 Salesforce 組織
目錄
選取篩選

          沒有結果
          沒有結果
          以下是搜尋小祕訣

          檢查關鍵字的拼字。
          使用較常見的搜尋字詞。
          選取較少篩選條件以擴大您的搜尋。

          搜尋所有 Salesforce 說明
          針對新地區設定格式更新整合

          針對新地區設定格式更新整合

          如果您將外部系統的資料整合至 Salesforce,或如果您將 Salesforce 資料傳送給外部第三方,請盡可能在相關程式碼中使用地區設定中立格式。當地區設定格式變更時,請檢閱處理受影響格式的程式碼。

          必要版本

          提供版本:Salesforce Classic 與 Lightning Experience
          提供版本:所有版本

          整合點的格式有許多種,包括對 Salesforce 進行和呼叫的 API。另請檢閱流程,其中包括將資料匯出至檔案 (例如逗號分隔值 (CSV) 檔案),以及將檔案中的資料匯入至 Salesforce。

          當使用者變更地區設定時,地址、貨幣、日期、日期時間、整數、名稱與時間格式可能會變更。在可能的情況下,請使用標準地區設定中立方法來處理這些類型的資料。若無標準方法,請更新程式碼以容納新的格式。

          針對從 Oracle 的 Java Development Kit (JDK) 格式移轉至 International Components for Unicode (ICU) 地區設定格式,請確認處理貨幣、日期、日期時間、整數或時間資料的整合。

          如果第三方以程式設計方式呼叫 Salesforce,請與該廠商在地區設定格式變更時合作,以測試並更新流程。若要搜尋您的 Salesforce 程式碼,請下載中繼資料。然後使用指令行介面,例如 Salesforce CLI

          整合範例:匯入日期

          讓我們看一下簡單的範例,瞭解地區設定格式的變更如何影響整合。

          在此範例中,我們有一個自訂物件 (「會議」),並且有兩個額外欄位:start_date_timeend_date_time。為了填入「會議」物件, Apex 類別使用外部 API 擷取資料。類別也可以從 CSV 檔案擷取資料,但在此範例中,我們使用外部 API 呼叫。

          外部 API 呼叫會傳回包含這些資訊的 JSON 物件。日期時間資料會使用英文 (美國) [en_US] 地區設定的 JDK 格式進行格式化處理。

          {
             "conferences": [{
                 "name": "conference1",
                 "start_date_time": "10/20/2021 10:00 AM",
                 "end_date_time": "10/22/2021 05:00 PM"
             }, {
                 "name": "conference2",
                 "start_date_time": "11/21/2021 11:00 AM",
                 "end_date_time": "11/24/2021 05:00 PM"
             }]
          }

          此 Apex 程式碼會插入會議記錄。

          // Mocking the sample response of API call
          String jsonResponse = '{"conferences": [{"name":"conference1", "start_date_time":"10/20/2021 10:00 AM", "end_date_time":"10/22/2021 5:00 PM"}, {"name":"conference2", "start_date_time":"11/21/2021 11:00 AM", "end_date_time":"11/24/2021 05:00 PM"}]}';
           
          Map<String, Object> results = (Map<String, Object>) JSON.deserializeUntyped(jsonResponse);
           
          List<Object> conferences = (List<Object>) results.get('conferences');
           
          for(Object conference: conferences) {
            Map<String, Object> conferenceDetails = (Map<String, Object>)conference;
           
            //Initialize object
            Conference__c confObject = new Conference__c (
            name = String.valueof(conferenceDetails.get('name')),
            start_date_time__c = datetime.parse(String.valueof(conferenceDetails.get('start_date_time'))),
            end_date_time__c = datetime.parse(String.valueof(conferenceDetails.get('end_date_time')))
            );
             
            //insert object                       
            insert confObject;
          }

          datetime.parse() 方法使用執行程式碼的使用者個人地區設定的日期時間格式。

          讓我們假設使用者的個人地區設定是英文 (美國) [en_US]。該地區設定的 JDK 與 ICU 日期時間格式不同。

          • es_US 的 JDK 簡短日期時間格式:10/20/2021 上午 10:00
          • es_US 的 ICU 簡短日期時間格式:10/20/2021,上午 10:00

          當組織使用 JDK 地區設定格式時,此程式碼會成功執行。啟用 ICU 地區設定格式時,此程式碼會 ⁇ 出剖析錯誤,因為 start_date_timeend_date_time 值缺少預期的逗號。

          此問題也可能當儲存在 Salesforce 中的資料使用地區設定特定格式傳遞至外部系統時發生,例如使用 POST 呼叫時。如同上述範例所示,執行程式碼的使用者個人地區設定可決定資料的格式。

          補救問題

          若要避免這些問題,請在接收、傳送及處理資料時使用地區設定中立格式。

          如果您發現從外部系統接收之資料發生問題,請連絡寄件者以更新來源資料的格式。如果您無法連絡寄件者,請先更新程式碼,以將接收的資料轉換成地區設定中立格式,然後再進行處理。

           
          正在載入
          Salesforce Help | Article