Microsoft365 リスト取得(ページング時) (Microsoft365 List Get (for paging))
Microsoft365 で次ページのあるリストを取得します。取得データは文字型複数行のデータ項目に追記します。(リスト取得する場合、一度に取得できる件数に制限があり、複数ページに分けて取得しないといけない場合があります)
Configs
  • A: OAuth2 設定 *
  • B: 前処理で得た next Link URL *
  • C: 取得データリスト (更新) *
  • D: 取得データのキー名 *#{EL}
  • E: さらに次ページがある場合の next Link URL (更新)
  • X: 通信ログを保存するデータ項目 (更新)
Script (click to open)


// Get Microsoft365 Group Member List via Microsoft Graph API v1.0 (ver. 202211)
// (c) 2022, Questetra, Inc. (the MIT License)

//// == 工程コンフィグの参照 / Config Retrieving ==
const oauth2  = configs.get( "conf_OAuth2" ) + "";

const nextLink = engine.findDataByNumber(configs.get( "conf_nextLink" )) + "";
const keyName = configs.get( "conf_keyName" ) + "";

const dataId_list     = configs.get( "conf_list" );
const dataId_nextLink2 = configs.get( "conf_nextLink2" );
const dataId_log      = configs.get( "conf_log" );

//// == 演算 / Calculating ==
let accessLog = "";
let uri = nextLink;
let response = httpClient.begin()
  .authSetting( oauth2 )
  .get( uri );
accessLog += "---GET request--- " + response.getStatusCode() + "\n";
accessLog += response.getResponseAsString() + "\n";


//// == ワークフローデータへの代入 / Data Updating ==
const status = response.getStatusCode();

if( status >= 300 ){
  engine.log(accessLog);
  throw `Failed in DELETE request. status: ${status}`;
} else {
  const jsonObj = JSON.parse( response.getResponseAsString() );
  const values = jsonObj.value;
  //既存リストを取得して追記
  let list = engine.findDataByNumber( dataId_list) + "";
  for (let i = 0; i < values.length; i++) {
    let value = values[i];
//    list += value.mail + "\n";
    list += value[keyName] + "\n";
  }
  engine.setDataByNumber( dataId_list, list );

  if( dataId_nextLink2 !== "" ){
    engine.setDataByNumber( dataId_nextLink2, jsonObj['@odata.nextLink'] );
  }

}
if( dataId_log !== "" ){
  engine.setDataByNumber( dataId_log, accessLog );
}

Download

2022-11-02 (C) Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/microsoft365-list-get-paging/
Addonファイルのインポートは Professional でのみご利用いただけます
自由改変可能な JavaScript (ECMAScript) コードです。いかなる保証もありません。

Notes

  • Microsoft365 系のサービスとの連携設定について

Capture

See also

%d人のブロガーが「いいね」をつけました。