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

B.2 抽出したデータをファイルに出力する

抽出条件式にを勤務地(area)を指定して、すべての項目をファイルに出力する例を用いて、Java APIの使用例を示します。

使用例

Linuximport com.fujitsu.iis.IisAPI;

/**
 * 抽出条件式にを勤務地(area)を指定して、すべての項目をファイルに出力する
 */
public class Sample_2 {

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

  public boolean execute() {
    // APIインスタンス
    IisAPI api = null;
    // 戻り値
    boolean ret = true;
    // 抽出結果情報
    String[] select_result = null;
    // 抽出結果件数
    int data_count = 0;
    // 抽出結果ファイル名(絶対パス)
    String file_name = 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);

    // 抽出条件式:areaの値が東京に完全一致するデータを抽出
    String query = "$area=='東京'";
    // リターン式:全項目を取得
    String returnItem = null;

    // 抽出を依頼
    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件以上の場合

        // ファイルに抽出したデータを出力
        file_name = "/tmp/select_result";
        ret = api.outputResultFile(file_name, select_result);

        if (ret == true) {
          System.out.println("抽出したデータを" + file_name + "に出力しました。");
        } else {
          // エラー詳細番号取得
          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;
        }
      }
      // 抽出件数が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;
    }
  }
}
Windowsimport com.fujitsu.iis.IisAPI;

/**
 * 抽出条件式にを勤務地(area)を指定して、すべての項目をファイルに出力する
 */
public class Sample_2 {

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

  public boolean execute() {
    // APIインスタンス
    IisAPI api = null;
    // 戻り値
    boolean ret = true;
    // 抽出結果情報
    String[] select_result = null;
    // 抽出結果件数
    int data_count = 0;
    // 抽出結果ファイル名(絶対パス)
    String file_name = 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);

    // 抽出条件式:areaの値が東京に完全一致するデータを抽出
    String query = "$area=='東京'";
    // リターン式:全項目を取得
    String returnItem = null;

    // 抽出を依頼
    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件以上の場合

        // ファイルに抽出したデータを出力
        file_name = "C:\\tmp\\select_result";
        ret = api.outputResultFile(file_name, select_result);

        if (ret == true) {
          System.out.println("抽出したデータを" + file_name + "に出力しました。");
        } else {
          // エラー詳細番号取得
          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;
        }
      }
      // 抽出件数が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;
    }
  }
}

実行結果

Linux抽出件数 = 2
抽出したデータを/tmp/select_resultに出力しました。

/tmp/select_result

empno,"name","Date","team","area","pict1"
199801,"鈴木太郎","2007/06/30","1開発部","東京","199801.jpg"
200130,"山本清","2010/07/01","3開発部","東京","200130.jpg"
Windows抽出件数 = 2
抽出したデータをC:\tmp\select_resultに出力しました。

C:\tmp\select_result

empno,"name","Date","team","area","pict1"
199801,"鈴木太郎","2007/06/30","1開発部","東京","199801.jpg"
200130,"山本清","2010/07/01","3開発部","東京","200130.jpg"