UiPath PR

【UiPath】MicrosoftOffice365のSharePoint関連アクティビティの使用例

記事内に商品プロモーションを含む場合があります

UiPath Studioの開発では、Office365のSharePointのリスト操作したいケースがあります。

この記事では、Microsoft Office365アクティビティを使用して、SharePointのリストを操作する方法を説明します。

目次へ進む

 関連記事 【UiPath】Udemyのオンラインコースでワンランク上のロボット作成技術を学ぶ

当ブログ『エフペンITブログ』の運営者

 

Office365アクティビティの使用準備と方法

Office365アクティビティのインストール方法

Microsoft Office365アクティビティは、デフォルトで作成したプロセスには存在しません。

別途、MicrosoftOffice365.Activitiesアクティビティパッケージを追加する必要があります。

Microsoft Office365アクティビティのインストール方法は、Office365アクティビティパッケージのインストールの記事を参考にしてください。

 

Office365アクティビティの使用方法

Office365のSharePoint リスト関連のアクティビティは、「Microsoft Office 365 スコープ」内にアクティビティ配置して使用します。

「Microsoft Office 365 スコープ」は、連携>Microsoft>Office365 配下のアクティビティがすべて使用出来るのでおすすめです。

ただし、AzureADに対して「アプリの登録」の設定が必要です。

エフペン
エフペン
具体的な設定方法は、Microsoft Office 365 スコープによる認証を参照してください。

 

 

Office365のSharePoint操作のアクティビティ一覧

Office365のSharePoint リストを操作するアクティビティは、「連携>Microsoft>Office365>SharePoint リスト」配下にあります。

 

「連携>Microsoft>Office365>SharePoint リスト」配下のアクティビティは、以下表の通りです。

 

アクティビティの場所 アクティビティ名 アクティビティで出来ること
連携>Microsoft>
Office365>
SharePointリスト
リスト アイテムを削除(Delete List Item) Microsoft Graph の Delete item API を使用して、指定したリスト アイテムを削除します。
リストの項目を更新(Update List Item) Microsoft Graph の Update item API を使用して、指定したリスト アイテムを更新します。
リスト アイテムを追加(Add List Items) Microsoft Graph の Create item API を使用して、指定した SharePoint リストに 1 つ以上のリスト アイテムを追加します。
リストの情報を取得(Get List Info) Microsoft Graph の Get list API を使用して、指定した SharePoint リストに関する情報を取得します。
繰り返し (各リスト アイテム)(For Each List Item) Microsoft Graph の Get items API を使用して、指定した SharePoint リスト内の各リスト アイテムに対して 1 つまたは一連のアクティビティを実行します。
繰り返し (各リスト)(For Each List) Microsoft Graph の Get lists および Get list API を使用して、指定した SharePoint サイト内の各リストに対して 1 つまたは一連のアクティビティを実行します。

 

エフペン
エフペン
他のアクティビティは、Office365アクティビティ一覧を参照してください。

 

Office365のSharePoint リストの操作

Office365のSharePoint リストを操作するには、「連携>Microsoft>Office365>SharePoint リスト」にあるアクティビティを使用します。

ラッコくん
ラッコくん
この章では、使用頻度が高いアクティビティの使用例を紹介するよ

 

リストの情報を取得 (Get List Info)

Office365のSharePoint リストを操作するには、まず「リストの情報を取得 (Get List Info)」アクティビティでリストを検索して「UiPath.MicrosoftOffice365.Models.Office365SharepointList型」として取得します。

 

リストの情報を取得 (Get List Info)の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 共通 表示名 アクティビティの表示名です。
入力 列の定義を含む リストの列の情報を取得するかどうか指定します。
リストのタイトル/ID リストのタイトル (表示名) または ID のいずれかを指定します。
サイト URL/ID SharePoint サイトの URL または ID です。
その他 プライベート オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。
出力 リスト SharePoint リストに関する情報です。

 

 

 

 

繰り返し (各リスト アイテム)(For Each List Item)

Office365のSharePointを操作するには、まず「リストの情報を取得 (Get List Info)」アクティビティでリストを検索して「UiPath.MicrosoftOffice365.Models.Office365SharepointList」型として取得します。

次に、取得したOffice365SharepointListを「繰り返し (各リスト アイテム)(For Each List Item)」アクティビティで使用することにより、リスト内の各Itemの情報を取得出来ます。

 

