「1回の操作で明細行ごとの更新と、レコード全体(ヘッダー)に対する処理(メール送信やステータス更新など)をまとめて行いたい」という場合の代替設定手順について解説します。
A. システムの仕様上、1つの自動処理で「レコード単位」と「明細単位」の両方を同時に選択・実行する機能はありません。
楽楽販売の自動処理には「レコード単位」と「明細単位」の2種類の実行単位があり、作成時にどちらか一方を選択します。
実行単位が「明細単位」の自動処理を実行すると、対象レコードに含まれる明細行の数だけ同じ処理が繰り返し実行されます。
そのため、メール送信やヘッダー更新などの「1レコードにつき1回だけ実行したい処理」を明細単位の自動処理にそのまま組み込むと、明細行の数だけ重複して実行(例:明細が5行あればメールが5通送信される)されてしまいます。
【代替案】
自動処理の実行単位を「明細単位」で作成し、「条件分岐パーツ」で特定の1行(例:最終行や1行目)のタイミングのみ判定を通すことで、実質的にレコード単位で行いたい処理を1回だけ走らせることが可能です。
以下は、「明細行数」と「行番号」が一致するタイミング(=最終行の処理時)のみ、
条件分岐のYESルートでレコード単位の処理を実行させる設定例です。
対象DBの項目設定にて、レコード内の総明細行数をカウントする項目を用意します。
※既に作成済みの場合はステップ2へ進んでください。
数値計算明細行数明細項目のレコード数自動処理設定にて、実行単位に「明細単位」を選択して自動処理を新規作成します。
明細単位(※作成後に変更することはできません)自動処理の中に「条件分岐」パーツを追加し、処理中の行が最終行かどうかを判定する条件を設定します。
【選択明細】行番号等しい【選択レコード】明細行数(ステップ1で作成した項目)※1行目だけで実行させたい場合は、右辺を「固定値:1」と設定します。
条件分岐パーツのYESルート(条件に合致する場合・下方向)にのみ、1回だけ実行させたいレコード単位の処理(「メール送信パーツ」や「レコード更新パーツ(ステータスに関する項目の更新)」など)を配置します。
NOルート(条件に合致しない場合・右方向)には何も配置しないか、明細単位で毎回行いたい通常処理のみを配置します。
このロジックを活用することで、明細単位の自動処理の中でも「1レコードにつき1回だけ実行したい処理」を安全かつ確実に組み込むことができます。
(記事ID:2978)