阅读:1701 回复:3
实名用户_517fa396
3

帖子

9

跟帖

815

积分

初级榴莲
初级榴莲
  • 社区居民

调用WebService发起流程报错

楼主#
更多 发布于:2017-08-08 23:07
我在使用BPMService服务发起流程的时候,报了个错误,麻烦帮忙分析下。发起流程的代码如下:


    var workflowCode = "ysbm";
    var userCode = "oatest";
    var finishStart = true;
    var paramValues = new DataItemParam[]{
        new DataItemParam{ ItemName = "ysbm", ItemValue = "2323" }
    };

    var result = new BPMService().StartWorkflow(workflowCode, userCode, finishStart, paramValues);
    return result.InstanceID;
调用后报错:
System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.Exception: 请输入身份认证信息!
   在 OThinker.H3.Portal.BPMService.ValidateSoapHeader() 位置 e:\H3BPM\Portal\WebServices\BPMService.asmx:行号 718
   在 OThinker.H3.Portal.BPMService.StartWorkflow(String workflowCode, String userCode, Boolean finishStart, List`1 paramValues) 位置 e:\H3BPM\Portal\WebServices\BPMService.asmx:行号 373
   --- 内部异常堆栈跟踪的结尾 ---
------------
请问这个“身份认证信息”如何设置?
t156965365
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民
1楼#
发布于:2017-08-09 08:30
同一项目内,不要使用webservices里的方法,这个是用来外部程序调用的.
照着StartWorkflow函数写一个,去掉ValidateSoapHeader();,这个是用来验证外部调用是否有权限的.
正确的StartWorkflow调用是有五个参数的,第一个就是传入Authentication类型的身份验证信息.
实名用户_517fa396
3

帖子

9

跟帖

815

积分

初级榴莲
初级榴莲
  • 社区居民
2楼#
发布于:2017-08-09 09:35
非常感谢您的回复,我加上SOAP头后,可以发起流程了,但是我的流程存在一个子表,我用以下方式发起,接口返回了错误:
var paramValues = new DataItemParam[]{
    new DataItemParam{ ItemName = "ysbm", ItemValue = "2323" },
    new DataItemParam{ ItemName = "kmys", ItemValue = new DataItemParam[]{//kmys  是一个子表
        new DataItemParam{ ItemName = "ysyjkm", ItemValue = "工资"}
    }}
};

接口返回:

流程实例启动失败!错误:System.Exception: System.Collections.Generic.List`1[OThinker.H3.Portal.DataItemParam] Can't be converted to a BizObjectArray type,because the type is not matching,target type is .
   在 OThinker.H3.BizBus.CompositeObject.set_Item(String Name, Object value)
   在 OThinker.H3.Portal.BPMService.startWorkflow(String workflowCode, String userCode, Boolean finishStart, List`1 paramValues) 位置 e:\H3BPM\Portal\WebServices\BPMService.asmx:行号 576

请问,存在子表的流程表单,使用BPMService如何发起?谢谢。
t156965365
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民
3楼#
发布于:2017-08-09 10:16
实名用户_517fa396:非常感谢您的回复,我加上SOAP头后,可以发起流程了,但是我的流程存在一个子表,我用以下方式发起,接口返回了错误:
var paramValues = new DataItemParam[]{
    new DataItemParam...
回到原帖
参考这个帖子,用json传数据进去
http://bbs.h3bpm.com/read.php?tid=1789&fid=8&page=1
游客

返回顶部