質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.40%
kintone

kintone(キントーン)とは、サイボウズ社が提供する業務改善プラットフォームです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

0回答

241閲覧

Looker Studioのkintone用コネクタから連携した日付データが期間のディメンションとして設定できない。

HK7005

総合スコア0

kintone

kintone(キントーン)とは、サイボウズ社が提供する業務改善プラットフォームです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

1クリップ

投稿2024/05/13 05:36

実現したいこと

『Looker Studioのkintone用コネクタを作成中だがデータが100件以上取得できない』https://teratail.com/questions/0hz077p3s531nn
コチラの内容を参考にさせていただきながら、kintoneとLooker Studioの連携を試しています。

発生している問題・分からないこと

データの連携などは上手くできたものの、kintoneの日付データ(売上日)をLooker Studioに連携した際、そのデータを期間のディメンションとして設定することができず、”期間設定”で期間を絞り込んでグラフや表を表示することができなくて困っています。
解決策など何か分かる方がいらっしゃればご教示いただけますと幸いです。
宜しくお願いいたします。

エラーメッセージ

error

1特にエラーメッセージはなし。 2期間設定で日付を絞り込みしても、一覧表には全件表示されたままになります。(日付の絞り込みができない)

該当のソースコード

var cc = DataStudioApp.createCommunityConnector(); //コネクタの認証方法を返す関数を設定 function getAuthType() { var AuthTypes = cc.AuthType; return cc .newAuthTypeResponse() .setAuthType(AuthTypes.NONE) .build(); } //コネクタ追加時にkintoneアプリのIDを入力してレコードのリストを取得するように指示 function getConfig(request) { var config = cc.getConfig(); config.newInfo() .setId('instructions') .setText('Looker Studioに接続するkintoneのアプリIDを入力してください'); config.newTextInput() .setId('app_id') .setName('kintoneのアプリID'); config.setDateRangeRequired(true); return config.build(); } //kintoneアプリから取得可能なフィールドを定義 function getFields(request) { var cc = DataStudioApp.createCommunityConnector(); var fields = cc.getFields(); var types = cc.FieldType; fields.newDimension() .setId('record_id') .setName('レコード番号') .setType(types.TEXT); fields.newDimension() .setId('company_code') .setName('顧客コード') .setType(types.NUMBER); fields.newDimension() .setId('company_name') .setName('顧客名') .setType(types.TEXT); fields.newDimension() .setId('sales_date') .setName('売上日') .setType(types.YEAR_MONTH_DAY) fields.newDimension() .setId('gross_profit') .setName('粗利益') .setType(types.NUMBER); return fields; } //リクエストされたフィールドに対応するスキーマを取得 function getSchema(request) { var fields = getFields(request).build(); return { schema: fields }; } //kintone APIからデータを取得し、Looker Studioで使用できる形式に変換 function getData(request) { var requestedFieldIds = request.fields.map(function(field) { return field.name; }); var requestedFields = getFields().forIds(requestedFieldIds); // Fetch and parse data from kintone API var appId = request.configParams.app_id; var apiToken = PropertiesService.getScriptProperties().getProperty("KINTONE_API_TOKEN"); var limit = 500; var offset = 0; const query = '粗利益 >= "1" or 粗利益 <= "-1"' var allRecords = []; while (true) { var url = 'https://サブドメイン.cybozu.com/k/v1/records.json?app=' + appId + '&query=' + encodeURIComponent(query) + encodeURIComponent('limit ' + limit + ' offset ' + offset); var headers = { 'X-Cybozu-API-Token': apiToken }; var options = { 'headers': headers }; var response = UrlFetchApp.fetch(url, options); var parsedResponse = JSON.parse(response); var kintoneRecords = parsedResponse.records; allRecords = allRecords.concat(kintoneRecords); if (kintoneRecords.length < limit) { break; } offset += limit; } var rows = responseToRows(requestedFields, allRecords); return { schema: requestedFields.build(), rows: rows }; } // kintoneからのレスポンスをLooker Studioの行形式に変換 function responseToRows(requestedFields, response) { return response.map(function(record) { var row = []; requestedFields.asArray().forEach(function (field) { switch (field.getId()) { case 'record_id': return row.push(record['レコード番号'].value); case 'company_code': return row.push(record['顧客コード'].value); case 'company_name': return row.push(record['文字列__1行_'].value); case 'sales_date': return row.push(record['売上日'].value.replace(/-/g, '')); case 'gross_profit': return row.push(record['粗利益'].value); } }); return { values: row }; }); } // エラーが起きたときにデバッグに必要な詳細の説明が得られる関数を設定 function isAdminUser() { return true; }

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

https://f-884.com/article/277
コチラの記事を参考にLooker Studio側でTODATE関数を設定し、もう一つ別で日付フィールド(売上日2)を用意しました。TODATE(売上日,"%Y/%m/%d")
→ 売上日2を利用した表でも特に変わりませんでした。(期間のディメンションとして設定することができず、”期間設定”で期間を絞り込んでグラフや表を表示することができない)

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.40%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問