【问题标题】:Webmethods - Information exchange between two processesWebmethods - 两个进程之间的信息交换
【发布时间】:2016-01-21 20:27:42
【问题描述】:

事实上,我想知道如何在 Web 方法中的两个进程之间进行通信。

示例 ->

我在 SAG Designer 上有两个流程:

这是我的第一个过程:

这是我的第二个过程:

它们同时运行,我想获取“StepTwo”的信息

我没有发送或接收消息,我只是希望能够通过另一个进程获取管道。

如果需要更多细节或不够清楚,请告诉我。

谢谢。

【问题讨论】:

  • 为什么要这样做?我想说,正确的方法是使用消息传递。但我担心你会遇到很多问题。您将为每个 P1 启动 P2 吗?如果是这样,而且它是如此紧密耦合,为什么不在一个进程中拥有相同的呢?

标签: webmethods


【解决方案1】:

一般来说,您可以使用 WmMonitor 包中的服务,那里有提供对流程和步骤管道的访问的公共服务,例如使用“pub.monitor.process.instanceSteps:getStepPipeline”服务。当然,您必须为此特定步骤打开管道日志记录。

但是,我认为您尝试做的事情没有用。为什么一个进程要访问另一个进程的管道?在不知道您的用例细节的情况下,我认为您应该:

  1. 在进程之间发送和接收消息,或
  2. 进程P1和P2之间有父子关系,或者
  3. 流程 P1 应根据某些唯一的业务 ID,将业务相关数据存储在某个数据库或 P2 从中检索信息的任何其他永久存储中。

我不建议直接使用另一个进程的管道。根据您的业务需求而非某些技术要求对流程进行建模。这就是 BPM 的用途。

【讨论】:

    【解决方案2】:

    我从未使用过 SoftwareAG 的 BPM 工具,但我对 webMethods 有很多经验。直觉上,我认为这是不可能的。

    但是,这里有一个可能的解决方法:

    1. 在过程一中,将管道信息序列化为 XML 字符串,然后 将其保存到数据库中。

    2. 在进程二中,从数据库中检索信息并反序列化 XML 字符串到管道文档。

    很遗憾,您的问题中没有足够的信息来提供更详细的答案。

    希望对你有帮助!

    【讨论】:

      【解决方案3】:

      我认为我们可以通过保存 P1 的管道数据并在 P2 中使用它来做到这一点,因为您可以使用内置服务 pub.flow:savePipelinepub.flow :restorePipeline.

      请记住,如果您在两者之间重新启动 IS,管道数据将会丢失。 如果您仍想重新启动,请将管道数据保存到文件并在重新启动后使用该文件。

      请参阅以下服务:- pub.flow:savePipelineToFile 和 pub.flow:restorePipelineFromFile

      【讨论】:

        猜你喜欢
        • 2013-06-21
        • 2013-11-23
        • 1970-01-01
        • 1970-01-01
        • 2012-12-11
        • 2011-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多