基于Cordys BOP 4 维护开发代码实践经验

原创 2016年06月01日 11:08:06

修改需求:如下图所示(命名为表单列表页),在左侧为树状业务表单列表,右侧为数据明细列表页面中,增加直接操作MongoDB的具体业务管理配置功能(命名为Mongo列表页),也就是配置数据操作表单界面。

这里写图片描述

为了不影响已经上线的业务,并简化开发,设计思路是:

  • 复制原表单列表页(命名为新表单列表页),在对树操作时,增加替换当前页为Mongo列表页,以及在Mongo列表页对树操作时,替换回原新表单列表页;
  • Mongo列表页的数据列表,替换为可动态变化的列表,数据直接来自MongoDB。

接下来分析、修改代码:

1、查找、定位页面

如上图,把鼠标放置到“资费审批流程”上,将能找到界面URL。

http://10.64.50.153/home/HLJ/unicom/sunhall/my_desk/my_biz_info.html?INFO_ID=07d2ce21-f208-11e6-e1a4...

代码my_biz_info.html,将是定位修改的页面。

2、复制my_biz_info.html代码为my_biz_info_new.html,对应的JavaScript代码也复制并命名为my_biz_info_new.js

<script type="text/javascript" src="js/my_biz_info.js" charset="UTF-8"></script>

3、查询代码、定位修改点

(1). 定位构造树状结构代码


    //树形菜单
    $.cordys.utils.sendCordysAjax({
        method: "GetFormdefByInfoid",
        namespace: "http://unicom.com/workflow",
        parameters: {
            infoId:INFO_ID
        }
    }).done(function(rdate){
        console.log(rdate);
        var innerHtml = "";
        var dateAry= rdate.tuple;
        if(dateAry.length>1){
            $.each(dateAry,function(index,ele){
                console.log(index);
                console.log(ele);

                    innerHtml += "<li>";
                    innerHtml += "  <div class=\"header\">";
                    innerHtml += "     <span class=\"label01\" style=\"background-image: url(../../home/icon/icon_s_01.png);\">";
                    innerHtml += "       <a href=\"###\" onclick=\"javascript:appForm('" + dateAry[index].old.wkfl_formdef.FORMUID + "');\">" + dateAry[index].old.wkfl_formdef.FORM_NAME + "</a>";
                    innerHtml += "     </span>";
                    innerHtml += "     <span class=\"arrow up\"></span>";
                    innerHtml += "  </div>";
                    innerHtml += "</li>";
                                });

(2). 根据“GetFormdefByInfoid”Webservice,确定Mongo列表的标识。

首先,查找Java代码,打开Eclipse工程,通过查询方法来查找代码。

这里写图片描述

注:Webservice对应的方法名称,首字母转换为小写。

接着,通过Java代码,确定了此Webservice是对表WKFL_FORMDEF操作,通过分析表结构和数上线据,发现原结构中的FORM_MONGO_ID是可以使用,如下图所示。

这里写图片描述

参考Java代码片段如下:

    public static int getWkflFormByCond(int condition, int pageNumber, int pageSize) {
        String sql = "SELECT COUNT(WKFL_FORMDEF.FORMUID) FORMDEF_NUM FROM WKFL_FORMDEF WHERE WKFL_FORMDEF.TENANT_DN = '11'";

        QueryObject queryObject = new QueryObject(sql);
        BusObject numBusObject = queryObject.getObject();
        int formNum = numBusObject.getIntProperty("FORMDEF_NUM");

(3). 确定修改点

在构造树形列表代码中,“<a href=\"###\"”为URL地址,替换为实际即可,但是需要判断语句进行切换。参考代码,可以使用Webservice返回值FORM_MONGO_ID。

4、确认判断条件

在Cordys开发平台上,使用工具Web Service Interface Explorer,查找到getWkflFormByCond。选中目标租户记录,鼠标邮件使用Operation Test Tool工具,测试此Webservice,如下图所示。

这里写图片描述

图中,“FORM_MONGO_ID”就是需要判断依据条件。

5、修改my_biz_info_new.js代码

增加判断代码,以及明确固化URL如下:

                    if (dateAry[index].old.wkfl_formdef.FORM_MONGO_ID!==null){                  
                        innerHtml += "       <a href=\"my_biz_info.html\" onclick=\"javascript:appForm('" + dateAry[index].old.wkfl_formdef.FORMUID + "');\">" + dateAry[index].old.wkfl_formdef.FORM_NAME + "</a>";
                    }else{
                        innerHtml += "       <a href=\"my_biz_info_new.html\" onclick=\"javascript:appForm('" + dateAry[index].old.wkfl_formdef.FORMUID + "');\">" + dateAry[index].old.wkfl_formdef.FORM_NAME + "</a>";                        
                    }

参考:
《WebService另类用法之一,运维》 肖永威 2016.01

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Cordys BOP 4平台开发入门实战演练——HTML/JS界面开发实践

本文案例介绍基于HTML/JS方式开发Web界面,不使用Cordys XForm的解决方案。
  • xiaoyw
  • xiaoyw
  • 2015-04-03 15:33
  • 1020

Cordys BOP 4平台开发实战——MongoDB提供文档服务(1)

在Cordys平台,使用WS-AppServer Package组件,新建C_MongoPackage自定义类。          1、查询返回单个文档JSON数据 (1)查询返回独立文档 M...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Cordys BOP 4平台开发入门实战演练——Webservices开发(初级)

基于Cordys BOP4平台,开发WebService入门实践操作手册。
  • xiaoyw
  • xiaoyw
  • 2015-04-01 09:21
  • 1077

Cordys BOP 4平台开发入门实战演练——Until流程建模开发

Until是BPMN组结构,用于一组活动环节或子流程在条件为真之前执行。不象While组结构,这组活动环节或子流程至少执行一次。

OpenText Cordys BOP 4平台开发入门实战演练——基础理论知识

服务应该是独立的、自包含的请求,在实现时它不需要获取从一个请求到另一个请求的信息或状态。服务不应该依赖于其他服务的上下文和状态。

Cordys BOP 4平台开发入门实战演练——Webservices开发(使用MongoDB数据库)

1、在WS-AppServer Package中新建自定义类“C_MongoPackage” 2、添加自定义方法Method,expandDocument和findDocuments...
  • xiaoyw
  • xiaoyw
  • 2015-04-08 20:27
  • 1265

Cordys BOP 4平台开发入门实战演练——会签流程建模开发

重点在图9。

Cordys BOP 4平台开发入门实战演练——Webservices开发(高级)

本文主要是通过实战演练,介绍各类个性化、自定义WebService及其方法的开发方法,以及相关技术,重点介绍Cordys NOM类型(底层基于C语言的XML对象解析),以及Java中Soap WebS...

Cordys BOP 4平台开发入门实战演练——While循环流程建模开发及测试

While循环是BPMN组结构,用于一组活动或子流程来执行所满足的While条件。在每个循环体开始,进行测试条件,如果测试结果为“假”是则不执行。因此,这组活动或子流程将执行0或多次。
  • xiaoyw
  • xiaoyw
  • 2015-04-20 10:52
  • 1010

Cordys BOP 4平台开发入门实战演练——For Each流程建模开发

For Each是BPMN组结构,并且体现应该执行消息内每个子单元的活动或子流程。For Each循环使用一个计数器,称为一个详尽描述重复执行相同活动的迭代器。
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)