文档中心 > API文档

2.21.2. 发起表单(Html正文)流程

可发起指定模板的Html正文流程或表单流程。

接口调用请求说明

http请求方式:POST
 http://ip:port/seeyon/rest/flow/{templateCode}
 例如:
 http://127.0.0.1/seeyon/rest/flow/A0001

请求参数说明

发起表单流程所需要参数,可以参考文档【BPM集成】中的【public ServiceResponse launchFormCollaboration(String token, String senderLoginName, String templateCode, String subject, String data, Long[] attachments, String param) throws ServiceException;】;

参数 是否必须 说明
templateCode 模板编号,参见Section 2.21.1.1, “关于模板编号”
token 为登录验证后获取的身份令牌
senderLoginName 发起者的登录名(登录协同的登录名)
subject 协同的标题
data HTML正文流程为html内容;表单流程为XML格式的表单数据
attachments 附件,Long型数组,值为附件的Id。
param 为控制是否流程发送。0:缺省值,发送,进入下一节点的待办(如果需要选人则保存到待发)1:不发送,保存到待发。

参数获取说明:

发起表单是多参数,建议组装为MAP传参。

token身份令牌:token在CTPRestClient中已经封装好的,如果要单独获取可如下方式:

private CTPRestClient client = null;
 CTPServiceClientManager clientManager = CTPServiceClientManager.getInstance("http://127.0.0.1");
 client = clientManager.getRestClient();
 ...
 String token = client.get("token/" + userName + "/" + password, String.class,"text/plain");
 

senderLoginName发起者的登录名:发起者登录OA的登录名,如下:

String senderLoginName ="lsm";

templateCode模板编号:对应创建模板时填写的模板编号(即ctp_template表TEMPLETE_NUMBER字段)

String templateCode ="100";

subject协同的标题:发出表单模板对应的标题,如下:

String subject ="申请流程标题";

data表单数据:表单数据信息,REST接口提供了获取已经发送的表单流程XML新方法,请参考Section 2.21.3, “取得流程正文数据”

注意在获取表单数据XML 需要转换成String.

提供已发表单转String示例:

private CTPRestClient client = null;
 ...
 String data = client.get("flow/data/-6074085048046957774", String.class);//-6074085048046957774为已发流程ID

param为控制流程发送.

String param="0";

表单流程通过REST POST创建示例

private CTPRestClient client = null;
 MAP info =new HashMap();//存放上述参数
 String checkUrl ="flow/"+模板ID;
 ...
 client.post(url, info, String.class);
 

发起HTML正文流程示例1:

        Map data = new HashMap() {
             {
                 put("senderLoginName", "s1");
                 put("subject", "这个是用Map方式发的");
                 put("data", "<b style=\"color:red\">正文</b>内容");
                 put("attachments",new Long[] {-1l,-5199818657160149985l});
             }
         };
         Long flowId1 = client.post("flow/H0001" ,data, Long.class);

发起HTML正文流程示例2:

         Long flowId2 = client
                 .post("flow/H0001",
                         "{\"senderLoginName\":\"s1\",\"subject\":\"这是用JSON发的\",\"data\":\"HTML正文\",\"attachments\":[-1,1]}",
                         Long.class);

返回说明:

正常情况下,返回创建成功以后对应的流程Id。

返回异常说明:

异常编码 异常说明
12005 无效的token,请再次验证
21011 单位名称不能为空或不存在
25001 职务级别不存在
25002 职务级别名称为空
25003 职务级别已存在
23023 部门名称为空
23024 父部门名称为空
23025 部门已存在
24001 岗位不存在
24002 岗位名称为空
24003 岗位已存在
22129 设置人员的所属部门出错
22011 人员登录名为空
50126 按登录名查找发起人出错
50121 表单不存在
50122 无表单权限
50123 无流程表单导入出错
50124 XML解析失败
50125 模板不存在
50126 无模板访问权限
50127 非表单正文内容
50128 不是无流程表单,请检查模板编号是否正确
50129 模板为非流程模板,请检查模板编号是否正确
31013 指定流程不存在
50130 此表单已经停用
50131 无输入字段
50132 日期格式错误
50133 没有主表记录错误