• 文字サイズ変更
  • S
  • M
  • L

FAQのNo.から検索


  • No : 35018
  • 公開日時 : 2023/12/21 07:26
  • 印刷
DSServistaDSCloud

【DataSpider】Salesforceアダプタのデータ書き込み(UPSERT)処理で、書き込みに失敗したデータがあっても例外が検知されませんでした。原因と対処方法について教えてください

Salesforceアダプタのデータ書き込み(UPSERT)処理で、
書き込み時にエラーとなる見込みのデータを書き込んだところ、
実行ログには以下が出力されていましたが、例外監視処理では例外として検知されませんでした。
 
原因と対処方法について教えてください。
 
---
[(失敗した件数)]件のデータ書き込み(UPSERT)できない入力データがありました。
---
カテゴリー : 

回答

Salesforce への書き込み時にデータ単位のエラーが発生した場合、
データ書き込み(UPSERT)処理のヘルプにおける下記記載の通り、
例外監視処理では検知されません。
 
---
本オペレーションでは、データベースアダプタなどとは異なり、
エラー発生時にロールバックすることができません。
 
そのため、正常データは更新し、エラーデータは更新せず
その情報を WARN レベルのログとして出力します。
 
よって、データ単位でのエラー(制約違反や設定値不正など)が存在する場合、
スクリプト内で例外監視処理によるエラーの検出を行なうことはできません。
 
データ単位でのエラー情報を処理の中でデータとして使用したい場合、
[更新結果取得有無] に [取得する] を選択し、後続の処理で結果データを
エラーの検出などのハンドリングに使用してください。
---
 
■ヘルプ
 ▼[アダプタ] - [クラウド] - [Salesforce] - [データ書き込み(UPSERT)]
  ・DataSpider Servista
 
  ・DataSpider Cloud
 
■想定される対処方法
 一例となりますが、以下のような方法が想定されます。
 
 ▼手順
  1.データ書き込み(UPSERT)処理の [更新結果取得有無] にて、[取得する] を選択する
 
  2.データ書き込み(UPSERT)処理の出力スキーマ中の
   [upsert_result_is_success] を、スクリプト変数にマッピングする
 
  3.条件分岐処理で、「2」で設定されたスクリプト変数の値が
   「false」の場合は例外通知処理に分岐させる   等
 
 ▼補足
  Salesforceアダプタの下記処理も、データ書き込み(UPSERT)処理と同様、
  データ単位のエラーが発生しても例外監視処理では検知されません。
 
  ---
  ・データ書き込み(INSERT)処理
  ・データ書き込み(UPDATE)処理
  ・データ書き込み(DELETE)処理
  ---
 
  上記の内容については、各機能のヘルプの [注意事項] をご参照ください。
 
■ヘルプ
 ▼[アダプタ] - [クラウド] - [Salesforce] - [データ書き込み(INSERT)]
  ・DataSpider Servista
 
  ・DataSpider Cloud
 
 ▼[アダプタ] - [クラウド] - [Salesforce] - [データ書き込み(UPDATE)]
  ・DataSpider Servista
 
  ・DataSpider Cloud
 
 ▼[アダプタ] - [クラウド] - [Salesforce] - [データ書き込み(DELETE)]
  ・DataSpider Servista
 
  ・DataSpider Cloud
目的別で検索
仕様確認