アプリのアクション設定を変更する

目次

アプリのアクション設定を変更する

同名のアクションがアプリに存在したり更新後のアクション名がほかのアクション名と重複したりする場合、このAPIを実行するとエラーが発生します。

このAPIは、動作テスト環境のアプリを変更します。
本番環境に変更を反映する場合、このAPIを実行した後に、アプリ設定を運用環境へ反映するAPIを実行してください。
アプリ設定を運用環境へ反映するAPI

URL

通常のアプリ
https://sample.cybozu.com/k/v1/preview/app/actions.json
ゲストスペースのアプリ
https://sample.cybozu.com/k/guest/GUEST_SPACE_ID/v1/preview/app/actions.json

HTTPメソッド

PUT

必要なアクセス権

  • アプリ管理権限

リクエスト

パラメーター
パラメーター名 必須 説明
app 数値または文字列 必須 アプリID
actions オブジェクト 必須 アクションの設定
アクション設定を追加、更新するときは、既存のアクションの設定をactionsに指定してください。
指定しないとそのアクションの設定は削除されます。
actions.アクション名 オブジェクト 省略可 各アクションの設定
  • アクションを追加するとき:
    追加するアクション名をアクション名に指定します。
  • アクションを変更するとき:
    更新するアクション名をアクション名に指定します。
  • アクションを削除するとき:
    削除するアクション名のプロパティを指定しません。
actions.アクション名.name 文字列 条件必須 アクション名
1文字以上32文字以下で指定します。
アクションを追加する場合は必須で、アクション名と同じ値を指定します。
既存のアクション名を変更する場合は、変更後のアクション名を指定します。
省略した場合は変更されません。
actions.アクション名.index 数値または文字列 条件必須 アクションの表示順
値の昇順で並べ替えられます。
アクション名を指定する場合は必須です。
actions.アクション名.destApp オブジェクト 条件必須 コピー先のアプリの情報
アクションを追加する場合は必須です。
省略した場合は変更されません。
actions.アクション名.destApp.app 数値または文字列 条件必須 コピー先のアプリのアプリID
destApp.appまたはdestApp.codeが必須です。
どちらも指定すると、destApp.codeの値が設定されます。
actions.アクション名.destApp.code 文字列 条件必須 コピー先のアプリのアプリコード
destApp.appまたはdestApp.codeが必須です。
どちらも指定すると、destApp.codeの値が設定されます。
「null」または空文字を指定すると、指定なしとみなされます。
actions.アクション名.mappings 配列 条件必須 フィールドの関連付けの一覧
アクションを追加、またはdestAppを指定している場合は必須です。
省略すると、更新されません。
空配列を指定した場合は、フィールドの関連付けなしに設定されます。
actions.アクション名.mappings[].srcType 文字列 条件必須 コピー元の種類
次のいずれかの値を指定します。
  • FIELD:フィールド
  • RECORD_URL:レコードのURL
mappingsを指定する場合は必須です。
actions.アクション名.mappings[].srcField 文字列 条件必須 コピー元のフィールドのフィールドコード
mappings[].srcTypeが「FIELD」の場合は必須です。
actions.アクション名.mappings[]destField 文字列 条件必須 コピー先のフィールドのフィールドコード
mappingsを指定する場合は必須です。
actions.アクション名.entities 配列(文字列) 条件必須 アクションを利用するメンバーの一覧
アクションを新規追加する場合は必須です。
省略すると、更新されません。
空配列を指定した場合は、アクションを利用するメンバーは設定されません。
actions.アクション名.entities[].type 文字列 条件必須 アクションを利用するメンバーの種類
次のいずれかの値を指定します。
  • USER:ユーザー
  • GROUP:グループ
  • ORGANIZATION:組織
ゲストスペースのアプリでは、「ORGANIZATION」は指定できません。
entitiesを指定する場合は必須です。
actions.アクション名.entities[].code 文字列 条件必須 アクションを利用するメンバーのコード
entity.typeの値によって異なります。
  • 「USER」の場合:ログイン名
  • 「GROUP」の場合:グループコード
  • 「ORGANIZATION」の場合:組織コード
ゲストユーザーを指定する場合、ログイン名の前に「guest/」を付けます。
entitiesを指定する場合は必須です。
revision 数値または文字列 省略可 期待しているリビジョン番号
実際のリビジョン番号と一致しない場合はエラーとなり、設定は変更されません。
値に「-1」を指定する、または指定しなかった場合はリビジョン番号は検証されません。
リクエストの例
URL

https://sample.cybozu.com/k/v1/preview/app/actions.json

ヘッダー
1
2
3
4
{
  "X-Cybozu-API-Token": "API_TOKEN",
  "Content-Type": "application/json"
}

リクエストヘッダーの詳細は共通仕様を参照してください。
kintone REST APIの共通仕様

ボディ
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
  "app": "1",
  "actions": {
    "注文管理に登録": {
      "name": "注文管理に登録",
      "index": "0",
      "destApp": {
        "code": "INVOICE"
      },
      "mappings": [
        {
          "srcType": "FIELD",
          "srcField": "CompanyName",
          "destField": "CompanyName"
        },
        {
          "srcType": "FIELD",
          "srcField": "DivisionName",
          "destField": "DivisionName"
        },
        {
          "srcType": "RECORD_URL",
          "destField": "URL"
        }
      ],
      "entities": [
        {
          "type": "USER",
          "code": "userA"
        }
      ]
    }
  },
  "revision": "2"
}

レスポンス

プロパティ
プロパティ名 説明
actions オブジェクト アクションの情報
actions.アクション名.id 文字列 アクションID
revision 文字列 更新後のアプリの設定のリビジョン番号
レスポンスの例
1
2
3
4
5
6
7
8
{
  "revision": "2",
  "actions": {
    "注文管理に登録": {
      "id": "7319"
    }
  }
}

サンプルコード

curlを使ったリクエスト
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
curl -X PUT 'https://sample.cybozu.com/k/v1/preview/app/actions.json' \
  -H 'X-Cybozu-API-Token: API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "app": 1,
    "actions": {
      "注文管理に登録": {
        "name": "注文管理に登録",
        "index": "0",
        "destApp": {
          "code": "INVOICE",
        },
        "mappings": [
          {
            "srcType": "FIELD",
            "srcField": "CompanyName",
            "destField": "CompanyName",
          },
          {
            "srcType": "FIELD",
            "srcField": "DivisionName",
            "destField": "DivisionName",
          },
          {
            "srcType": "RECORD_URL",
            "destField": "URL",
          },
        ],
        "entities": [
          {
            "type": "USER",
            "code": "userA",
          },
        ],
      },
    },
  }'
kintone.api()を使ったリクエスト

kintone.api()の詳細は、次のページを参照してください。
kintone REST APIリクエストを送信する

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const body = {
  app: kintone.app.getId(),
  actions: {
    注文管理に登録: {
      name: '注文管理に登録',
      index: '0',
      destApp: {
        code: 'INVOICE',
      },
      mappings: [
        {
          srcType: 'FIELD',
          srcField: 'CompanyName',
          destField: 'CompanyName',
        },
        {
          srcType: 'FIELD',
          srcField: 'DivisionName',
          destField: 'DivisionName',
        },
        {
          srcType: 'RECORD_URL',
          destField: 'URL',
        },
      ],
      entities: [
        {
          type: 'USER',
          code: 'userA',
        },
      ],
    },
  },
};

await kintone.api(kintone.api.url('/k/v1/preview/app/actions.json', true), 'PUT', body);