In your HL7 Service, you can set the 'Ack Mode' to Application, which works as follows:

Application ACK — The Ensemble business service does not send an ACK or NACK to the source application until one returns from the target application by way of the Ensemble business operation. The business service returns the ACK or NACK that it receives from the business operation.

Then in your Business Process, you can construct an ACK (using a DTL with an HL7 ACK as the target) and store whatever data you need there.  You may need to use BPL, rather than a MsgRouter, based on the complexity of what you're trying to do.

Hi Mike,

Would it help to have your service extend EnsLib.HTTP.GenericService?  That would support using the standard CSP port, while also giving you the Ensemble Business Service functionality.  Per the class reference docs:

 

----------------

class EnsLib.HTTP.GenericService extends EnsLib.HTTP.Service

Ensemble Generic HTTP Service based BusinessService class. Can use an HTTP InboundAdapter listener, or the standard CSP Service mechanism, or both. In order for the CSP mechanism to work, HTTP Services using this class must be configured with the invoking URL including ?CfgItem= giving the config item name. (Configured Services exposed using the HTTP Inbound Adapter may also be invoked with this URL parameter but because each configured Inbound Adapter listens on its own TCP/IP port this parameter is just a safety check for them.)

---------------------------

 

Or if you're already doing this, can you elaborate on which logic you would have to recreate here that the InboundAdapter gave you?

 

I am also curious to hear from others who have solved this problem who can offer the best approach.

 

Thanks,

Steve