コントリビュータでのデータ保存時の処理内容について

ワークフロー

質問

[コントリビュータ] でデータ保存した際の処理内容について教えてください。

回答

[コントリビュータ] にてデータ保存した際、そのフォームの内容が元帳に反映されるだけでなく、提出パッケージ定義でサーバ側計算方法として指定しているフォームリスト(※1)に含まれるすべてのフォームで定義された計算がフォームの並び順に従って実行され、その結果が元帳に反映されます。

(※1) パッケージでのデータ保存時の計算処理内容は、デフォルトでは主フォームリストにより規定されますが、それに加えて、あるいはそれに代えて、別のフォームリスト(サーバ側計算処理用フォームリスト)を指定することができます。

<具体例>

  • サーバ側計算方法に主フォームリストを指定

  • 主フォームリストに フォーム A , B ,C の 3 フォームあり(各フォームに計算処理及びトリガ設定)

  • フォーム B でデータ入力し、保存

上記を前提とした場合の処理内容は以下の通りです。

(fusion_place >= 12.2 )

  1. 入力フォームの保存処理

    1. フォーム B の計算処理 + フォーム B のトリガ実行 (※2)

  2. サーバ側計算処理用フォームリストの処理 (※3)

    1. フォーム A の計算処理 +フォーム A のトリガ実行

    2. フォーム B の計算処理 +フォーム B のトリガ実行

    3. フォーム C の計算処理 +フォーム C のトリガ実行

( fusion_place <= 12.1 )

  1. 入力フォームの保存処理

    1. フォーム B の計算処理(※2)

  2. サーバ側計算処理用フォームリストの処理

    1. フォーム A の計算処理 +フォーム A のトリガ実行

    2. フォーム B の計算処理 +フォーム B のトリガ実行

    3. フォーム C の計算処理 +フォーム C のトリガ実行

(※2) fusion_place 12.2 での不具合対応により、1.a の処理について、フォーム B のトリガ実行 処理を追加しました。
通常、1.a にてフォーム B のトリガ実行がなくても、2.b でフォーム B がトリガ処理されるため、問題は生じません。
しかしながら、設定によっては、1.a の処理時と 2.b の処理時のパラメータ値が異なるケースがあり、その場合、起点フォームである1.a の情報でトリガ処理されない可能性に対応したものです。

(※3) フォームBの保存結果をもとにサーバ側計算処理用フォームリスト内のフォームの並び順に計算処理が実行されます。当該処理は、fusion_place 12.2 での不具合対応により、フォーム B のトリガに実行したい処理を並び順で含めることで、代替可能となりました。

(ご参考)