JavaでkintoneのREST APIを使ってみる【データ登録編】

kintoneで公開されているREST APIはデータの登録/変更/削除や検索、フィールドの定義など色々な事ができ、上手く使うとkintoneをバックエンドのWebDBとして活用することが出来ます。

 

kintoneのREST APIを使うと例えば、

  • 販売管理システムから出力される日次の売上げデータを毎日自動的にkintoneに登録し、データ分析をkintoneで行う
  • kintoneで管理している在庫データを定期的に取得し、在庫管理システムに登録する

などなど、他システムとの連携を実現することができます。

 

今回は、Javaを使ってkintoneにデータアップロードする連携方法を紹介します。
(ダウンロードについてはまた後日・・)

他システムとkintoneとのデータ連携は行いたいけど、開発ができないという方は、カスタマイズ開発を1週間20万円という定額料金で提供していますので、弊社までお気軽にお問い合わせください。

有難い事にJava用のAPIがサイボウズさんが運営するdevelopers サイトにあるので、これを使っていきます。

ダウンロードしたSDKをExclipseなどのIDEに組み込んで下さい。(今回、IDE側の設定は省略します。)

kintoneにデータをアップロード

  1. kintoneのSDKを利用するためにクラスをimport
  2. 以下のようにkintoneAPIのクラスをimportします。

    import com.cybozu.kintone.database.Connection;
    import com.cybozu.kintone.database.Record;
    import com.cybozu.kintone.database.ResultSet;
    import com.cybozu.kintone.database.exception.DBException;
    
  3. kintoneへ接続
  4. kintoneへ接続するためにサブドメイン、API実行ユーザーログイン名、API実行ユーザーパスワードを渡します。

    //kintoneへの接続
    Connection db = null;
    try {
         db = new Connection("サブドメイン名", "ログイン名", "パスワード");
          System.out.println("kintoneへ接続しました");
    } catch (Exception e) {
          System.err.println("kintoneへの接続に失敗しました。" );
          e.printStackTrace();
          System.exit(1);
    }
    

    データを登録した際にここで指定したユーザーが登録者になります。

  5. kintoneにデータを登録
  6. 次にデータ登録部分です。

    Record record = new Record();
    record.setString("フィールドコード", "値");   //文字列フィールドへ登録
    record.setDate("フィールドコード", "値");   //日付、ラジオボタン、リストボックスなどのフィールドへ登録
    record.setLong("フィールドコード", "値");   //数値フィールドへ登録
    
    //kintoneにデータ登録
    try {
        db.insert("アプリID", record);
    } catch (DBException e) {
        System.err.println("kintoneへデータアップロードに失敗しました。");
        e.printStackTrace();
    }
    

    recordオブジェクトにフィールドタイプ毎に用意されているsetterにフィールドコードと値をいれ、db.insert()でkintoneへデータを登録します。

    もちろん、サブテーブルや添付ファイルへの登録も可能です。
    (添付ファイルの場合は、一度ファイルをアップロードして、ファイルキーを取得して、それを指定するなどちょっと面倒です。)

 

コードをまとめるとこんな感じになります。

import com.cybozu.kintone.database.Connection;
import com.cybozu.kintone.database.Record;
import com.cybozu.kintone.database.ResultSet;
import com.cybozu.kintone.database.exception.DBException;

public static void main(String[] args) throws IOException {
  Connection db = null;
  try {
       db = new Connection("サブドメイン名", "ログイン名", "パスワード");
        System.out.println("kintoneへ接続しました");
  } catch (Exception e) {
        System.err.println("kintoneへの接続に失敗しました。" );
        e.printStackTrace();
        System.exit(1);
  }

  Record record = new Record();  //レコードオブジェクト
  record.setString("フィールドコード", "値");   //文字列ラジオボタン、リストボックスなどのフィールド
  record.setDate("フィールドコード", "値");   //日付フィールド
  record.setLong("フィールドコード", "値");   //数値フィールド

  //kintoneにデータ登録
  try {
      db.insert("アプリID", record);
  } catch (DBException e) {
      System.err.println("kintoneへデータアップロードに失敗しました。");
      e.printStackTrace();
  }finally{
      db.close();   //kintone切断
  }
}

単純に登録するだけだったら、けっこう簡単なコードでいけてしまいます。

データ更新も検索して、レコードIDを取得するという以外は、ほぼ同じ感じでいけるます。

 

kintoneはデータ連携して初めて導入効果がでるものだと私は思っていますので、是非、大勢のユーザーがAPIを活用し、サイボウズさんにどんどんAPIの機能強化をしていってもらうことを望んでます(笑)

 

 

同じカテゴリーの記事