前回の【Power Query】kintoneからExcelに読み込む事例(ログイン名とパスワード情報の利用) をベースに、「ログイン名とパスワード情報」をパラメーターとして随時修正する事例です。パラメーターを利用して汎用性、メンテナンス性を高めています。
なお、この事例の注意点は次のとおりです。
- ログイン名とパスワード情報をExcelファイルに保存が必要です。ファイルを他者が閲覧できたり共有する場合は「ログイン名とパスワード情報」の削除など、取り扱いに注意が必要です。
- その他、職場など組織の規定等や、kintoneの仕様に準じる必要があります。
内容:
アウトプットイメージ
設定のアウトプットイメージは次のとおりです。
前回の【Power Query】kintoneからExcelに読み込む事例(ログイン名とパスワード情報の利用) をベースに、 'Authorization' という名前のパラメーターを作成し、「ソース」ステップの数式内から 'Authorization' を参照、Base64エンコードも実施します。
「ソース」ステップ以外は同様です。
設定手順(既存のクエリを修正する場合)
この事例のベースになっている【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」の設定は未実施のため、次のようなエラーを含めた画面となる。このエラーは、次の「新しいパラメーター」を設定することで解消する。
3.「新しいパラメーター」の設定
前述のエラーで、
Expression.Error: 名前 'Authorization' を認識できません。綴りが正しいことを確認してください。
となっているので、 'Authorization' という変数名のパラメーターを作成する。
まず、「ホーム」タブの「パラメーターの管理」‐「新しいパラメーター」をクリックする。
「パラメーターの管理」の画面が表示されるので次のように設定する。
- 名前欄は、「前述の認識されていたなかった変数名 Authorization」を入力
- 種類欄は、「テキスト」を選択
- 現在の値欄は、当該kintoneの実際のログイン名とパスワードを「:」でつなげた値を入力
なお、現在の値欄に入力する値は、認証 - cybozu developer networkの仕様にしたがっている。Base64のエンコード部分はPowerQueryの数式で変換するため、実際のログイン名とパスワードを「:」でつなげた値でよい。
以上の結果、Authorizationというパラメーターが追加され、エラーも解消される。
4.必要な値の一覧に設定する
前述の手順で、クエリは次の状態になっている。
5.[records]のListから必要な値を取得
ここからは、[records]のListから必要な値を取得していくことが可能。
具体的な手順は、「kintoneからExcelに読み込む基本」である次の説明で、「2.Table.FromRecordsで、ソース[records]からテーブル作成」の手順と同様。
補足説明
Base64エンコードの数式について
Base64エンコードの数式の詳細は以下に記載しています。
今回はPowerQueryでBase64エンコードをしましたが、エンコード後の値を利用する場合は、上記「kintoneからExcelに読み込む基本」で、「1.PowerQueryで「データの取得」-「Webから」の設定」のヘッダー情報を変更することでシンプルに可能です。
以上、Power Queryで、kintoneからExcelに読み込む事例(パラメーターの利用)でした。