業務プロセス管理機能とアクセス制御

設計者 管理者

概要

業務プロセス管理機能における各種処理における元帳へのデータ書き込み(データ反映)では、提出パッケージ定義で指定されているフォームリストに含まれるフォームで書き込み可能な元帳セル範囲のデータ(※1)のみが書き込み対象となります。

その際の書き込み可否の判定には、基本的には、元帳アクセスコントロール機能及びフォームにて設定する入力制限が適用されますが、例外として、これらが適用されない場合及び特殊な方法で適用される場合があります。具体的には下表の通りです。

(○:適用 -:非適用)

アクセス制限機能 元帳アクセスコントロール機能 フォームによる入力制限

業務プロセス管理機能における各種処理

元帳マスク
増減科目表

アクセス許可タイプ

元帳のオープン/クローズ

ローカル元帳マスク

セルの保護(※2)

1. 提出パッケージの受付時と再取込時の反映処理

○(※4)

○ or -(※5)

2. 共有作業版へのデータ公開処理

○(※4)

○ or -(※5)

3. 共有作業版のデータ取り込み(※3)での既存データ反映処理

○(※4)

(※1)フォームで表示対象となる元帳セル範囲は、表示時に指定されたパラメータ値に依存します。従って、フォームで書き込み可能な元帳セル範囲もパラメータ値に依存して決まります。ここでの書き込み可否判定において、パラメータ値は、「業務プロセス定義」の説明中の「提出パッケージのパラメータ値」に記述されているルールに従って与えられるものとします。

(※2)セルの保護は、フル機能版フォームの帳票書式列仕様・行仕様セル仕様のいずれかで指定することができます。いずれで指定した場合もここでの効果は同じです。

(※3)共有作業版のデータ取り込み処理では、最初のステップとして、業務プロセスに参加するすべての業務責任単位のワークスペースの元帳版を、共有作業版と同内容の元帳版で置換した上で、二番目のステップとして、置換前のワークスペースの元帳版の内容のうち提出パッケージフォームで元帳に書き込み可能なセルのデータを、置換後の元帳版に書き込みます。ここで記述している「既存データ反映処理」とは、その二番目のステップを意味します。

(※4)書き込み先元帳版があたかも提出元ワークスペースの元帳版であるかのように見なした上で(すなわち、書き込み先元帳版の元帳版キーが提出元ワークスペースの元帳版のキーと同じであるかのように見なして)、提出元業務責任単位の権限に基づき、書き込みアクセスの可否を判定します。従って、提出元業務責任単位に、データ書き込み先の元帳版に対するアクセス権限を与える与える必要はありません。

(※5)表中1, 2の処理では、元帳のオープン/クローズ状態を無視することも可能です(すなわち、期間にもとづく書き込み制限を行わない)。業務プロセス定義の項目「提出パッケージデータの反映時、元帳オープン/クローズ表を適用しない」を ON にすれば、そのようになります(生成済みの業務プロセスに変更を適用するのは業務定義最新化を実行下さい)。
これは、提出パッケージの受付や共有作業版へのデータ公開においては、その業務プロセスでの収集対象データである限り、締め切り済の過去のデータも書き込み対象とした方が運用者の意図に沿うという考えにもとづいています。例えば、X1 年度の予算編成プロセスを終了し予算シナリオにおいて X1 年度をクローズした後に予算編成プロセスのデータを共有作業版に公開するといった運用が想定されます。その際、元帳のオープン/クローズ状態を無視しないとするならば、(X1 年度の予算はクローズされているので)、予算データは共有作業版に書き込まれない(すなわち、公開出来ない)ということになります。

業務プロセスにて使用される元帳版とアクセス制御

ワークスペースに関する説明で述べたように、業務プロセスに参加する業務責任単位ごとに元帳版が生成されます(「業務プロセスの元帳版」をご参照下さい)。これらの元帳版に対するアクセスを制御するために、アクセス許可タイプにおける領域定義式には、元帳版に関する条件を含めて記述することができます。ここでは、業務プロセス機能を使用する場合の典型的なアクセス制御ニーズを対象に、領域定義式の記述方法を解説します。

自業務責任単位の版をアクセス可能とする

元帳版オブジェクトの owner_label プロパティと、関数 @participant_label を用います。

  Editions!@CUR.owner_label = @participant_label
式の要素 意味

Editions!@CUR

現在アクセスしている元帳版

Editions!@CUR.owner_label

上記元帳版の所有者である業務責任単位のラベル

左辺と右辺の値が等しいことを検査する

@participant_label

データの読み取り/書き込みを行っている業務責任単位自身のラベル。

自業務責任単位が提出あるいは承認した提出パッケージをアクセス可能とする

元帳版オブジェクトの is_submission プロパティを用います。

  Editions!@CUR.is_submission
式の要素 意味

Editions!@CUR

現在アクセスしている元帳版

Editions!@CUR.is_submission

上記元帳版が提出パッケージを表すものであるとき、True を、以外の時、False を返す

なお、提出パッケージの元帳版に関しては、自業務責任単位が提出し又は受付けた、あるいは受付可能なパッケージでない場合、アクセス要求自体がエラーとなるので、上記条件式では単に元帳版が提出パッケージであるかどうかだけをチェックしています。

公開版をアクセス可能とする

元帳版オブジェクトの key プロパティを用います。

  Editions!@CUR.key = "PUBLIC"
式の要素 意味

Editions!@CUR

現在アクセスしている元帳版

Editions!@CUR.key

上記元帳版の元帳版キー

左辺と右辺の値が等しいことを検査する

"PUBLIC"

定数「PUBIC」

プロパティ「key」は省略可能なので、上記条件式は以下のように記述することもできます:

  Editions!@CUR = "PUBLIC"

典型的なケースでの条件記述

典型的なケースでは、元帳版に対するアクセス条件は、上記3つのいずれかを満たす場合のみアクセス可能とする、というものです。この場合、条件式は以下のようになります:

  Editions!@CUR.owner_label = @participant_label OR
  Editions!@CUR.is_submission OR
  Editions!@CUR = "PUBLIC"

なお、公開データ確定担当業務責任単位に対しては、通常、上記に加えて共通作業版等へのアクセス権限を与える必要があります(公開データ確定担当業務責任単位にもプライベートな元帳版を割り当てず、共通作業版をそのワークスペースとして使用している場合など)。この場合、上記条件式は以下のように修正されます:

  Editions!@CUR.owner_label = @participant_label OR
  Editions!@CUR.is_submission OR
  Editions!@CUR = "PUBLIC" OR
  Editions!@CUR = "WORKSPACE" ....

もちろん、上記の条件式は他の条件式と組み合わせて使用することができます。