IM-BIS for Accel Platform システム管理者 操作ガイド 第25版 2023-04-01

6.1. 外部連携サンプルプログラム(JAVA)

6.1.1. このサンプルプログラムについて

このサンプルプログラムでは、入力したユーザIDから、ユーザ情報の明細を取得する処理を行います。
  1. ユーザIDを入力します。複数のユーザIDを入力する場合は、「,(カンマ)」で区切ります。
    ../../_images/sample_java001.png
  2. ユーザ情報取得ボタンをクリックします。
    ../../_images/sample_java002.png
  3. ユーザ情報の明細を取得して表示します。
    ../../_images/sample_java003.png

6.1.2. サンプルプログラムのダウンロード

サンプルプログラムは以下のリンクより入手できます。

6.1.3. サンプルプログラムのインポート

ダウンロードしたファイルは、下記手順にてインポートすることができます。
  1. IM-Jugglingを起動し、Jugglingプロジェクト内にあるjuggling.imを IM-Juggling Editorで開きます。

  2. 「ユーザモジュール」タブを選択し、右上にある「+」のアイコンをクリックします。

  3. ダウンロードした「 sampleJava-1.0.0.imm 」ファイルを選択します。

  4. Jugglingプロジェクトからwarファイルを作成します。サンプルを含めるにチェックを入れます。

    コラム

    warファイルの作成については、「 intra-mart Accel Platform セットアップガイド 」 - 「 WARファイルの作成 」を参照してください。
  5. 作成したWARファイルを、 Web Application Server ( Resin ) 上にデプロイ(展開)します。

    注意

    「BIS管理者」ロールを付与したユーザでインポートを実施してください。

    注意

    IM-Workflow定義のインポートでは、zipファイルを解凍し、xmlファイルをインポートしてください。
  6. ダウンロードしたファイルをインポートします。
    インポート方法は、「 IM-BIS 業務管理者操作ガイド 」 - 「 インポート・エクスポートを行う 」を参照してください。
  7. 「IM-Workflow ユーザ」ロールを付与したユーザでログインします。
  8. [サイトマップ] - [ワークフロー] - [申請] - 「外部連携サンプル(JAVA)」の「申請/処理開始」をクリックします。
  9. テキストボックスにユーザIDを入力し、「ユーザ情報取得ボタン」をクリックします。
ユーザ情報の明細を取得します。
複数のユーザIDを「,(カンマ)」で区切って入力すると、複数のユーザ情報を取得します。
../../_images/sample_java004.png
以下の操作をした場合、エラーメッセージを表示します。
  • ユーザIDに何も入力しない

6.1.4. サンプルプログラムのコード

サンプルプログラムで使用するコードは以下の通りです。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package jp.co.intra_mart.system.bis.soa.func;

import java.math.BigDecimal;
import java.util.*;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import jp.co.intra_mart.foundation.context.Contexts;
import jp.co.intra_mart.foundation.context.model.AccountContext;
import jp.co.intra_mart.foundation.exception.BizApiException;
import jp.co.intra_mart.foundation.master.user.UserManager;
import jp.co.intra_mart.foundation.master.user.model.*;

public class SampleJava {

    public SampleJava(){
		
    }

    private AccountContext getAccountContext(){
        return (AccountContext)Contexts.get(AccountContext.class);
    }
    
    //Exceptionにthrowsすることで、Java連携の外部連携としてエラー処理されます
    public List<Map<String,Object>> sample(Map<String,Object> map) throws Exception{
    	
    	//レスポンスフィールド生成
        List<Map<String,Object>> resUserList = new ArrayList<Map<String,Object>>();
        Map<String,Object> detail;
    	
    	//リクエストパラメータ取得
        String reqUserList = map.get("userList").toString();
        
        //リクエストパラメータの文字列を配列に変換
        String[] userCdArray = reqUserList.split(",");
        
        //トリミング実施
        for(int i = 0; i < userCdArray.length; i++){
            userCdArray[i] = userCdArray[i].trim();
        }
        
        for(int i = 0; i < userCdArray.length; i++){
        
            //ユーザ情報取得
            IUserBizKey userBizKey = new UserBizKey();
            userBizKey.setUserCd(userCdArray[i]);
            UserManager manager = new UserManager();
            User user = manager.getUser(userBizKey, getAccountContext().getLoginTime());
        
            if(user != null){
                
            	//ユーザIDが存在する場合
                detail = new HashMap<String,Object>();
        
                //レスポンスパラメータにユーザ情報を設定する
                detail.put("user", user.getUserCd());
                detail.put("userName", user.getUserName());
                detail.put("startDate", user.getStartDate());
                detail.put("sortKey", BigDecimal.valueOf(user.getSortKey()));
                detail.put("deleteFlag", user.isDisable());
        
                resUserList.add(detail);
            }
            else{
        
                //ユーザIDが存在しない場合
                detail = new HashMap<String,Object>();
        
                //レスポンスパラメータを設定する
                detail.put("user", "ユーザIDがありません");
                detail.put("userName", null);
                detail.put("startDate", null);
                detail.put("sortKey", null);
                detail.put("deleteFlag", null);
        
                resUserList.add(detail);
            }
        }
        return resUserList;
    }
}

コラム

外部連携(JAVA)の詳細な仕様については、「 IM-BIS 仕様書 」 - 「 IM-BIS で外部連携として利用できるJavaプログラムの仕様 」を参照してください。

コラム

外部連携(JAVA)へのリクエスト、レスポンスの設定方法については、「 IM-BIS システム管理者操作ガイド 」 - 「 リクエストパラメータ、レスポンスフィールドの機能と各部の説明 」を参照してください。

階層化したリクエスト、レスポンスを設定する場合は、「 IM-BIS システム管理者操作ガイド 」 - 「 階層化したリクエストパラメータ、レスポンスフィールドの設定方法 」を参照してください。

コラム

外部連携の設定方法については、「 IM-BIS 業務管理者操作ガイド 」 - 「 外部連携を設定する 」を参照してください。