2017-12-19 9 views
0

salesforceの機会に大量のデータをアップアップする必要があります。最初のバッチステップで使用されたバッチコミット。 Upsert Bulkの結果は、成功、ID、エラー、フィールドを持つUpsert Resultのリストです。mule:バッチ処理でバッチコミット後のSalesforce Upsertレコードの取り込み

この結果を反復すると、失敗したレコード(成功はfalse)をチェックするために、エラーと元のペイロードを電子メールに送信したかったのです。

  1. 失敗したupsertの結果を元のペイロードに関連付けるにはどうすればよいですか?
  2. バッチコミット後の入力ペイロードの出力は出力に保持されますか?

例:inputpayload:[REC1、REC2、REC3] UpsertResult [成功:trueの場合、成功:偽のエラー:無効なフィールド、成功:真]

私はREC2が失敗したと言って電子メールを送信したいですエラー無効フィールドのため。

ご協力いただければ幸いです。

答えて

0

salesforce opeationの結果の順序は、入力順と同じに維持されます。 バッチステップの前に、IDをキーとし、入力全体を値としてハッシュマップに入力を格納します。 バッチ・ステップの後、結果を反復処理し、結果のステータスがfalseの場合はIDを収集します。

これで、Idを渡すことで、失敗したIdのデータをハッシュマップから簡単に取得できます。 コードスニペット

def inputPayloadForReprocess = [];

のための再処理 ためのエラーレコードを構築するために//論理が(;)は、(i < payload.size; I = 0をint型私は++){
(payload.get(I).toString()が含まれている場合(」。成功 "= '偽')){// Salesforceの障害をチェック

inputPayloadForReprocess.add(message.getInvocationProperty("storePayload").get(i)); 
    break; 
} 

}

関連する問題