BizTalk sending message to Webservice without mapping

493 views Asked by At

I am new to BizTalk. I got a requirement as below.

Requirement is below:-

  1. Source: Oracle (table). I created a generated schema in BizTalk.

  2. Target: Webservice which receives "object array" (Table of source records from BizTalk) as an input.

  3. Source and Target systems have same structure. Hence no mapping should be implemented. Logic should be in pipelines or orchestration.

Need info on below two topics:

  1. How to incorporate the logic in pipeline or orchestration to map data from source schema to target WS schema.
2

There are 2 answers

5
Jason Hyland On

It's not very clear what you are asking for to be honest. Your requirement states that no mapping is required, but then you go on to ask how to incorporate mapping in pipeline or orchestrations.

A standard approach to delivering this would be;

  1. Setup your input process from Oracle by using "Consume Adapter Service" from visual studio's "add generated item". Use the oracle binding, setup connection properties for typed polling along with your query (see here for an example on MS SQL) change to a service contract type (for inbound operations) and you'll get a set of schemas representing your dataset, and a binding for your type receive port poller.

  2. Use "Consume WCF Service" to point to your "sending" web service and you'll get the schemas, binding and a helpful orchestration with port types add to your project

  3. Create a simple map mapping your inbound oracle recordset schema to your web service schema - this should be pretty straight forward if they are identical, although I suspect you'll have to deal with multiple sets of data - depends on your data.

  4. Complete by wiring together your orchestration.

I appreciate this is a high level view of what you need to do, but there are plenty of example you can google to get you started. Hope that helps.

1
DTRT On

This question was posed (now deleted) on the other big BizTalk forum. So I'll share my answer here.

What you're asking is simply not possible. It doesn't matter that the source and destination are logically the same. They are represented by two different schemas in BizTalk. There is no way around this except by developing the Web Service to accept the WCF Oracle message directly.

Because of that, you must transform from the source to the destination. Maps are how that is done. While there are technically other ways, they are harder to write, bug prone and would likely offer a less desirable performance profile.

A ban on Maps is just counter-productive and as a long time BizTalk Developer I could not accept a project with such a requirement.