LoginSignup
7
3

More than 3 years have passed since last update.

SharePoint REST APIでフィールドを作成する際の自分メモ

Last updated at Posted at 2019-07-22

やりたいこと・やったこと

PowerAppsで頻繁にSharePointオンラインのカスタムリストを使うので、リストの作成や列追加もいっそPowerApps→Flowで完結させたい!
そのためにSharePoint REST APIをFlowから実行!だけどBodyに何かいていいかわからない
今回はSharePoint REST APIを利用してフィールドを作成する際に、どういうBodyを入れるかの備忘録を記載します。

FlowでSharePoint REST APIを実行

Microsoft Flowで「SharePoint」と検索すると表示されるアクションに、「Send an HTTP request to SharePoint」というのがあります。これをつかっていきます。
image.png

今回はフィールドの追加をしますので、以下のようにアクションのパラメータをセットします。
image.png

ここでUriは _api/web/lists/getbytitle('リストのタイトル')/fields で、MethodをGETにすれば対象リストに含まれるフィールドの一覧(プロパティ含む)が得られますし、POSTにすればフィールドの追加ができます。
Lookup列のみ、addfield methodを使いなさいと怒られます。
追加する際にはBodyにフィールドの設定をJson形式で記載する必要があります。(名前、フィールドのタイプ、ユニークにするか、デフォルト値は など)

Bodyの中身

基本は下記のような構成でBodyを構成します。
DefaultValueやDescription,Requiredは省略可能でした。

Body.json
 {
    "__metadata": {
      "type": "SP.Field" //追加するフィールドの種別
    },
    "DefaultValue": "1", //デフォルト値
    "Description": "", //フィールドの記述
    "EnforceUniqueValues": false, //ユニークな値を強制するか
    "Required": false, //必須か
    "Title": "bool", //列名
    "FieldTypeKind": 8, //フィールドの種類
    +フィールド種別に応じたプロパティ
 }

送るBodyの詳細はこちら にまとめられています。これだけ見ればきっとわかるはず。Exampleもあるので。

実際つくったFlow

image.png

PowerAppsではリストのGUIDやサイトアドレスをCollectionとして持っています。
Bodyの中身ですが、これはPowerAppsからおくったJsonをちょっと加工して挿入しています。
replace(replace(replace(triggerBody()['SendanHTTPrequesttoSharePoint_Body'],'"[','['),']"',']'),'"','''')

image.png

ということで自分用メモでした。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3