联系
我们

工作日 9:00-18:00

13632615190

单据转换

单据转换是为了解决单据之间的数据转换的问题,应用场景非常广泛,单据转换涉及到根据当前表单的内容更新另外一张表单的字段,或者生成另外一张表单的记录,设置删除记录等等。《E6企业应用软件可视化开发平台》(下面简称“开发平台”)的单据转换包括“新增或修改记录时”、“仅新增记录时”、“仅修改记录时”、“删除记录时”等几类触发方式。每一类单据转换都可以设置转换条件,只有当前操作的数据满足转换条件的才会执行转换规则。


下面是使用方法:

在我们的系统中存在两个“保单”模块,分别是“微商城投保单”和“保单管理”,我们需要在“保单管理”中录入数据的时候,把手工录单数据自动同步到“微商城投保单”模块。

image.png

1、右键点击“保单管理”,点击弹出菜单“增加单据转换服务”

image.png

2、在“新增单据转换服务”窗口中填写服务名称,并选择触发动作,触发时机:

新增或修改记录时:不论新增或者修改单据记录,都会执行单据转换;

仅新增记录时:只有新增记录时才会执行单据转换,修改时不会触发;

仅修改记录时:修改只有记录时才会执行单据转换,新增时不会触发;

删除记录时:删除记录时执行单据转换;

如果勾选了“手动执行”则此转换规则不会自动执行,需要在表单上使用“操作按钮”来手工调用此单据转换服务。

image.png

3、我们以流程的形式来引导您实现单据转换的配置,如下图,初始流程只包括“开始”和“结束”节点,开始节点可用于设置流程的执行条件,只有满足开始节点中设置的条件才会执行整个流程的其他节点。开始和结束节点之间有一个带“ ”号的按钮,您可以点击增加流程节点,真正的转换规则在您增加的“转换节点”或者“删除节点”中实现。

image.png

假设我们需要下面的流程,流程中包括“主表转换”、“保障项目”(子表)转换,“删除节点”(保存时如果发现子表记录被删除则会执行):

image.png

设置开始节点的执行条件:

点中“开始”节点,并点击属性中的“执行条件”进行流程条件设置,如下图,我们设置的条件是“保单状态”为承保,投保日期大于“2023-02-17”且保单保费大于9000的才会执行转换条件(备注:在实际业务中不可能出现这么奇怪的条件,这样的条件只是为了保证我们演示及调测时,尽可能多的覆盖各种场景而设置的包括状态,时间,金额的条件)。

image.png

设置“主表转换”节点的转换规则:

如下图,点中“主表转换”节点,并点击属性中的“转换规则”属性右侧的按钮,进行规则设置。

image.png

单据转换规则设置窗口如下:

image.png

源单据:可以选择当前表单的及其子表;

目标单据:选择要转换的目标单据;

目标单据子表:可以选择目标单据的主表或者子表。

匹配条件:表示转换时根据哪一些条件匹配到目标单据,比如上图中,我们使用记录ID来进行匹配,如果“目标单据”的“记录ID”等于“源单据”的“记录ID”,则表示目标单据记录存在,那么将会执行“目标记录存在:执行此转换规则”中配置的转换规则,表示进行目标记录的修改;如果匹配不到表示目标记录不存在,则执行“目标记录不存在:执行此转换规则”中配置的规则,表示新增一条目标记录。

目标记录不存在:执行此转换规则:如果根据匹配条件找不到目标记录,则会执行此转换规则,表示新增一条目标记录。

目标记录存在:执行此转换规则:如果根据匹配条件找到目标记录,则会执行此转换规则,表示修改目标记录。


转换规则中源值类型有

源表单现值:表示源表单当前修改过的记录值;

源表单旧值:表示源表单当前修改前的记录值;

具体的值:你可以填写具体的,要填入目标表单对应字段的值;

当前时间:表示将当前时间填入目标表单对应字段;

流程UUID:每一个流程都有一个UUID,UUID字段通常可以用作新增的目标记录的ID;

流水号:这个是针对目标表单的流水号字段的,流水号规则需要在目标表单的“序列号字段”控件属性中进行配置;

脚本:您可以使用脚本计算后填入目标表单,比如我需要把“今天”格式化为“xxxx年xx月xx日”然后填入目标表单,则可以填写这样的脚本:Date2String(ToDay(),"yyyy年MM月dd日"),关于脚本的具体可以参考《脚本》

空值:表示目标表单对应的字段设置为数据库的NULL值;

image.png


日期字段格式化,对于源值类型为日期的字段,都会显示一个“fm”按钮,如下图,点击后可以设置时间格式化字符串,将源时间值格式化后填入目标单据字段:

image.png

可以填写时间的格式化字符串

image.png


赋值方式:

填入:直接将源值填入目标单据字段;

相加:用于数字类型的字段,将“源值 当前目标单据字段的值”后重新填入目标单据字段,主要用于“目标记录存在时”的修改;

相减:用于数字类型的字段,将“当前目标单据字段的值-源值”后重新填入目标单据字段,主要用于“目标记录存在时”的修改;

拼接:用于字符串类型,将当前目标单据字段的值”和“源值”拼接后,后重新填入目标单据字段,主要用于“目标记录存在时”的修改,比如修改前目标单据字段的值为“AAA”,源值为“BBB”则拼接后的模板单据字段为“AAABBB”;

image.png

目标记录存在:执行此转换规则”中有个选项“匹配到多条目标记录也继续执行转换”,如果勾选后,再执行转换时,如果根据匹配条件匹配到多条目标记录,则分别执行转换规则,如果不勾选,则匹配到多条目标记录时报错。

image.png


子表的转换和主表一样。您需要关注的就是保证转换后的目标子表的__FK_目标主表ID_和主表转换终身生成的主表ID一致就行。

image.png


删除节点:

为什么需要删除节点呢?因为用户可能在修改案件的时候删除了某一条可编辑子表记录,而可编辑子表是不能单独保存的,需要随主表一起保存。

所以“删除节点”用于删除可编辑子表记录时执行的节点,用于更新或者删除目标记录,如果删除目标记录则需要勾选“满足匹配条件才会执行转换规则,如果匹配到多条“目标单据”记录则不会进行转换。”,勾选后不能设置转换规则。如果不勾选则执行转换规则。


image.png

完结!