2023-03-16 (C) Questetra, Inc. (MIT License) 3 This item downloads Choice Data in specified 2 columns from Google Sheet. この工程は、Google スプレッドシートから指定した2列に入っている選択肢データを取得します。 https://support.questetra.com/bpmn-icons/googlesheets-getidslabels/ https://support.questetra.com/ja/bpmn-icons/googlesheets-getidslabels/ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADbElEQVRYR8WXS0hUURjH/2dGJFDz lqNimmORhAU5hRVFojgTQSTarl3azN5x1aboQdAqGoVc2AyOFoGCpQuN7E6MRIVW4BBZUqJkbYTw +H7M48Sdx3Ve986d0crFuDjfd8/v+5/vcQ7Bf/4jyezPWfX1IKQKDDoAHIj/P8AwBoCCYAwETnqF 71f63YQAXEc1B19aE8DMAOGUfZhRgFig8rTQRieV85EF4Gw1DQC5r3zj6K0YBUMjNTn6pCAkATir 3gJCmpRFnNDKQo18czyruACcVW8HIZcTfjYpA2anRkdjtEsMQHjkvefuoqawQvTxMV8w54S8Y2DM /4uhmRGUZhfj9gcbBn+8lcZirIWaHOZwgwiAwJmrOkIGzro2lOeUJozzxcwITuYf8ts1v2lB39Sw HMTF8JwQAQLZrp4KT7hkAbj0LMxvLOHquwfonuQlIBiFyrsvVB2bADbDTQA3wr1SARD8F9zLuD7a jq6JQSklblEjL+yHTQCrQWgk2akC7FCnY2d6hug+uzqHSy+vSapAjY5dIkCwwz2LtlaqwNz6Ihbd yxHuK551nHpqSpgLfgWkal4pQLxdlj1rKOqqTVgRAQCbwQmgKlUFUgIAhqmRrw4pMA1CtHIAK541 LGxEyhxtr1apkbsjMC4SK4AxauKPhhRg8aIIPwLX7294NPEch3fvR/d3HpUFOuzJ0IhuHuYF//M9 us/eUQYgjE8jT5ICGJoZhU5TivbxPpwvPo2izLxNAJ8X9omBFAGs+oRHICjw6tdHHNMcRNvnXtRq z2BvZr4I4PZ58PBLfxIAzEWNDp3iJBQAeiYdOJJzAJ1fB2AoOoHCzFwRwOvzon/6dRIAkUkYd/RG 58Do7DgqcsvQ+qkHdSWV0GYVRChwz/VEOUBwMIWqQLhqyTaibU9CxvxDSXErFspwyb0q3VgAqAiB RkkZMsxTE++v120ZRik0ojjDSBjH3rTp8IH0V1oxwzzUnpKYcRxoyZEXkqELrTieVyYru9Si0DW1 j+tjl4NnH1qQvZKltLO8kyi9JEBwOm7/pZSxTmpyNETz/atreUzksgqEFv0XFRB79E1J8dEICQfW kNLDRIQIPM3MYDArBhE2JhCeZpYtPc2iIw0ogmoQogMYB5DygA1zAYSCMeGR6pSLWHEOKJZ5i4Z/ AEwJzTC2ALrNAAAAAElFTkSuQmCC { configs.put('conf_OAuth2', 'Google'); configs.put('conf_DataIdB', sheetId); configs.put('conf_DataIdC', sheetTitle); configs.put('conf_DataIdD', rangeI); configs.put('conf_DataIdE', rangeL); // 文字型データ項目を準備して、config に指定 const idDataDef = engine.createDataDefinition('選択肢 ID の一覧', 1, 'q_Id', 'STRING_TEXTFIELD'); configs.putObject('conf_DataIdF', idDataDef); // 文字型データ項目の値(スプレッドシートの ID)を指定 engine.setData(idDataDef, '事前文字列'); // 文字型データ項目を準備して、config に指定 const labelDataDef = engine.createDataDefinition('選択肢ラベルの一覧', 2, 'q_Label', 'STRING_TEXTFIELD'); configs.putObject('conf_DataIdG', labelDataDef); // 文字型データ項目の値(スプレッドシートのタイトル)を指定 engine.setData(labelDataDef, '事前文字列'); return { idDataDef, labelDataDef }; }; /** * Get リクエストのテスト * @param {Object} request * @param request.url * @param request.method * @param request.contentType * @param request.body * @param sheetId * @param sheetTitle */ const assertGetRequest = ({ url, method, contentType, body }, sheetId, sheetTitle, rangeI, rangeL) => { let newRangeI = rangeI.replace(":", "%3A"); let newRangeL = rangeL.replace(":", "%3A"); expect(url) .toEqual(`https://sheets.googleapis.com/v4/spreadsheets/${sheetId}/values/:batchGet` + `?ranges=${sheetTitle}%21${newRangeI}&ranges=${sheetTitle}%21${newRangeL}` + "&valueRenderOption=UNFORMATTED_VALUE&dateTimeRenderOption=FORMATTED_STRING" + "&majorDimension=COLUMNS"); expect(method).toEqual('GET'); }; /** * GET API リクエストでエラーになる場合 */ test('GET Failed', () => { prepareConfigs(configs, '12345abcde', 'sheet1', 'C1:C3', 'E1:E3'); httpClient.setRequestHandler((request) => { assertGetRequest(request, '12345abcde', 'sheet1', 'C1:C3', 'E1:E3'); return httpClient.createHttpResponse(400, 'application/json', '{}'); }); //