shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Power Query】kintoneからExcelに読み込む事例(パラメーターの利用)

前回の【Power Query】kintoneからExcelに読み込む事例(ログイン名とパスワード情報の利用) をベースに、「ログイン名とパスワード情報」をパラメーターとして随時修正する事例です。パラメーターを利用して汎用性、メンテナンス性を高めています。

なお、この事例の注意点は次のとおりです。

  • ログイン名とパスワード情報をExcelファイルに保存が必要です。ファイルを他者が閲覧できたり共有する場合は「ログイン名とパスワード情報」の削除など、取り扱いに注意が必要です
  • その他、職場など組織の規定等や、kintoneの仕様に準じる必要があります。

内容:

アウトプットイメージ

設定のアウトプットイメージは次のとおりです。

前回の【Power Query】kintoneからExcelに読み込む事例(ログイン名とパスワード情報の利用) をベースに、 'Authorization' という名前のパラメーターを作成し、「ソース」ステップの数式内から 'Authorization' を参照、Base64エンコードも実施します。

「ソース」ステップ以外は同様です。

「ログイン名とパスワード情報」をパラメーターとして修正できるようにしてある

設定のアウトプットイメージ

cybozu.dev

設定手順(既存のクエリを修正する場合)

この事例のベースになっている【Power Query】kintoneからExcelに読み込む事例(ログイン名とパスワード情報の利用) に従ってクエリを作成後、「ソース」ステップのみを修正するとわかりやすい。

その場合は、次項の「設定手順(新規で作成する場合)」で

2.kintoneと連携する数式を入力する

3.「新しいパラメーター」の設定

のように修正する。

設定手順(新規で作成する場合)

前述の「設定手順(既存のクエリを修正する場合)」がわかりやすいが、参考に新規で作成する場合の手順は次のとおり。

1.「空のクエリ」を追加する。

Excelの「データ」タブの「データの取得」‐「その他のデータソースから」‐「空のクエリ」で、新しくクエリを作成する。

「データの取得」‐「その他のデータソースから」‐「空のクエリ」

「空のクエリ」を追加する

上記の結果、次のような「空のクエリ」が作成される。

ステップにソースがあり、空白の状態

「空のクエリ」のイメージ

2.kintoneと連携する数式を入力する

ソースの数式欄に、次の内容を入力する。

= Json.Document(Web.Contents(“https://●●●.com/k/v1/records.json?app=■■■”, [Headers=[#"X-Cybozu-Authorization"=Binary.ToText(Text.ToBinary(Authorization,TextEncoding.Utf8),BinaryEncoding.Base64)]]))

なお、●●●部分は利用するkintoneのURLとあわせ、■■■の部分にはアプリIDを入力する。

その結果、上記数式で「Authorization」の設定は未実施のため、次のようなエラーを含めた画面となる。このエラーは、次の「新しいパラメーター」を設定することで解消する。

「Expression.Error: 名前 'Authorization' を認識できません。綴りが正しいことを確認してください。」のメッセージ

数式の入力後のイメージ

3.「新しいパラメーター」の設定

前述のエラーで、

Expression.Error: 名前 'Authorization' を認識できません。綴りが正しいことを確認してください。

となっているので、 'Authorization' という変数名のパラメーターを作成する。

まず、「ホーム」タブの「パラメーターの管理」‐「新しいパラメーター」をクリックする。

「パラメーターの管理」‐「新しいパラメーター」をクリックする

「新しいパラメーター」の設定画面の起動

 「パラメーターの管理」の画面が表示されるので次のように設定する。

  • 名前欄は、「前述の認識されていたなかった変数名 Authorization」を入力
  • 種類欄は、「テキスト」を選択
  • 現在の値欄は、当該kintoneの実際のログイン名とパスワードを「:」でつなげた値を入力

なお、現在の値欄に入力する値は、認証 - cybozu developer networkの仕様にしたがっている。Base64のエンコード部分はPowerQueryの数式で変換するため、実際のログイン名とパスワードを「:」でつなげた値でよい。

名前、種類、現在の値を設定している

 「パラメーターの管理」の設定イメージ

 

以上の結果、Authorizationというパラメーターが追加され、エラーも解消される。

「Expression.Error: 名前 'Authorization' を認識できません。綴りが正しいことを確認してください。」のエラーが解消されている

Authorizationというパラメーターが追加された画面

4.必要な値の一覧に設定する

前述の手順で、クエリは次の状態になっている。

recordsのlistに値がある

ソースの設定完了後

5.[records]のListから必要な値を取得

ここからは、[records]のListから必要な値を取得していくことが可能。

具体的な手順は、「kintoneからExcelに読み込む基本」である次の説明で、「2.Table.FromRecordsで、ソース[records]からテーブル作成」の手順と同様。

shikumika.org

補足説明

Base64エンコードの数式について

Base64エンコードの数式の詳細は以下に記載しています。

shikumika.org

今回はPowerQueryでBase64エンコードをしましたが、エンコード後の値を利用する場合は、上記「kintoneからExcelに読み込む基本」で、「1.PowerQueryで「データの取得」-「Webから」の設定」のヘッダー情報を変更することでシンプルに可能です。

以上、Power Queryで、kintoneからExcelに読み込む事例(パラメーターの利用)でした。