En Oracle BPEL PM es muy simple poder hacer un Proceso que tenga una llamada Intermedia, a través de la cual una Aplicación externa se pueda comunicar con él.
Esto para esos casos típicos en donde tu Proceso BPEL, debe esperar a que alguien lo "despierte", en base a un mensaje que venga de una Aplicación Externa.
En este tipo de escenarios es muy útil el uso de Correlation Sets/Ids. Que es un feature que ha existido desde el primer release de
Oracle BPEL (2004). Bien, para poder hacer algo similar en OBPM 11g, todo indica que no hay una manera tan directa haciendo uso de las Actividades, si no que toca hacer uso de la infraestrucutra SOA, para poder llevar a cabo este objetivo.
En sí, se reduce a tener un Proceso BPEL Async que tenga justamente un contrato (WSDL) en el cual haya otro operación - llamémosle midCall -- en la cual se quede él esperando la llamada de la Aplicación Externa, y que justamente le conteste al proceso BPM.
El proceso BPM a su vez, debe arrancar a dicho proceso BPEL, y después quedarse esperando (llamada Asíncrona), a que él le conteste, una vez haya sido "despertado" por la llamada, y correlacionado los valores a través de los Correlations Sets/Ids.
Aquí explico cómo realizar esto: