Q&A

回答の並べ替え:
投稿新規に質問を投稿する

「データ更新を一括実行する」で「登録されたIDを次のセルにセットする」にはどのようにすればよいでしょうか。

moriya moriya

2019-10-31 14:22

「データ更新を一括実行する」アクションの中で「テーブルに登録する」アクションを用いて、3000行程度のデータを登録しています。

その場合、「登録されたIDを次のセルにセットする」が指定しているセルに設定されません。

ちなみに、「データ更新を一括実行する」アクションを外すと、「登録されたIDを次のセルにセットする」が指定しているセルに設定されます。

「データ更新を一括実行する」アクションを外すと、データー登録処理が遅すぎて使い物になりません。

高速処理が可能で、データ登録された項目のIDを指定したセルに設定できる、アクションの組み合わせはないでしょうか。

ご教授いただければ幸いです。

Yexiongmao Yexiongmao
こんにちは。

「データ更新を一括実行する」アクションは、トランザクションの発生からコミットまでやってくれますが、トランザクション中(コミット前)のデータをREADできない仕様は仕方ないと思います。
CELFテーブルのIDはキーとして使用することはできますが、CELFが勝手に割り当てるため、必ずしも使い勝手の良いものではありません。
IDを登録・更新のキーとして使うのを諦めるなら、必要に応じてキーとなる項目(XXコード、XX番号等)を設定するわけですが、
CELFではRDBMSレベルで管理できるユニークキーを設定できないので、キーが常にユニークであるよう開発者が管理しなくてはなりません。
面倒ですが仕方ありません。
対象のテーブルに更新のキーとなる項目が無いのなら、キー項目を追加するのが良策と思います。
moriya moriya
新日本コンピュータマネジメント株式会社様

ご回答ありがとうございます。
データ登録アクションとは別にIDのみ取得するアクションを別に用意して対処しました。
新日本コンピュータマネジメント株式会社 新日本コンピュータマネジメント株式会社 パートナー
こんにちは。

「高速処理」になるかのお答えはできないのですが、「登録されたIDを次のセルにセットする」で値が取れないという事ですが、
「データ更新を一括実行する」の「?」に記述がありますが、順不同で処理されるとありまして、最後に纏めて実行している様です。

その為、登録されたIDを使った後続の「データ登録・更新」はできない様です。

IDがどうしても必要という事であれば、ID取得する「データ登録」だけを「データ更新を一括実行する」の外(前)で実行した上で、後続処理を行う事になります。

全てのデータ登録をトランザクションにて一括処理したい場合は、
テーブルのIDを使わずに、ユニークIDを「データ更新を一括実行する」の前処理で実行してセルにセットした上で、「データ更新を一括実行する」を行う方法がよろしいかと思われます。
メールコンタクトをとる