繰り返し (各リスト アイテム)(For Each List Item)の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 共通 表示名 アクティビティの表示名です。
入力 フィルター 任意の OData フィルターです。
リスト 操作を実行する SharePoint リストです。
その他 プライベート オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。
出力 インデックス 使用中のコレクションで繰り返し処理される要素を指定するゼロベースのインデックスです。

 

 

サンプルプロセス
SharePointOnlineのリスト内の各アイテムのデータとメタ情報を表示する。

・ワークフロー(1/2)

エフペン
エフペン
リストの情報を取得の出力結果(spoList)を、繰り返し (各リスト アイテム)で使用して、各アイテムを出力しています。

 

・ワークフロー(2/2)

ラッコくん
ラッコくん
繰り返し (前判定)内の本文で各アイテムのListItemのデータとメタデータをログへ出力しているよ
エフペン
エフペン
ListItem.Fields(intWhileCount).value は、nullの場合があるので、条件分岐でnull判定をおこなっています。

 

・変数

 

・Microsoft Office 365 スコープのプロパティ

 

・リストの情報を取得のプロパティ

 

・繰り返し (各リスト アイテム)のプロパティ

 

・SharePointの取得対象のリスト

 

 

・ワークフロー実行結果のログ

 次のファイルのデバッグを開始しました: Main
Office365-Activity-sample の実行が開始されました。
==========
0
name: ContentType
value: アイテム
-----
name: Title
value: 田中
-----
name: Modified
value: 2022-03-06T04:35:16Z
-----
name: Created
value: 2022-02-20T03:44:00Z
-----
name: AuthorLookupId
value: 9
-----
name: EditorLookupId
value: 9
-----
name: _UIVersionString
value: 18.0
-----
name: Attachments
value: False
-----
name: Edit
value:
-----
name: LinkTitleNoMenu
value: 田中
-----
name: LinkTitle
value: 田中
-----
name: ItemChildCount
value: 0
-----
name: FolderChildCount
value: 0
-----
name: _ComplianceFlags
value:
-----
name: _ComplianceTag
value:
-----
name: _ComplianceTagWrittenTime
value:
-----
name: _ComplianceTagUserId
value:
-----
name: AppAuthorLookupId
value: 4
-----
name: score
value: 80
-----
name: ID
value: null
-----
name: DocIcon
value: null
-----
name: AppEditorLookupId
value: null
-----
name: ComplianceAssetId
value: null
-----
name: _x5099__x8003_
value: null
-----
name: _IsRecord
value: null
-----
==========
1
name: ContentType
value: アイテム
-----
name: Title
value: 鈴木
-----
name: Modified
value: 2022-03-05T11:59:01Z
-----
name: Created
value: 2022-02-20T03:44:00Z
-----
name: AuthorLookupId
value: 9
-----
name: EditorLookupId
value: 9
-----
name: _UIVersionString
value: 12.0
-----
name: Attachments
value: False
-----
name: Edit
value:
-----
name: LinkTitleNoMenu
value: 鈴木
-----
name: LinkTitle
value: 鈴木
-----
name: ItemChildCount
value: 0
-----
name: FolderChildCount
value: 0
-----
name: _ComplianceFlags
value:
-----
name: _ComplianceTag
value:
-----
name: _ComplianceTagWrittenTime
value:
-----
name: _ComplianceTagUserId
value:
-----
name: AppAuthorLookupId
value: 4
-----
name: AppEditorLookupId
value: 4
-----
name: score
value: 30
-----
name: _x5099__x8003_
value: 再テスト
-----
name: ID
value: null
-----
name: DocIcon
value: null
-----
name: ComplianceAssetId
value: null
-----
name: _IsRecord
value: null
-----
Office365-Activity-sample の実行が終了しました。 in: 00:00:21

 

エフペン
エフペン
列データの「タイトル」は、デフォルトで作成されているため、SharePoint上の表示と違い「Title」としてデータを持っています。
ラッコくん
ラッコくん
列データの「score」は、追加で作成したので、SharePointの表示通りscoreとして作成されているよ。
エフペン
エフペン
列データの「備考」は、全角のため、SharePoint上の表示と違い「_x5099__x8003_ 」としてログに出力されています。

 

 

リスト アイテムを追加(Add List Items)

Office365のSharePointを操作するには、まず「リストの情報を取得 (Get List Info)」アクティビティでリストを検索して「UiPath.MicrosoftOffice365.Models.Office365SharepointList」型として取得します。

次に、取得したOffice365SharepointListをリスト アイテムを追加(Add List Items)アクティビティで使用することにより、リスト内にItem追加出来ます。

 

リスト アイテムを追加(Add List Items)の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 共通 表示名 アクティビティの表示名です。
入力 リスト 操作を実行する SharePoint リストです。
リスト アイテム (複数) 複数のリスト アイテムのフィールド値です。
リスト アイテム (1 個) 1 つのリスト アイテムのフィールド値です。
その他 プライベート オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。
出力 リスト アイテム 新しく作成されたリスト アイテムの情報です。

 

 

サンプルプロセス
CSVファイルから取得したデータテーブルを、SharePointOnlineのリストへアイテムとして追加する。

 

・変数

 

・Microsoft Office 365 スコープのプロパティ

 

・CSV を読み込みのプロパティ

 

・リストの情報を取得のプロパティ

 

・リスト アイテムを追加のプロパティ

 

・読み込み対象のCSVファイル(spolist.csv)

 

・ワークフロー実行前のSharePointのリスト

 

 

・ワークフロー実行後のSharePointのリスト

エフペン
エフペン
CSVファイルの渡辺と八木のデータがリストへ追加されています。

 

 

リストの項目を更新(Update List Item)

Office365のSharePointを操作するには、まず「リストの情報を取得 (Get List Info)」アクティビティでリストを検索して「UiPath.MicrosoftOffice365.Models.Office365SharepointList」型として取得します。

次に、取得したOffice365SharepointListのデータを更新して、更新(Update List Item)で使用することにより、リスト内のItemを更新出来ます。

 

リストの項目を更新(Update List Item)の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 共通 表示名 アクティビティの表示名です。
入力 リスト アイテム 更新するリスト アイテムです。
その他 プライベート オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。

 

 

サンプルプロセス
SharePointOnlineのリストを取得し、取得したOffice365SharepointList内のデータを更新して、SharePointOnlineのアイテムを更新する。

・ワークフロー(1/4)

エフペン
エフペン
繰り返し (各リスト アイテム)で、リスト内のアイテムをListItem(Office365SharepointListItem型)として、一つずつ抽出します。

 

 

・ワークフロー(2/4)

ラッコくん
ラッコくん
条件分岐 nameがTitleか判定で、ListItemのFieldsのnameがTitleかつNULLでないかを判定しているよ。
エフペン
エフペン
ListItemのFieldsのvalueが「田中」か判定し、当てはまれば、flgUpdateをTrueとします。

 

・ワークフロー(3/4)

エフペン
エフペン
条件分岐 nameがScoreか判定で、ListItemのFieldsのnameがScoreかどうか判定し、次にflgUpdateがTrueであれば、sucoreを100とします。
ラッコくん
ラッコくん
条件分岐 nameがScoreか判定で、ListItemのFieldsのnameが_x5099__x8003_(備考)かどうか判定し、flgUpdateがTrueであれば、ワークフロー(4/4)で備考をアップデートとします。

 

・ワークフロー(4/4)

エフペン
エフペン
最後のリストアイテムを更新で、ListItemでリストアイテムを更新します。

 

・変数

 

・リストの情報を取得のプロパティ

 

・繰り返し (各リスト アイテム)のプロパティ

 

・ワークフロー実行前のSharePointのリスト

 

・ワークフロー実行後のSharePointのリスト

エフペン
エフペン
田中のscoreが100、備考がアップデートに変更されています。

 

 

・ワークフロー実行ログ

