获取应用的流程管理的设置

aki发表于:2019年08月02日 08:55:46更新于:2022年02月25日 16:04:29

获取应用的流程管理的设置。

URI

获取正式环境的设置时和获取测试环境的设置时所使用的URI不一样。

获取正式环境的设置时

https://(子域名).cybozu.cn/k/v1/app/status.json

来宾空间的应用:https://(子域名).cybozu.cn/k/guest/(空间的ID)/v1/app/status.json

获取测试环境的设置时

https://(子域名).cybozu.cn/k/v1/preview/app/status.json

来宾空间的应用:https://(子域名).cybozu.cn/k/guest/(空间的ID)/v1/preview/app/status.json

HTTP方法

GET

必要的访问权限

获取正式环境的设置时,需要以下至少其中一个访问权限。

  • 应用的记录查看权限

  • 应用的记录添加权限

获取测试环境的设置时

  • 应用的管理权限

※从2020年4月版起可使用API令牌来执行该API。

请求参数

参数名称要指定的值必须说明
app数值或字符串必须应用的ID。
lang字符串

应用名称或应用的说明如果设置了多语言,要指定要获取的名称的语言。

  • 获取日语的名称时:ja

  • 获取英语的名称时:en

  • 获取中文的名称时:zh

  • 登录用户的语言设置:user
    ※当登录用户的语言设置为“遵循Web浏览器的设置”时,如果头部中指定“Accept-Language”,则使用该设置。如果不指定“Accept-Language”,则使用cybozu.cn系统管理的“本地化设置”中的语言设置。

  • 获取默认的名称时:default

省略时,获取默认名称。

请求范例

要发送的请求因参数的发送方式不同而异。指定参数“app”和“lang”时的范例如下

URL中包含参数时

GET /k/v1/app/status.json?app=1&lang=zh HTTP/1.1 
Host: example.cybozu.cn:443 
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU= 
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU=

请求正文中包含参数时
头部

GET /k/v1/app/status.json HTTP/1.1 
Host: example.cybozu.cn:443 
X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU= 
Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU= 
Content-Type: application/json

正文

{    
    "app": 1,    
    "lang": "zh"    
}

应答参数

参数名称值的类型说明
enable布尔值

指定流程管理是否启用。

  • true:启用流程管理

  • false:禁用流程管理

states对象状态信息的对象。从未设置过流程管理的应用返回null。
states.(状态名称).name字符串状态的名称。
states.(状态名称).index字符串状态的顺序(从0开始按升序方式)。 
states.(状态名称).assignee对象相应状态下的执行者的对象。
states.(状态名称).assignee.type字符串

相应状态下的执行者的类型。

  • ONE : 从以下用户中选择执行者

  • ALL  : 以下所有用户

  • ANY : 以下用户中其中1人

最初状态(index最小的状态)时总是返回ONE。

states.(状态名称).assignee.entities数组相应状态下的执行者信息的数组。顺序与页面上的一样。
states.(状态名称).assignee.entities[].entity对象相应状态下的执行者的用户信息的对象。指定了已被删除或无效的用户、组织、组时,以及指定了已被删除的自定义项目时,不会被包含在应答里。
states.(状态名称).assignee.entities[].entity.type字符串

相应状态下的执行者的类型。

  • USER: 用户

  • GROUP: 组

  • ORGANIZATION: 组织

  • FIELD_ENTITY: 用户字段

  • CREATOR: 创建人

  • CUSTOM_FIELD: .cn共同管理的自定义项目

states.(状态名称).assignee.entities[].entity.code

字符串

相应状态下的执行者的代码。“entity.type”为以下项目时,分别返回所对应的值。 

  • FIELD_ENTITY : 字段代码

  • CREATOR : null

  • CUSTOM_FIELD : 自定义项目代码

指定来宾用户时,在登录名前加上“guest/”。
states.(状态名称).assignee.entities[].includeSubs布尔值指定设置是否继承给下级组织。
  • 继承:true

  • 不继承:false

只有当“entity.type”为“ORGANIZATION”或“FIELD_ENTITY”且指定了“选择组织字段”时为true。


actions数组动作信息的数组。顺序与页面上的一样。从未设置过流程管理的应用返回null。
actions[].name字符串动作的名称。
actions[].from字符串动作执行前的状态名称。
actions[].to字符串指定动作执行后的状态名称。
actions[].filterCond字符串动作的执行条件。
revision字符串应用设置的版本号。

应答的范例

{    
    "enable": true,    
    "states": {    
        "未处理": {    
            "name": "未处理",    
            "index": "0",    
            "assignee": {    
                "type": "ONE",    
                "entities": [    
                ]    
            }    
        },    
        "处理中": {    
            name": "处理中",    
                "index": "1",    
                "assignee": {    
                    "type": "ALL",    
                    "entities": [    
                        {    
                            "entity": {    
                                "type": "USER",    
                                "code": "user1"    
                            },    
                            "includeSubs": false    
                        },    
                        {    
                            "entity": {    
                                "type": "FIELD_ENTITY",    
                                "code": "creator"    
                             },    
                                "includeSubs": false    
                        },    
                        {    
                            "entity": {    
                                "type": "CUSTOM_FIELD",    
                                "code": "上司"    
                            },    
                            "includeSubs": false    
                        }    
                    ]    
                }    
        },    
        "完成": {    
            "name": "完成",    
            "index": "2",    
            "assignee": {    
                "type": "ONE",    
                "entities": [    
                ]    
            }    
        }    
    },    
    "actions": [    
        {    
            "name": "开始处理",    
            "from": "未处理",    
            "to": "处理中",    
            "filterCond": "记录编号 = \"1\""    
        },    
{    
            "name": "改为完成",    
            "from": "处理中",    
            "to": "完成",    
            "filterCond": ""    
        }    
    ],    
    "revision": "3"    
}

JavaScript范例

使用API请求发送 kintone REST API 请求

var body = {
  'app': kintone.app.getId()
};

kintone.api(kintone.api.url('/k/v1/app/status.json', true), 'GET', body, function(resp) {
  // success
  console.log(resp);
}, function(error) {
  // error
  console.log(error);
});

使用 XMLHttpRequest 请求

var appId = kintone.app.getId();
var url = 'https://{subdomain}.cybozu.cn/k/v1/app/status.json?app=' + appId;
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.onload = function() {
  if (xhr.status === 200) {
    // success
    console.log(JSON.parse(xhr.responseText));
  } else {
    // error
    console.log(JSON.parse(xhr.responseText));
  }
};
xhr.send();