Skip to content

Instantly share code, notes, and snippets.

@yehara
Created April 1, 2013 07:27
Show Gist options
  • Save yehara/5283644 to your computer and use it in GitHub Desktop.
Save yehara/5283644 to your computer and use it in GitHub Desktop.
Questetra BPM Suite の選択肢データのマスターとして Google Drive の Spreadsheet を利用するための Google Apps Script コード。
var docId = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
function getAll() {
var list = [];
var sheet = SpreadsheetApp.openById(docId).getSheets()[0];
var data = sheet.getDataRange().getValues();
for(var i = 0; i < data.length; i++) {
list.push({value: data[i][0], display: data[i][1]});
}
return list;
}
function find(query) {
var result = [];
var list = getAll();
for(var i=0; i<list.length; i++) {
if(list[i].value.indexOf(query) >= 0
|| list[i].display.indexOf(query) >= 0) {
result.push(list[i]);
}
}
return result;
}
function findExactValue(query) {
var list = getAll();
for(var i=0; i<list.length; i++) {
if(list[i].value == query) {
return [list[i]];
}
}
return [];
}
function doGet(e) {
var params = e.parameter || {};
var list = [];
if(params.query !== undefined) {
list = find(params.query);
} else if (params.values !== undefined){
list = findExactValue(params.values);
} else {
list = getAll();
}
return createResponse(list);
}
function createResponse(list) {
var template = HtmlService.createTemplateFromFile('template');
template.list = list;
var xml = template.evaluate().getContent();
Logger.log(xml);
return ContentService.createTextOutput(xml).setMimeType(ContentService.MimeType.XML);
}
function test() {
doGet({parameter: { query: "XX"}});
}
<items>
<? for (var i = 0; i < list.length; ++i) { ?>
<item value="<?= list[i].value ?>" display="<?= list[i].display ?>" />
<? } ?>
</items>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment