查询LiquidOffice中的中止进程

时间:2011-01-12 15:32:55

标签: bpm

我们正在运行LiquidOffice 6.2.4。我们遇到了一些网络问题,有时会导致我们的Web服务任务中止。我们正在制定一个重试序列,以防止这个问题变得太大。

但是,我们需要知道何时有LO流程中止任务,以便我们采取适当的措施(这可以通过管理控制台完成,但没有警报)。我一直在寻找LiquidOffice SOAP API来尝试找到一些东西,但到目前为止还没有找到。一旦我有了可行的解决方案,我们就会将此检查集成到SCOM警报中。

有没有其他人做过类似的事情(通过SOAP运行进程搜索)?任何指导或提示将不胜感激。我们计划在C#中实现SOAP调用。

1 个答案:

答案 0 :(得分:1)

虽然我可以看到来自Management Console的SOAP查询和响应,但我找不到端点以便自己连接它。总的来说,无论如何这似乎都很麻烦。那么我想出了直接点击数据库的想法。我们将LiquidOffice数据库存储在SQL 2005实例中,因此我编写了以下查询:

SELECT  P.PROC_ID AS [ID],
        REVERSE(LEFT(REVERSE(PDef.PROC_DFN_PATH),CHARINDEX('/',REVERSE(PDef.PROC_DFN_PATH))-1)) AS [Process],
        T.TASK_NAME AS [Task],
        DATEADD(millisecond, DATEDIFF(millisecond,GETUTCDATE(),GETDATE()), DATEADD(MINUTE, (P.START_DATE/60000), '1/1/1970')) AS [Started]
    FROM dbo.CS_PROCESSES AS P
        INNER JOIN dbo.CS_TASKS AS T
            ON P.PROC_ID = T.PROC_ID
        INNER JOIN dbo.CS_PROCESS_DFN AS PDef
            ON P.PROC_DFN_ID = PDef.PROC_DFN_ID
    WHERE T.[STATE] = 3

这将返回所有失败的任务,并为您提供进程ID,进程名称,失败的任务名称以及进程启动的日期/时间。它并不完美,但它适合我们!