IM-FormaDesignerで作成したフォーム画面からIMBoxに投稿する方法

公開日: 2016-07-04 / カテゴリ: CookBook

このCookBookでは、IM-BISを含む環境において、IM-FormaDesignerで作成したアプリからIMBoxに投稿する方法について紹介しています。 IM-LogicDesignerとの外部連携を利用することで、ノンプログラミングで実現可能です。

完成イメージ

1. 投稿したいメッセージをテキストエリアに入力します。 2. 「Send to IMBox」ボタンをクリックします。 3. 投稿に成功するとCompanyBoxへ画面遷移し、投稿内容を確認できます。

完成サンプル

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

ローカル環境で表示させる場合には、サンプルデータと上記資材をインポートしてください。 次に、ユーザ aoyagi でログインし、以下のURLにアクセスしてください。 http://localhost:8080/imart/forma/normal/view/regist_application_view/im_cookbook_110553_forma なおベースURLである以下の部分は、環境に合わせて適宜変更してください。 http://localhost:8080/imart

レシピ

  1. IM-LogicDesignerのフローカテゴリを作成します
  2. IM-LogicDesignerを利用して、IMBoxへ投稿するロジックフローを作成します
  3. ロジックフローをIM-BISのデータソース定義に登録します
  4. IM-FormaDesignerを利用して画面を作成します
  5. 作成した画面のアクション設定を登録します

前提条件

このCookBookではIM-LogicDesignerとIM-BISの外部連携機能を利用します。 そのため、IM-BISを含んだintra-mart Accel Platform 2015 Winter以降の環境をご利用ください。 IM-LogicDesignerについて、詳しくは以下のドキュメントを参照してください。

また、このCookBookではIM-BISおよびIM-FormaDesignerを利用したことがある読者を想定しております。

1. IM-LogicDesignerのフローカテゴリを作成します

まずはフローカテゴリを作成しましょう。 110553_ld_flow_category_new 詳細は下記のドキュメントを参考にしてください。

2. IM-LogicDesignerを利用して、IMBoxへ投稿するロジックフローを作成します

これから作成するロジックフローは、IMBoxへの投稿内容を入力として、IMBoxの投稿先であるCompanyBoxへ投稿を行います。 このロジックフローを利用することで、IM-FormaDesignerで作成したフォーム画面からIMBoxへの投稿が実現できます。 では、ロジックフローを作成していきます。 ロジックフロー定義編集画面の開き方は、以下のドキュメントを参考にしてください。

入出力設定 まずはロジックフローの入出力設定を行います。 「Input and Output Settings(入出力設定)」ボタンをクリックし、入出力設定画面を開きましょう。 110553_ld_in_out_setting_btn IMBoxへの投稿内容をフォーム画面から取得する必要があるので、入力に文字列を指定してください。 今回はmessageという変数名で追加しましょう。 出力については追加しないで構いません。 110553_ld_in_out_setting 入出力設定の定義について、詳しくは以下のドキュメントをご覧ください。

エレメントの配置 今回はCampanyBoxへの投稿を行います。 「Post to CompanyBox(カンパニーボックスに投稿)」のエレメントを配置しましょう。 エレメントを配置してから名称変更していない場合、im_sendCompanyBox1という名称になります。 110553_ld_sendCompanyBox エレメントを配置する際の詳細については、下記ドキュメントを参考にしてください。

線を引く(シーケンスを定義する) 次は、エレメントのoutとinを矢印でつなぎましょう。 110553_ld_logic_flow 詳細は以下のドキュメントで確認できます。

様々な入力情報の利用 配置した「カンパニーボックスに投稿」のエレメントをダブルクリックし、マッピング設定画面を開きます。 ' * 'が付いている項目が入力必須であり、CompanyBoxへの投稿には以下の3つの入力が必要です。

キーデータ型説明
companyCdString会社コード
messageString投稿する内容
postUserCdString投稿者のユーザコード

messageは、入出力設定で入力に指定したmessageを利用します。 companyCdとpostUserCdについては、ユーザコンテキストから取得することができます。 ユーザコンテキストとは、IM-共通マスタで保有するユーザプロファイル情報を保持しているアクセスコンテキストです。 こちらを利用することでユーザ名や所属組織情報などの情報を取得できます。 ロジックフローでのユーザコンテキスト取得は以下の手順で行います。

  1. マッピング設定画面の上部にあるセレクトボックスからユーザコンテキストを選択します。
  2. セレクトボックスのすぐ右の「入力を追加」ボタンをクリックします。
  3. マッピング設定を行います。マッピング設定については次項で説明します。

110553_ld_add_account_context 詳細は以下をご覧ください。

マッピング設定を行う パラメータのマッピングを行います。 入出力設定で入力に指定したmessageを、im_sendCompanyBox1のエレメントに受け渡します。 必須パラメータであるcompanyCdとpostUserCdをユーザコンテキストから取得し、im_sendCompanyBox1のエレメントに受け渡します。

マッピング設定画面左マッピング設定画面右
User Context
 └─ currentDepartment
    └─ companyCdim_sendCompanyBox1
 └─ companyCd
input
 └─ messageim_sendCompanyBox1
 └─ message
User Context
 └─ userProfile
    └─ userCdim_sendCompanyBox1
 └─ postUserCd

110553_ld_mapping 詳細は以下のドキュメントで確認してください。

ロジックフローの新規保存 最後に、作成したロジックフローを新規保存しましょう。 110553_ld_logic_flow_new

3. ロジックフローをIM-BISのデータソース定義に登録します

2. で作成したフロー定義を、IM-BISのデータソース定義に登録します。 このCookBookでは、IM-FormaDesignerで作成したフォーム画面から外部連携機能を利用してロジックフローを呼び出します。 フロー定義をIM-BISのデータソース定義に登録することで外部連携機能を利用でき、フォーム画面からノンプログラミングでロジックフローを呼び出すことができます。 110553_bis_regist_datasource-1 110553_bis_regist_datasource-2 IM-BISのデータソース定義についての詳細は、以下のドキュメントをご覧ください。

4. IM-FormaDesignerを利用して画面を作成します

2. で作成したデータソース定義を、IM-FormaDesignerで作成したフォーム画面から呼び出します。 まずは、フォーム画面を作成しましょう。 以下の画面アイテムを配置してください。

画面アイテム種別フィールド識別ID備考
複数行文字列messageIMBoxに投稿する内容です。
ボタン (イベント)-IMBoxに投稿するためのボタンです。

110553_bis_form IM-BISでフォーム画面を作る基本的な流れは、以下のドキュメントが参考になります。

5. 作成した画面のアクション設定を登録します

作成したフォーム画面に配置したイベントボタンに対して、アクション設定を行います。 2. で作成したデータソース定義が外部連携として呼ばれるように設定します。 110553_bis_event_setting 110553_bis_action_setting アクション設定について、詳しくは下記ドキュメントをご参照ください。

次に、外部連携のデータマッパー画面で、画面上のどの値をデータソース定義に渡すかを設定します。 リクエストタブでは、フィールド識別IDがmessageの複数行文字列の値をデータソース定義のmessageに渡します。 レスポンスタブでは、何も設定しないで構いません。 110553_bis_data_mapping_request 外部連携やデータマッパー画面について、詳しくは下記のドキュメントをご覧ください。

おわりに

以上で、IM-FormaDesignerで作成した画面からIMBoxへ投稿する方法についての説明は終わりです。 このCookBookとほぼ同様の方法で、別の投稿先であるGroupBoxやDirectMessageBoxへの投稿も実現できます。 IMBoxへの投稿が行われることにより、IM-Notice機能を利用したスマートフォンへの通知も可能であり、IMBoxのリアルタイム性をよりご活用いただけます。 また、このCookBookで作成したIM-LogicDesignerのフローを修正することにより、外部のWebサービスとの連携も同様の方法で実現可能です。 この組み合わせにより、これまでであればコーディングが必要であった部分が、ブラウザ上の操作のみで実現することができます。 ぜひご利用下さい。