WebService 代码创建E9流程

标签: 泛微OA  WebService创建流程

下载CXF

http://cxf.apache.org/download.html
在这里插入图片描述

生成客户端代码

tar -zxvf apache-cxf-3.2.7.tar.gz
cd apache-cxf-3.2.7/bin wsdl2java
-client -server -impl -p 代码包路径 -d 代码生成路径 wdsl服务url或者wdsl文件路径

  • 说明:先启动泛微E9,访问 wsdl 是不是可以成功访问
    http://127.0.0.1:80/services/WorkflowService?wsdl
    端口写自己的访问E9的端口,展示效果为:
    在这里插入图片描述

  • 样例:
    wsdl2java -d E:\code\createWorkflow\src -client http://127.0.0.1:80/services/WorkflowService?wsdl
    在这里插入图片描述

  • idea 项目打开效果
    在这里插入图片描述

编写测试代码

根据流程3 中的代码修改成自己对应流程的代码
在这里插入图片描述

  • 创建流程的参数一级对应的错误码
    wsdl2java -d E:\code\ecology_zp\src\main\java -client http://localhost/services/WorkflowService?wsdla
  • 调用成功返回结果(流程id):在这里插入图片描述
  • 登陆创建的账号查看效果
    在这里插入图片描述

具体代码

import cn.com.weaver.services.webservices.WorkflowService;
import weaver.workflow.webservices.*;

/**
 * @program: ecology_zp
 * @author: Mr.zeng
 * @create: 2020-12-16 11:53
 * 创建流程测试
 **/
