致远OA-DEE使用篇
最近在做OA与星空API集成,想要利用DEE的便捷性,但是自己不会Groovy的脚本编写,所以自己就想了一套自己应用的模式,今天调试成功了具体的逻辑如下:
1.DEE的JDBC查询
添加JDBC查询,根据接口字段对应表进行查询即可;
2.Webservice调用传入参数,进行解析,具体的操作及开发模式会在云星空开发篇进行详细讲解,这里只显示配置;
在上面查询的信息可以用$+{doc}来表示,这是DEE内部的命名方法,传入参数后进行程序段处理;
3.三方中间件转换,大体思路就是先转换成Datatable,在转换成Json,具体在星空心得中介绍;
4.传出的Document这个是关键,也是这次记录的目的,在程序中可以直接将返回参数,转成标准的doc格式,这样就可以直接在DEE引用;
public static string DatatableToDoc(DataTable dtt) { string doc = "<root><table1>" ; for (int i = 0; i < dtt.Rows.Count; i++) { doc = doc + "<row>"; foreach (DataColumn col in dtt.Columns) { doc = doc + "<" + col.ColumnName + "><![CDATA[" + dtt.Rows[i][col.ColumnName].ToString() + "]]></" + col.ColumnName + ">" + "\n"; } doc = doc + "</row>"; } doc = doc + "</table1></root>"; // doc = doc + "</root>"; return doc; } //转换方法,具体的doc格式如下: <root> <SearchProductyrial count="1" totalCount="1"> <row> <FOPENBANKNAME dee_isNull="true"> </FOPENBANKNAME> <FADDRESS1>泰州市姜堰区天目山街道姜堰大道1065-1号</FADDRESS1> <Fname>江苏五星波纹管有限公司</Fname> <FCreateDate>2022-03-17 00:00:00.0</FCreateDate> </row> </SearchProductyrial> </root> //本次因为在 count="1" totalCount="1"这段中纠结了很长时间,发现如果自己编辑进去系统不能识别,所以不要这段信息,DEE会自动给你添加XML注释,添加后调用不成功
5.自动导入元数据,设置映射即可;
以上是在测试自己的应用想法,基本上解决了三方中间件的数据转换问题,解绑了系统间紧耦合的问题,三方中间件应用的效果比较好,但是可能需要考虑线程的问题,后续专门研究一下在做记录。