Office365-Activity-sample の実行が開始されました。
-----ListItemの番号: 0 -----
name: ContentType
name: Title
### フラグにTrueを設定 ###
name: Modified
name: Created
name: AuthorLookupId
name: EditorLookupId
name: _UIVersionString
name: Attachments
name: Edit
name: LinkTitleNoMenu
name: LinkTitle
name: ItemChildCount
name: FolderChildCount
name: _ComplianceFlags
name: _ComplianceTag
name: _ComplianceTagWrittenTime
name: _ComplianceTagUserId
name: AppAuthorLookupId
name: score
### scoreを更新 ###
name: ID
name: DocIcon
name: AppEditorLookupId
name: ComplianceAssetId
name: _x5099__x8003_
### 備考を更新 ###
name: _IsRecord
-----ListItemの番号: 1 -----
name: ContentType
name: Title
name: Modified
name: Created
name: AuthorLookupId
name: EditorLookupId
name: _UIVersionString
name: Attachments
name: Edit
name: LinkTitleNoMenu
name: LinkTitle
name: ItemChildCount
name: FolderChildCount
name: _ComplianceFlags
name: _ComplianceTag
name: _ComplianceTagWrittenTime
name: _ComplianceTagUserId
name: AppAuthorLookupId
name: score
name: _x5099__x8003_
name: ID
name: DocIcon
name: AppEditorLookupId
name: ComplianceAssetId
name: _IsRecord
-----ListItemの番号: 2 -----
name: ContentType
name: Title
name: Modified
name: Created
name: AuthorLookupId
name: EditorLookupId
name: _UIVersionString
name: Attachments
name: Edit
name: LinkTitleNoMenu
name: LinkTitle
name: ItemChildCount
name: FolderChildCount
name: _ComplianceFlags
name: _ComplianceTag
name: _ComplianceTagWrittenTime
name: _ComplianceTagUserId
name: AppAuthorLookupId
name: AppEditorLookupId
name: score
name: ID
name: DocIcon
name: ComplianceAssetId
name: _x5099__x8003_
name: _IsRecord
-----ListItemの番号: 3 -----
name: ContentType
name: Title
name: Modified
name: Created
name: AuthorLookupId
name: EditorLookupId
name: _UIVersionString
name: Attachments
name: Edit
name: LinkTitleNoMenu
name: LinkTitle
name: ItemChildCount
name: FolderChildCount
name: _ComplianceFlags
name: _ComplianceTag
name: _ComplianceTagWrittenTime
name: _ComplianceTagUserId
name: AppAuthorLookupId
name: AppEditorLookupId
name: score
name: _x5099__x8003_
name: ID
name: DocIcon
name: ComplianceAssetId
name: _IsRecord
Office365-Activity-sample の実行が終了しました。 in: 00:00:16

 

 

・コピペ用のコード

■メッセージをログ
"-----ListItemの番号: "+ListItemIndex.ToString + " -----"

■メッセージをログ
"name: "+ListItem.Fields(intWhileCount).name


■条件分岐 nameがTitleか判定
ListItem.Fields(intWhileCount).name.Equals("Title") and ListItem.Fields(intWhileCount).value IsNot Nothing

■条件分岐 nameがScoreか判定
ListItem.Fields(intWhileCount).name.Equals("score")

■条件分岐 nameが備考か判定
ListItem.Fields(intWhileCount).name.Equals("_x5099__x8003_")

 

 

 

 

リスト アイテムを削除(Delete List Item)

Office365のSharePointのリストを操作するには、まず「リストの情報を取得 (Get List Info)」アクティビティでリストを検索して「UiPath.MicrosoftOffice365.Models.Office365SharepointList」型として取得します。

次に、取得したOffice365SharepointList内の削除対象のOffice365SharepointListItem をリスト アイテムを削除(Delete List Item)で使用することにより、リスト内のItemを削除出来ます。

 

リスト アイテムを削除(Delete List Item)の設定項目

設定場所 設定項目 設定内容
[プロパティ] パネル内 共通 表示名 アクティビティの表示名です。
入力 リスト アイテム 操作を実行するリスト アイテムです。
その他 プライベート オンにした場合、変数および引数の値が Verbose レベルでログに出力されなくなります。

 

 

サンプルプロセス
SharePointOnlineのリストを取得し、取得したOffice365SharepointList内の特定のアイテムを削除する。

・ワークフロー(1/2)

エフペン
エフペン
繰り返し (各リスト アイテム)で、リスト内のアイテムをListItem(Office365SharepointListItem型)として、一つずつ抽出します。

 

・ワークフロー(2/2)

ラッコくん
ラッコくん
条件分岐 nameがTitleか判定で、ListItemのFieldsのnameがTitleかつNULLでないかを判定しているよ。
エフペン
エフペン
ListItemのFieldsのvalueが「佐藤」か判定し、当てはまれば、リストアイテムから削除しています。

 

・変数

 

・Microsoft Office 365 スコープのプロパティ

 

・リストの情報を取得のプロパティ

 

・繰り返し (各リスト アイテム)のプロパティ

 

・ワークフロー実行前のSharePointのリスト

 

・ワークフロー実行後のSharePointのリスト

ラッコくん
ラッコくん
リストから佐藤が削除されているよ。

 

・ワークフロー実行ログ