public class DoCreateRequestTest {
    public static void main(String[] args) {
        try{
            new DoCreateRequestTest().execute1();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public void execute1() {
        ObjectFactory factory = new ObjectFactory();
        WorkflowService service = new WorkflowService();

        WorkflowRequestInfo workflowRequestInfo = new WorkflowRequestInfo();//工作流程请求信息

        int userid = 21;//用户ID  数据库中用户id
        //		workflowRequestInfo.setRequestId(String.valueOf(1918557));//流程请求ID-创建流程时自动产生 不需要传此项
        workflowRequestInfo.setCanView(true);//显示
        workflowRequestInfo.setCanEdit(true);//可编辑

        workflowRequestInfo.setRequestName(factory.createWorkflowRequestInfoRequestName("流程请求标题-webservice-test-axis2"));
        workflowRequestInfo.setRequestLevel(factory.createWorkflowRequestInfoRequestLevel("0"));//请求重要级别 0:正常 1:重要 2:紧急
        workflowRequestInfo.setCreatorId(factory.createWorkflowRequestInfoCreatorId("21"));//创建者ID 创建流程时为必输项

        WorkflowBaseInfo workflowBaseInfo = new WorkflowBaseInfo();//工作流信息
        workflowBaseInfo.setWorkflowId(factory.createWorkflowBaseInfoWorkflowId("22"));//流程ID 
        workflowBaseInfo.setWorkflowName(factory.createWorkflowBaseInfoWorkflowName("测试webservice流程"));//流程名称
        //		workflowBaseInfo.setWorkflowTypeId("1951");//流程类型id
        workflowBaseInfo.setWorkflowTypeName(factory.createWorkflowBaseInfoWorkflowTypeName("测试"));//流程类型名称
        workflowRequestInfo.setWorkflowBaseInfo(factory.createWorkflowRequestInfoWorkflowBaseInfo(workflowBaseInfo));

        /****************main table start*************/
        WorkflowMainTableInfo workflowMainTableInfo = new WorkflowMainTableInfo();//主表
        WorkflowRequestTableRecord[] workflowRequestTableRecord = new WorkflowRequestTableRecord[1];//主表字段只有一条记录
        WorkflowRequestTableField[] workflowRequestTableFields = new WorkflowRequestTableField[1];//主的4个字段


        workflowRequestTableFields[0]= new WorkflowRequestTableField();
        workflowRequestTableFields[0].setFieldName(factory.createWorkflowRequestTableFieldFieldName("fj"));//附件
        workflowRequestTableFields[0].setFieldType(factory.createWorkflowRequestTableFieldFieldType("http:baidu_sylogl.gif"));//http:开头代表该字段为附件 多附件用baidu_sylogl.gif|baidu_sylog1l.gif分隔
        workflowRequestTableFields[0].setFieldValue(factory.createWorkflowRequestTableFieldFieldValue("http://www.baidu.com/img/fddong_e2dd633ee46695630e60156c91cda80a.gif"));
        workflowRequestTableFields[0].setView(true);
        workflowRequestTableFields[0].setEdit(true);

        ArrayOfWorkflowRequestTableField arrayOfWorkflowRequestTableField=new ArrayOfWorkflowRequestTableField();
        arrayOfWorkflowRequestTableField.getWorkflowRequestTableField().add(workflowRequestTableFields[0]);


        WorkflowRequestTableRecord workflowRequestTableRecord1 = new WorkflowRequestTableRecord();

        workflowRequestTableRecord1.setWorkflowRequestTableFields(factory.createWorkflowRequestTableRecordWorkflowRequestTableFields(arrayOfWorkflowRequestTableField));
        ArrayOfWorkflowRequestTableRecord arrayOfWorkflowRequestTableRecord = new ArrayOfWorkflowRequestTableRecord();
        arrayOfWorkflowRequestTableRecord.getWorkflowRequestTableRecord().add(workflowRequestTableRecord1);
        workflowMainTableInfo.setRequestRecords(factory.createWorkflowMainTableInfoRequestRecords(arrayOfWorkflowRequestTableRecord));
        workflowRequestInfo.setWorkflowMainTableInfo(factory.createWorkflowRequestInfoWorkflowMainTableInfo(workflowMainTableInfo));

//        ArrayOfWorkflowDetailTableInfo arrayOfWorkflowDetailTableInfo = new ArrayOfWorkflowDetailTableInfo();
//        arrayOfWorkflowDetailTableInfo.getWorkflowDetailTableInfo().add(workflowDetailTableInfo[0]);
//        arrayOfWorkflowDetailTableInfo.getWorkflowDetailTableInfo().add(workflowDetailTableInfo[1]);
//        workflowRequestInfo.setWorkflowDetailTableInfos(factory.createWorkflowRequestInfoWorkflowDetailTableInfos(arrayOfWorkflowDetailTableInfo));
        /****************detail table end*************/
        String response = service.getWorkflowServiceHttpPort().doCreateWorkflowRequest(workflowRequestInfo,userid);
        System.out.println("返回结果:"+response);
    }


}

ps:用户id、流程id在数据库中查,名称和类型在表单中都可以看到
在这里插入图片描述

org.codehaus.xfire.jaxws.Provider

版权声明:本文为weixin_42292697原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42292697/article/details/111308352

智能推荐

webService

1.什么是webService? webService使用Http发送使用SOAP协议(也有一些非SOAP协议,例如http rest)的数据的一种远程调用技术,它是跨编程语言和跨操作系统平台。 2.webService三要素      (1) SOAP即简单对象访问协议(Simple Object Access Protocal) 是一种简单的基于 XML 的协议,...

WebService

WebService:Web Service是构建互联网分布式系统的基本部件. webservice主要是解决两个系统或者两个应用程序之间的远程调用,它提供了一种通过web方式访问的api,调用是跨语言、跨平台的。是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。 webservice的客户端与服务端进行交互的时候使用xml来传递数据。  soap协议,即简单对象访问...

WebService

1. 常见的远程调用协议与技术 IOS的七层模型: 第一层:应用层。定义了用于在网络中进行通信和传输数据的接口; 第二层:表示层。定义不同的系统中数据的传输格式,编码和解码规范等; 第三层:会话层。管理用户的会话,控制用户间逻辑连接的建立和中断; 第四层:传输层。管理着网络中的端到端的数据传输; 第五层:网络层。定义网络设备间如何传输数据; 第六层:链路层。将上面的网络层的数据包封装成数据帧,便于...

webservice

webservice:web服务,简言之:是一种跨编程语言,跨操作系统平台的远程调用,webservice不是一种技术,而是一种语言规范,用于不同平台,不同语言开发的应用之间的交互。 WebService三要素:     SOAP(Simple Object Access Protocol):简易对象访问协议,soap用来描述传输信息的格式     WSDL...

Linux信号及工作原理

  什么是信号     信号可以理解为软件中断,是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是差不多的。信号是异步的,一个进程不必通过任何操作来等待信号的到达。信号可以直接进行用户空间进程和内核进程之间的交互,内核进程也可以利用它来通知用户空间进程发生了哪些系统事件。   谁来产生信号 信号事件的发生有两个...

猜你喜欢

手机端图片放大,双指放大,元素的双指缩放

在做webapp时候,遇到一个需要做双指放大的功能,需求是:一张带有坐标的图片上有固定的点,需要点击这些坐标上的点进入相应的商品,并且需要对这一块进行双指可以缩放,双击缩放; 一开始是自己写监听touch事件进行处理,但是再缩放的时候,偶尔出现卡顿闪烁,用户体验不很好,后来采用插件 pinch-zoom GitHub地址: https://github.com/manuelstofer/...

leetcode 剑指offer 54 二叉搜索树的第k大节点

第 K 大节点即反中序遍历大第 K 个数。...

redis 初步了解

1.连接redis 通过java操作 1.首先 导入redis驱动 2.连接redis通过jedis 2.创建redis连接池 连接redis通过 jedis 相当于HTTPclient 1.创建单例模式的方法 在调用的时候被创建 2.创建私有静态 jedisPool 3. 创建私有类 创建静态代码块 放入连接池的基本配置 4.有 最大连接数 最大空闲书 最小空闲连接数 5. 创建连接redis对...

第6章数据类型-基本数据类型-Boolean类型-main

防采集标记:亢少军老师的课程和资料 Dart交流群:1046954554 Flutter开源项目请关注: https://github.com/kangshaojun @作者: 亢少军 '...

使用 Infura 和 web3.js 呼叫合约

如果你希望马上开始学习以太坊DApp开发,可以访问汇智网提供的出色的在线互动教程: 以太坊DApp实战入门教程 以太坊去中心化电商应用开发实战 如果你希望了解如何部署合约,可以查看另一篇文章:在truffle中使用infura部署以太坊智能合约。 Infura 提供公开的 Ethereum 主网和测试网络节点。到 Infura 官网申请,只要输入一点基本资料和 Email,就可以收到 API-ke...