第4章
この章では、ページフロープロセスで使用できるリンクについて説明します。この章には、次のトピックが含まれています。
次のタイプの明示的なリンクが、ページフロー内でサポートされています。
ページフローは、.スマートリンクもサポートしています。 他のタイプのリンクとは異なり、スマートリンクはページフローの図に実際には描かれていません。
リンクは相互に排他的です ページフロープロセスのリンクは、相互に排他的です。 1つ以上のリンク式がtrueと評価されても、ランタイム時にページフローエンジンは、特定のアクティビティから1つだけのリンクをたどります。
リンクは、優先順位に従って評価されます 特定のアクティビティが複数のアクティビティにリンクされている場合、ページフローエンジンは、 優先順位に従ってたどるリンクを決定します。 各リンクには、関連付けられた優先順位番号があります。 1つ以上のリンク式がtrueと評価される場合、ページフローエンジンは、trueを返す最初のリンクに続いて、優先順位に従ってリンクを評価します。
すべてのリンク式がfalseを返す場合 特定のアクティビティからたどるように、特定のリンクをデフォルトパスとしてマーク付けできます。 すべてのリンク式がfalseと評価される場合は、ページフローエンジンはデフォルトのリンクをたどります。
単純なリンクとは、1つのアクティビティから別のアクティビティへの単純なパスを表します。 単純なリンクを使用して、trueまたはfalseを評価する式を指定できます。 単純なリンクの式でtrueと評価されると、リンクは次のアクティビティをたどります。 式がfalseと評価すると、そのパスはたどられません。
単純なリンクは、複数のターゲットアクティビティの中から選択する簡単な方法を提供します。 アクティビティの処理が終了すると、次に実行するアクティビティを単純なリンクの式を使用して決定できます。 たとえば、次のページフローのようにリンク2およびリンク3の式を使用して、HTML1の後にHTML2またはHTML3のどちらを表示するかを決定できます。
単純なリンクの式を指定しない場合は、ソースアクティビティが終了すると、ページフローエンジンは自動的にターゲットアクティビティに移動します。 たとえば次のページフローでは、HTML1のアクティビティに発信リンクが1つしかないため、リンク2に式は必要ありません。
単純なリンクには次のプロパティがあります:
[プロパティインスペクタ]タブ |
プロパティ名 |
説明 |
---|---|---|
リンク |
Name |
フローでアクセス可能な、このリンクへの固有な参照。 |
説明 |
ページフローモデラーユーザを対象としたリンクの説明。 |
|
スコープパスをコピーする |
スコープデータを別のスコープにコピーするために使用します。 リンクが評価された後、ターゲットアクティビティが実行される前に、スコープはコピーされます。 スコープのコピー操作は、リンク式がtrueと評価される場合のみ実行されます。
|
|
デフォルト |
このパスをデフォルトにする場合に選択します。 アクティビティに、またはアクティビティからの複数のリンクがある場合に使用します。デフォルトは、trueと評価されるパスが他にない場合に使用されるパスです。 |
|
式 |
trueまたはfalseを評価する論理的な式を作成するために使用します。 式を作成しない場合は、パスがtureと評価され実行されます。 単純なリンクの式は、ソースアクティビティにより渡された要求パラメータの値をチェックする必要があります。
|
|
優先順位 |
このリンクが評価される順序を指定します。 アクティビティに、またはアクティビティからの複数のリンクがある場合に使用します。 |
|
UIの設計 |
UIの設計プロパティは、設計時のリンクの外観を制御します。詳細については、オブジェクト表示プロパティの設定を参照してください。 |
単純なリンクを使用したHTMLページ 単純なリンクを開始するには、HTMLページには、要求パラメータをリンク式で指定された値に設定する送信ボタンがある必要があります。
たとえば、ソースアクティビティがHTMLアクティビティであった場合、このアクティビティのHTMLソースには、verb
という名前のパラメータに対して値next
を渡す[次へ]ボタンが必要です。
<form name="form1" method="post" action="wsrp_rewrite?wsrp-urlType=blockingAction/wsrp_rewrite">
<p>Enter your name
<input type="name" name="name">
<br><br>
<input type="submit" name="verb" value="next">
<input type="submit" name="verb" value="help">
</form>
フォームのアクションは、WSRP仕様で定義された業界標準のトークン、wsrp_rewriteトークンを指定します。
action="wsrp_rewrite?wsrp-urlType=blockingAction/wsrp_rewrite"
注記: このバージョンのexteNd Directorでは、WSRPプロトコルが完全にサポートされているわけではありません。 ただし、多数のWSRP機能へのサポートが実装されています。 たとえばwsrp_rewriteトークンはフォームのアクションでは必要です。
条件リンクとは、単純なリンクのように、1つのアクティビティから別のアクティビティへのパスを意味しています。 ただし、条件リンクには直接関連付けられた式がありません。 代わりに、ルールエディタを使用して作成された条件マクロを実行します。 条件マクロは、再利用可能なビジネスロジックを含む条件のセットを実行します。
条件リンクは、trueまたはfalseを評価します。 条件リンクがtrueと評価すると、リンクは次のアクティビティをたどります。 リンクがfalseと評価すると、そのパスはたどられません。
条件リンクには次のプロパティがあります:
[プロパティインスペクタ]タブ |
プロパティ名 |
説明 |
---|---|---|
条件リンク |
名前 |
フローでアクセス可能な、このリンクへの固有な参照。 |
説明 |
ページフローモデラーユーザを対象としたリンクの説明。 |
|
スコープパスをコピーする |
スコープデータを別のスコープにコピーするために使用します。 リンクが評価された後、およびターゲットアクティビティが実行される前に、スコープはコピーされます。 スコープのコピー操作は、リンク式がtrueと評価される場合のみ実行されます。
|
|
デフォルト |
このパスをデフォルトにする場合に選択します。 アクティビティに、またはアクティビティからの複数のリンクがある場合に使用します。デフォルトは、trueと評価されるパスが他にない場合に使用されるパスです。 |
|
条件マクロID |
ルールエディタで指定した条件マクロのXML記述子の名前。 |
|
優先順位 |
このリンクが評価される順序を指定します。 アクティビティに、またはアクティビティからの複数のリンクがある場合に使用します。 |
|
UIの設計 |
UIの設計プロパティは、設計時のリンクの外観を制御します。詳細については、オブジェクト表示プロパティの設定を参照してください。 |
ボタンリンクは、フォームにダイナミックな送信ボタンを作成します。 フォームアクティビティと連動して使用され、ボタンリンクのソースとして、フォームアクティビティを持つ必要があります。
ランタイム時には、ナビゲーションボタンは、フォームアクティビティから離れて機能する各ボタンリンクに対して表示されたフォームに配置されます。
ボタンリンクの主な利点は、フォームへのナビゲーションをダイナミックに追加できることにあります。 フォームからのナビゲーションパスを変更する必要がある場合は、そのたびに、リンクをページフローに追加できます。XHTMLフォームを編集する必要はありません。
ボタンリンクは、trueまたはfalseを評価する式を指定します。 ボタンリンクの式がtrueと評価すると、リンクは次のアクティビティをたどります。 式がfalseと評価すると、そのパスはたどられません。
フローリンク領域コントロール ボタンリンクは、フォームアクティビティに関連付けられたXHTMLフォームがフローリンク領域コントロールを持たない限り、適切に機能しません。 フォームは、フローリンク領域コントロールを1つだけ持つ必要があります。 このコントロールは、ランタイム時には、フローに追加されたボタンリンクの数によって、1つ以上の送信ボタンに置き換えられます。 エンジンは、関連付けられた送信ボタンを持たない各リンクのフォームにボタンを追加します。
押されたボタンを割り出すために使用されるキーパラメータ ページフローエンジンは、特別な要求パラメータを使用してユーザがフォームで押したボタンを判断します。 このキーはnovell_link_keyと呼ばれ、変更できません。
ボタンリンクの式 ボタンリンクをページフローに追加すると、ページフローモデラーが自動的にリンクの式を定義します。 式は、Http要求オブジェクトに渡されたnovell_link_keyパラメータの値が、このボタンリンクの名前と同じかどうかを確認します。
Request/param/novell_link_key (eq) Button Link 1 [string]
式がtrueの場合は、このリンクはたどることができます。 通常は、ボタンリンクの式またはボタンリンク名を変更しないでください。 式または名前を変更する場合は、式で使用される値がボタンリンクの名前と一致することを確認します。 そうでないと、ランタイム時にリンクが適切に機能しません。
ボタンテキスト ランタイム時には、エンジンは、記述子プロパティに指定されたテキストを、ダイナミックに生成された送信ボタンのテキストとして使用します。
ボタンリンクには次のプロパティがあります。
[プロパティインスペクタ]タブ |
プロパティ名 |
説明 |
---|---|---|
ボタンリンク |
名前 |
フローでアクセス可能な、このリンクへの固有な参照。 リンクの式で使用されるため、通常は、ボタンリンクの名前を変更しないでください。 名前を編集する場合は、指定する値が式で使用される値と一致することを確認します。 そうでないと、ランタイム時にリンクが適切に機能しません。 |
説明 |
ダイナミックに生成されたボタンのテキストとして使用されるリンクの説明。 |
|
スコープパスをコピーする |
スコープデータを別のスコープにコピーするために使用します。 リンクが評価された後、およびターゲットアクティビティが実行される前に、スコープはコピーされます。 スコープのコピー操作は、リンク式がtrueと評価された場合にのみ実行されます。
|
|
デフォルト |
このパスをデフォルトにする場合に選択します。 アクティビティに、またはアクティビティからの複数のリンクがある場合に使用します。デフォルトは、trueと評価されるパスが他にない場合に使用されるパスです。 |
|
式 |
trueまたはfalseを評価する論理的な式を作成するために使用します。 ボタンリンクをフローに追加すると、式は自動的に作成されます。 通常は、ボタンリンクの式は変更しないでください。 式または名前を変更する場合は、式で使用される値がボタンリンクの名前と一致することを確認します。 そうでないと、ランタイム時にリンクが適切に機能しません。
|
|
優先順位 |
このリンクが評価される順序を指定します。 アクティビティに、またはアクティビティからの複数のリンクがある場合に使用します。 |
|
UIの設計 |
UIの設計プロパティは、設計時のリンクの外観を制御します。詳細については、オブジェクト表示プロパティの設定を参照してください。 |
スマートリンクを使用して、ページフローの図の複雑さを軽減できます。 スマートリンクは、実際にはページフローの図に表示されません。 ランタイム時にダイナミックに解決されます。 スマートリンクは、多数のアクティビティが共通のアクティビティにリンクされている場合に、特に役立ちます。 たとえば、スマートリンクを使用して、フロー内のすべてのリンクを共通のヘルプページにダイナミックにリンクすることができます。
スマートリンクは、プロセス内の個々のアクティビティにではなく、ページフロープロセス全体に適用されます。 スマートリンクが有効な場合は、フロー内のすべてのアクティビティは、ダイナミックなリンクをオプションで使用して、共通のアクティビティにアクセスできます。
注記: また、ページフローエンジンは、例外およびチェックポイントアクティビティ処理でもダイナミックリンクを生成します。 ページフローにこれらのタイプのアクティビティが含まれるときは常に、スマートリンクが有効かどうかにかかわらず、ダイナミックリンクが内部で使用されます。
スマートリンクに影響するプロセスプロパティ スマートリンクは、プロセスオブジェクトの次のプロパティによって制御されます。
ダイナミックリンクから届いたアクティビティには、発信リンクがある場合とない場合があります。 また、これらのアクティビティは自身でほかのダイナミックリンクを作成する場合があります。 いずれの場合も、ページフローエンジンにより、それぞれの開始アクティビティに戻るように制御できます。 ランタイム時には、エンジンは最初に、明示的に定義されたリンク(フロー図で指定されたリンク)または移動するためのダイナミックリンクのリストを取得しようと試みます。 特定のアクティビティから明示的なリンク、またはダイナミックリンクが利用できない場合は、エンジンは最後に実行されたアクティビティに戻ってリンクを実行しようと試みます。
スマートリンクを使用したHTMLページ スマートリンクを開始するには、HTMLページに送信ボタンが必要です。このボタンは、Verbのスマートリンク要求パラメータを、リンクのターゲットであるアクティビティの名前に設定します。 これは、渡された要求パラメータの値がリンク式で指定された値と一致していなければならない、単純なリンクの開始で使用された技術とは異なることに注意してください。
次に例を示します。
<form name="form1" method="post" action="wsrp_rewrite?wsrp-urlType=blockingAction/wsrp_rewrite">
<p>Enter your name
<input type="name" name="name">
<br><br>
<input type="submit" name="verb" value="next">
<input type="submit" name="verb" value="help">
</form>
フォームのアクションは、WSRP仕様で定義された業界標準のトークン、wsrp_rewriteトークンを指定します。
action="wsrp_rewrite?wsrp-urlType=blockingAction/wsrp_rewrite"
注記: このバージョンのexteNd Directorでは、WSRPプロトコルが完全にサポートされているわけではありません。 ただし、多数のWSRP機能へのサポートが実装されています。 たとえばwsrp_rewriteトークンはフォームのアクションでは必要です。
スマートリンクを使用したXHTMLページ XHTMLページは、次の方法でスマートリンクを開始します。
<xforms:submission action="?verb=help" id="help" method="post"/>
ランタイム時にフォームが表示されると、アクション属性が自動的にマークアップされ、その時点で次のようになります。
<xforms:submission action="wsrp_rewrite?wsrp-urlType=blockingAction&verb=help/wsrp_rewrite" id="help" method="post"/>
完全にマークアップされた構文(上の例を参照)を指定することもできますが、完全な構文は自動的に生成されるため、必要ありません。
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...