标签批准
在本教程中,您将了解如何创建一个工作流,该工作流在向资产添加标记时通知技术专员,并允许专员添加注释和设置属性。
这个场景是2019年交互式数据公民技术日的一部分。
先决条件
- Eclipse IDE。
- Flowable Eclipse设计器插件。
- 以具有Sysadmin全亚愽视频局角色或至少具有工作流管理全局权限的全局角色的用户访问Collibra环境。
- 访问Collibra控制台进亚愽视频行故障排除。
有关更多安装细节和熟悉Eclipse IDE接口,请参见从工作流程开始.
创建工作流
打开Eclipse IDE并创建一个新的Flowable项目和图表:
增加一个游泳池和球道
- 添加一个池并配置池属性:
- 一般:
- Id:tagApprovalPool
- 的名字:标签批准
- 过程:
- Id:piiTagApprovalWorkflow
进程ID在Collibra环境级别上必须是唯一的。亚愽视频
上传与Collibra中现有工作流具有相同流程ID的工作流将替换现有工作流。亚愽视频
- 的名字:PII标签审批
名称显示为Collibra中的工作流名称。亚愽视频
亚愽视频Collibra不接受具有相同显示名称的两个工作流。
- 名称空间:http://www.亚愽视频collibra.com/apiv2
通过引用Collibra Java API的版本2,工作流根据V亚愽视频2方法进行验证,而被弃用的V1方法会触发一个方法不存在调用时出错。
- 文档:字段的内容成为Collibra中工作流的描述。亚愽视频
- Id:piiTagApprovalWorkflow
- 一般:
- 配置lane属性:
- Id:systemLane
- 的名字:系统
- 从内容部份调色板,拖一秒钟车道并配置lane属性:
- Id:technicalStewardLane
- 的名字:技术专员
添加开始和结束事件
- 从开始活动部份调色板,拖动StartEvent到系统车道。
- 在属性视图,选择形式部分。
开始事件表单变量设置在整个工作流中使用的值。您可以从Collibra Data Intelligence Cloud中的workklow定义页面更改这些变量。亚愽视频
- 添加一个变量来设置检查和批准标签的用户角色:
- 点击新.
- 输入所需信息:
- Id:approverUserExpression
- 的名字:审批者的候选用户表达式
- 类型:字符串
- 默认的:角色(技术主管)
- 可读的:假
- 可写:真正的
- 要求:真正的
- 添加一个变量来确定哪个标签触发审查过程:
- 点击新.
- 输入所需信息:
- Id:piiTagName
- 的名字:标签搜索词
- 类型:字符串
- 默认的:PII
- 可读的:假
- 可写:真正的
- 要求:真正的
- 添加一个变量来设置PII属性类型的UUID:
- 点击新.
- 输入所需信息:
- Id:piiAttributeTypeId
- 的名字:PII属性的UUID
- 类型:字符串
- 默认的:00000000-0000-0000-0001-000500000029
- 可读的:假
- 可写:真正的
- 要求:真正的
- 从结束事件部份调色板,拖动EndEvent到系统车道。
创建一个脚本任务来搜索标记
属性指定的术语,该脚本在新添加的标记中搜索piiTagName
变量。根据结果,它设置isPII
变量为任意一个真正的
或假
.它还使结果在Collibra日志中可用。亚愽视频
- 从任务部份调色板拖一个ScriptTask到系统车道。
- 在一般部分,输入的名字:获取和筛选标签.
- 在主要配置部分:
- 选择groovy脚本语言。
- 添加获取和筛选标签脚本:
loggerApi.info("Get & filter tags script started…")//变量def tags = [] def piiTagName = execute . getvariable ("piiTagName") def isPII = false def assetUuid = item。id tags = tagApi.getTagsByAssetId(assetUuid) loggerApi.info("Number of tags found: " + tags.size()) //遍历标签列表并检查PII标签为(标签中的标签){if(tag. getname ().equals(piiTagName)){isPII = true}} loggerApi.info("isPII状态:" + isPII) //设置工作流执行中使用的变量。setvariable ("isPII",isPII) loggerApi.info("Get & filter tags script ended.")
- 属性将启动事件连接到脚本任务SequenceFlow连接。
基于标记路由工作流
属性的值结束或继续工作流isPII
变量。
- 从网关部份调色板,拖动ExclusiveGateway到系统莱恩,在获取和筛选标签脚本的任务。
- 将脚本任务连接到独占网关SequenceFlow连接。
- 从结束事件部份调色板,拖动EndEvent到系统车道,在专用大门上面。
- 将独占网关连接到第二个结束事件SequenceFlow连接。
- 选择序列流。
- 在属性视图,选择一般部分,并输入的名字:没有发现个人资料.
- 在属性视图,选择主要配置选项卡,进入条件:
$ {!isPII}
. - 从任务部份调色板拖一个UserTask到技术专员车道。
- 中的用户任务连接独占网关技术专员巷与SequenceFlow连接。
- 选择序列流。
- 在属性视图,选择一般部分,并输入的名字:PII发现.
- 在属性视图,选择主要配置选项卡,进入条件:
$ {isPII}
.
配置技术管家任务
如果一个PII标签,则为具有Technical Steward角色的用户创建一个任务,以便在标记的列包含个人身份信息时批准或拒绝该列,并提供其理由。
- 在技术专员Lane,选择用户任务。
- 在属性视图,选择一般部分,然后进入的名字:批准PII标签.
- 在属性视图,选择主要配置部分,然后进入候选人的用户:
$ {approverUserExpression}
. - 在属性视图,选择文档,输入:检查带有“${piiTagName}”标记的列是否包含个人身份信息。如果您批准,将向列添加PII属性。
- 在属性视图,选择形式部分,并将以下元素添加到对话框中:
- 一个任务按钮,用来替换默认的动作调用和定义任务:
- Id:taskButton1
- 的名字:批准/拒绝
- 类型:taskButton
- 可读的:真正的
- 可写:真正的
- 要求:假
- 一个注释框,允许技术管理人员提供一个理由:
- Id:commentBox
- 的名字:原因
- 类型:文本区域
- 可读的:真正的
- 可写:真正的
- 要求:真正的
- 批准按钮:
- Id:approveButton
- 的名字:批准
- 类型:按钮
- 可读的:真正的
- 可写:真正的
- 要求:假
- 拒绝按钮:拒绝按钮:
- Id:rejectButton
- 的名字:拒绝
- 类型:按钮
- 可读的:真正的
- 可写:真正的
- 要求:假
- 一个任务按钮,用来替换默认的动作调用和定义任务:
Collibra数据智能云中的用户任务对话框如下:亚愽视频
添加一个脚本以将理由保存到评论部分
脚本将技术管理人员的说明保存为资产的注释,并将其添加到Collibra日志中:亚愽视频
- 从任务部份调色板,拖动ScriptTask系统通道内。
- 在属性视图,选择一般部分,然后进入的名字:保存评论.
- 在主要配置部分:
- 选择groovy脚本语言。
- 添加添加评论脚本:
import com.亚愽视频 collibra.dc.core .api.dto.instance.comment. addcommentrequest import com. collibra.dc.core .api.model. resourcetype loggerApi.info("Add comment script started…")//变量def commentBox = execute . getvariable ("commentBox") def commentBoxContent = commentBox. tostring () def assetUuid = item。id loggerApi.info("注释框内容:" + commentBoxContent) commentApi.addComment(AddCommentRequest.builder() . baseresourceid (assetUuid) . baseresourcetype (resourctype . asset) .content(commentBoxContent) .build()) loggerApi.info("添加注释脚本结束。")
- 连接批准PII标签脚本到保存评论的脚本SequenceFlow连接。
基于管理人员决策路由工作流
根据技术管理人员的决定,结束或继续工作流:
- 从网关部份调色板,拖动ExclusiveGateway到系统莱恩,在保存评论脚本的任务。
- 连接保存评论脚本任务的独占网关用SequenceFlow连接。
- 从结束事件部份调色板,拖动EndEvent到系统车道,在专用大门上面。
- 将独占网关连接到第三个结束事件SequenceFlow连接。
- 选择序列流。
- 在属性视图,选择一般部分,并输入的名字:拒绝了.
- 在属性视图,选择主要配置部分,然后进入条件:
$ {rejectButton}
. - 从任务部份调色板拖一个ScriptTask到系统巷后独占门户。
- 将独占网关连接到脚本任务SequenceFlow连接。
- 选择序列流。
- 在属性视图,选择一般部分,并输入的名字:批准.
- 在属性视图,选择主要配置选项卡,进入条件:
$ {approveButton}
. - 将脚本任务连接到最后一个结束事件SequenceFlow连接。
添加一个脚本来设置PII属性
当技术专员批准标记列包含个人身份信息时,设置个人身份信息资产属性真正的
:
- 选择最后添加的脚本任务。
- 在属性视图,选择一般部分,然后进入的名字:设置PII属性.
- 在主要配置部分:
- 选择groovy脚本语言。
- 添加设置PII属性脚本:
import com.亚愽视频collibra.dgc.core.api.dto.instance.attribute.AddAttributeRequest loggerApi.info("Set PII Attribute script started…")//变量def assetUuid = item。id def piiAttributeTypeId = execute . getvariable ("piiAttributeTypeId") def piiAttributeTypeUuid = string2Uuid(piiAttributeTypeId) //设置PII属性attribu茶壶. addattribute (AddAttributeRequest.builder() .assetId(assetUuid) .typeId(piiAttributeTypeUuid) .value(true) .build()) loggerApi.info("Set PII属性脚本结束")
脚本运行后,在个人身份信息Collibra数据智能云中的资产部分:亚愽视频
保存您的工作。
部署您的工作流
- 以具有Sysadmin亚愽视频全局角色或至少具有Workflow Administration全局权限的全局角色的用户登录Collibra。
- 在主菜单中单击,然后按设置.
打开Co亚愽视频llibra设置页面。 - 点击工作流.
“工作流设置”页面出现在定义选项卡页面。 - 点击上传文件并在Eclipse工作空间文件夹中找到您刚刚创建的BPMN文件。
在Eclipse中选择BPMN文件后,选择导航→显示在→系统资源管理器.将打开一个资源管理器窗口,显示文件的确切位置。您现在可以将文件拖放到上传文件部分。
一个活动队列窗口显示上传进度。
文件上传后,您将在工作流定义表格
有关详细信息,请参见部署工作流Collibra数据智能云管理亚愽视频指南部分。
在向列添加标记时自动触发工作流
要微调工作流,您必须更改Collibra Data Intelligence Cloud中的默认配置。亚愽视频
在将标签添加到资产时自动启动工作流。
- 在Co亚愽视频llibra数据智能云中,转到设置→工作流→定义.
- 选择PII标签审批工作流。
- 去开始活动部分。
- 选择资产标签事件.
- 点击保存.
将工作流限制为列资产类型。
- 在工作流定义页面中,更改适用于来资产.
- 在适用于部分中,点击添加.
- 搜索列并点击保存.
测试和故障排除
您的Col亚愽视频libra数据智能云必须至少有一个资产为列,因为您将工作流限制为这种资产类型。属性中的限制,如果需要使用其他资产类型适用于部分的工作流定义页面。
要查看工作流的结果,请确保您选择的任何其他资产类型具有个人身份信息属性指定的。有关全局赋值的更多信息,请参见为资产类型分配一个特征类型章节的Collibra管理指南亚愽视频。
要测试工作流,至少必须有一个用户具有Technical Steward的角色。如果没有具有此角色的用户,则工作流不会完成,您将得到一个错误。
中的默认审批人角色变量部分的工作流定义页面。
如果工作流失败,则不会向资产添加任何标记。
如果出现错误,则工作流不会启动,并显示错误消息。
日志包含有关错误的更多信息:
- 打开Col亚愽视频libra控制台。
亚愽视频Collibra控制台以基础设施页面。 - 单击您在其中部署工作流的环境的名称,以显示其详细信息。
- 选择数据治理中心.
- 选择日志→dgc.log
查找与Java或Groovy相关的错误。
下一个步骤
您已经创建了一个扫描Collibra数据智能云的工作流亚愽视频PII标记,并要求技术专员检查资产并添加PII属性。
这个场景是2019年交互式数据公民技术日的一部分。要获得完整的幕后体验,请关注下一届会议和下一届数据公民会议。