华为云用户手册

  • 场景描述 实现场景:由于呼吸机资源缺乏,为了有效利用剩余的呼吸机,需要提供呼吸机申请服务进行资源调度。申请人调用服务接口提供医院信息和申请呼吸机资源数量,服务根据系统中处于空闲状态下的呼吸机资源判断资源是否充足,在资源充足的情况下返回被申请的呼吸机信息并修改系统中相应呼吸机的医院信息和状态。 实现方案:使用服务编排实现上述功能,实现逻辑如下: 通过调用查询对象数据中创建的服务编排,获取系统中空闲状态下的呼吸机信息。 通过调用如何使用服务编排开发业务的基本逻辑中创建的服务编排,进行资源是否充足的判断,返回被申请的呼吸机信息。 通过决策图元判断上一步骤返回的申请呼吸机信息,做出下一步操作。 走“ResourceEnough”分支:在资源满足的情况下调用修改对象数据中创建的服务编排,修改系统中被申请的呼吸机的医院信息和状态。 走“ResourceNotEnough”分支:在资源不足的情况下返回错误信息。 图1 呼吸机申请服务总体流程
  • 如何开发呼吸机申请服务 创建“名称”和“标签”为“RespiratorApply”的服务编排。 在一个应用目录上,例如“Logic”,单击 “+”,在弹出菜单中选择“服务编排”。 在“添加服务编排”的对话框中配置“标签”为“RespiratorApply”,单击“名称”参数的输入框系统会自动填充“RespiratorApply”。单击“添加”。 参照表1定义服务编排用到的变量,并设置该服务编排的入参和出参。 表1 变量说明 变量名 变量类型 变量说明 num 数字 申请的呼吸机数量。 hospital 文本 申请呼吸机的医院。 msg 文本 申请结果。 RespiratorInfos Respirator对象数组 系统中空闲状态下的呼吸机资源数组(后用于存放信息修改后的资源数组)。 RespiratorRecs Respirator对象数组 此次申请的原始呼吸机资源数组。 在服务编排编辑器页面右侧选择。在全局上下文页面单击“变量”后的加号。 图2 创建变量 单击新增变量后的“...”,选择“设置”。 图3 设置变量 配置数字类型的变量“num”,单击“保存”。 图4 配置变量 表2 普通变量参数说明 参数 参数说明 名称 变量名称。 直接输入“num”。 数据类型 变量的数据类型。 文本 数字 货币 日期 日期/时间 复选框 从下拉列表选择“数字”。 默认值 变量的默认取值。 不用配置。 描述 该变量的描述说明。 选填项,建议填写该变量的作用。 是否为数组 是否为数组型变量即集合变量。 不勾选。 参考2.a~2.c步骤配置2.c创建文本类型的变量“hospital”、“msg”。 创建后如下图所示。 图5 成功创建变量 在服务编排编辑器页面右侧选择。在全局上下文页面单击“对象变量”后的加号。 图6 创建对象变量 在全局上下文页面单击“对象变量”后的加号。新建对象变量“RespiratorInfos”,对象中选择前提条件中创建的对象Respirator,设置字段描述信息(可选),选中“是否为数组”,单击“保存”。 图7 创建数组类型对象变量 图8 配置数组类型对象变量 参考2.f创建数组类型的对象变量“RespiratorRecs”。注意要选中“是否为数组”。 单击画布中的“开始”图元,在右侧菜单选择,单击右上角“全局上下文”展开“全局上下文”页面,将变量num、变量hospital拖拽到“入参”中,将变量msg、对象变量RespiratorRecs拖拽到“出参”中。 图9 配置开始图元 编排该服务主要使用了三种图元,分别是“子服务编排”“赋值”、“决策”图元。按照下图将相关图元拖拽到画布中对应位置。 图10 拖拽图元 在画布上,把鼠标放在起点图元图元上,从“+”拖动鼠标,在起点图元和“子服务编排”图元Flow0间增加连线。 配置“子服务编排”图元Flow0。 单击画布中的“子服务编排”图元Flow0,在“基本信息”页面中配置图元标签为“查询呼吸机资源”,名称为“SelectRespirator”。 图11 配置“子服务编排”图元基本信息 如下图所示,单击,在“子服务编排”页面“服务编排实例”中选择查询对象数据创建的服务编排“SelectRespirator”。配置输出参数,从“全局上下文”页面拖拽变量到“目标”中。 图12 配置子服务编排图元Flow0 如上图配置,将调用查询对象数据中开发的查询对象记录服务编排,并将查询结果存放到对象变量RespiratorInfos中。 从“子服务编排”图元“SelectRespirator”连向“子服务编排”图元Flow1。 配置“子服务编排”图元Flow1。 单击画布中的“子服务编排”图元Flow1,在“基本信息”页面中配置图元标签为“处理呼吸机资源”,名称为“ProcessRespiratorResouce”。 如下图所示,单击,在“子服务编排”页面“服务编排实例”中选择如何使用服务编排开发业务的基本逻辑创建的服务编排“ProcessRespiratorResource”。配置入参和出参,其中变量是由展开的“全局上下文”页面拖拽来的。 图13 配置子服务编排图元Flow1 如上图配置,将调用如何使用服务编排开发业务的基本逻辑中开发的资源处理服务编排,并将查询对象记录服务编排中返回的空闲状态下呼吸机资源以及申请医院、资源数量作为入参传入,返回申请结果、被申请的呼吸机资源以及修改信息后的呼吸机资源数组存入相应对象变量。 从“子服务编排”图元“ProcessRespiratorResouce”连向“决策”图元Decision0。 配置“决策”图元Decision0。 单击画布中的“决策”图元Decision0,在“基本信息”页面中配置图元标签为“判断资源是否充足”,名称为“judgeResource”。 在“决策”页面中,单击“默认”结果,将名称设置为“ResourceEnough”,单击“新增”,新增一个名为“ResourceNotEnough”的结果,并如下图所示进行配置。 图14 配置默认结果 图15 新增“ResourceNotEnough” “ResourceNotEnough”结果表示当返回的资源数组为空时,代表资源不足,走向赋值图元设置错误信息;默认的“ResourceEnough”结果代表资源充足,将进行系统中数据的修改。 从“决策”图元“judgeResource”连向“子服务编排”图元Flow2,连线类型为“ResourceEnough”,从“决策”图元Decision0连向“赋值”图元Assignment0,连线类型为“ResourceNotEnough”。 配置“子服务编排”图元Flow2。 单击画布中的“子服务编排”图元Flow2,在“基本信息”页面中配置图元标签为“修改呼吸机资源状态”,名称为“UpdateRespiratorResource”。 如下图所示,单击,在“子服务编排”页面“服务编排实例”中选择修改对象数据中创建的服务编排“UpdateRespirator”,并配置输入参数。 图16 配置子服务编排图元Flow2 如上图配置,将调用修改对象数据中开发的修改对象记录服务编排,根据传入的对象变量RespiratorInfos对系统中的对象数据进行修改。 配置“赋值”图元Assignment0。 单击画布中的“赋值”图元Assignment0,在“基本信息”页面中配置图元标签为“设置错误信息”,名称为“setError1”。 如下图所示,单击,在“赋值”页面进行配置赋值语句,在资源不足的情况下设置相应的错误信息。 图17 配置赋值图元Assignment0 单击上方按钮区域的进行保存,并单击运行服务编排。 进行测试。 当资源不足时,测试服务是否报错并返回相应错误信息。 设置输入参数,单击“运行”,人民第66医院需要申请5台呼吸机。 { "hospital": "人民第66医院", "num": 5} 图18 输入参数 检查输出页签的结果是否符合预期。 返回如下信息,表示资源不足,申请失败。 图19 输出结果 测试当资源充足时,返回信息“资源充足,呼吸机申请成功!”,以及申请的呼吸机资源信息,并修改系统中对象数据。 打开创建对象数据中创建的服务编排“CreateRespirator”,单击上方运行服务编排。 设置输入参数,单击“运行”,创建5台某医院空闲的呼吸机。 其中,“CNAME”为命名空间名称,请替换为环境中实际配置的命名空间。 { "RespiratorInfos": [ { "name": "呼吸机1", "CNAME__hospital__CST": "第1人民医院", "CNAME__status__CST": "空闲" }, { "name": "呼吸机2", "CNAME__hospital__CST": "第1人民医院", "CNAME__status__CST": "空闲" }, { "name": "呼吸机3", "CNAME__hospital__CST": "第1人民医院", "CNAME__status__CST": "空闲" }, { "name": "呼吸机4", "CNAME__hospital__CST": "第1人民医院", "CNAME__status__CST": "空闲" }, { "name": "呼吸机5", "CNAME__hospital__CST": "第1人民医院", "CNAME__status__CST": "空闲" } ]} 打开本节开发的服务编排“RespiratorApply”,单击上方运行服务编排。 设置输入参数,单击“运行”,人民第66医院需要申请5台呼吸机。 { "hospital": "人民第66医院", "num": 5} 检查输出页签的结果是否符合预期。 资源充足时,如下图所示返回信息“资源充足,呼吸机申请成功!”,以及申请的呼吸机资源信息。 图20 输出界面 在对象Respirator“布局”页签单击“Respirator Records”后的图标,查看到对象记录中状态已成功由“空闲”更新为“使用中”,且修改呼吸机资源所在的医院信息。 图21 查看布局页 图22 查看对象记录 单击上方按钮区域的,启用服务编排。
  • 脚本图元参数配置 单击拖拽到画布中的脚本图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为Script序号。序号从“0”开始,表示同类型图元序号。 系统自动填充,可自定义。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充,可自定义。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 单击,在“脚本”页面进行配置。 图2 配置脚本 表2 脚本图元配置参数说明 参数名 参数说明 如何配置 脚本 调用的脚本名称。 只有在启用状态下的脚本才能被服务编排调用。 在下拉框中选择具体的脚本。 输入参数/目标 脚本的输入参数名称。 单击“新增行”进行添加。 在下拉框中选择脚本输入参数的名称。 输入参数/源 服务编排中的变量,为目标赋值。 可直接填写,或者拖入全局上下文变量,将服务编排中的变量赋值给脚本中的输入参数。 输出参数/源 脚本的输出参数名称。 单击“新增行”进行添加。 在下拉框中选择脚本输出参数的名称。 输出参数/目标 服务编排中的变量,脚本中的输出参数赋值给服务编排中的变量。 拖入全局上下文变量,将脚本的输出参数赋值给服务编排中的变量。 单击可自动在入参出参区域填入“全局上下文”中与入参出参命名同名的参数。
  • 记录创建图元参数配置 单击拖拽到画布中的记录创建图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为RecordCreate序号。序号从“0”开始,表示同类型图元序号。 系统自动填充,可自定义。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充,可自定义。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 使用快速创建模式 是否启用快速创建模式。 若勾选该参数,表示为快速模式。该模式可以创建一条或者多条记录,仅需要配置对象的对象变量(与对象关联的变量)或者对象变量数组。该图元负责将对象变量或者对象变量数组的值写入数据库。当对象变量为数组时,则实现创建多条记录。创建成功后,返回的记录ID自动保存在对象变量中。创建记录的各个字段的值为对象变量中的值,因此一般需要在创建记录之前先给对象变量进行赋值。 不勾选,表示为普通模式。该模式下每次执行到该图元仅创建一条记录,需要配置要创建记录的对象名,对象中字段的值,返回的记录ID保存到变量名中。 默认不勾选。 选中单选按钮。 单击,在“记录创建”页面进行配置。 若上一步勾选“使用快速创建模式”,则需要指定一个预先定义的对象变量或者对象变量数组,并将该对象变量或对象变量数组拖拽到“变量”输入框中,使用该对象变量或对象变量数组的值创建新记录。例如,如下图所示,使用“accountCreate”对象变量的值创建新记录。 图2 快速创建模式 表2 快速创建模式参数说明 参数名 参数说明 如何配置 变量 预先定义的对象变量或者对象变量数组,使用该对象变量或者对象变量数组的值创建新记录。 从全局上下文拖拽或者直接输入对象变量或对象变量数组。 当前服务编排出现错误时回滚 勾选表示在服务编排中,当后续图元失败的情况下,就可以回滚到上一流程;若不勾选,则在服务编排中,当出现后边图元失败的情况下,对象记录操作的图元就不回滚。 默认为勾选。无特殊要求,请不要更改设置。 勾选或者去掉勾选。 若上一步未勾选“使用快速创建模式”,则需要指定对象并为对象的字段赋值来创建记录。例如,如下图所示,为“Account”对象新增“name”为“Lily”的数据记录,在变量“var_record_id”中保存新建的记录ID。 图3 普通创建模式 表3 普通创建模式参数说明 参数名 参数说明 如何配置 对象 指定的具体对象。 从下拉框中选择。 当前服务编排出现错误时回滚 当前服务编排出现错误时回滚到上一流程。 默认为勾选。无特殊要求,请不要更改设置。 勾选或者去掉勾选。 赋值 选中对象后,该赋值区域“目标”列会出现该对象的字段。如果需要给多个字段赋值,则单击“新增行”,定义其他字段的值。 在“目标”中选择需要赋值的对象字段,“源”则可从全局上下文拖拽变量或者直接输入“{!变量名}”。 变量 将创建的记录ID分配到该变量中,以便在您的服务编排中引用它。 从全局上下文拖拽或者直接输入文本类型变量。
  • 前提条件 开发呼吸机申请服务,首先需要创建呼吸机资源对象Respirator,作为呼吸机申请服务处理的对象。根据数据对象建模进行对象创建,自定义字段信息如下表所示。 表1 Respirator对象自定义字段 字段名 字段类型 字段含义 status 文本 呼吸机当前状态,“空闲”或“使用中”。 hospital 文本 呼吸机当前所在医院。 创建Respirator对象步骤如下: 在一个应用目录上,例如“Model”上,单击 “+”,在弹出菜单中选择“对象”。 输入对象的标签为“Respirator”,单击名称系统会自动生成该值,单击“添加”。 在“自定义字段”页签,单击“新建”。 字段类型选择“文本”,单击“下一步”。 设置字段标签为“status”,单击名称系统会自动生成该值,“数据长度”设置为“255”,单击“下一步”。 勾选权限,设置字段的访问权限,即哪些Profile可以查看或修改该字段,单击“下一步”。 保持默认,默认该字段加入所有布局。单击“保存”。 参考3~7在“自定义字段”页签,新建“hospital”字段。
  • 场景描述 实现场景:根据查询到的呼吸机资源数据判断资源是否充足,并修改相关资源信息。 实现方案:提前创建好呼吸机资源对象Respirator,使用服务编排实现上述场景功能。实现逻辑如下: 首先需要通过循环图元对传入的数组对象变量RespiratorInfos(即空闲状态下的呼吸机资源数组)进行遍历,并将数组中的每个元素放置到对象变量RespiratorInfo(空闲状态下的呼吸机资源数组元素)中。 通过“赋值”图元设置参数:将当前遍历的对象变量元素添加到此次申请的原始呼吸机资源数组中,并对计数进行加一操作,并将当前遍历的对象变量元素的字段医院信息修改为发起呼吸机申请的医院信息,将呼吸机状态修改为“使用中”,并添加到申请后的呼吸机资源数组中。 通过“决策”图元判断资源是否充足。 走“ResourceEnough1”分支:在空闲状态下的呼吸机资源满足申请数量的时候跳出循环,返回信息“资源充足,申请呼吸机成功!”。 走“ResourceNotEnough1”分支:循环遍历全部元素后仍未满足申请数量,将走Finish连线进行资源是否充足的判断: 走“ResourceEnough2”分支:资源充足情况下返回“资源充足,申请呼吸机成功!”。 走“ResourceNotEnough2”分支:当此次申请的呼吸机资源数组中实际存在的资源数量比申请的数量少时,代表申请的资源不足,返回信息“资源不足,申请失败!”。 图1 总体编排流程
  • 记录删除图元参数配置 单击拖拽到画布中的记录删除图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为RecordDelete序号。序号从“0”开始,表示同类型图元序号。 系统自动填充,可自定义。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充,可自定义。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 使用快速删除模式 是否启用快速删除模式。 若勾选该参数,表示为快速模式。根据对象变量中的记录ID删除对应的记录。当配置的对象变量为数组时,则从数据库中删除对象变量数组中的包含的所有记录(按照记录ID进行删除)。 不勾选,表示为普通模式。按照条件删除指定对象中的记录,需要配置要删除记录对应的对象名,删除条件。 默认不勾选。 选中单选按钮。 单击,在“记录删除”页面进行配置。 若上一步勾选“使用快速删除模式”,则需要指定一个预先定义的对象变量或者对象变量数组,并将该对象变量或对象变量数组拖拽到“变量”输入框中,使用该对象变量或对象变量数组的记录ID删除对应的对象记录。例如,如下图所示,使用“accountDelete”对象变量的记录ID删除对象记录。 图2 快速删除模式 表2 快速删除模式参数说明 参数名 参数说明 如何配置 变量 预先定义的对象变量,使用该对象变量或对象变量数组中的记录ID删除对象记录。 从全局上下文拖拽或者直接输入对象变量或对象变量数组。 当前服务编排出现错误时回滚 当前服务编排出现错误时回滚到上一流程。 默认为勾选。若无特殊要求,请不要更改设置。 勾选或者去掉勾选。 若上一步未勾选“使用快速删除模式”,则需要指定对象并在条件中设置指定对象部分字段的值,根据条件删除符合条件的对象记录。例如,如下图所示,删除“Account”对象“name”为“Lily”的记录。 图3 普通删除模式 表3 普通删除模式参数说明 参数名 参数说明 如何配置 对象 指定的具体对象。 从下拉框中选择。 当前服务编排出现错误时回滚 当前服务编排出现错误时回滚到上一流程。 默认为勾选。若无特殊要求,请不要更改设置。 勾选或者去掉勾选。 条件 选中对象后,该条件区域“字段”列会出现该对象的字段。单击“新增行”,可设置删除数据的条件。 在“字段”中选择要进行判断的对象字段,在“比较符”中选择相应的比较符,“值”则可从全局上下文拖拽变量或者直接输入“{!变量名}”。
  • 记录更新图元参数配置 单击拖拽到画布中的记录更新图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为RecordUpdate序号。序号从“0”开始,表示同类型图元序号。 系统自动填充,可自定义。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充,可自定义。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 使用快速更新模式 是否启用快速更新模式。 若勾选该参数,表示为快速模式。根据对象变量中的记录ID将对象变量更新到数据库中。更新的值来源于对象变量中的值。如果对象变量为数组,则根据对象变量中的记录ID批量将对象变量数组更新到数据库中。 不勾选,表示为普通模式。根据条件更新对象记录,需要配置修改记录对应的对象名,更新条件,更新的各个字段的值。 默认不勾选。 选中单选按钮。 单击,在“记录更新”页面进行配置。 若上一步勾选“使用快速更新模式”,则需要指定一个预先定义的对象变量或者对象变量数组,并将该对象变量或对象变量数组拖拽到“变量”输入框中,即可根据对象变量中的记录ID将对象变量更新到数据库中,更新的值来源于对象变量中的值。如下图所示,根据对象变量“Accountupdate”中的记录ID将对象变量中的值更新到数据库中。 图2 快速更新模式 表2 快速更新模式参数说明 参数名 参数说明 如何配置 变量 预先定义的对象变量或者对象变量数组。 根据对象变量中的记录ID将对象变量更新到数据库中。更新的值来源于对象变量中的值;如果变量为对象数组,则根据对象变量中的记录ID批量将对象变量数组更新到数据库中。 从全局上下文拖拽或者直接输入对象变量或对象变量数组。 当前服务编排出现错误时回滚 当前服务编排出现错误时回滚到上一流程。 默认为勾选。若无特殊要求,请不要更改设置。 勾选或者去掉勾选。 若上一步未勾选“使用快速更新模式”,则需要指定对象并在条件中设置指定对象部分字段的值,在赋值中设置需要更新的目标字段及更新值,最后根据条件查找符合条件的对象记录并将赋值中的值更新到数据库中。例如,如下图所示,更新“Account”对象“name”为“Lily”的记录,将变量“var_record_id”值更新到“id”字段。 图3 普通更新模式 表3 普通更新模式参数说明 参数名 参数说明 如何配置 对象 更新的具体对象名。 从下拉框中选择。 当前服务编排出现错误时回滚 当前服务编排出现错误时回滚到上一流程。 默认为勾选。若无特殊要求,请不要更改设置。 勾选或者去掉勾选。 条件 选中对象后,该条件区域“字段”列会出现该对象的字段。单击“新增行”,可设置更新数据的条件。 在“字段”中选择要进行判断的对象字段,在“比较符”中选择相应的比较符,“值”则可从全局上下文拖拽变量或者直接输入“{!变量名}”。 赋值 选中对象后,该赋值区域“目标”列会出现该对象的字段。如果需要给多个字段赋值,则单击“新增行”,定义其他字段的值。 在“目标”中选择需要赋值的对象字段,“源”则可从全局上下文拖拽变量或者直接输入“{!变量名}”。
  • 发送事件图元参数配置 选中拖拽到画布中的发送图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为Event序号。序号从“0”开始,表示同类型图元序号。 系统自动填充,可自定义。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充,可自定义。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 单击,在“发送事件”页面进行配置。 图2 配置发送事件图元 表2 发送事件图元配置参数说明 参数名 参数说明 如何配置 事件 请选择待发送的事件。 从下拉框选择。 分区字段 可选配置。从事件中选择一个自定义参数用作Kafka的分区字段,则根据该字段值进行路由,相同的值将路由到同一个Kafka分区;如果不指定,则默认随机路由到不同Kafka分区,从而提升并发处理性能。 从下拉框选择。 建议选择有区分度的关键字段,该字段必须是事件的自定义字段。 发送到外部 系统内部有配置与AppCube相连Kafka的固定Topic“__BINGO_SYS_TOPIC”。 若不勾选“发送到外部”,表示将事件数据发到默认的Topic上。 若勾选“发送到外部”,则表示将事件数据发送到与AppCube相连Kafka的其他Topic上,您需要配置其他的Topic。 默认不勾选。 勾选或者去掉勾选。 延迟到事务结束(提交或回滚)后才发送 是否延迟到该服务编排事务结束后才发送事件。 默认不勾选。表示流程执行到该图元时立即发送事件。 勾选或者去掉勾选。 主题 当勾选“发送到外部”时,该参数才会显示,表示非系统配置的默认Topic。 需要从与AppCube相连Kafka处获取其他主题Topic。 目标/源 配置事件数据。为该事件自定义参数赋值,将“源”取值赋值到“目标”中。 请单击“新增行”添加并进行赋值。 “目标”请从下拉框中选择事件的自定义参数,在“源”中可从全局上下文拖拽变量或者直接输入“{!变量名}”给目标赋值。
  • 查询对象数据 本节点将介绍如何通过记录查询图元,查询Respirator对象数据中“状态”为“空闲”的对象记录。 参考1创建“名称”和“标签”为“SelectRespirator”的服务编排。 定义服务编排用到的变量,并设置该服务编排的出参。 在服务编排编辑器页面右侧选择,在全局上下文页面单击“对象变量”后的加号。 新建对象变量“RespiratorInfos”,对象中选择前提条件中创建的对象Respirator,设置字段描述信息(可选),选中“是否为数组”,单击“保存”。 图14 创建数组类型对象变量“RespiratorInfos” 单击画布中的“开始”图元,在右侧菜单选择,单击右上角“全局上下文”展开“全局上下文”页面,将数组对象变量“RespiratorInfos”拖拽到“出参”中。 图15 配置开始图元 拖拽“基本”目录中的“记录查询”图元到画布中,并与“开始”图元进行如下连线。 图16 拖拽图元 配置“记录查询”图元。 单击画布中的“记录查询”图元,在“基本信息”页面中配置图元标签及名称为“SelectRespirator”,并勾选“使用快速查询模式”。 图17 配置“记录查询”图元基本信息 如下图所示,单击,在“记录查询”页面中,将创建的对象变量RespiratorInfos由展开的“全局上下文”页面拖拽到“变量”输入框中。在“条件”中单击“新增行”新增条件语句,“排序”为可选配置。 图18 配置“记录查询”页面 条件的值中要用英文双引号。 “排序”为可选配置,将根据您选择的“排序字段”以及“顺序”对查询到的数据进行排序。 单击上方按钮区域的进行保存,并单击运行服务编排。 由于该服务编排没有配置入参,直接单击“运行”,查询对象数据。 查看是否返回所有状态为空闲的对象记录。 { "interviewId": "002N0000XXXXXXx5Cy", "outputs": { "RespiratorInfos": [ { "createdBy": "10gd000XXXXXX7Pea", "createdBy.name": "XXX", "createdDate": "2021-08-10 14:25:18", "currencyIsoCode": "USD", "CNAME__hospital__CST": "第1人民医院", "CNAME__status__CST": "空闲", "id": "cnE0000000m5Kvrl7kSe", "lastModifiedBy": "10gd000XXXXXXq7Pea", "lastModifiedBy.name": "XXX", "lastModifiedDate": "2021-08-10 14:25:18", "name": "呼吸机1", "owner": "10gd0000XXXXXXq7Pea", "owner.name": "gonCNAMEhen" }, { "createdBy": "10gd000000bZHUAq7Pea", "createdBy.name": "XXX", "createdDate": "2021-08-10 14:25:18", "currencyIsoCode": "USD", "CNAME__hospital__CST": "第1人民医院", "CNAME__status__CST": "空闲", "id": "cnE0000000m5KvrtM7EW", "lastModifiedBy": "10gd0000XXXXXXea", "lastModifiedBy.name": "XXX", "lastModifiedDate": "2021-08-10 14:25:18", "name": "呼吸机2", "owner": "10gd000000bZHUAq7Pea", "owner.name": "XXX" }, { "createdBy": "10gd000XXXXXX7Pea", "createdBy.name": "XXX", "createdDate": "2021-08-10 14:25:18", "currencyIsoCode": "USD", "CNAME__hospital__CST": "第1人民医院", "CNAME__status__CST": "空闲", "id": "cnE0000000m5KvrykUhk", "lastModifiedBy": "10gd0000XXXXXXPea", "lastModifiedBy.name": "XXX", "lastModifiedDate": "2021-08-10 14:25:18", "name": "呼吸机3", "owner": "10gd000000bZHUAq7Pea", "owner.name": "XXX" } ] }} 图19 界面输出 单击上方按钮区域的,进行激活。
  • 删除对象数据 本节点将介绍如何通过记录删除图元删除Respirator对象数据。 参考1创建“名称”和“标签”为“DeleteRespirator”的服务编排。 定义服务编排用到的变量,并设置该服务编排的出参。 在服务编排编辑器页面右侧选择,在全局上下文页面单击“对象变量”后的加号。 新建对象变量“RespiratorInfos”,对象中选择前提条件中创建的对象Respirator,设置字段描述信息(可选),选中“是否为数组”,单击“保存”。 图27 新建对象变量“RespiratorInfos” 单击画布中的“开始”图元,在右侧菜单选择,单击右上角“全局上下文”展开“全局上下文”页面,将数组对象变量“RespiratorInfos”拖拽到“入参”中。 图28 配置开始图元 拖拽“基本”目录中的“记录删除”图元到画布中,并连接“开始”和“记录删除”图元。 配置“记录删除”图元。 单击画布中的“记录删除”图元,在“基本信息”页面中配置图元标签及名称为“DeleteRespirator”,并勾选“使用快速删除模式”。 单击,在“记录删除”页面将创建的对象变量RespiratorInfos由展开的“全局上下文”页面拖拽到“变量”输入框中。 图29 配置“记录删除”页面 单击上方按钮区域的进行保存,并单击运行服务编排。 设置输入参数,单击“运行”,删除2条对象记录。 其中“id”取值替换为查询对象数据中7查询出呼吸机的id。单击“运行”。 { "RespiratorInfos": [ { "id": "cnE0000000m5Kvrl7kSe" }, { "id": "cnE0000000m5KvrtM7EW" } ]} 运行后在对象Respirator“布局”页签单击“Respirator Records”后的图标,查看到已成功删除2条对象记录,还剩1条。 图30 预览布局页 图31 对象记录 单击上方按钮区域的,启用服务编排。
  • 修改对象数据 本节点将介绍如何通过记录更新图元修改Respirator对象数据。 参考1创建“名称”和“标签”为“UpdateRespirator”的服务编排。 定义服务编排用到的变量,并设置该服务编排的入参。 在服务编排编辑器页面右侧选择,在全局上下文页面单击“对象变量”后的加号。 新建对象变量“RespiratorInfos”,对象中选择前提条件中创建的对象Respirator,设置字段描述信息(可选),选中“是否为数组”,单击“保存”。 图20 新建对象变量“RespiratorInfos” 单击画布中的“开始”图元,在右侧菜单选择,单击右上角“全局上下文”展开“全局上下文”页面,将数组对象变量“RespiratorInfos”拖拽到“入参”中。 图21 配置开始图元 拖拽“基本”目录中的“记录更新”图元到画布中,并与“开始”图元进行如下连线。 图22 拖拽图元 配置“记录更新”图元。 单击画布中的“记录更新”图元,在“基本信息”页面中配置图元标签及名称为“UpdateRespirator”,并勾选“使用快速更新模式”。 图23 配置“记录更新”图元基本信息 单击,在“记录更新”页面,将创建的对象变量RespiratorInfos由展开的“全局上下文”页面拖拽到“变量”输入框中。 图24 配置“记录更新”页面 单击上方按钮区域的进行保存,并单击运行服务编排。 设置输入参数,单击“运行”,在“输入参数”中输入如下参数,修改Respirator对象数据,更新状态为“使用中”。 其中“CNAME”替换为环境中实际配置的命名空间;“id”取值替换为查询对象数据中7查询出呼吸机的id。 { "RespiratorInfos": [ { "id": "cnE0000000m5Kvrl7kSe", "CNAME__status__CST": "使用中" }, { "id": "cnE0000000m5KvrtM7EW", "CNAME__status__CST": "使用中" } ]} 检查运行的结果是否符合预期。 运行结果如下,显示“成功”。 在对象Respirator“布局”页签单击“Respirator Records”后的图标,查看到对象记录中状态已成功由“空闲”更新为“使用中”。 图25 预览对象布局页 图26 查看对象数据变更 单击上方按钮区域的,进行激活。
  • 创建对象数据 本节点将介绍如何实现初始化Respirator对象数据的功能,由于服务编排中内置的记录创建图元无法批量创建,需要循环调用记录创建图元,进行批量创建。 创建“名称”和“标签”为“CreateRespirator”的服务编排。 在一个应用目录上,例如“Logic”,单击 “+”,在弹出菜单中选择“服务编排”。 在“添加服务编排”的对话框中配置“标签”为“CreateRespirator”,单击“名称”参数的输入框系统会自动填充“CreateRespirator”。单击“添加”。 参照表1定义服务编排用到的变量,并设置该服务编排的入参。 表1 变量说明 变量名 变量类型 变量说明 RespiratorInfo Respirator对象 系统中空闲状态下的呼吸机资源数组元素。 RespiratorInfos Respirator对象数组 系统中空闲状态下的呼吸机资源数组。 在服务编排编辑器页面右侧选择,在全局上下文页面单击“对象变量”后的加号。 图1 添加对象变量 设置对象变量名称为“RespiratorInfo” ,对象中选择前提条件中创建的对象Respirator,设置字段描述信息(可选),单击“保存”。 图2 配置对象变量 服务编排中只允许引用当前应用工程下的资源(例如对象、脚本),上图中的对象需要和服务编排在同一应用中。 在全局上下文页面单击“对象变量”后的加号。新建对象变量“RespiratorInfos”,对象中选择前提条件中创建的对象Respirator,设置字段描述信息(可选),选中“是否为数组”,单击“保存”。 图3 配置数组类型对象变量 单击画布中的“开始”图元,在右侧菜单选择,单击右上角“全局上下文”展开“全局上下文”页面,将数组对象变量“RespiratorInfos”拖拽到“入参”中。 图4 配置开始图元 拖拽快捷目录中的“循环”图元以及“基本”目录中的“记录创建”图元到画布中,并与“开始”图元进行如下连线。 图5 拖拽图元 配置“循环”图元。 单击画布中的“循环”图元,在“基本信息”页面中配置图元标签和名称为“LoopRespiratorInfos”。 图6 配置“循环”图元基本信息 单击,进入“循环”配置页面,展开“全局上下文”页面,拖拽对象变量RespiratorInfos到“数组”输入框中,拖拽对象变量RespiratorInfo到“元素”输入框中。 图7 配置“循环”页面 如上图配置,能够将数组对象变量RespiratorInfos进行遍历,并将数组中的每个元素放置到对象变量RespiratorInfo中,进行下一步操作。 配置“记录创建”图元。 单击画布中的“记录创建”图元,在“基本信息”页面中配置图元标签及名称为“CreateRespirator”,并勾选“使用快速创建模式”。 图8 配置“记录创建”图元基本信息 单击,在“记录创建”页面,展开“全局上下文”页面,将对象变量RespiratorInfo拖拽到“变量”输入框中。 图9 配置“记录创建”页面 单击上方按钮区域的进行保存,并单击运行服务编排。 设置输入参数,单击“运行”,创建3条对象记录。 其中“CNAME”替换为环境中实际配置的命名空间。 { "RespiratorInfos": [ { "name": "呼吸机1", "CNAME__hospital__CST": "第1人民医院", "CNAME__status__CST": "空闲" }, { "name": "呼吸机2", "CNAME__hospital__CST": "第1人民医院", "CNAME__status__CST": "空闲" }, { "name": "呼吸机3", "CNAME__hospital__CST": "第1人民医院", "CNAME__status__CST": "空闲" } ]} 图10 输入参数创建数据 检查运行的结果是否符合预期。 运行结果如下,显示“成功”。 图11 运行结果 在对象Respirator“布局”页签单击“Respirator Records”后的图标,查看到已成功创建对象记录。 图12 查看对象数据 图13 Respirator对象数据 单击上方按钮区域的,启用该服务编排。
  • 发送邮件图元参数配置 选中拖拽到画布中的发送邮件图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为Email序号。序号从“0”开始,表示同类型图元序号。 系统自动填充,可自定义。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充,可自定义。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 单击,在“发送邮件”页面进行配置。 图2 配置直接编辑邮件 图3 配置基于模板邮件 表2 发送邮件图元配置参数说明 参数名 参数说明 如何配置 直接编辑 手动设置邮件信息。 选中单选按钮,“直接编辑”和“基于模板”两者择一。 默认选中“直接编辑”。 基于模板 基于同一租户或基线里已有的邮件模板设置邮件主题和内容。 方便用户增加效率。 模板 当选中“基于模板”时,您需要选择邮件模板。 在下拉框里选择。 主题 邮件标题。 当选中“直接编辑”时,您需要配置邮件标题。 当选中“基于模板”时,该参数配置区域置灰。 当选中“直接编辑”时,您需要直接输入邮件标题。 当选中“基于模板”时,不用配置。 内容 邮件内容。 当选中“直接编辑”时,您需要配置邮件内容。 当选中“基于模板”时,该参数配置区域置灰。 当选中“直接编辑”时,您需要直接输入邮件内容。 当选中“基于模板”时,不用配置。 自定义变量 当选中“基于模板”时,您需要配置模板中的参数,在“值”中进行赋值。 在“值”中直接输入参数取值或者从全局上下文拖拽变量。 地址 接收人的邮箱地址。 字符串:直接输入邮箱地址,多个地址请用分号分隔,或者从全局上下文拖拽变量代表一个接收人的邮箱地址。 集合:表示可以从全局上下文拖拽集合变量,集合变量即数组型变量,表示多个接收人的邮箱地址。在定义变量时勾选“是否为数组”,则该变量被定义为集合变量。 抄送 抄送人员的邮箱地址。 直接输入分号分隔的字符串或者从全局上下文拖拽变量。 密送 秘密发送人员的邮箱地址。 直接输入分号分隔的字符串或者从全局上下文拖拽变量。
  • 赋值图元参数配置 选中拖拽到画布中的赋值图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为Assignment序号。序号从“0”开始,表示同类型图元序号。 系统自动填充,可自定义。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充,可自定义。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 单击,在“赋值”页面进行配置。 图2 配置赋值图元 表2 赋值图元配置参数说明 参数名 参数说明 如何配置 变量 可以是任意变量,例如普通变量、结构体变量、系统变量等。 可从全局上下文拖拽或者直接输入变量。 操作符 操作符,目前支持普通赋值(=),变量追加(+=)与变量相减(-=)。 从下拉框中选择。 值 值,可以是普通变量、结构体变量、系统变量。也可以新建变量获取值。或者根据类型填写常量。 可从全局上下文拖拽变量或者直接输入{!变量名},再或者根据类型填写常量。 常量填写提示: 文本类型需要用双引号括起来。例如: "abc"、"He said Hi."。 数字和货币类型支持带符号、小数点的合法数字表达形式。例如: 123.5、 -12、12.3。 日期类型格式为YYYY-MM-DD。例如:2020-10-01。 日期时间类型格式为YYYY-MM-DD hh:mm:ss。例如2020-10-01 12:00:00。 布尔类型只能是true或false。 任意类型支持所有基本类型的格式。
  • 跳出循环图元参数配置 选中拖拽到画布中的跳出循环图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为Flow序号。序号从“0”开始,表示同类型图元序号。 系统自动填充。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 单击,在“跳出循环”页面的“循环”下拉框中选择当前服务编排中需要中断的循环。 图2 配置跳出循环图元
  • 如何查多条数据 可通过配置记录查询图元,输出对象的多行数据列表。 例如,应用中已创建设备对象“CNAME1__Equipment__CST”,且已有如下两条数据记录,通过在服务编排中配置记录查询图元,查询出该对象数据记录中所有的设备名称。实现步骤如下: 先创建服务编排。 在应用开发工作台,将光标放在“Logic”目录上,目录右侧显示操作图标,单击“+”,在弹窗菜单中,选择“服务编排”,弹出创建服务编排对话框。 在对话框中,输入服务编排的“标签”为“queryEquipment”,单击“标签”的输入框后,系统将自动生成名称为“queryEquipment”,再单击“添加”。 图4 添加服务编排 表4 服务编排基本信息 参数名 参数说明 本示例需要填写的值 创建一个新的服务编排 创建一个新的服务编排流程。 保持默认,选中“创建一个新的服务编排”。 使用已有的服务编排 基于已有的服务编排创建。方便用户快速继承已有服务编排的配置,增加效率。 不设置。 标签 服务编排用于展示的名称。 queryEquipment 名称 服务编排在系统内的唯一标识。 系统会自动在该名称前添加命名空间__。当其他功能调用服务编排时,调用的是服务编排的“名称”,而不是标签。 创建之后不支持修改。 queryEquipment 说明: 实际创建的服务编排名为:CNAME1__queryEquipment 类型 服务编排的类型。 Autolaunched Flow:自启动Flow,在接口调用后会立即执行服务编排模型定义的逻辑。 Event Trigger:事件触发的服务编排,则会在事件触发时才会开始执行服务编排模型定义的逻辑。当选择该类型时,您需要配置具体的事件以及条件规则。 保持默认类型:Autolaunched Flow 定义服务编排的变量。由于本任务需要查询出对象的多行数据列表,您需要先创建对象类型的数组型变量,用于进行输出。 在服务编排编辑器页面右侧选择。在全局上下文页面单击“对象变量”后的加号。 设置对象变量,保持默认“记录”类型,设置参数名称为“Equipment”(您也可自定义为其他名称),对象中选择要查询的具体对象“CNAME1__Equipment__CST”,勾选“数组”表示该变量为数组型变量即集合变量,单击“保存”。 新增并配置记录查询图元。 从左侧图元列表中,拖拽“基本”下“记录查询”图标至画布中,松开鼠标左键。 该图元用于根据条件查询对象记录。 选中记录查询图元,单击,如下图所示配置该图元。 表5 普通类型记录查询参数说明 参数名 参数说明 如何配置 对象 查询的具体对象名。 从下拉框中选择对象“CNAME1__Equipment__CST”。 剔重 若查询记录有重复值,是否需要删掉重复记录只保留一条记录。 默认不勾选,表示不删掉重复记录。 保持默认。 条件 单击“新增行”,可设置查询数据的条件。 保持默认。 (排序)排序字段/顺序 将查询结果根据某个字段可进行升序或者降序排序。 保持默认。 记录行的偏移量 分页,跳过前n条记录,从第n+1条记录开始。 从全局上下文拖拽数值变量或者直接输入“{!数值变量名}”,也可以是常量。 保持默认。 记录行的最大数目 分页,每页最多显示的记录数。 从全局上下文拖拽数值变量或者直接输入“{!数值变量名}”,也可以是常量。 保持默认。 记录行的总数 限定查询出来的总记录数。 从全局上下文拖拽数值变量或者直接输入“{!数值变量名}”,也可以是常量。 保持默认。 (输出)源/目标 输出结果。单击“新增行”进行添加。 “源”为需要查询的字段,查询结果需要保存到设置的变量中,“目标”为设置的变量。 单击“新增行”进行添加。“源”配置为需要查询的设备名称字段“name”,可从下拉框中选择,“目标”从全局上下文拖拽对象变量的“name”字段,拖拽后,“目标”取值为“Equipment[0].name”。 无记录时配置空值 当根据条件查询无记录时,则变量为空值。 默认为勾选。 保持默认。 将目标“Equipment[0].name”中的“0”修改为通配符“*”。 如果不改为通配符,只能查询出一条数据。 在画布上,把鼠标放在起点图元上,从“+”拖动鼠标,在起点图元和记录查询图元间增加连线。连接开始和记录查询图元。 鼠标在画布空白处点一下,单击右侧,设置服务编排的出参,从全局上下文里的对象变量中拖入。 单击服务编排界面上部的保存图标,保存服务编排。 测试服务编排能否正常执行。 单击服务编排编辑器上方执行图标。 不用输入测试数据,直接单击“运行”。 执行成功,界面上会返回设备对象中的全部设备名称数据,样例如下: 图5 返回样例 启用服务编排:测试成功,单击服务编排编辑器上方启用图标,启用服务编排。 如果服务编排创建完成后,未启用默认是属于编辑状态,不能被页面或者其他服务调用。
  • 记录查询图元参数配置 单击拖拽到画布中的记录查询图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为RecordSelect序号。序号从“0”开始,表示同类型图元序号。 系统自动填充,可自定义。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充,可自定义。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 使用快速查询模式 是否启用快速查询模式。 若勾选该参数,表示为快速模式。仅配置查询条件即可,查询结果自动保存在对象变量中,如果对象变量不是数组,则仅保存第一条符合条件的记录;如果对象变量为数组,则保存所有返回的记录。 不勾选,表示为普通模式。根据条件查询对象记录,需要指明要查询的对象名,查询条件,需要查询的字段列表,查询结果需要保存到设置的变量中。 默认不勾选。 选中单选按钮。 单击,在“记录查询”页面进行配置。 若上一步勾选“使用快速查询模式”,则需要指定一个预先定义的对象变量或者对象变量数组,并将该对象变量或对象变量数组拖拽到“变量”输入框中,并设置条件以及选择排序方式,即可实现根据条件和排序方式将查询结果保存在对象变量中。例如,如下图所示,根据条件查询对象数据,并将查询结果保存在对象变量“Account”中。 图2 快速查询模式 表2 快速查询模式参数说明 参数名 参数说明 如何配置 变量 预先定义的对象变量或者对象变量数组。 查询结果自动保存在对象变量或者对象变量数组。如果对象变量不是数组,则仅保存第一条符合条件的记录;如果对象变量为数组,则保存所有返回的记录。 从全局上下文拖拽或者直接输入对象变量或对象变量数组。 无记录时配置空值 当根据条件查询无记录时,则变量为空值。 默认为勾选。 勾选或者去掉勾选。 条件 选中对象后,该条件区域“字段”列会出现该对象的字段。单击“新增行”,可设置查询数据的条件。 在“字段”中选择要进行判断的对象字段,在“比较符”中选择相应的比较符,“值”则可从全局上下文拖拽变量或者直接输入“{!变量名}”。 (排序)排序字段/顺序 使查询结果根据某个字段进行升序或者降序排序。 从下拉框选择。 若上一步未勾选“使用快速查询模式”,则需要指定对象并在条件中设置指定对象部分字段的值,根据条件查询符合条件的对象记录,并赋值到设置的变量上。例如,如下图所示,查询“Account”对象“name”为“Lily”的记录,并将查询得到的对象id赋值到"var_record_id"变量上。 图3 普通查询模式 表3 普通查询模式参数说明 参数名 参数说明 如何配置 对象 查询的具体对象名。 从下拉框中选择。 剔重 若查询记录有重复值,是否需要删掉重复记录只保留一条记录。 默认不勾选,表示不删掉重复记录。 勾选或者去掉勾选。 条件 选中对象后,该条件区域“字段”列会出现该对象的字段。单击“新增行”,可设置查询数据的条件。 在“字段”中选择要进行判断的对象字段,在“比较符”中选择相应的比较符,“值”则可从全局上下文拖拽变量或者直接输入“{!变量名}”。 (排序)排序字段/顺序 使查询结果根据某个字段进行升序或者降序排序。 从下拉框选择。 记录行的偏移量 分页,跳过前n条记录,从第n+1条记录开始。 从全局上下文拖拽数值变量或者直接输入“{!数值变量名}”,也可以是常量。 记录行的最大数目 分页,每页最多显示的记录数。 从全局上下文拖拽数值变量或者直接输入“{!数值变量名}”,也可以是常量。 记录的总行数存入变量 查询出来的总记录数存入变量中。 从全局上下文拖拽数值变量或者直接输入“{!数值变量名}”。 (输出)源/目标 输出结果。单击“新增行”进行添加。 “源”为需要查询的字段,查询结果需要保存到设置的变量中,“目标”为设置的变量。 “源”为需要查询的字段,可从下拉框中选择,“目标”可从全局上下文拖拽变量或者直接输入变量名。 无记录时配置空值 当根据条件查询无记录时,则变量为空值。 默认为勾选。 勾选或者去掉勾选。
  • 决策图元参数配置 选中拖拽到画布中的决策图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为Decision序号。序号从“0”开始,表示同类型图元序号。 系统自动填充。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 单击,在“决策”页面进行配置。 图2 配置决策图元 表2 决策图元配置参数说明 参数名 参数说明 如何配置 可编辑的结果 所有的判断条件。 可通过单击“新增”新增判断条件分支,界面右侧区域配置分支条件。 默认:默认输出,当其他所有条件均不满足情况下,进入该分支。 新增的分支名为decision序号,序号从“0”开始,可直接修改分支名。 可视 当选择“可视”时,可配置分支的判断条件。单击“新增”,可新增判断条件。条件显示为“资源”、“比较符”、“值”。 默认选择“可视”。 资源可从全局上下文拖拽变量或者直接输入“{!变量名}”,比较符可从下拉框中选择,值可从全局上下文拖拽变量或者直接输入“{!变量名}”,也可以是常量。 公式 可采用公式设置该分支条件。 公式中的变量可从全局上下文拖拽变量或者直接输入变量。 选择连接条件 当选择“可视”并设置多条判断条件时,需要设置选择连接条件“或”或者“且”。 或:表示满足多条判断条件的其中一条,便可进入该分支。 且:表示必须同时满足多条判断条件,才可进入该分支。 从下拉框选择“或”或者“且”。
  • 操作步骤 创建数组变量“TestList1”、“TestList2”和普通变量“test_var”。 在服务编排编辑器页面右侧选择。在全局上下文页面单击“变量”后的加号。 单击新增变量后的“...”,选择“设置”。 设置数组变量“TestList1”,数据类型为文本。 图2 数组变量“TestList1” 参考上述步骤设置数组变量“TestList2”和普通变量“test_var”,普通变量不用勾选“是否为数组”。 图3 数组变量“TestList2” 图4 普通变量“test_var” 单击拖拽到画布中的循环图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为Loop序号。序号从“0”开始,表示同类型图元序号。 系统自动填充。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 单击,在“循环”页面进行配置。 图5 配置循环图元 表2 循环图元配置参数说明 参数名 参数说明 如何配置 循环数组 表示进行循环的具体数组。 从全局上下文中拖拽或者输入集合变量。 该场景请从全局上下文拖拽数组变量“TestList1”,表示对数组“TestList1”进行循环。 循环变量 表示将每次循环取出来的元素赋值给该变量。 从全局上下文中拖拽或者输入变量。 该场景请从全局上下文拖拽普通变量“test_var”,表示将每次循环取出来的元素赋值给变量“test_var”。 排序 循环取出的顺序,可选择升序或者降序从数组中依次取出。 从下拉框选择“升序”或者“降序”。 进行赋值操作,将“test_var”的值加到数组“TestList2”后面。 拖拽“逻辑”下“赋值”图标至画布中,松开鼠标左键。 单击,在“基本信息”页面进行配置。“标签”和“名称”配置为“AddToList2”。 如下图所示,设置页面参数,从全局上下文拖拽数组变量“TestList2”到变量中,从全局上下文拖拽普通变量“test_var”到值中。将“test_var”的值加到数组“TestList2”后面。 图6 添加Assignment定义 将循环和赋值连线,在连线类型选择“下一个取值”。 图7 添加连线 清空“test_var”并闭环。 拖拽“逻辑”下“赋值”图标至画布中,松开鼠标左键。 单击,在“基本信息”页面进行配置。“标签”和“名称”配置为“testvar_Tonull”。 单击,设置页面参数。从全局上下文拖拽普通变量“test_var”到变量中,从全局上下文拖拽全局常量“$GlobalConstant.Null”到值中。清空“test_var”。 图8 清空test_var页面 在服务编排编辑器页面右侧选择,按照下图从全局上下文页面中拖拽参数到相应的入参和出参区域,设置服务编排的入参和出参。 连线并单击,保存服务编排。 单击,在“输入参数”中输入参数后运行服务编排。 在“输入参数”中输入如下参数: { "TestList1": [ "1", "2", "3" ]} 检查输出页签的结果是否符合预期。 { "interviewId": "002N000000YfbbgBStmq", "outputs": { "TestList2": [ "1", "2", "3" ] }}
  • 等待图元参数配置 选中拖拽到画布中的等待图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为Wait序号。序号从“0”开始,表示同类型图元序号。 系统自动填充。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 单击,在“等待”页面进行配置。 图2 Wait配置及Pass分支条件配置 图3 Unpass分支条件配置 图4 Timeout分支条件配置 表2 条件分支配置参数说明 参数名 参数说明 如何配置 可编辑的事件 所有的判断条件。 可通过单击“新增”来增加判断条件分支。 默认:默认输出,当其他所有条件均不满足情况下,进入该分支。 例如需要新增如下三个判断条件: Pass:应聘者被录用。应聘通过时Boolean类型参数“result”赋值为全局常量“{!$GlobalConstant.True}”,表示结果为真,即应聘通过。 Unpass:应聘者没有被录用。应聘失败时Boolean类型参数“result”赋值为全局常量“{!$GlobalConstant.False}”,表示结果为假,即应聘拒绝。 Timeout:超时事件。基于该服务编排执行时间超时30分钟未返回是否录用。 新增的分支名为event序号,序号从“0”开始,可直接修改分支名。 事件/时间 当订阅的是自定义事件时,您需要选择“事件”;当订阅的是系统预置的标准事件“Absolute Time Alert”,即定时器发送的系统事件时,您需要选择“时间”。 本示例中需要配置如下: Pass:请选择“事件”。 Unpass:请选择“事件”。 Timeout:请选择“时间”。 选中单选按钮。 “事件”和“时间”两者择一。 事件 请选择需要订阅的事件。当订阅的是自定义事件时,该参数才会显示。 从下拉框选择。 事件条件 该分支的条件。单击“新增行”可进行添加。当订阅的是自定义事件时,该参数才会显示。 分支条件中的字段为创建该事件时设置的自定义参数,值可从右侧全局上下文中选择拖入。 分支条件中的字段从下拉框选择该事件的自定义参数,值可从全局上下文拖拽变量或者直接输入“{!变量名}”,也可以是常量。 定义需要满足的其他条件 勾选“定义需要满足的其他条件”后,您可根据事件变量外的其他变量设置追加条件。 勾选或者不勾选。 可视 勾选“定义需要满足的其他条件”后,该参数才会显示。当选择“可视”时,可配置追加条件的判断条件。单击“新增”,可新增判断条件。条件显示为“资源”、“比较符”、“值”。 默认选择“可视”。 资源可从全局上下文拖拽变量或者直接输入“{!变量名}”,比较符可从下拉框中选择,值可从全局上下文拖拽变量或者直接输入“{!变量名}”,也可以是常量。 公式 勾选“定义需要满足的其他条件”后,该参数才会显示。可采用公式设置追加条件。 公式中的变量可从全局上下文拖拽变量或者直接输入变量。 选择连接条件 当选择“可视”并设置多条判断条件时,需要设置选择连接条件“或”或者“且”。 或:表示满足多条判断条件的其中一条,便可进入该分支。 且:表示必须同时满足多条判断条件,才可进入该分支。 从下拉框选择“或”或者“且”。 输出 如果您需要在服务编排中使用事件的参数,将其参数赋值到事件变量中方便服务编排引用。 当订阅的是自定义事件时,该参数才会显示。 默认不需要。 从全局上下文拖拽或者输入事件变量,事件变量必须和所选的事件相同。 基准 基准时间。 当订阅的是系统预置的定时器发送事件时,该参数才会显示。 可从全局上下文拖拽日期/时间类型变量,也可设置为某个具体时间,或者设置为本服务编排执行时间。 例如,在本节中设置为本服务编排执行时间,即{!$Flow.CurrentDateTime}。 偏移时间 偏移时间,例如“30”。当订阅的是系统预置的定时器发送事件时,该参数才会显示。 直接输入整数。 偏移单位 偏移时间的单位。当订阅的是系统预置的定时器发送事件时,该参数才会显示。 可从下拉框选择“天”、“小时”或“分钟”。 例如,设置基于该服务编排执行时间超时30分钟未返回是否录用。
  • BO图元参数配置 选中拖拽到画布中的BO图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为BO名+序号。序号从“0”开始,表示同类型图元序号。 系统自动填充。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 单击,在“BO”页面进行配置。 图3 配置BO图元 表2 BO图元配置参数说明 参数名 参数说明 如何配置 服务版本 BO中的自定义API的版本号。 在BO开发页面中,单击左下角的“服务”新建API时,需要指定版本号,且接口区分“公共接口”和“私有接口”。 “公共接口”页面创建接口是提供REST接口给第三方系统或者内部系统调用;“私有接口”页面创建接口是提供SDK接口给内部系统调用。 从下拉框选择。 系统会将BO中所有自定义API的版本值集中放置在该下拉框取值下。 API类型 API类型,分为REST或SDK。 单击选择“REST”或者“SDK”。 操作方法 BO中已自定义好的API接口,该API接口类型必须是“服务编排”,才可在Flow中调用。 从下拉框选择。 在BO开发页面,单击左下角的“服务”,在“公共接口”页签可查看该BO对外提供的API接口。 入参/目标 当选择具体操作方法(API)后,API的输入参数将会显示在入参的目标列。 系统会将选择的API的所有入参自动显示在目标列。当没有入参时,不显示。 入参/源 服务编排中的变量,需要和目标的参数类型保持一致。该源会将服务编排中的变量赋值给调用API的输入参数。 可从全局上下文拖拽变量或者直接输入“{!变量名}”给目标赋值。 出参/源 当选择具体操作方法(API)后,API的输入参数将会显示在出参的源列。 系统会将选择的API的所有出参自动显示在目标列。当没有出参时,不显示。 出参/目标 服务编排中的变量,需要和输出参数的类型保持一致。API中的输出参数赋值给服务编排中的变量,供服务编排使用。 可从全局上下文拖拽或者直接输入变量。
  • 前提条件 已在BO中自定义封装好API,具体操作请参考如何开放API接口。 打开需要调用BO服务的应用开发工作台,单击“Internal dependencies”或“External dependencies”旁的“+”,选择“BO服务”,添加要调用的BO服务。 添加后在该应用的服务编排中才可以调用BO服务。 “Internal dependencies”为内部依赖文件夹,导入的BO服务或者Native服务,在打包上层应用时也会随应用打包发布出去;“External dependencies”为外部依赖文件夹,导入的BO服务或者Native服务,在打包上层应用时不会打包出去。 图1 应用中添加BO服务
  • 前提条件 已在原生服务中配置好API,具体操作请参考配置API。 已接入服务实例,具体操作请参考注册Native Service。 打开需要调用原生服务的应用开发工作台,单击“Internal dependencies”或“External dependencies”旁的“+”,选择“Native服务”,在“添加Native服务”页面添加要调用的原生服务。 添加后在该应用的服务编排中才可以调用Native服务。 “Internal dependencies”为内部依赖文件夹,导入的BO服务或者Native服务,在打包上层应用时也会随应用打包发布出去;“External dependencies”为外部依赖文件夹,导入的BO服务或者Native服务,在打包上层应用时不会打包出去。 图1 应用中添加原生服务
  • Native服务图元参数配置 选中拖拽到画布中的Native服务图元,单击,在“基本信息”页面进行配置。 表1 基本信息参数说明 参数名 参数说明 如何配置 标签 仅用于展示。系统会自动填入该值,格式为原生服务名+序号。序号从“0”开始,表示同类型图元序号。 系统自动填充。 名称 该图元的标识,请确保在当前服务编排中唯一。 系统自动填充。 描述 该图元的描述信息。 选填项,建议填写图元的作用。 单击,在“Native服务”页面进行配置。 图3 配置Native服务图元 表2 Native服务图元配置参数说明 参数名 参数说明 如何配置 操作方法 原生服务中已自定义好的API接口。 从下拉框选择。列表中方法是之前在Service中配置的方法。 进入原生服务,在原生服务配置界面选择“导航”。 在“API设计”页签查看该原生服务对外提供的API接口。API要处于已发布状态。 发布原生服务后如果需要修改API,需要在API配置界面单击取消发布后进行修改,修改后再保存并发布。 已经发布的API可能在服务编排中已经使用,如果修改API导致不兼容,请同步修改引用该API的服务编排。 入参/目标 当选择具体操作方法(API)后,API的输入参数将会显示在入参的目标列。 系统会将选择的API的所有入参自动显示在目标列。当没有入参时,不显示。 入参/源 服务编排中的变量,需要和目标的参数类型保持一致。该源会将服务编排中的变量赋值给调用API的输入参数。 可从全局上下文拖拽变量或者直接输入“{!变量名}”给目标赋值。 出参/源 当选择具体操作方法(API)后,API的输入参数将会显示在出参的源列。 系统会将选择的API的所有出参自动显示在目标列。当没有出参时,不显示。 出参/目标 服务编排中的变量,需要和输出参数的类型保持一致。API中的输出参数赋值给服务编排中的变量,供服务编排中使用。 可从全局上下文拖拽或者直接输入变量。
  • 基于预留扩展点进行定制 此处以“createOrder”接口为例来说明,基线“createOrder”接口中预留了一个扩展点。 这个扩展点是一个空的子服务编排“AfterSaveOrder”,将这个子服务编排另存一个定制版本“AfterSaveOrder_0419”,实现新的业务逻辑。子服务编排另存为定制版本的操作方法请参考另存版本后进行定制。 在此方式下,定制内容在基线接口预留节点中,该接口还是属于基线接口,可以随版本升级使用。 图2 定制示例
  • 是否可以多人编辑服务编排 当多人编辑已有服务编排时,为防止多人篡改,AppCube提供了一套保护机制。 假设A用户打开X服务编排,编辑前单击锁定服务编排,A用户进行编辑,此时B用户也打开X服务编排,B用户的服务编排编辑器将自动进入锁定模式。 保持A用户对X流程的编辑设计权限。A用户编辑完成后,需要单击进行解锁或者单击启用按钮进行自动解锁。 当A用户锁定X流程后,系统会只读模式锁定B用户对X流程的操作,B用户的服务编排编辑器页面会有提示“该资源已经由A用户锁定,点击此处强制获得编辑权”。B用户如果按照提示强制获得编辑权,A用户的X流程编辑器画面会自动锁定。 当多人编辑已有BPM、触发器、标准页面或状态机时,AppCube提供的保护机制是相同的,后续不再分别介绍。 父主题: 服务编排
  • 另存版本后进行定制 此处以“testFlow”服务编排为例进行说明,基于基线“1.0.1”版本另存一个“1.0.2”的定制版本。 在App下的Logic文件夹下单击“testFlow”服务编排。 单击进行禁用操作。 单击编辑器上方按钮。“另存为”页面“类型”中选择“新版本”,另存为新版本,服务编排名称与之前版本相同。单击“保存”。 系统默认当前页面为新版本“1.0.2”服务编排编辑器页面。 图1 另存为新版本 参数名 参数说明 如何配置 标签 仅用于展示。 直接填写。 名称 系统自动显示具体名称。不可变动,和基础版本的服务编排名称保持一致。 不可变动,和基础版本的服务编排名称保持一致。 类型 另存为的类型。 新版本:另存为新版本。适用于新建的服务编排,基础服务编排仍可使用。 新服务编排:是将原服务编排重新另存并命名,新保存后为另一服务编排,与选择“新版本”场景不同,适用于新建的服务编排,基础服务编排仍可使用。 在下拉框里选择“新版本”。 服务编排类型 服务编排的类型。系统自动显示类型。在创建基础服务编排时配置的类型。不可更改。 Autolaunched Flow:自启动Flow,在接口调用后会立即执行Flow模型定义的逻辑。 Event Trigger:事件触发的Flow,则会在事件触发时才会开始执行Flow模型定义的逻辑。 不可变动,和基础版本的服务编排类型保持一致。 展示标签 服务编排实例的展示标签。系统自动填充为“标签值{!$Flow.CurrentDateTime}”。 当环境中有该服务编排实例正在运行时,该参数值将会在服务编排管理页面的“服务编排运行实例”页签下“标签”列进行显示。 系统会自动填充。 描述 服务编排描述信息。 选填项,建议填写服务编排的作用。 是否私有 私有的服务编排不能通过Rest API或者自定义API(公共接口)进行调用。 勾选表示私有;不勾选表示不是私有。 在“1.0.2”版本服务编排编辑器页面进行定制修改。修改后单击保存按钮进行保存。 例如在新版本中新增一个定制的script图元,通过script实现新的业务逻辑。 其他图元依然沿用基线服务编排,不做任何改造。 单击图标,运行服务编排,保证服务编排运行结果符合预期。 单击服务编排编辑器页面上方图标,启用新版本服务编排。 在此方式下,当基线版本升级时,系统默认启用和使用服务编排的定制版本。升级造成的基线服务编排原有图元变化,定制服务编排可继承。升级造成的基线服务编排新增图元,定制服务编排无法继承。
  • 调试服务编排 在服务编排编辑页面,选中需要设置断点的图元,单击鼠标右键选择“设置断点”。 设置断点后,选中图元,单击鼠标右键选择“禁用断点”或者“移除断点”可禁用或者移除断点。 目前不支持在等待Wait图元以及等待图元之后的所有图元设置断点。 图1 设置断点 单击服务编排编辑器上方的,开始调试服务编排。 在弹出的输入参数页面进行配置,如果有输入参数,请输入入参,单击“运行”;如果该服务编排没有输入参数,直接单击“运行”。 在服务编排编辑器左侧,可看到调试页面,单击可执行到下一断点,单击可停止调试,查看执行到某一断点的参数变化是否符合预期。 图2 调试页面 左侧调试页面说明如下: 变量:展示执行到当前断点,服务编排中的变量取值情况,包括全局变量、某图元的输入输出变量等。 调用堆栈:执行到当前断点时出现的调用堆栈。 正在调试:正在调试的服务编排名。当执行到子服务编排时,该处显示当前子服务编排名。 断点:展示设置的所有断点,选中某一断点,单击鼠标右键可出现“移除断点”、“移除所有断点”、“启用所有断点”、“禁用所有断点”选项。可单击该区域某一断点,进行启用或者禁用该断点操作。 单击服务编排编辑器页面右上方“跟踪”,打开“跟踪器”页面。 可在弹出的页面查看Flow执行的每一步的详细信息。 关闭跟踪器页签。单击,至执行完最后一个断点,调试结束。 重新设计问题图元以及前后逻辑。再次运行服务编排,直至结果符合预期。 调试服务编排符合预期后,您需要启用服务编排,使得服务编排在系统中可用。单击服务编排编辑器页面上方图标,启用服务编排。 只有保存服务编排后编译结果没有错误的服务编排才可以被启用。
  • 运行服务编排 单击服务编排编辑器上方的,保存服务编排。 保存后,系统会对服务编排进行编译。如果有报错或者警告,请单击“确定”,在服务编排编辑器页面修改服务编排。修改后再次保存,直至无报错和警告。 单击服务编排编辑器上方的,执行服务编排。 在弹出的输入参数页面进行配置,如果有输入参数,请输入入参,单击“运行”;如果该服务编排没有输入参数,直接单击“运行”。 表1 基本信息参数说明 参数名 参数说明 如何配置 请求头参数 请求消息头的参数配置,“键”为参数名,“值”为参数取值。 单击“请求头参数”前的展开按钮,显示映射区域“键”和“值”。若需要多个请求头参数,请单击“添加行”;没有话不需要配置。 直接输入。 例如若需要用其他用户测试,请配置键“access-token”,在值中输入其他用户的access-token鉴权值。 responseType('arraybuffer') 表示返回响应的类型。勾选时,表示返回响应是一个包含二进制数据的JavaScript ArrayBuffer。 单击“请求头参数”前的展开按钮,该参数才会显示。 默认不勾选。 勾选或者不勾选。 输入参数 填写该Flow运行实例的输入参数以及取值。 手动填入。 必选参数必须输入,可选参数可根据需要添加。多行之间用“,”分隔。 例如在“输入参数”中输入如下参数: { "equipmentSn": "001", "fullAddress": "BeiJing DongchenQu"} 检查输出页签的调试结果是否符合预期。 表2 输出页签 调试结果 取值 处理建议 查看日志 单击该按钮,可弹出“日志跟踪器”,显示该Flow实例的运行日志。 单击该按钮,查看Flow执行的每一步的详细信息。 结果 调试结果。 成功 '参数名'的值'%!v(BADINDEX)'无效或格式非法 检查输入参数的设置是否正确。 输出 该Flow的输出内容。检查输出是否和预期一致。 如果结果为成功,则显示输出。 不涉及 若输出结果符合预期,单击服务编排编辑器页面上方图标,启用服务编排。 若发现输出结果不符合预期,单击服务编排编辑器页面右上方“跟踪”,打开“跟踪器”页面,查看详细信息。 可在“跟踪器”页面查看Flow执行的每一步的详细信息。检查哪一步的输出不符合预期,按照调试服务编排进行调试。
共100000条