Tera Tail質問メモ
前提・実現したいこと
Google App Scriptで、
- BigQueryと接続
- BigQuery.Jobs.query()でクエリを実行して結果のObjectを取得
- 結果Objectから文字列に変換
ということを行なっています。
2番目の工程で、BigQueryからObjectsを取得する操作をしたあと、
Objectsの中身が空のまま、3番目の工程に進んでしまいエラーになります。
発生している問題・エラーメッセージ
Stackdriver のError Reportingについて TypeError: undefined からプロパティ「f」を読み取れません。 make_message (コード) というエラーが表示されます。
該当のソースコード
1# 本体のコード 2 var slackApp = SlackApp.create(token); 3 var projectID = 'hogehoge'; 4 var resource = { 5 query : 'hoge' # このクエリの動作は確認済み 6 } 7 var message = makeMessage(resource, projectID); 8 9# makeMssage 10function makeMessage(resource, projectID) { 11 var query_results = BigQuery.Jobs.query(resource, projectID); 12 var tableRows = query_results.getRows(); # この結果が空のまま次の処理が進んでしまう。 13 var message = make_message(tableRows); 14 return message; 15} 16 17# make_string 18function make_message(tableRows){ 19 var message = "``` hogehoge \n" ; # カラム名 20 message +=""+ tableRows[1].f[0].v +" "+tableRows[1].f[1].v +"% "+ tableRows[1].f[2].v +"%"+ "\n"; 21 message +=""+ tableRows[2].f[0].v +" "+tableRows[2].f[1].v +"% "+ tableRows[2].f[2].v +"%"+ "\n"+ "```"; 22 23 return message; 24} 25 26 27
試したこと
バッチ実行をしていますが、手動で2回実行すると、エラーが発生せずに成功します。
Queryの中身自体はBigQueryのGUI上で叩けば実行され、結果が取得されます。
補足情報(FW/ツールのバージョンなど)
以上です。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/09 10:51
2018/10/09 10:58
2018/10/10 06:13