通常であれば、承認のためにデータが提出される際、データはすべて記入され、それ以上の変更は行われません。 しかし、ある階層に承認したときだけ、あるフィールドに記入したい場合、その階層にまだ承認していないときは、このフィールドに記入したり編集したりすることはできません:
通常の承認プロセスでは、承認後にデータにそれ以上の変更を加えることはないため、デフォルトでは「承認開始後にデータを自動保護する」機能にチェックが入ります。そのため、特定のフィールドを編集できるようにしたい場合は、まずフィールドを「データ保護を無視」に設定し、後のステップで条件式形式の読み取り属性を適用する必要がある。
承認プロセスの総段階数に関係なく、異なる段階での承認状況を表示し、その後の比較のために、またフィールドに対して閲覧のみまたは閲覧のみを解除するアクションを取るために、2つの新しいフィールドを追加する必要がある。これら2つのフィールドの承認段階は、「フィールドを変更できない最大段階」と「フィールドを変更できるの最大段階」に設定する必要がある。
例えば、2段階の承認プロセスがあり、2段階目上司が前の閲覧のみフィールドを変更できるように設定したい場合、フォームに2つの新しいフィールドを追加して(I2とI3と仮定)、1段階目と2段階目の両方の承認状況を表示する必要があります。I2は "APPROVAL.STEP(1).STATUS() "の承認関数 を入力して、第1段階の承認状態を示し。I3は"APPROVAL.STEP(2).STATUS()" の承認関数を入力して、第2段階の承認状態を示す。承認状態フィールドは、承認が完了していない場合はN、完了した場合はFである。
2つの段階の承認状態を表示するフィールドを設定した後、新しいフィールドを追加して、第1段階と第2段階の状態が同じかどうかを判断する必要があります。2つとも未承認または承認済みであれば閲覧のみ、そうでなければ(1つは承認済み、もう1つは未承認)閲覧のみにし、第2段階の承認者が変更できるようにします。
新しいフィールドをI4とすると、I4にIF条件式 IF(I2.RAW=I3.RAW, 'Y','N') を記述する。 設定の後、最初の2つのフィールドがNまたはFを返した場合、つまり、どちらの段階も承認されていないか、両方の段階が承認されている場合、このフィールドはYを返します。1つのフィールドがNで、1つのフィールドがFの場合、つまり、最初の段階が承認されていて、2番目の段階がまだ承認されていない場合、このフィールドはNを返します。
条件式形式を選択し、「2つの状態が同じ」(上記の例ではI4フィールド)がNでない場合、フィールドを「閲覧のみ」に設定する。 これは、フィールドの閲覧のみ状態がN(第1段階が承認済、第2段階が未承認)の場合のみ解除されることを意味する。
設定後の結果を見てみましょう。 レコードがまだ承認されていない場合、「審査数量」フィールドは閲覧のみとして表示されます:
第 1 段階が承認されている場合、「審査数量」フィールドは閲覧のみ状態から解放され、編集できるようになる: