致远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.自动导入元数据,设置映射即可;

 

 

以上是在测试自己的应用想法,基本上解决了三方中间件的数据转换问题,解绑了系统间紧耦合的问题,三方中间件应用的效果比较好,但是可能需要考虑线程的问题,后续专门研究一下在做记录。

 

posted @ 2022-07-18 15:43  菜菜程序猿  阅读(1102)  评论(0编辑  收藏  举报