×

Q:

I thought I had this one figured out by now, but I guess not. My scenario is this:

I have a receive port, which uses an inbound map, and submits to the MessageBox, which is picked up by a sendpipeline (has the filter set to the receive port name) and outputs to a directory. Here’s the twist:

The inbound doc, via the receive port, is mapped from one format to another. However, the destination schema in the mapping is an envelope, which includes one schema and imports another. The error I get on the receive port is:

Document type “ContentEngineering.ApplicationServers.BizTalk.ContentPipeline.Schemas.Reuters.Disassemble#Officer” does not match any of the given schemas.”

This is the namespace and root of my imported schema in the envelope, and exists in a subdirectory below the envelope schema. The schema exists, and the namespace and root exist, the map validates and tests fine, and the destination schema is able to vali
date an instance fine. However, I have racked my brain on the above error. Any ideas or suggestions? My entire scenarion for this is:

1. Receive doc on receive portA
2. Map inbound doc via receive portA
3. SendPortA picks up doc based on filter settings
4. Doc placed in directory via send portA
5. Receive portB picks up doc
6. Receive Pipeline(receive portB) disassembles doc
7. Receive portB map map’s disassembled output
8. Docs sent to orch via receive portB binding

Event Logs:

1. Document type
“ContentEngineering.ApplicationServers.BizTalk.ContentPipeline.Schemas.Reuters.Disassemble#Officer” does not match any of the given schemas.

2. The Messaging Engine encountered an error publishing a batch of “1”
messages to the Message Box database for the transport adapter “FILE”. Please
refer to Health and Activity Tracking tool for more detailed information on
this failure and check the endpoint bindings are correctly configured.

For more information, see Help and Support Center at
http://go.microsoft.com/fwlink/events.asp.

3. The “FILE” adapter is suspending a message coming from Source
URL:” \\ContentPipeline2\DataProcessing\Conten
tPipeline\1.0-StructuralNormalization\In\Reuters\In\*.xml”.
Details:”Error in accessing the part data or one of its fragments. The part
or fragment may not exist in the database. “.

For more information, see Help and Support Center at
http://go.microsoft.com/fwlink/events.asp.

4. The Messaging Engine has suspended “1” message(s) from adapter “FILE” due
to failures in message processing. Please refer to Health and Activity
Tracking tool for more detailed information on this failure.

Also Following up, here are more conclusions I have come to with testing:

1. Attempting to use a series of receive\send ports and receive pipeline’s
to do what I stated earlier in this thread does not work. The reason being is
that when doing mappings in Send\Receive ports, BizTalk 2004 does not handle
mapping to Envelope schemas. It can’t seem to find the body document that is
imported. However, when I do this in an orchestration, it works fine and the
transform, raw doc to envelope schema, goes with no problems. So, after
trying many scenarios, I concluded that mapping with envelope schemas in
recive or sen ports is not supported. please let me know if I’m wrong on
this one or have missed something, because it would be real nice to not have
to invoke an orch to do a simple mapping. Also, it seems the order of things
in a receive pipeline goes:

1. Receive
2. Receive Pipeline
3. Inbound Map
4. Send to Message Box

Not sure about the order of a send pipeline, but I would assume it would be
the reverse. Some documentation here would have been nice!