アプリのグラフ設定を変更する

目次

アプリのグラフ設定の変更する

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

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

URL

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

HTTP メソッド

PUT

必要なアクセス権

  • アプリ管理権限

リクエスト

パラメーター
パラメーター名 必須 説明
app 数値または文字列 必須 アプリ ID
reports オブジェクト 必須 グラフの情報
グラフを追加、更新するときは、既存のグラフを reports に指定してください。指定しないとそのグラフは削除されます。
reports.グラフ名 オブジェクト 省略可 各グラフの設定
  • グラフを追加するとき:
    追加するグラフ名を グラフ名 に指定します。
  • グラフを変更するとき:
    更新前のグラフ名を グラフ名 に指定します。
  • グラフを削除するとき:
    削除するグラフ名のプロパティを指定しません。
reports.グラフ名.chartType 文字列 条件必須 グラフの種類
次のいずれかの値を指定します。
  • BAR:横棒グラフ
  • COLUMN:縦棒グラフ
  • PIE:円グラフ
  • LINE:折れ線グラフ
  • PIVOT_TABLE:クロス集計表
  • TABLE:表
  • AREA:面グラフ
  • SPLINE:曲線グラフ
  • SPLINE_AREA:曲線面グラフ
グラフ名 を指定する場合は必須です。
reports.グラフ名.chartMode 文字列 条件必須 グラフの表示モード
次のいずれかの値を指定します。
  • NORMAL
    • chartType が「BAR」または「COLUMN」の場合:集合
    • chartType が「AREA」または「SPLINE_AREA」の場合:積み上げなし
  • STACKED:積み上げ
  • PERCENTAGE:100%積み上げ
chartType が「BAR」「COLUMN」「AREA」「SPLINE_AREA」のときは必須です。
reports.グラフ名.name 文字列 条件必須 変更後のグラフ名
64 文字以内で指定します。
グラフを追加する場合は必須で、グラフ名 と同じ値を指定します。
reports.グラフ名.index 数値または文字列 条件必須 グラフの並び順
昇順で並べ替えられます。
グラフ名 を指定する場合は必須です。
値が重複していると、エラーになります。
reports.グラフ名.groups 配列 条件必須 分類する項目の一覧
指定した順番に、大項目、中項目、小項目として設定されます。
グラフを追加する場合は必須です。
3 つまで指定できます。
chartType が「PIVOT_TABLE」の場合には、2 つ以上指定してください。
reports.グラフ名.groups[].code 文字列 条件必須 分類する項目のフィールドコード
groups を指定する場合は必須です。
reports.グラフ名.groups[].per 文字列 条件必須 分類する項目の時間単位
次のいずれかの値を指定します。
  • YEAR:年単位
  • QUARTER:四半期単位
  • MONTH:月単位
  • WEEK:週単位
  • DAY:日単位
  • HOUR:1時間単位
  • MINUTE:分単位
groups[].code に次のフィールドを指定した場合は必須です。
  • 作成日時
  • 更新日時
  • 日時
  • 日付:「YEAR」「QUARTER」「MONTH」「WEEK」「DAY」の場合のみ
  • 時刻:「HOUR」「MINUTE」の場合のみ
groups[].code に指定したフィールドによって設定できる値が異なります。
reports.グラフ名.aggregations 配列 条件必須 集計方法の一覧
10 つまで指定できます。
chartType が「PIVOT_TABLE」の場合には、1 つのみです。
グラフを追加する場合は必須です。
reports.グラフ名.aggregations[].type 文字列 条件必須 集計方法の種類
次のいずれかの値を指定します。
  • COUNT:レコード数
  • SUM:合計
  • AVERAGE:平均
  • MAX:最大
  • MIN:最小
aggregations を指定する場合は必須です。
reports.グラフ名.aggregations[].code 文字列 条件必須 集計対象のフィールドコード
aggregations[].type が「SUM」「AVERAGE」の場合は、次のフィールドを指定できます。
  • 数値
  • 計算(数値)
  • 計算(時間)
    chartType が「TABLE」のときだけ
  • 数値型のルックアップ
aggregations[].type が「MAX」「MIN」の場合は、次のフィールドを指定できます。
  • 数値
  • 計算(数値)
  • 計算(日時、日付、時刻、時間)
    chartType が「TABLE」のときだけ
  • 日時
    chartType が「TABLE」のときだけ
  • 日付
    chartType が「TABLE」のときだけ
  • 時刻
    chartType が「TABLE」のときだけ
  • 作成日時
    chartType が「TABLE」のときだけ
  • 更新日時
    chartType が「TABLE」のときだけ
  • 数値型のルックアップ
aggregations[].type が「COUNT」以外の場合は、必須です。
reports.グラフ名.filterCond 文字列 絞り込み条件
クエリ形式で指定します。クエリ形式は、 クエリの書き方 を参照してください。
グラフを追加するときに省略すると、「すべてのレコード」を指定した場合と同じです。
更新するときに省略すると、設定を変更しません。
削除済みのユーザー/組織/グループが指定されている場合は、エラーが返ります。
reports.グラフ名.sorts 配列 条件必須 ソートの一覧
3 つまで指定できます。
グラフを追加する場合は必須です。
reports.グラフ名.sorts[].by 文字列 条件必須 ソートの対象
次のいずれかの値を指定します。
  • TOTAL:集計値
  • GROUP1:大項目
  • GROUP2:中項目
  • GROUP3:小項目
sorts を指定する場合は必須です。
reports.グラフ名.sorts[].order 文字列 条件必須 ソートの並び順
次のいずれかの値を指定します。
  • ASC:昇順
  • DESC:降順
sorts を指定する場合は必須です。
reports.グラフ名.periodicReport オブジェクト 省略可 定期レポートの設定
定期レポートを設定すると、次のパラメーターだけ変更できます。
  • reports.グラフ名.name
  • reports.グラフ名.index
  • reports.グラフ名.periodicReport.active
更新するときに省略すると、設定を変更しません。
reports.グラフ名.periodicReport.active 真偽値または文字列 省略可 定期レポートの実行状態
次のいずれかの値を指定します。
  • true:実行中
  • false:停止中
定期レポートを初めて設定するときに省略すると、「true」が設定されます。
更新するときに省略すると、設定を変更しません。
reports.グラフ名.periodicReport.period オブジェクト 条件必須 定期レポートの集計間隔
定期レポートを初めて設定するときは必須です。
定期レポートを更新するときは、現在と同じ設定を指定するか省略してください。
reports.グラフ名.periodicReport.period.every 文字列 条件必須 定期レポートの集計間隔の種類
次のいずれかの値を指定します。
  • YEAR:毎年
  • QUARTER:毎四半期
  • MONTH:毎月
  • WEEK:毎週
  • DAY:毎日
  • HOUR:毎時
periodicReport.period を指定する場合は必須です。
reports.グラフ名.periodicReport.period.month 数値または文字列 条件必須 集計を実施する月
1 から 12 までの整数を指定します。
periodicReport.period.every が「YEAR」の場合は必須です。
reports.グラフ名.periodicReport.period.time 文字列 条件必須 集計を実施する時刻
フォーマットは「HH:mm」形式です。
periodicReport.period.every が「YEAR」「QUARTER」「MONTH」「WEEK」「DAY」の場合は必須です。
reports.グラフ名.periodicReport.period.pattern 文字列 条件必須 四半期の集計を実施する月
次のいずれかの値を指定します。
  • JAN_APR_JUL_OCT:1 月、4 月、7 月、10 月
  • FEB_MAY_AUG_NOV:2 月、5 月、8 月、11 月
  • MAR_JUN_SEP_DEC:3 月、6 月、9 月、12 月
periodicReport.period.every が「QUARTER」の場合は必須です。
reports.グラフ名.periodicReport.period.dayOfMonth 文字列 条件必須 集計を実施する日
次のいずれかの値を指定します。
  • 1 から 31 までの整数
  • END_OF_MONTH:月末
    periodicReport.period.every が「QUARTER」「MONTH」のとき