Office365-Activity-sample の実行が開始されました。
-----ListItemの番号: 0 -----
name: ContentType
name: Title
### フラグにTrueを設定 ###
name: Modified
name: Created
name: AuthorLookupId
name: EditorLookupId
name: _UIVersionString
name: Attachments
name: Edit
name: LinkTitleNoMenu
name: LinkTitle
name: ItemChildCount
name: FolderChildCount
name: _ComplianceFlags
name: _ComplianceTag
name: _ComplianceTagWrittenTime
name: _ComplianceTagUserId
name: AppAuthorLookupId
name: score
### scoreを更新 ###
name: ID
name: DocIcon
name: AppEditorLookupId
name: ComplianceAssetId
name: _x5099__x8003_
### 備考を更新 ###
name: _IsRecord
-----ListItemの番号: 1 -----
name: ContentType
name: Title
name: Modified
name: Created
name: AuthorLookupId
name: EditorLookupId
name: _UIVersionString
name: Attachments
name: Edit
name: LinkTitleNoMenu
name: LinkTitle
name: ItemChildCount
name: FolderChildCount
name: _ComplianceFlags
name: _ComplianceTag
name: _ComplianceTagWrittenTime
name: _ComplianceTagUserId
name: AppAuthorLookupId
name: score
name: _x5099__x8003_
name: ID
name: DocIcon
name: AppEditorLookupId
name: ComplianceAssetId
name: _IsRecord
-----ListItemの番号: 2 -----
name: ContentType
name: Title
name: Modified
name: Created
name: AuthorLookupId
name: EditorLookupId
name: _UIVersionString
name: Attachments
name: Edit
name: LinkTitleNoMenu
name: LinkTitle
name: ItemChildCount
name: FolderChildCount
name: _ComplianceFlags
name: _ComplianceTag
name: _ComplianceTagWrittenTime
name: _ComplianceTagUserId
name: AppAuthorLookupId
name: AppEditorLookupId
name: score
name: ID
name: DocIcon
name: ComplianceAssetId
name: _x5099__x8003_
name: _IsRecord
-----ListItemの番号: 3 -----
name: ContentType
name: Title
name: Modified
name: Created
name: AuthorLookupId
name: EditorLookupId
name: _UIVersionString
name: Attachments
name: Edit
name: LinkTitleNoMenu
name: LinkTitle
name: ItemChildCount
name: FolderChildCount
name: _ComplianceFlags
name: _ComplianceTag
name: _ComplianceTagWrittenTime
name: _ComplianceTagUserId
name: AppAuthorLookupId
name: AppEditorLookupId
name: score
name: _x5099__x8003_
name: ID
name: DocIcon
name: ComplianceAssetId
name: _IsRecord
Office365-Activity-sample の実行が終了しました。 in: 00:00:16

 

 

・コピペ用のコード

■メッセージをログ
"-----ListItemの番号: "+ListItemIndex.ToString + " -----"

■メッセージをログ
"name: "+ListItem.Fields(intWhileCount).name


■条件分岐 nameがTitleか判定
ListItem.Fields(intWhileCount).name.Equals("Title") and ListItem.Fields(intWhileCount).value IsNot Nothing

■条件分岐 valueの値を判定
ListItem.Fields(intWhileCount).value.Equals("佐藤")

 

 

まとめ

  • Office365のSharePointのリストを操作するためには、まずMicrosoftOffice365.Activitiesアクティビティパッケージを追加します。
  • SharePointのリストを操作するワークフローに「Microsoft Office 365 スコープ」を配置し、その中に「連携>Microsoft>Office365>SharePoint リスト」アクティビティを配置する。
  • 「リストの情報を取得 (Get List Info)」アクティビティで指定のリストを検索して「UiPath.MicrosoftOffice365.Models.Office365SharepointList」型として取得した結果を、SharePoint リストのアクティビティで使用して操作する。

目次へ戻る

 関連記事 【UiPath】Udemyのオンラインコースでワンランク上のロボット作成技術を学ぶ

 


 

ラッコくん
ラッコくん
IT未経験からITエンジニア目指すなら、何から始めれば良い?
エフペン
エフペン
もし、エフペンが未経験からITエンジニア目指すなら、プログラミングスクールのディープロの4ヶ月短期集中コースへ入会します。  

\教育訓練給付金対象講座なら受講料最大45万円給付/

ディープロのオンライン個別説明会&相談会の日程を予約する

*オンライン個別説明会&相談会への参加は無料

ディープロ公式サイトの4ヶ月短期集中コースサイト

 関連記事 現役SEエフペンがもしIT未経験からWebエンジニアを目指すならプログラミングスクール【ディープロ】を受講する

エフペン
エフペン
プログラミングだけでなく、要件、設計、開発、テスト、環境構築とプログラミング以外のスキルも丁寧に学べるので、卒業後1人前とみなされて転職活動できるからです。

 

ABOUT ME
エフペン
システム開発,クラウド構築,サービス企画まで幅広い経験を持つITエンジニア。当ブログでは、UiPathや資格取得のノウハウを発信します。profile詳細 / twitter:@fpen17