Oracle 从PL/SQL向BPM进程发送信号

Oracle 从PL/SQL向BPM进程发送信号,oracle,plsql,jbpm,business-process-management,Oracle,Plsql,Jbpm,Business Process Management,我对BPM世界相当陌生。所以我可能会错过主题的基本部分,所以请原谅我这样做 我需要做的是,从PL/SQL代码中触发/signal/request(我不知道最好的动词:)BPM流程。所以我最广泛的猜测是,这应该是通过http请求,很可能是一个web服务请求 我使用jBPM作为我的BPM引擎,但这不是必须的,我可以使用任何更容易在我的场景中工作的选项 任何关于从何处开始的建议。UTL_HTTP包包含从PL/SQL包中发送和处理HTTP请求的过程。以下是一个示例: declare v_requ

我对BPM世界相当陌生。所以我可能会错过主题的基本部分,所以请原谅我这样做

我需要做的是,从PL/SQL代码中触发/signal/request(我不知道最好的动词:)BPM流程。所以我最广泛的猜测是,这应该是通过http请求,很可能是一个web服务请求

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


任何关于从何处开始的建议。

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;

文档:

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

查看并获取其使用示例

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

最后,如果该服务是一个更古老的tcp服务(可能不是),请看(我在过去的项目中成功地使用了它,但没有调用xml服务那么容易使用,还有一些需要解决的安全问题)