泛微E9 OA审批流中创建DML接口开发

1、在后端流程引擎中选择需要插入DML接口的流程,并进入到流转设置,添加【节点前附加操作】或【节点后附加操作】

image

2、选择外部接口——DML接口动作,动作名称可自定义,优先选择定义为方便理解操作接口功能为主

image

3、接口来源默认点击加号创建新接口,除非业务逻辑有完全相同的场景可完全复用DML接口

image

4、点击加号后将会自动打开注册DML接口页面,名称优先编辑为方便理解业务功能为主

5、DML类型更具当前业务场景选择相应的类型,

insert——插入

update——更新或修改

delete——删除数据(谨慎使用此类型,可能导致数据永久丢失,非必要不使用此条类型)

自定义类型——不建议使用,意义不大

image

6、数据来源更具当前业务需要处理的数据是属于明细表还是主表选择相应的来源即可

image

7、选择外部主表,一般情况请选择建模引擎中的表单

8、DML where条件设置,推荐使用自行编辑自定义where条件语句,与SQL语句中的where相同,但不能以 where、and、or、in等作为起始字符

9、DML赋值设置,自定义DML语句类型选择SQL语句,在自定义DML语句中编辑正确的sql语句即可完成DML接口配置

10、请谨慎使用update,delete操作!!!

DML操作说明:

1. 请谨慎使用update,delete操作
2. 可以同步当前流程的主表或者明细表数据到其他数据表中
3. 如果DML类型为update、delete,那么必须有DML触发条件或者自定义触发条件,否则此DML不被执行

4. 对各数据库中大对象数据类型字段,以及二进制数据类型字段不做同步,具体如下:

SQLSERVER:binary,varbinary,image
ORACLE:raw,long raw,blob,clob,nclob,bfile,rowid
MYSQL:BLOB,ENUM,SET
DB2:GRAPHIC,VARGRAPHIC,LONG VARCHAR,CLOB,LONG VARGRAPHIC,DBCLOB,BLOB
SYSBASE:text,image
INFORMIX:text,byte
5. 对于自定义触发条件,具体格式如下:
userid={?流程字段名称A} and lastname='{?流程字段名称B}’ and ….
sql中,以字段名开始(不能以where或者and开始),{?流程字段名称*}将会被替换为流程中的对应字段的数据。具体sql格式,根据数据源数据库类型决定。自定义触发条件对insert类型不生效。
6. 对于自定义DML语句,具体格式如下:
update hrmresource set lastname='{?流程字段名称A}’,mobile='{?流程字段名称}’ … where userid={?流程字段名称C} and …
sql中,{?流程字段名称*}将会被替换为流程中的对应字段的数据。具体sql格式,根据数据源数据库类型,以及字段类型决定。
7. 对于转换规则中的自定义SQL,具体格式如下:
oracle数据库:select lastname from hrmresource where id={?流程字段名称B} and …
sql中,{?流程字段名称*}将会被替换为流程中的对应字段的数据。具体sql格式,根据数据源数据库类型,以及字段类型决定。
8. 由于各数据库中,日期数据类型不同,为保证数据正确同步,建议使用自定义DML语句,比如:
oracle数据库:update hrmresource set b.birthday=to_date(‘{?流程字段名称A}’,’YYYY-MM-DD’) … where userid={?流程字段名称B} and …
9. 自定义DML语句类型为存储过程时,输入格式如下:
Oracle : procedurename(‘{?流程字段名称A}’,'{?流程字段名称B}’….)
SQL SERVER: procedurename ‘{?流程字段名称A}’,'{?流程字段名称B}’….
10. 流程字段名称若为明细表,需要{?d.流程字段名称A}
11. 数据源为OA数据库时,update不允许操作黑名单中的表,delete只允许操作白名单中的表,配置文件名称:checksqlStandard.properties
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容