从PL / SQL发信号通知BPM流程

时间:2011-05-15 10:33:56

标签: oracle plsql jbpm bpm

我对BPM世界还不熟悉。所以我可能会错过这个主题的基本部分,所以如果我这样做,请原谅我。

我需要做的是,触发/信号/请求(我不知道最好的动词:))来自PL / SQL代码的BPM流程。所以我最广泛的猜测是,这应该是一个http请求,很可能是一个Web服务请求。

我使用jBPM作为我的BPM引擎,但它不是必须的,我可以使用任何更容易在我的场景上工作的选项。

关于从哪里开始的任何建议。

2 个答案:

答案 0 :(得分:2)

您还可以查看UTL_DBWS,这是一个用于调用(或创建)Web服务的Oracle实用程序包。

查看HEREHERE以获取其使用示例。

另一种可能性是创建一个外部过程(可能是Java)并在那里处理调用细节。

最后,如果该服务是一个更旧的学校tcp服务(可能不是),请查看utl_tcp(我过去在项目中使用过这个,但不像调用一样容易使用xml服务,以及一些需要解决的安全问题)

答案 1 :(得分:1)

UTL_HTTP包中包含从PL / SQL包中发送和处理HTTP请求的过程。这是一个示例:

declare
    v_request UTL_HTTP.REQ;
    v_response UTL_HTTP.RESP;
    v_value VARCHAR2(1024);
begin
    v_request := UTL_HTTP.BEGIN_REQUEST('http://my.hostname.com/wsendpoint');
    v_response := UTL_HTTP.GET_RESPONSE(v_req);
    LOOP
        UTL_HTTP.READ_LINE(v_response, v_value, TRUE);
        DQMS_OUTPUT.PUT_LINE(v_value);
    END LOOP;
    UTL_HTTP.END_RESPONSE(resp);
end;

文档:http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96612/u_http.htm