Receipt Request and Generation

When you transmit a business data object through a transmit pipeline, you have the option to request a return receipt for that data. Return receipts in the Commerce Interchange Pipeline (CIP) work very much as they do when you send a certified letter. You fill out a form indicating that you want some acknowledgement that the letter was received. When the letter is received, the recipient of the letter signs to get it, and the signed receipt is then transmitted back to you, the original sender.

In the CIP, a similar series of events occurs. To request a receipt, a property named Receipt_requested is added to the transport dictionary, and its value is set to the text Yes.

In the Add Header stage of the CIP, if Receipt_requested is present and is set to Yes, then the AddHeader component writes the receipt request to the Transport Dictionary prior to transmission.

The receipt request includes the following items:

In the receive pipeline, the Transport Dictionary enters the Open Header stage. This stage contains the OpenHeader component. This component reads the XML tags appended to working_data by the AddHeader component, and writes them as name/value pairs to the Transport Dictionary. If, among these XML tags, appears a request for a return receipt, the OpenHeader component hashes the business data object to create the digest. The digest is not human-readable, and is intended to serve as a receipt. The digest also is written as a name/value pair to the Transport Dictionary.

The OpenHeader component is simply preparing the Transport Dictionary to be processed by the GenerateReceipt component. The Generate Receipt component reads the values written by OpenHeader, creates a return receipt business data object, and then sends the receipt back to the original sender using a new transmit pipeline.

The GenerateReceipt component does not send back to the sender all of the values stored in the original Transport Dictionary. It sends only the transaction ID, the system date and time on the receiving system, the digest created by the OpenHeader component, and optionally, the document type, source and destination that were described in the original transmission.

The original sender then provides a Receive pipeline to receive the receipt. This pipeline can contain the AuditReceipt component, which writes the receipt to the audit database.


© 1997-1998 Microsoft Corporation. All rights reserved.