TN Immediate Delivery service pipeline variables

I have two services A and B. Service A uses wm.tn:receive to send xml to TN and in TN i have a Processing rule Rule1 with Action set to use the “Deliver document by” option. I am using Immediate delivery option by selecting the Service B in the drop down (which i registered earlier using wm.tn.delivery:registerService).

What i am observing is, in the service B pipeline i am only seeing bizdoc and not seeing other custom documents that i sent along with the xml. When i use the option “Execute a service” in the TN Processing rules then i can see all the custom variables along with the bizdoc in the service B pipeline.

My questions are,

  1. Is there a way we can get those custom variables even while using
    the option “Deliver document by”?

  2. Is there a way we can update the bizdoc with the custom variables? (both custom documents and strings) If yes how?

I have attached a document with screen shots that has more explanation.

Thanks,
Akshith

Here is the attachment.

Delivery services run in a separate thread. That’s why you don’t see the “extra” pipeline vars.

Using “Execute a service” the service is run in the same thread (if async is not checked on the rule) so you see the entire pipeline.

Generally, you don’t want delivery services relying on a extra pipeline vars–on resubmit or reprocess to redeliver the document, they won’t be there.

You can use document custom attributes to carry additional data in the document. Define the attributes one time using TN Console and then set them during your processing service execution.

What sort of extra data are you trying to pass along to the delivery service?

Rob,

I am trying to pass a document with six strings under it, this is the information related to the particular transaction. Some fields in this document are populated by the xml sent to TN and some fields are populated from service A.

When you say add this attributes from TN Console, how can i create attributes so that the final structure in the target service pipeline will be a Document with five strings under it?

I have attached the screen shot of the structure that i am expecting in the target service pipeline.

Thanks,
Akshith

Rob,

Also, some information is not coming directly from the XML sent to TN and it has to come through the service A.

Thanks,
Akshith

Let me make sure I understand:

  • Service A gets an XML document with some data.
  • Service A retrieves additional data from somewhere.
  • Service submits the XML document and the additional data to TN for delivery.

If my understanding is correct, might I suggest an alternate approach?

  • Service A gets an XML document with some data. We’ll call it doc type X.
  • Service A retrieves additional data from somewhere.
  • Service A populates a new document, doc type Y, with data from the original document and the additional data.
  • Service submits the document of doc type Y to TN.

With this, no custom attributes are needed. All the data is within the basic document to be delivered by TN.

If you want to keep a record of the original document in TN:

  • Document submitted to your gateway service. Pass that to TN.
  • TN configured to invoke you Service A.
  • Service A creates a new document from the submitted document and the data retrieved from whereever.
  • Service A submits the new document (doc type Y) to TN for processing.
  • TN configured to deliver.

This way you have a record of what came in and what went out.

Will this fit what you need to do?

Rob,

Worked like charm, This is exactly what i was looking for. Now i can see the custom variables under the bizdoc/Attributes in the pipeline. As you said we have populated the XML that we are to send to TN and the custom variables to a canonical document and then sent that document to TN. Also we had to create a new TN Document type and extracted document attributes that we defined from the TN Console.

I am currently working on a basic upgrade project with out making major changes (time crunch) so will propose this to the Architect and see if he is willing to make this changes. Thanks Rob appreciate the swift responses.

Thanks,
Akshith