Kintone 2列データの一括取得

指定した kintoneアプリ の2列のフィールドコードの値をそれぞれデータ項目に格納し、通信ログを文字型データ項目に格納します。

    A. サブドメインをセットしてください (https://{subdomain}.kintone.com/)単一行記述必須
    B. アプリIDをセットしてください (/k/"3"/)単一行記述必須
    C. APIトークンをセットしてください単一行記述必須
    D. 選択肢IDのフィールドコード情報が格納されている文字列型or選択肢型データを選択してくださいデータ項目選択文字列型(単一行)or選択型(ラジオ/セレクト/検索)必須
    E. 選択肢ラベルのフィールドコード情報が格納されている文字列型or選択肢型データを選択してくださいデータ項目選択文字列型(単一行)or選択型(ラジオ/セレクト/検索)必須
    F. 選択肢IDの一覧が格納される文字列型データを選択してください (更新)データ項目選択文字列型(複数行)必須
    G. 選択肢ラベルの一覧が格納される文字列型データを選択してください (更新)データ項目選択文字列型(複数行)必須
    H. 通信ログが格納される文字列型データを選択してください (更新)データ項目選択文字列型(複数行)
    -設定変数名設定ラベル
    Aconf_SubDomainサブドメインをセットしてください (https://{subdomain}.kintone.com/)
    Bconf_AppIdアプリIDをセットしてください (/k/"3"/)
    Cconf_ApiTokenAPIトークンをセットしてください
    Dconf_DataIdD選択肢IDのフィールドコード情報が格納されている文字列型or選択肢型データを選択してください
    Econf_DataIdE選択肢ラベルのフィールドコード情報が格納されている文字列型or選択肢型データを選択してください
    Fconf_DataIdF選択肢IDの一覧が格納される文字列型データを選択してください (更新)
    Gconf_DataIdG選択肢ラベルの一覧が格納される文字列型データを選択してください (更新)
    Hconf_DataIdH通信ログが格納される文字列型データを選択してください (更新)
    // Batch to Get Data via Kintone REST API (ver. 20160921)
    // (c) 2016, Questetra, Inc. (the MIT License)
    
    //// == 工程コンフィグの参照 / Config Retrieving ==
    var subDomain = configs.get( "conf_SubDomain" );
    var appId     = configs.get( "conf_AppId" );
    var apiToken  = configs.get( "conf_ApiToken" );
    var dataIdD = configs.get( "conf_DataIdD" ); // (returns Number)
    var dataIdE = configs.get( "conf_DataIdE" ); // (returns Number)
    var dataIdF = configs.get( "conf_DataIdF" ); // (returns Number)
    var dataIdG = configs.get( "conf_DataIdG" ); // (returns Number)
    var dataIdH = configs.get( "conf_DataIdH" ) + ""; // (returns Number)
    
    //// == ワークフローデータの参照 / Data Retrieving ==
    var fieldCodeI = "";
    if( data.get( dataIdD ) instanceof java.util.ArrayList ){
      fieldCodeI = data.get( dataIdD ).get(0).getValue() + "";
    }else if( data.get( dataIdD ) instanceof java.lang.String ){
      fieldCodeI = data.get( dataIdD ) + "";
    }
    var fieldCodeL = "";
    if( data.get( dataIdE ) instanceof java.util.ArrayList ){
      fieldCodeL = data.get( dataIdE ).get(0).getValue() + "";
    }else if( data.get( dataIdE ) instanceof java.lang.String ){
      fieldCodeL = data.get( dataIdE ) + "";
    }
    
    //// == 演算 / Calculating ==
    var accessLog = "";
    var responseJson = "";
    
    var choiseIds = "";
    var choiseLabels = "";
    
    try{
      var uri = "https://";
      uri += subDomain;
      uri += ".cybozu.com/k/v1/records.json";
    
      var response = httpClient.begin()
        .header("X-Cybozu-API-Token", apiToken )
        .queryParam( "app", appId )
        .queryParam( "fields[0]", fieldCodeI )
        .queryParam( "fields[1]", fieldCodeL )
        .queryParam( "query", "order by " + fieldCodeI + " asc" )
        .get( uri ); 
      accessLog += "---GET request--- " + response.getStatusCode() + "\n";
      responseJson = response.getResponseAsString();
      if( response.getStatusCode() == 200 ){
        var jsonObj = JSON.parse( responseJson );
        for( var i = 0; i < jsonObj.records.length; i++ ){
          choiseIds += jsonObj.records[i][fieldCodeI].value + "\n";
          choiseLabels += jsonObj.records[i][fieldCodeL].value + "\n";
        }
      }
    }catch(e){
      accessLog += e.message + "\n";
    }
    // for Debug
    // accessLog += responseJson + "\n";
    
    //// == ワークフローデータへの代入 / Data Updating ==
    retVal.put( dataIdF, choiseIds );
    retVal.put( dataIdG, choiseLabels );
    if( dataIdH !== "" ){
      retVal.put( dataIdH, accessLog );
    }
    

    • D’: Dで選択したデータ項目に格納されているフィールドコード
    • E’: Eで選択したデータ項目に格納されているフィールドコード
    • kintone アプリ B’ のフィールドコード D’ と E’ にある値が、それぞれF、Gで選択したデータ項目に格納されます。
    • 通信ログがHで選択したデータ項目に格納されます
    • 配列値となるフィールドや改行コードが入るフィールドは指定できません
    • レコード識別項目「レコード番号」(Record Number)を指定したい場合は「$id」というフィールドコード表記になります