我需要
在没有BluePrism客户端的计算机上运行的Java应用程序中。
我知道可以使用SOAP调用来启动进程。
如何确定启动的过程是否已完成以及是否成功完成?
[我的一位同事说,可以通过在SOAP请求中传递一个特殊参数来从BluePrism获得通知,但是我在Web Services User Guide中找不到任何相关内容。
Update 1:一种解决方案是改编this software,以便它通过REST API公开BluePrism队列。
更新2: This page建议针对BluePrism数据库运行如下查询。
SELECT
[BPAProcess].[name],
[BPAProcess].[description],
[BPASession].[sessionid],
[BPASession].[startdatetime],
[BPASession].[enddatetime],
[BPASession].[statusid],
[BPAStatus].[description]
FROM [BPAProcess]
JOIN [BPASession] ON
[BPASession].[processid] = [BPAProcess].[processid]
JOIN [BPAStatus] ON
[BPASession].[statusid] = [BPAStatus].[statusid]
WHERE [BPAStatus].[description] IN ('Completed', 'Stopped', 'Terminated')
AND [BPASession].[sessionid] = 'Your session id'
Update 3: BluePrism版本是6.4.2。
如果您将有问题的进程公开为Web服务(系统->进程->公开)并以这种方式调用它,则在该进程完成运行之前,不会返回SOAP请求。
虽然我似乎找不到此行为的任何正式文档,但这与功能的设计保持一致,以使输出值可以从被调用的过程/对象返回给SOAP调用者。 (如果在过程完成执行之前请求已解决,则可能无法知道输出值。)