ページの先頭行へ戻る
Symfoware Analytics Server(Operational Data Store編) アプリケーション開発ガイド
FUJITSU Software

B.1 抽出したデータを取得する

抽出条件式にチーム名(team)を指定して、条件に一致する部分情報を取得する例を用いて、Java APIの使用例を示します。

使用例

import com.fujitsu.iis.IisAPI;

/**
 *  抽出条件式にチーム名(team)を指定して、条件に一致する部分情報を取得する
 */
public class Sample_1 {

  public static void main(String[] args) {
    new Sample_1().execute();
  }

  public boolean execute() {
    // APIインスタンス
    IisAPI api = null;
    // 戻り値
    boolean ret = true;
    // 抽出結果情報
    String[] select_result = null;
    // 抽出結果件数
    int data_count = 0;
    // 読込み結果
    String[] read_data = null;
    // エラー詳細番号
    int error_no = 0;

    try {
      api = new IisAPI();
    } catch (NullPointerException e) {
      System.out.println("APIの初期化に失敗しました");
      return false;
    }

    // 環境設定
    // 制御サーバセットのホスト名 
    api.setRequestorHostName("192.0.2.1");
    // 制御サーバセットのポート番号
    api.setRequestorPortNo(24101);
    // カテゴリ名
    api.setCategoryName("SAMPLE");
    // 実行クラス名
    api.setTargetClassName("Class1");
    // データ形式
    api.setTargetFileType("CSV");

    // 半角英字大小区別
    api.setANKmix(true);
    // 全角英字大小区別
    api.setKNJmix(true);
    // CSVヘッダレコード
    api.setLabelLine(true);

    // 抽出条件式:teamの値が1開発部に完全一致するデータを抽出
    String query = "$team=='1開発部'";
    // リターン式:nameおよびteamを取得
    String returnItem = "$name,$team";

    // 抽出を依頼
    select_result = api.requestSelect(query, returnItem); 

    // 抽出正常復帰
    if (select_result != null) {
      // 抽出件数取得
      data_count = api.getDataCount();

      // 件数取得異常復帰
      if (data_count == -1) {
        // エラー詳細番号取得
        error_no = api.getLastError();
        // エラー詳細番号とメッセージを出力し終了する
        System.out.println("エラー番号 = " + error_no + ", エラーメッセージ = "
            + api.getLastErrorMessage(error_no));
        // 抽出結果情報および抽出結果中間ファイル破棄
        api.deleteInstance(select_result);
        return false;
      }

      // 件数出力
      System.out.println("抽出件数 = " + data_count);

      // 抽出件数確認
      if (data_count > 0) {
        // 抽出件数が1件以上の場合

        // 抽出結果情報をオープン
        ret = api.openData(select_result);

        // オープン正常復帰
        if (ret == true) {
          // CSVヘッダレコード分を追加
          int cnt = data_count + 1;
          // 抽出結果データ読込み
          read_data = api.readData(cnt);

          // 読込み正常復帰
          if (read_data != null) {
            // 抽出したデータを表示
            for (int i = 0; i < read_data.length; i++) {
              System.out.println(read_data[i]);
            }
          }
          // 読込み異常復帰
          else {
            // エラー詳細番号取得
            error_no = api.getLastError();
            // エラー番号とメッセージを出力し終了する
            System.out.println("エラー番号 = " + error_no
                + ", エラーメッセージ = " + api.getLastErrorMessage(error_no));
            // 抽出結果データのクローズ
            api.closeData();
            // 抽出結果情報および抽出結果中間ファイル破棄
            api.deleteInstance(select_result);
            return false;
          }

          // 抽出結果情報のクローズ
          ret = api.closeData();

          // クローズ異常復帰
          if (ret == false) {
            // エラー詳細番号取得
            error_no = api.getLastError();
            // エラー詳細番号とメッセージを出力し終了する
            System.out.println("エラー番号 = " + error_no + ", エラーメッセージ = "
                + api.getLastErrorMessage(error_no));
            // 抽出結果情報および抽出結果中間ファイル破棄
            api.deleteInstance(select_result);
            return false;
          }

          // 抽出結果情報および抽出結果中間ファイル破棄
          ret = api.deleteInstance(select_result);

          // 破棄異常復帰
          if (ret == false) {
            // エラー詳細番号取得
            error_no = api.getLastError();
            // エラー詳細番号とメッセージを出力し終了する
            System.out.println("エラー番号 = " + error_no + ", エラーメッセージ = "
                + api.getLastErrorMessage(error_no));
            return false;
          }
        }
        // オープン異常復帰
        else {
          // エラー詳細番号取得
          error_no = api.getLastError();
          // エラー詳細番号とメッセージを出力し終了する
          System.out.println("エラー番号 = " + error_no + ", エラーメッセージ = "
              + api.getLastErrorMessage(error_no));
          // 抽出結果情報および抽出結果中間ファイル破棄
          api.deleteInstance(select_result);
          return false;
        }
      }
      // 抽出件数が0件の場合
      else if (data_count == 0) {
        // 抽出結果情報および抽出結果中間ファイル破棄
        api.deleteInstance(select_result);
      }
      return true;
    }
    // 抽出異常終了
    else {
      // エラー詳細番号取得
      error_no = api.getLastError();
      // エラー詳細番号とメッセージを出力し終了する
      System.out.println("エラー番号 = " + error_no + ", エラーメッセージ = "
          + api.getLastErrorMessage(error_no));
      return false;
    }
  }
}

実行結果

抽出件数 = 3
"name","team"
"鈴木太郎","1開発部"
"佐藤花子","1開発部"
"田中五郎","1開発部"