跳到主要内容

工作流校验

说明

什么是工作流校验

工作流校验指的是事项状态流转时触发的校验。

工作流校验脚本

工作流校验脚本可以在工作流配置的工作流动作中设置:

触发工作流校验脚本

操作状态流转:

触发工作流校验:

Script Params

能够在脚本中直接使用以下参数:

名称类型说明
itemItemobject事项信息
itemIdString事项id
itemTypeString事项类型
workspaceString空间id
userUser当前操作用户
userWorkspaceRolesString[]用户空间角色id
userGroupsString[]用户组id

Api Reference

getItem

获取卡片信息

参数定义:

名称类型必填说明
itemIdString事项id

返回:

ItemJSONObject - 事项数据

用法:

const data = await apis.getItem(itemId);
if(data.name !== '事项名称'){
throw new Error('这是一个错误信息')
}

getParentItem

获取父卡片内容

参数定义:

名称类型必填说明
itemIdString子事项id

返回:

ItemJSONObject - 事项数据

用法:

const parentData = await apis.getParentItem(itemId);
if(parentData.name !== '事项名称'){
throw new Error('这是一个错误信息')
}

getSubItems

根据父卡片id获取子卡片列表,如果不存在子卡片则返回空列表

参数定义:

名称类型必填说明
itemIdString父事项id

返回:

ItemObject[] - 事项数据列表

用法:

const subItems = await apis.getSubItems(itemId);
if(subItems.length<=0){
throw new Error('没有子事项')
}

getAllSubItems

根据父卡片id获取子卡片列表,如果不存在子卡片则返回空列表,这里包含隐藏的子卡片

参数定义:

名称类型必填说明
itemIdString父事项id

返回:

ItemObject[] - 事项数据列表

用法:

const subItems = await apis.getAllSubItems(itemId);
if(subItems.length<=0){
throw new Error('没有子事项')
}

getChildren

根据父事项id获取第一层子事项列表,如果不存在子事项则返回空列表

返回:

ItemObject[] - 事项数据列表

参数定义:

名称类型必填说明
itemIdString父事项id

用法:

const subItems = await apis.getChildren(itemId);
if(subItems.length<=0){
throw new Error('没有子事项')
}

getLinkItems

获取卡片的关联卡片

参数定义:

名称类型必填说明
itemIdString父事项id
isDestinationItemBooleanfalse关联方向,默认false

返回:

LinkItemResult - 关联事项数据

用法:

const linkItems = await apis.getLinkItems(itemId);
if(linkItems.length<=0){
throw new Error('没有关联的事项')
}

getItemType

获取卡片类型数据

参数定义:

名称类型必填说明
itemIdString父事项id

返回:

ItemTypeObject - 事项类型数据

用法:

const itemTypeData = await apis.getItemType(itemId);
if(itemTypeData,key!=='story'){
throw new Error('不是story')
}

requestCoreApi

对外提供直接调用 core 接口能力,对外暴露 GET/POST/PUT/PATCH 方法

参数定义:

名称类型必填说明
methodStringGET/POST/PUT/PATCH
urlString请求的url
dataObject请求的数据

用法:

const result = await apis.requestCoreApi('POST', '/parse/api/search/structure', data);
console.log(result)