Webマップのフィールドの属性

LANSA WAM

Webマップのフィールドの属性

Web_MapコマンドのForパラメータが、どのフィールドや作業リストがプレゼンテーション層とWebroutineとの間で交換されるかについて影響を与えることに注意してください。全ての関連するWeb_Mapコマンドは、Webroutineのためのパラメータ・リストを定義しているようなものだと考えると分かりやすいかもしれません。

ただし、Web_MapのForパラメータは、フィールドがどのように表示されるかには影響を与えません。これは、プレゼンテーション層で行われます。

ある値をfor (*both)に設定して、ユーザーにはWebページ上で値を変更したり、見たりできないようにしたい時があると思います。このような場合、Webマップのフィールドに以下の属性を指定します。

     *output- データはWebページに表示されますが、ユーザーは変更することはできません。

     *hidden - データはロジックとプレゼンテーション層の間でやり取りされますが、ユーザーには表示されません。

     *private - データはロジックとプレゼンテーション層の間でやり取りされますが、XSLにマージされません。(これは、XSL変換プロセスの間にフィールドの値やリストの中身が参照されますが、最終的なページに生成される必要がない場合の特別な使用方法です。)

     注:*input も属性として有効で、デフォルト値になっています。

ただし、フィールドをどのように表わすかはプレゼンテーション層の責任範囲であることを忘れないでください。Webマップに設定された、これを制御するフィールド属性は、ウェブデザインがWebroutineの為に生成された時のみ有効になります。その後、LANSAエディターを使用して、フィールドがどう表されるかを変更することができます。つまり、Web マップに指定されたフィールド属性は意思表示としてのみ扱われるべきということを意味しています。なぜならば、フィールドがどのように表されるかは結局プレゼンテーション層がコントロールするからです。

次は、DEPTMENTがやりとりされて表示さますが、ユーザーに値を変更してほしくない場合の例です。

この例で注意する点は以下の通りです。

  • *outputフィールド属性を指定する際の唯一の影響は、Webroutineのウェブデザインを生成する時にフィールド#DEPTMENTが出力専用になることです。 このフィールドはLANSAエディターを使って変更される可能性があるので、Webページ上で出力専用で残るということではありません。
  • フィールド#DEPTMENTがWebページで出力専用の場合、 このWebページは次のWebroutineにフィールド値をPOSTできません。例えば、Webroutineがそのデータを同じWebroutineにPOSTする場合、フィールド#DEPTMENTの値が出力専用であるためPOSTすることができず、うまく作動しません。しかし、このWebroutineがフィールド#DEPTMENTの値をPOSTする別のWebroutineによって呼び出された場合は、うまく作動します。

このように、フィールド属性として*outputを指定するということは、Web_Mapコマンドにfor(*output)を使用するのとまったく違った意味と効果があります。