这是在将应用程序从WebLogic 11g迁移到WebLogic 12c之后开始的问题,我已经使用JDeveloper 12c和2 BPEL流程再现了它。
我已经创建了BPEL流程CreateTask,该流程向TaskService发送initiateTask请求以创建人工任务,然后等待任务完成。在此屏幕快照中,当它等待任务完成时,它处于运行状态:

我打开这个流程,可以看到CreateTask已经创建了人工任务,BPEL流程和工作流都处于运行状态:

我单击人工任务并获取工作流编号:

现在,我可以使用该工作流号向updateTaskOutcome发送一个TaskService请求,以完成任务(在SoapUI中完成):

我回到Enterprise,看到flow 4现在已经完成:

目前为止一切都很好。
我已经创建了第二个BPEL流程CompleteTask,它向我从SoapUI发送的TaskService发送相同的请求。在再次运行CreateTask之后,然后使用新的工作流号运行CompleteTask,我们有流5( CreateTask )和flow 6(CompleteTask):

流程5已按预期更改为已完成,但流程6没有等待任何内容,因此也应该完成。
查看流程6的详细信息,BPEL流程已经完成,但其中有一个人工任务仍在运行:

这个人工任务不应该存在,因为这个过程只是完成已经创建的任务。如果我打开这个任务,它完全是空白的:

从BPEL流程执行对TaskService的其他调用,甚至仅仅是requestInfoForTask,也会做同样的事情。
这在WebLogic 11g中不会发生。没有创建空人工任务,这两个进程都完成了。为什么12c会发生这种情况,如何处理呢?
发布于 2021-09-07 22:01:56
解决问题的一种方法是将TaskService作为外部服务调用,而不是作为人工任务组件的一部分。
向组合中添加一个新的SOAP引用:

TaskService.wsdl中的URL用于localhost:8888,请遵循项目的示例,以便在部署时正确配置它。(例如,将复合中的引用更改为使用WSDL的项目副本,并用配置计划替换值)
对于使用initiateTask以外的操作的任何BPEL流程,请将它们链接到外部TaskService,而不是人工任务(如果需要的话)。我已经完全替换了链接,因为我的流程只使用updateTaskOutcome。
先于

后

在BPEL流程中,将调用步骤上的partnerLink从HumanTask.TaskService更改为TaskService。
现在,完成任务的过程将正确完成:

https://stackoverflow.com/questions/69055988
复制相似问题