CookBook

FormaDesignerのユーザプログラム前処理と後処理をロジックフローで作成する方法

投稿日:

このCookBookでは、FormaDesignerのユーザプログラム前処理と後処理をロジックフローで作成する方法を紹介します。

サンプルでは、ユーザプログラム前処理と後処理を利用して、Workflowでユーザプロファイルを更新しています。
申請画面の前処理で、ログインユーザのプロファイル情報を取得します。
また、変更内容を承認画面の後処理として、プロファイルの更新を実行しています。

完成イメージ


1.申請処理でユーザプロファイルの情報を取得します。
2.承認処理でユーザプロファイルの情報を更新します。
3.IM-共通マスタ プロファイルが設定・更新されます。

  • 申請画面
  • 承認画面
  • IM-共通マスタ プロファイルの設定・更新後
  • 完成サンプル

    以下の完成サンプルをダウンロードしてご活用ください。

  • LogicDesigner
  • LogicDesignerのインポート機能からインポートしてください。
    [IM-LogicDesigner ユーザ操作ガイド] - [インポートを行う]
    im_cookbook_162290_logicdesigner-data

  • ワークフロー
  • zipファイルを任意のフォルダに展開し、IM-Workflowのインポート機能を利用してインポートしてください。
    [IM-Workflow 管理者操作ガイド] - [インポート/エクスポートを行う]
    im_cookbook_162290_workflow-data

  • Formaアプリ
  • Formaアプリのインポート機能からインポートしてください。
    [IM-FormaDesigner for Accel Platform 作成者 操作ガイド] - [「アプリケーション情報インポート」画面の機能と各部の説明]
    im_cookbook_162290_forma

    レシピ

    1. 前処理・後処理のロジックフローを作成します。
    2. Formaアプリを作成します。
    3. ユーザプログラムで前処理・後処理の設定をします。
    4. ワークフローを作成します。
    5. WFフォーム上のユーザプロファイルを設定・更新します。

    1. 前処理・後処理のロジックフローを作成します。

    IM-LogicDesignerで前処理と後処理のロジックフローを作成します。

    フロー定義ID
    前処理 im_cookbook_162290_flow_pre_processing
    後処理 im_cookbook_162290_flow_post_processing

    im_cookbook_162290_flow_pre_processing(前処理)

    最初に、入出力設定・定数設定をします。

    ①「Input and Output Settings(入出力設定)」をクリックします。

    入力・出力値に渡されるパラメータ情報を設定してください。

  • 前処理プログラムを実装する手順の詳細は以下のドキュメントをご覧ください。
  • [IM-FormaDesigner プログラミングガイド] - [前処理] - [ロジックフロー]

    入力:上記のドキュメント通り
    出力:下記を追加してください。
    ・data <object型>

    名前
    userCd string
    address1 string
    emailAddress1 string
    telephoneNumber string

    ・error <boolean型>

    ②「Constrant Settings(定数設定)」をクリックします。

    下記を追加してください。

    定数ID 定数値
    false false

    次に、“Acquisition of user profile”タスクのマッピングをします。

    下記の表の左右欄をマッピングさせてください。

    userProfile/userCd im_immGetProfile1/userCd

    最後に、“End”タスクのマッピングをします。

    下記の表の左右欄をマッピングさせてください。

    定数/false error
    userProfile/address1 address1
    userProfile/emailAddress1 emailAddress1
    userProfile/telephoneNumber telephoneNumber
    userProfile/userCd userCd

    im_cookbook_162290_flow_post_processing(後処理)

    ①「Input and Output Settings(入出力設定)」から入力・出力値に渡されるパラメータ情報を設定してください。

    入力:上記のドキュメント通り(またsendParmは、下記の表を追加してください)

    ・sendParam <object型>

    名前
    address1 string
    emailAddress1 string
    telephoneNumber string

    出力:上記のドキュメント通り

    ➁「Constrant Settings(定数設定)」に下記の表を追加してください。

    定数ID 定数値
    ja ja
    false false

    次に、“Multilingual information update”タスクのマッピングをします。

    下記の表の左右欄をマッピングさせてください。

    sendParam/address1 im_immUpdateLocalizedProfile1/address1
    sendParam/emailAddress1 im_immUpdateLocalizedProfile1/emailAddress1
    sendParam/telephoneNumber im_immUpdateLocalizedProfile1/telephoneNumber
    定数/ja im_immUpdateLocalizedProfile1/targetLocale
    セッション情報/systemDate im_immUpdateLocalizedProfile1/targetDate
    ユーザコンテキスト/userProfile/userCd im_immUpdateLocalizedProfile1/userCd
    ユーザコンテキスト/userProfile/userName im_immUpdateLocalizedProfile1/userName
    ユーザコンテキスト/userProfile/userSearchName im_immUpdateLocalizedProfile1/userSearchName

    最後に、“End”タスクのマッピングをします。

    下記の表の左右欄をマッピングさせてください。

    定数/false error

    2. Formaアプリを作成します。

    Formaアプリを作成してください。
    アプリケーション種別は「IM-Workflow」を設定します。
    ・Formaアプリ

    アイテムはテキストボックスを使用し、下記の表を参考に設定をしてください。
    ※全テキストボックスの表示タイプ「承認」を「入力可」に選択をしてください。

    各アイテムのフィールド識別IDは下記のように入力してください。

    フィールド識別ID userCd
    フィールド識別ID address1
    フィールド識別ID emailAddress1
    フィールド識別ID telephoneNumber

    また、WF連携設定も行ってください。

    3. ユーザプログラムで前処理・後処理の設定をします。

    Formaアプリの「フォーム設定/編集」-「フォーム一覧」-「ユーザプログラム一覧」から設定をしてください。下記の表を入力してください。
    ・前処理プログラム(申請)

    プログラム種別 ロジックフロー
    フロー定義 im_cookbook_162290_flow_pre_processing

    ・後処理プログラム(更新)

    プログラム種別 ロジックフロー
    フロー定義 im_cookbook_162290_flow_post_processing

    4. ワークフローを作成します。

    ・ ワークフロー

    フロー定義では、作成したコンテンツ定義とルート定義を選択してください。

    5. WFフォーム上のユーザプロファイルを設定・更新します。

    申請・承認画面で処理を行い、ユーザプロファイルが設定・更新されていることを確認してください。

    -CookBook
    -,

    執筆者:


    comment

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    関連記事

    no image

    複数BaseURLからそれぞれテナントを解決する方法

    ここでは、複数のBaseURLを持つシステムにおいて、BaseURL単位でテナントを解決する方法について説明します。 まず、複数のBaseURLを持つシステムの作成方法として、以下のいずれかを実装して …

    no image

    IM-BloomMaker 画面構成タブでテーブルの行または列を入れ替える方法

    この CookBook では、 Accel Platform 2020 Winter から利用可能になった、画面構成タブでテーブルエレメント配下のエレメントを並び替えられる方法を紹介します。 Acce …

    他システムのデータベースに接続する方法

    このCookBookでは、intra-mart 製品と関係の無いシステム等で利用されているデータベースに intra-mart Accel Platform から接続する方法についてご紹介します。 i …

    ワークフローの一覧を使い分けるには(スマートフォン版)

    このCookbookでは、以前に公開した「ワークフローの一覧を使い分けるには(改訂版)」に関して、お問い合わせいただいた内容を追加してスマートフォン画面でワークフローの一覧の検索条件を付与する方法をご …

    no image

    IM-BloomMaker リッチテーブルで大量のデータを扱う時に読み込みを速くする方法

    このCookBookでは、リッチテーブルエレメントで大量のデータを扱う時にデータの読み込みを速くする方法について紹介しています。 intra-mart Accel Platform 2023 Autu …