kintone에서 spreadsheet으로 정보 전기 (간이 버전)
소개
금과 소리 는 누가 기입, 갱신했는지를 알기 때문에 편리합니다만, 단독으로는 집계나 그 외의 시스템과의 자동화에 약한 것이 난점입니다.
수식을 사용해 집계를 실시하고 싶고, kintone→spreadsheet에 정보를 전기하는 것을 만들었습니다.
이하의 기사를 바탕으로 하고 있습니다(이하 기사중의 라이브러리의 인스톨이 있을지도).
htps : // 이 m/아라하비카/있어 ms/063877b0이다 439020d2c2
htps : // 코 m / 스탤 / ms / 0d d3 예 4f 세 83 아 21
초기 설정
spreadsheet 복사
아래 링크의 spreadsheet을 복사하여 사용하십시오.
htps : // / cs. 오, ぇ. 이 m/sp레 d 〇에 ts/d/18 울 lm 2L×x7 우 sp = 샤린 g
kintone 앱 정보 설정
'마스터'라는 시트에 정보를 입력하세요.
1. 「앱 ID」라는 열에 kintone으로 앱을 만들면 URL이 「~.cybozu.com/k/◯◯/」가 되어 있습니다만, 이 ◯◯의 숫자를 넣어 주세요.
2. 앱 이름 열에 kintone 앱의 이름을 넣으십시오.
※어플리케이션 번호는, 어플리케이션 ID에 기입이 있으면 자동으로 설정되게 되어 있습니다.
사용자 정보 입력
spreadsheet 복사
아래 링크의 spreadsheet을 복사하여 사용하십시오.
htps : // / cs. 오, ぇ. 이 m/sp레 d 〇에 ts/d/18 울 lm 2L×x7 우 sp = 샤린 g
kintone 앱 정보 설정
'마스터'라는 시트에 정보를 입력하세요.
1. 「앱 ID」라는 열에 kintone으로 앱을 만들면 URL이 「~.cybozu.com/k/◯◯/」가 되어 있습니다만, 이 ◯◯의 숫자를 넣어 주세요.
2. 앱 이름 열에 kintone 앱의 이름을 넣으십시오.
※어플리케이션 번호는, 어플리케이션 ID에 기입이 있으면 자동으로 설정되게 되어 있습니다.
사용자 정보 입력
다음 정보를 설정합니다.
※유저명, 패스워드에 사용하는 계정은 관리자 권한이 필요할지도
각 취득 조건(쿼리) 설정
조작 시트에 다음 정보를 입력합니다.
여기을 참조하여 설정하십시오 (입력되지 않은 경우에도 실행 가능).
실행
"개요"시트의 고양이 이미지를 누르면 처리가 시작됩니다.
출처
main.jsvar manager = '';
var apps = {};
// メイン処理
function main() {
prepare();
control();
}
// 初期化
function prepare() {
// 各種設定
var subdomain = PropertiesService.getScriptProperties().getProperty("subdomain");
var user = PropertiesService.getScriptProperties().getProperty("user");
var pass = PropertiesService.getScriptProperties().getProperty("pass");
// アプリ情報の設定
var sheet = SpreadsheetApp.getActive().getSheetByName('マスタ');
var data = sheet.getDataRange().getValues();
var appName = '';
// 2行目から検索
for (var i = 1; i < data.length; i++) {
// 1列目が空ではないとき
appName = data[i][0];
if('' !== appName){
apps[appName] = {};
apps[appName]['appid'] = data[i][1];
apps[appName]['name'] = data[i][2];
}
}
Logger.log(apps);
// パスワード認証
manager = new KintoneManager.KintoneManager(subdomain, apps, user, pass);
}
// 検索
function control() {
// 操作シートの情報を取得
var sheet = SpreadsheetApp.getActive().getSheetByName('操作');
var data = sheet.getDataRange().getValues();
var utillList = '';
var query = '';
var records = '';
var sheetWrite = '';
var appName = '';
// 2行目から検索
for (var i = 1; i < data.length; i++) {
// 1列目がtrueの場合
utillList = data[i];
if (utillList[0]) {
// kintoneの対象アプリ名を取得
appName = searchApp(utillList[1]);
// クエリを取得
query = utillList[2];
// 検索処理
records = search(appName, query);
// 書き込みシートを取得
sheetWrite = SpreadsheetApp.getActive().getSheetByName(utillList[3]);
writeSheet(sheetWrite, records);
}
}
}
// 検索処理
function search(appName, query){
// 検索を実行
var response = manager.search(appName, query);
// 結果コード
Logger.log('ステータスコード:' + response.getResponseCode());
// レコードの配列を返却
return JSON.parse(response.getContentText()).records;
}
// シートに書き込み
function writeSheet(sheet, records){
// 列見出しを取得
var array_kintone_fields = sheet.getRange("1:1").getValues()[0];
array_kintone_fields = array_kintone_fields.filter(Boolean);
// 書き込み行
var row = 2;
// 100行の内容を削除
sheet.getRange(row, 1, 100, array_kintone_fields.length).clearContent();
// レコードが取得された場合
if(typeof records !== 'undefined'){
// 値設定
records.forEach(function(record){
array_kintone_fields.forEach(function(kintone_field,index){
sheet.getRange(row,index+1).setValue(record[kintone_field].value);
})
row++;
})
// レコードが取得されなかった場合
}else{
sheet.getRange(row,1).setValue('あれ?取得できませんでした…');
}
}
// アプリケーション名を検索
function searchApp(appId){
// 対象アプリを検索
for (var key in apps) {
// アプリIDが一致した場合
if(apps[key].appid === parseInt(appId, 10)){
// アプリ名を返却
Logger.log('アプリ→' + key);
return key;
}
}
// 見つからなかった場合
Logger.log('アプリが見つかりませんでした');
return "";
}
사이고에게
표 옆에 집계 수식을 설정하고 싶지만, 지금은 「spreadsheet의 모든 정보를 취해 와, 표제에 맞는 kintone 정보를 설정」으로 하고 있기 때문에, 수식의 열이 있다고 버그해 버린다.
언젠가 어떻게든 하고 싶다…
Reference
이 문제에 관하여(kintone에서 spreadsheet으로 정보 전기 (간이 버전)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nintia8/items/3f38f31309a1ac4d48d4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var manager = '';
var apps = {};
// メイン処理
function main() {
prepare();
control();
}
// 初期化
function prepare() {
// 各種設定
var subdomain = PropertiesService.getScriptProperties().getProperty("subdomain");
var user = PropertiesService.getScriptProperties().getProperty("user");
var pass = PropertiesService.getScriptProperties().getProperty("pass");
// アプリ情報の設定
var sheet = SpreadsheetApp.getActive().getSheetByName('マスタ');
var data = sheet.getDataRange().getValues();
var appName = '';
// 2行目から検索
for (var i = 1; i < data.length; i++) {
// 1列目が空ではないとき
appName = data[i][0];
if('' !== appName){
apps[appName] = {};
apps[appName]['appid'] = data[i][1];
apps[appName]['name'] = data[i][2];
}
}
Logger.log(apps);
// パスワード認証
manager = new KintoneManager.KintoneManager(subdomain, apps, user, pass);
}
// 検索
function control() {
// 操作シートの情報を取得
var sheet = SpreadsheetApp.getActive().getSheetByName('操作');
var data = sheet.getDataRange().getValues();
var utillList = '';
var query = '';
var records = '';
var sheetWrite = '';
var appName = '';
// 2行目から検索
for (var i = 1; i < data.length; i++) {
// 1列目がtrueの場合
utillList = data[i];
if (utillList[0]) {
// kintoneの対象アプリ名を取得
appName = searchApp(utillList[1]);
// クエリを取得
query = utillList[2];
// 検索処理
records = search(appName, query);
// 書き込みシートを取得
sheetWrite = SpreadsheetApp.getActive().getSheetByName(utillList[3]);
writeSheet(sheetWrite, records);
}
}
}
// 検索処理
function search(appName, query){
// 検索を実行
var response = manager.search(appName, query);
// 結果コード
Logger.log('ステータスコード:' + response.getResponseCode());
// レコードの配列を返却
return JSON.parse(response.getContentText()).records;
}
// シートに書き込み
function writeSheet(sheet, records){
// 列見出しを取得
var array_kintone_fields = sheet.getRange("1:1").getValues()[0];
array_kintone_fields = array_kintone_fields.filter(Boolean);
// 書き込み行
var row = 2;
// 100行の内容を削除
sheet.getRange(row, 1, 100, array_kintone_fields.length).clearContent();
// レコードが取得された場合
if(typeof records !== 'undefined'){
// 値設定
records.forEach(function(record){
array_kintone_fields.forEach(function(kintone_field,index){
sheet.getRange(row,index+1).setValue(record[kintone_field].value);
})
row++;
})
// レコードが取得されなかった場合
}else{
sheet.getRange(row,1).setValue('あれ?取得できませんでした…');
}
}
// アプリケーション名を検索
function searchApp(appId){
// 対象アプリを検索
for (var key in apps) {
// アプリIDが一致した場合
if(apps[key].appid === parseInt(appId, 10)){
// アプリ名を返却
Logger.log('アプリ→' + key);
return key;
}
}
// 見つからなかった場合
Logger.log('アプリが見つかりませんでした');
return "";
}
표 옆에 집계 수식을 설정하고 싶지만, 지금은 「spreadsheet의 모든 정보를 취해 와, 표제에 맞는 kintone 정보를 설정」으로 하고 있기 때문에, 수식의 열이 있다고 버그해 버린다.
언젠가 어떻게든 하고 싶다…
Reference
이 문제에 관하여(kintone에서 spreadsheet으로 정보 전기 (간이 버전)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nintia8/items/3f38f31309a1ac4d48d4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)