コントリビュータでのデータ保存時の処理内容について
回答
[コントリビュータ] にてデータ保存した際、そのフォームの内容が元帳に反映されるだけでなく、提出パッケージ定義でサーバ側計算方法として指定しているフォームリスト(※1)に含まれるすべてのフォームで定義された計算がフォームの並び順に従って実行され、その結果が元帳に反映されます。
(※1) パッケージでのデータ保存時の計算処理内容は、デフォルトでは主フォームリストにより規定されますが、それに加えて、あるいはそれに代えて、別のフォームリスト(サーバ側計算処理用フォームリスト)を指定することができます。
<具体例>
-
サーバ側計算方法に主フォームリストを指定
-
主フォームリストに フォーム A , B ,C の 3 フォームあり(各フォームに計算処理及びトリガ設定)
-
フォーム B でデータ入力し、保存
上記を前提とした場合の処理内容は以下の通りです。
(fusion_place >= 12.2 )
-
入力フォームの保存処理
-
フォーム B の計算処理 + フォーム B のトリガ実行 (※2)
-
-
サーバ側計算処理用フォームリストの処理 (※3)
-
フォーム A の計算処理 +フォーム A のトリガ実行
-
フォーム B の計算処理 +フォーム B のトリガ実行
-
フォーム C の計算処理 +フォーム C のトリガ実行
-
( fusion_place <= 12.1 )
-
入力フォームの保存処理
-
フォーム B の計算処理(※2)
-
-
サーバ側計算処理用フォームリストの処理
-
フォーム A の計算処理 +フォーム A のトリガ実行
-
フォーム B の計算処理 +フォーム B のトリガ実行
-
フォーム 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 のトリガに実行したい処理を並び順で含めることで、代替可能となりました。
(ご参考)