前回の内容では色々と試行錯誤した途中の情報も書いていたので、少々後でみたらややこしいです。
私自身のためにも本当に機能する部分だけで内容を整理したいと思います。
アイテムまたはファイルの共有を停止します
まずは、アイテムまたはファイルの共有を停止します。この部分は標準のアクションをそのまま使います。
パラメータ | 値の説明 |
---|---|
リストまたはライブラリ名 | 共有を停止するリストを選択します |
ID | 共有を停止するアイテムのIDを指定します。数値 |
マスターとして使用するリストに共有権限を与えたいグループを登録しています。
項目名 | 説明 |
---|---|
タイトル | 部門名称 |
Approver | 承認者 |
canEdit | 編集権限のあるグループ |
canView | 閲覧権限のあるグループ |
住所変更届リストのアイテムに登録されている部門マスターのIDから編集権限のあるグループを取得します。
標準のアイテムの取得アクションを使います。
グループ情報をグループの名前から取得する
HTTP 要求アクションを使います。
IDは以下のように設定している
outputs('ApproverGroupMaster項目の取得')?['body/canEdit/Claims']
_api/web/sitegroups/getbyname('@{outputs('ApproverGroupMaster項目の取得')?['body/canEdit/Claims']}')
ヘッダ
Accept | application/json;odata=verbose |
Content-Type | application/json;odata=verbose |
取得したグループの情報からIDだけを取得する
JSON の解析アクションを使います。
解析の対象
@{body('グループ情報の取得_HTTP_要求')?['d']}
スキーマ
{
"type": "object",
"properties": {
"Id": {
"type": "integer"
}
}
スキーマは今までリストの項目が増えたときに毎回修正していたけど、使う分だけ設定しても機能するみたいです。今回はIDしか使わないので、IDだけを指定します
グループの権限を追加
HTTP 要求アクションを使います。
グループのIDを使ったところは プリンシパル Idと説明されています。
URI
_api/lists/getByTitle('019住所変更届')/items(@{triggerBody()?['entity']?['ID']})/roleassignments/addroleassignment(PrincipalId=@{body('グループのId_JSON_の解析')?['Id']},roleDefId=1073741827)
Role Definition Name | Role Definition Id | 日本語表記 |
---|---|---|
Full Control | 1073741829 | フルコントロール |
Design | 1073741828 | デザイン |
Edit | 1073741830 | 編集 |
Contribute | 1073741827 | 投稿 |
Read | 1073741826 | 閲覧 |
Limited Access | 1073741825 | |
View Only | 1073741924 |