ご案内

 Kintone アプリから選択肢データを一括取得するには、次のモデリング要素をご利用ください。

kintone 2列データの一括取得

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

2016-09-21 © Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/box-fileupdate/

Configs
  • A: サブドメインをセットしてください (https://{subdomain}.kintone.com/) *
  • B: アプリIDをセットしてください (/k/”3″/) *
  • C: APIトークンをセットしてください *
  • D: 選択肢IDのフィールドコード情報が格納されている文字列型or選択肢型データを選択してください *
  • E: 選択肢ラベルのフィールドコード情報が格納されている文字列型or選択肢型データを選択してください *
  • F: 選択肢IDの一覧が格納される文字列型データを選択してください (更新) *
  • G: 選択肢ラベルの一覧が格納される文字列型データを選択してください (更新) *
  • H: 通信ログが格納される文字列型データを選択してください (更新)
Script
//// == 工程コンフィグの参照 / 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 );
}

Download

  • Kintone-getIdsLabels.xml
    • スクリプトエンジンとして「Rhino(廃止予定)」が指定されているため、アプリにインストールしても設定エラーとなります
    • 利用するには、スクリプトエンジンの変更、およびそれに伴うスクリプト修正が必要です
    • 修正版は準備中です

Capture

Notes

  • 配列値となるフィールドや改行コードが入るフィールドは指定できません
  • レコード識別項目「レコード番号」(Record Number)を指定したい場合は「$id」というフィールドコード表記になります
%d人のブロガーが「いいね」をつけました。