AEM Forms Workspace では、フォームおよびドキュメントでタスクの割り当ておよび完了アクティビティの管理をサポートしています。これらのフォームおよびドキュメントは、XDP、PDF、HTML、または Flex 形式にレンダリングされた XDP フォーム、Flex® フォーム、または Guide (推奨されていません)にすることができます。

これらの機能はさらに拡張されます。AEM Forms では、AEM Forms Workspace と同じ機能をサポートするサードパーティアプリケーションとの統合をサポートしています。この機能の共通の部分は、割り当てのワークフローとタスクの事後承認です。AEM Forms では、AEM Forms エンタープライズユーザーに単一の統合された操作性を提供することによって、タスクの割り当てやサポートされているアプリケーションの承認などのすべてを AEM Forms Workspace 経由で処理できるようにします。

例として、AEM Forms Workspace との統合にサンプル候補として Correspondence Management を考慮してみましょう。Correspondence Management には、レンダリングしてアクションを許可する「レター」の概念があります。

Correspondence Management アセットの作成

まず、AEM Forms Workspace にレンダリングされたサンプル Correspondence Management テンプレートを作成しましょう。詳しくは、「レターテンプレートの作成」を参照してください。

Correspondence Management テンプレートにその URL でアクセスして Correspondence Management テンプレートが正常にレンダリングすることができるかどうか確認します。URL は、http://[サーバー]:[ポート]/lc/content/cm/createcorrespondence.html?cmLetterId=encodedLetterId&cmUseTestData=1&cmPreview=0; のようなパターンを持っています

ここで、encodedLetterId は URL エンコードされたレター ID です。Workbench で Workspace タスクにレンダリングプロセスを定義する場合は、同じレター ID を指定します。

カスタムレンダリングと送信のプロセスの作成

カスタムレンダリングと送信のプロセスでは、「タスクの割り当て」操作に指定されたデータを使用することができます。プロセスは、フォームテンプレートとデータの場所を変換し、適宜 Workspace クライアントに返します。

以下の手順を使用してカスタムレンダラーを作成します。

  1. Workbench を起動します。ローカルホストに管理者としてログインします。

  2. 「ファイル/新規/アプリケーション」をクリックします。アプリケーション名フィールドで、CMDemoSample を入力して「終了」をクリックします。

  3. CMDemoSample/1.0 を選択して NewProcess を右クリックします。名前フィールドで、CMRenderer を入力して「終了」をクリックします。

  4. 「アクティビティ選択」をドラッグして「値の設定操作」を追加します。

  5. タイプ「map」およびサブタイプ「object」の出力変数 runtimeMap を作成します(「WorkflowDSC/オブジェクト」)。

  6. ここに示すようにしてマッピングを追加します。

    場所  
    /process_data/runtimeMap[@id="hint:externalAppForm"]
    true()
    アプリケーションが外部アプリケーションであるかどうかを示します。統合を成功させるには、このフィールドの値は必須です。
    /process_data/runtimeMap[@id="externalAppFormUrl"]
    concat('/lc/content/cm/createcorrespondence.html?cmLetterId=',/process_data/@letterId,'&cmUseTestData=1&cmPreview=0&cmLcWorkspace=1')
    Workspace クライアント iframe に読み込まれた場合、外部アプリケーションフォームユーザーインターフェイスをレンダリングする完全な URL。
    /process_data/runtimeMap[@id="externalAppFormType"] 'text/html' オプション。外部アプリケーションコンテンツタイプを示します。現在は使用されていません。将来の拡張用(デフォルト: text/html)
    /process_data/runtimeMap[@id="hideACLActions"]
    true()
    オプション。true の場合は、転送、拒否、共有などのアクションをユーザーインターフェイスから非表示にします(デフォルト: false)
    /process_data/runtimeMap[@id="hideDirectActions"] false() オプション。true の場合は、送信や保存などのアクションをユーザーインターフェイスから非表示にします(デフォルト: false)
    /process_data/runtimeMap[@id="cancelMessage"] 'submitCancel' オプション。Workspace にタスクをキャンセルするように通知するサードパーティアプリケーションからのメッセージ(すなわち、保存/送信せずに閉じる)(デフォルト: cancel)
    /process_data/runtimeMap[@id="errorMessage"] 'submitFault' オプション。Workspace にエラーが発生したことを通知するサードパーティアプリケーションからのメッセージ(デフォルト: error)
    /process_data/runtimeMap[@id="successMessage"] 'submitSuccess' オプション。Workspace にイベントが正常に発生したことを通知するサードパーティアプリケーションからのメッセージ(デフォルト: submit)
    /process_data/runtimeMap[@id="actionEnabledMessage"] 'actionChanged'
    オプション。Workspace にダイレクトアクションボタンを有効にするかどうかを通知するサードパーティアプリケーションからのメッセージサードパーティアプリケーションはペイロード(true/false)を送信する必要があります。
    /process_data/runtimeMap[@id="externalAppName"] 'ccrSwf'
    オプション。サードパーティアプリケーションの埋め込みタグの ID。(デフォルト: 'ccrSwf')
  7. 「アクティビティ選択」をドラッグして「スクリプトの実行操作」を追加します。

  8. 次のスクリプトを追加します。

    import java.util.Map;

    import java.util.HashMap;

    Map runtimeMap = patExecContext.getProcessDataMapValue("runtimeMap");

    Map routeActionMap = new HashMap();

    routeActionMap.put("complete","Submit");

    routeActionMap.put("Approve","Submit");

    routeActionMap.put("Reject","Submit");

    runtimeMap.put("routeActionMap",routeActionMap);

    patExecContext.setProcessDataMapValue("runtimeMap",runtimeMap);

    これにより、サードパーティアプリケーションのアクションでタスクに定義されたユーザーアクションをマップします。ユーザーアクションがタスクに定義されていない場合は、「complete」が使用されます。それ以外の場合は、名前付きアクションが使用されます。レンダリングサービスはオーケストレーションにとらわれないため、すべての可能なユーザーアクション(プロセス全体)を対応するサードパーティアプリケーションのアクションにマップします。

  9. 別の変数をタイプ文字列の letterId という名前のアプリケーションに追加します。入力および必須としてマークを付けます。

    注意:

    Correspondence Management 送信がプロセス後の要件を対処するため、Correspondence Management にはカスタム送信プロセスの要件がありません。他のアプリケーションの場合は、カスタム送信を追加の要件で作成することができます。

外部アプリケーションを表示するためのタスクの作成

AEM Forms Workspace での Correspondence Management の統合

  1. アプリケーションに CMTest という名前の新しいプロセスを追加します。

  2. xdp (たとえば ApplicationforLongTermCareServices.xdp)をアプリケーションに追加して) それを CMDemoSample/CMDemoSample/1.0 の下に配置します。

  3. アクティビティ選択から 「AssignTask」を選択します。存続期間が短いプロセスから長いプロセスに変更するように警告が表示される場合があります。「はい」をクリックします。

  4. 「初期ユーザーの選択」で、「特定のユーザーに割り当て」を選択してユーザーを追加します(たとえば Gloria Rios)。

  5. アセットの「プレゼンテーションとデータ」タブで、手順 2 で追加した ApplicationforLongTermCareServices.xdp を参照します。このアセットはプレースホルダで、外部アプリケーションの場合は使用されません。

  6. 「アクションプロファイルの管理」をクリックします。

  7. 新しいアクションプロファイルを追加して CMTest という名前を付けます。

  8. レンダリングプロセスで、作成したレンダリングを選択します。すなわち、
    /CMDemoSample/1.0/CMRenderer.process

  9. 「OK」をクリックします。ここに表示されているように、レンダリングプロセスプロパティが表示されます。

    例の /content/apps/cm/correspondence/letters/NoticeOfActionLetterWithoutPostProcess にレター ID を指定します。これは、演習の最初に作成したレター ID と同じです。

  10. アプリケーションをデプロイします。チェックインしてプロンプトが表示された場合はアセットを保存します。

  11. Workbench から CMTest プロセスを右クリックして「起動」を選択します。

  12. 手順 4 に指定されているように、AEM Forms Workspace http://[server]:[port]/lc/content/ws に Gloria Rios としてログインします。

     

  13. 追加したタスクを開きます。Correspondence Management レターが開きます。

     

  14. 必要なデータを入力してレターを送信します。ウィンドウを閉じます。レターに関連付けられた Correspondence Management プロセス後のアクティビティが呼び出されます。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー