Excel-Link からサーバー側処理を実行する(fusion_place >= 14.1)
フォームとスクリプトによる計算処理を Excel から依頼して (サーバー側で)実行できるようにする機能です。
設定にはマクロ記述を要さず、処理条件を記述した Excel シートをもとに容易に設定可能です。
1.処理の実行方法
以下の2つの方法でサーバー側計算処理を実行できます。
方法 | 処理内容の指示方法 |
---|---|
a. 反映、取得と反映の実行後、サーバー側計算処理を実行します。 |
サーバー側計算処理を実行したいシートごとに、そのシート名 +「_FPCTL1」という名の処理内容指示シートを設けます。 |
b. 反映、取得と反映とは関係なく、マクロからプロシージャを呼ぶことでサーバー側計算処理を実行します。 |
任意のシートの任意のセルを起点として処理内容指示テーブルを記述できます。 |
2.処理内容指示テーブル
処理内容指示テーブルは、特定のシート上の矩形のセル範囲である必要があります。
処理内容指示テーブルの1行目はヘッダー行とし、各列の内容を示すヘッダーを指定します。2行目以降は詳細行とし、処理実行指示を記述します。
処理内容指示テーブルの記述内容は以下の通りです。
項目 | 項目数 | ヘッダー | 詳細行の設定内容 |
---|---|---|---|
データ有無指定 |
1 |
X |
使用する行には任意の文字列を記します。 |
タイプ |
1 |
TYPE |
フォームの場合、 |
アプリケーション |
1 |
APPL |
アプリケーションのラベル |
アクション |
1 |
ACTION |
フォームまたはスクリプトのラベル |
元帳版 |
1 |
EDITION |
元帳版のキー(WORKSPACE等) |
業務責任単位 |
1 |
PARTICIPANT |
計算処理に使用する業務責任単位のラベル |
パラメータ値 |
n |
「P:」+ディメンションラベル |
フォーム/スクリプトに与えるパラメーター値(メンバーラベル)をディメンションごとに指定します。 |
タイプ~パラメーター値の列は、横軸方向にも繰り返すことができます。
「TYPE」列は横方向に並べられた表の区切りを示します。
例えば、A1セルに「X」を指定した上で、A2セルに「TYPE」を指定、A3 セルには「APPL」を、と言う具合に列方向右向きに項目を並べ、さらにその右横に「TYPE」と記述することで別の表を始めることができます。
「TYPE」列以外の項目の並び順は順不同です。 処理内容指示テーブル内の大文字と小文字の区別は無視され、文字列前後の空白も無視されます。
3.処理の実行内容詳細
(a)反映、取得と反映の実行後に、サーバー側計算処理を自動実行させる場合
-
「データ反映」「データ取得・反映」処理を実行したときに、指定されたフォーム/スクリプトの処理が実行されます。
「一括処理/データ反映」、「一括処理/データ取得・反映」でも同様です。 -
対応する処理内容指示シートがあるシートについてのみ当処理を実行します。
-
処理順序は以下の通りです。
(1) 通常通りのデータ反映又はデータ取得・反映処理を実行
(2) 処理内容指示テーブルに従ってフォーム/スクリプトによるサーバー側計算処理を実行
(3) 処理後のデータを取得して Excel シート上のデータを最新化
(4) コントリビュータから起動されたエクセルファイルについては(指定があれば)パッケージ再計算処理を実行
処理後には処理内容指示テーブルに記載されたフォーム/スクリプト実行後の元帳データがエクセルシートに表示されます。
なお、処理内容指示テーブルが存在したことによって付け加えられる処理は (2) と (3) となります。 -
サーバー側の計算処理は、処理内容指示テーブルの内容を横方向優先で読み取り、実行します。
複数の表がある場合は、横方向にすべての表の最初の詳細行の処理を実行し、その後、次の行の処理へ移ります。 -
途中でエラー/警告があった場合はそこで処理を中断し、メッセージを表示します。