periodicReport.period.every が「YEAR」「QUARTER」「MONTH」の場合は必須です。
reports.グラフ名.periodicReport.period.dayOfWeek 文字列 条件必須 集計を実施する曜日
次のいずれかの値を指定します。
  • SUNDAY
  • MONDAY
  • TUESDAY
  • WEDNESDAY
  • THURSDAY
  • FRIDAY
  • SATURDAY
periodicReport.period.every が「WEEK」の場合は必須です。
reports.グラフ名.periodicReport.period.minute 数値または文字列 条件必須 集計を実施する分
次のいずれかの値を指定します。
  • 0
  • 10
  • 20
  • 30
  • 40
  • 50
periodicReport.period.every が「HOUR」の場合は必須です
revision 数値または文字列 省略可 期待しているリビジョン番号
実際のリビジョン番号と一致しない場合はエラーとなり、設定は変更されません。
値に「-1」を指定する、または指定しなかった場合はリビジョン番号は検証されません。
リクエストの例
ヘッダー
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
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
{
  "app": "1",
  "reports": {
    "初期設定": {
      "chartType": "BAR",
      "chartMode": "NORMAL",
      "name": "初期設定",
      "index": "0",
      "groups": [
        {
          "code": "ラジオボタン"
        }
      ],
      "aggregations": [
        {
          "type": "COUNT"
        }
      ],
      "filterCond": "",
      "sorts": [
        {
          "by": "TOTAL",
          "order": "DESC"
        }
      ],
      "periodicReport": null
    },
    "様々なグラフの設定": {
      "chartType": "TABLE",
      "name": "様々なグラフの設定",
      "index": "1",
      "groups": [
        {
          "code": "ラジオボタン"
        },
        {
          "code": "作成日時",
          "per": "YEAR"
        },
        {
          "code": "時刻",
          "per": "MINUTE"
        }
      ],
      "aggregations": [
        {
          "type": "COUNT"
        },
        {
          "type": "SUM",
          "code": "数値"
        },
        {
          "type": "AVERAGE",
          "code": "計算"
        },
        {
          "type": "MAX",
          "code": "作成日時"
        },
        {
          "type": "MIN",
          "code": "時刻"
        }
      ],
      "filterCond": "レコード番号 = \"1\" and リッチエディター like \"aaa\"",
      "sorts": [
        {
          "by": "TOTAL",
          "order": "DESC"
        },
        {
          "by": "GROUP1",
          "order": "ASC"
        },
        {
          "by": "GROUP2",
          "order": "DESC"
        }
      ],
      "periodicReport": null
    },
    "定期レポートON": {
      "chartType": "BAR",
      "chartMode": "NORMAL",
      "name": "定期レポートON",
      "index": "2",
      "groups": [
        {
          "code": "ラジオボタン"
        }
      ],
      "aggregations": [
        {
          "type": "COUNT"
        }
      ],
      "filterCond": "",
      "sorts": [
        {
          "by": "TOTAL",
          "order": "DESC"
        }
      ],
      "periodicReport": {
        "active": true,
        "period": {
          "every": "QUARTER",
          "pattern": "JAN_APR_JUL_OCT",
          "dayOfMonth": "END_OF_MONTH",
          "time": "23:30"
        }
      }
    }
  },
  "revision": "2"
}

レスポンス

プロパティ
プロパティ名 説明
revision 文字列 更新後のアプリ設定のリビジョン番号
reports オブジェクト グラフの情報
reports.グラフ名}.id 文字列 グラフ ID
レスポンスの例
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
{
  "revision": "2",
  "reports": {
    "初期設定": {
      "id": "7319"
    },
    "様々なグラフの設定": {
      "id": "7321"
    },
    "定期レポートON": {
      "id": "7323"
    }
  }
}

サンプルコード

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
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
curl -X PUT 'https://sample.cybozu.com/k/v1/preview/app/reports.json' \
  -H 'X-Cybozu-API-Token: API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "app": "1",
    "reports": {
      "初期設定": {
        "chartType": "BAR",
        "chartMode": "NORMAL",
        "name": "初期設定",
        "index": "0",
        "groups": [
          {
            "code": "ラジオボタン"
          }
        ],
        "aggregations": [
          {
            "type": "COUNT"
          }
        ],
        "filterCond": "",
        "sorts": [
          {
            "by": "TOTAL",
            "order": "DESC"
          }
        ],
        "periodicReport": null
      },
      "様々なグラフの設定": {
        "chartType": "TABLE",
        "name": "様々なグラフの設定",
        "index": "1",
        "groups": [
          {
            "code": "ラジオボタン"
          },
          {
            "code": "作成日時",
            "per": "YEAR"
          },
          {
            "code": "時刻",
            "per": "MINUTE"
          }
        ],
        "aggregations": [
          {
            "type": "COUNT"
          },
          {
            "type": "SUM",
            "code": "数値"
          },
          {
            "type": "AVERAGE",
            "code": "計算"
          },
          {
            "type": "MAX",
            "code": "作成日時"
          },
          {
            "type": "MIN",
            "code": "時刻"
          }
        ],
        "filterCond": "レコード番号 = \"1\" and リッチエディター like \"aaa\"",
        "sorts": [
          {
            "by": "TOTAL",
            "order": "DESC"
          },
          {
            "by": "GROUP1",
            "order": "ASC"
          },
          {
            "by": "GROUP2",
            "order": "DESC"
          }
        ],
        "periodicReport": null
      },
      "定期レポートON": {
        "chartType": "BAR",
        "chartMode": "NORMAL",
        "name": "定期レポートON",
        "index": "2",
        "groups": [
          {
            "code": "ラジオボタン"
          }
        ],
        "aggregations": [
          {
            "type": "COUNT"
          }
        ],
        "filterCond": "",
        "sorts": [
          {
            "by": "TOTAL",
            "order": "DESC"
          }
        ],
        "periodicReport": {
          "active": true,
          "period": {
            "every": "QUARTER",
            "pattern": "JAN_APR_JUL_OCT",
            "dayOfMonth": "END_OF_MONTH",
            "time": "23:30"
          }
        }
      }
    },
    "revision": "2"
  }'
kintone REST API リクエストを送信する 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
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
const body = {
  app: '1',
  reports: {
    初期設定: {
      chartType: 'BAR',
      chartMode: 'NORMAL',
      name: '初期設定',
      index: '0',
      groups: [
        {
          code: 'ラジオボタン'
        }
      ],
      aggregations: [
        {
          type: 'COUNT'
        }
      ],
      filterCond: '',
      sorts: [
        {
          by: 'TOTAL',
          order: 'DESC'
        }
      ],
      periodicReport: null
    },
    様々なグラフの設定: {
      chartType: 'TABLE',
      name: '様々なグラフの設定',
      index: '1',
      groups: [
        {
          code: 'ラジオボタン'
        },
        {
          code: '作成日時',
          per: 'YEAR'
        },
        {
          code: '時刻',
          per: 'MINUTE'
        }
      ],
      aggregations: [
        {
          type: 'COUNT'
        },
        {
          type: 'SUM',
          code: '数値'
        },
        {
          type: 'AVERAGE',
          code: '計算'
        },
        {
          type: 'MAX',
          code: '作成日時'
        },
        {
          type: 'MIN',
          code: '時刻'
        }
      ],
      filterCond: 'レコード番号 = \'1\' and リッチエディター like \'aaa\'',
      sorts: [
        {
          by: 'TOTAL',
          order: 'DESC'
        },
        {
          by: 'GROUP1',
          order: 'ASC'
        },
        {
          by: 'GROUP2',
          order: 'DESC'
        }
      ],
      periodicReport: null
    },
    定期レポートON: {
      chartType: 'BAR',
      chartMode: 'NORMAL',
      name: '定期レポートON',
      index: '2',
      groups: [
        {
          code: 'ラジオボタン'
        }
      ],
      aggregations: [
        {
          type: 'COUNT'
        }
      ],
      filterCond: '',
      sorts: [
        {
          by: 'TOTAL',
          order: 'DESC'
        }
      ],
      periodicReport: {
        active: true,
        period: {
          every: 'QUARTER',
          pattern: 'JAN_APR_JUL_OCT',
          dayOfMonth: 'END_OF_MONTH',
          time: '23:30'
        }
      }
    }
  },
  revision: '2'
};

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