Written by

Question ED Coder · Nov 11, 2020

Is there a way to pass an acknowledgement from an Business operation to a Business service?

Is there a way to send an acknowledgement received from a business operation to the sending system that feeds into my business service?

Below is an example of my production? How can I set it up to send the Ack from 'send' to be the Ack for 'input' to be sent back?

Comments

Eduard Lebedyuk · Nov 11, 2020

When you send request from BS to BO use SendRequestSync (and not SendRequestAsync). This way you can get a response back.

0
ED Coder  Nov 11, 2020 to Eduard Lebedyuk

Thank you Eduard, but how do I set the SendRequestSync?

0
Julian Matthews · Nov 11, 2020

Hey, this should be controllable using the Service setting of AckMode:

Control of ACK handling. The options are:
  • Never: Do not send back any ACK.
  • Immediate: Send back (commit) ACK reply message immediately upon receipt of the inbound message.
  • Application: If message passes validation, wait for ACK from target config item and forward it back when it arrives.
  • MSH-determined: Send back ACK reply messages as requested in the MSH header of the incoming message.
  • Byte: Send back an immediate single ACK-code byte instead of an ACK message. Byte ASCII code 6 = 'OK', ASCII code 21 = 'Error'

In your case, you'll be interested in the Application ACK.

0
Eduard Lebedyuk  Nov 11, 2020 to Julian Matthews

Which Service are you referring to?

Haven't seen this setting in default InterSystems IRIS adapters.

0
Julian Matthews  Nov 11, 2020 to Eduard Lebedyuk

Sorry, I had made an assumption that the OP was working with HL7, and the "Input" in the screenshot would be based on EnsLib.HL7.Service.TCPService.

0
ED Coder  Nov 11, 2020 to Julian Matthews

my input is EnsLib.HL7.Service.TCPService and my BO  - send is EnsLib.HL7.Operation.TCPOperation. Can I still use it? I see that my input has the option for ACk setting. Will your method work if I set it to Application?

0
Julian Matthews  Nov 11, 2020 to ED Coder

Then in that case, I believe so.

My expectation is that setting the AckMode of your service to "Application" should send your operation the HL7 message and then wait for the ACK your Operation gets to then use as an ACK to the sending application.

0
ED Coder  Nov 12, 2020 to Julian Matthews

Thank you so much Julian... Much appreciated.

0