intra-mart Accel Platform IMBox プログラミングガイド 第4版 2014-05-01

3. アプリケーション連携プログラム

独自に作成したアプリケーションを、intra-martが提供するAPIを利用することで、次に挙げる例のような処理ができます。
  • アプリケーションからの通知メッセージをApplicationBoxに投稿する。
  • アプリケーション情報をウォッチする。
  • ウォッチされたアプリケーション情報からメッセージをApplicationBoxに投稿する。

3.1. サンプル実装

ここではサンプルとして、製品管理システムからApplicationBoxへの通知を行う機能の実装方法について説明します。
application1
作成する資材は以下となります。

3.1.1. 設定ファイルの作成

アプリケーション連携を行うために、作成したアプリケーションに以下のファイルを設定してください。
設定ファイル例
src/main/conf/imbox-application-config/seihin.xml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?xml version="1.0" encoding="UTF-8"?>
<tns:imbox-application-config
    xmlns:tns="http://www.intra-mart.jp/imbox/imbox-application-config"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.intra-mart.jp/imbox/imbox-application-config ../../schema/imbox-application-config.xsd ">

  <tns:application
        applicationCd="seihin" 
        applicationName="CAPTION.IMBOX.SEIHIN" 
        iconPath="application/appli.png" 
        messageTypeCd="MESSAGE_TYPE_MESSAGE" />
</tns:imbox-application-config>
<tns:application> タグでは以下の属性について設定を行います。
属性 内容
applicationCd アプリケーションの識別ID
applicationName アプリケーション表示名のプロパティID
iconPath アプリケーション表示画像のパス
messageTypeCd メッセージ種別識別CD

コラム

  • iconPath が未指定の場合は、 IMBox で用意しているデフォルトのアイコン画像が適用されます。
  • iconPath を指定する場合、Storage領域に画像を設定してください。
  • messageTypeCdMESSAGE_TYPE_MESSAGE を設定した場合は、 IMBox で用意しているメッセージ形式でタイムラインに表示されます。
  • 独自の形式でApplicationBoxに表示を行いたい場合はメッセージ種別を追加し、追加したメッセージ種別識別CDを設定してください。
  • メッセージ種別の追加については メッセージ種別追加プログラム を参照してください。
iconPathを指定しない場合
application7
iconPathを指定した場合
application8

3.1.2. ApplicationBoxへの投稿処理の作成

アプリケーション連携を設定した、アプリケーションからの通知メッセージをApplicationBoxに投稿する。
アプリケーションから通知をしたいタイミングで、以下の処理を実装してください。
実装例
IMBox にメッセージを投稿するために、 imbox.ApplicationBoxService#sendNoticeMessage() を利用します。
src/main/jssp/src/kintai/register.js
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
   function  send(){
     var applicationBoxService = new imbox.ApplicationBoxService();
     var message = {
         applicationCd : 'seihin',
         sendUserCd    : 'aoyagi',
         messageText   : '製品情報が登録されました。',
         messageTypeCd : 'MESSAGE_TYPE_MESSAGE',
       };
     applicationBoxService.sendNoticeMessage(message, ['sekine']);
   }
通知メッセージ情報として、以下のパラメータを設定しています。
パラメータ 内容
applicationCd アプリケーションの識別ID
sendUserCd 送信ユーザコード
messageText 表示するメッセージ
messageTypeCd メッセージ種別識別CD

コラム

  • 第二引数には、アプリケーション内のウォッチ行う各情報毎の識別IDを指定します。
  • 上記サンプルでは1件だけ設定していますが、複数の識別IDを指定することができます。
application2
上記の処理が行われた場合、関根さん(sekine)のApplicationBoxに製品情報の登録通知が以下のように表示されます。
application3

3.1.3. アプリケーション情報のウォッチ処理の作成

アプリケーション情報をウォッチする実装のサンプルです。
アプリケーションのウォッチを行った場合、ウォッチを行ったアプリケーション情報に変更があった際にApplicationBoxへ通知されます。
ウォッチを行いたいアプリケーション情報に対して、以下の処理を実装してください。
実装例
アプリケーションをウォッチするために、 imbox.ApplicationOperations#watch() を利用します。
src/main/jssp/src/kintai/watch.js
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
  function  watch(){
    var applicationOperations = new imbox.ApplicationOperations();
    var applicationCd = 'seihin';
    var entry4Targets = [];
    entry4Targets.push({
        targetId   : 'iac',
        targetName : 'Accel Collaboration'
      });
    applicationOperations.watch(applicationCd,entry4Targets);
  }
ウォッチ情報として、以下のパラメータを設定しています。
パラメータ 内容
applicationCd アプリケーションの識別ID
targetId ウォッチ対象のID
targetName ウォッチ対象の名称

コラム

  • 第二引数には、アプリケーション内のウォッチを行う各情報毎の識別IDを指定します。
  • 上記サンプルでは1件だけ設定していますが、複数の識別IDを指定することができます。
  • ウォッチを解除する場合は imbox.ApplicationOperations#unwatch() を利用してください。
application4
上記の処理が行われた場合、[ IMBox の一覧] > [ウォッチアプリケーション画面] に以下のように表示されます。
application5

3.1.4. ApplicationBoxへのメッセージ投稿処理の作成

ウォッチしたアプリケーション情報から、メッセージをApplicationBoxに投稿する実装のサンプルです。
ウォッチを実装したアプリケーション情報に変更があった際にApplicationBoxに通知します。
アプリケーション情報の更新タイミングで、以下の処理を実装してください。
実装例
IMBox にメッセージを投稿するために、 imbox.ApplicationBoxService#sendWatchMessage() を利用します。
src/main/jssp/src/kintai/update.js
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  function  sendWatcher(){
    var applicationBoxService = new imbox.ApplicationBoxService();
    var targetId = 'iac';
    var message = {
        applicationCd : 'seihin',
        sendUserCd    : 'aoyagi',
        messageText   : 'Accel Collaborationの情報が更新されました。',
        messageTypeCd : 'MESSAGE_TYPE_MESSAGE',
      };
    applicationBoxService.sendWatchMessage(message, [targetId]);
  }
ウォッチ通知メッセージ情報として、以下を設定しています。
パラメータ 内容
applicationCd アプリケーションの識別ID
sendUserCd 送信ユーザコード
messageText 表示するメッセージ
messageTypeCd メッセージ種別識別CD
targetId 更新されるアプリケーション情報のID(ウォッチで使用するウォッチ対象のID)
上記の処理が行われた場合、ウォッチを行ったユーザのApplicationBoxにAccel Collaborationの更新通知が以下のように表示されます。
application6

コラム

  • 通知メッセージ、 ウォッチ通知メッセージの送信時に今回は引数に threadSummarizeCd を使用していませんが、
  • threadSummarizeCd の指定を行うと、 threadSummarizeCd 単位でメッセージをスレッド形式で表示することも可能です。