Issue When Serializing BizTalk Auto-Generated Schemas To .NET Objects

Yesterday a co-worker of mine was having issues serializing an auto-generated BizTalk schema into a .NET object. We found an obscure fix that solved the problem.

In Darren’s Professional BizTalk Server 2006 book, he’s a proponent of working with serializable classes (instead of messages) where possible. In our case, my buddy Prashant was doing […]

Dynamics AX 4.0 Adapter for BizTalk Server 2006 – Developer Experience Series

This article begins a series of eight planned articles discussing various aspects and experiences using the Dynamics AX 4.0 adapter for BizTalk Server 2006.  The topics for upcoming articles include “What is this IPC Port Exception?” and “Integrating Commerce Server 2007 and Dynamics AX 4.0”.  Today’s article reviews the project I have been working on and outlines a few key developer experiences.


 


My current project is a social networking site where customers may buy items and make recommendations.  When a member purchases items, other related members receive commissions based on proprietary rules.  The concept is called Multi-Level Marketing. 


Central to the web site is the Commerce Server 2007 system.  Several third party vendors are used for fulfillment.  A customized implementation of Dynamics AX 4.0 is used for the financials.  A bulk of the customization to the AX application is related to the MLM functionality.


 


When this project started, documentation for the Dynamics AX 4.0 adapter for BizTalk Server 2006 consisted of a single webcast that showed a rather trivial integration example.  In the webcast, the BizTalk Server installation was the default, single server configuration, and the Dynamics AX installation was on the same server.  So, developing a non-trivial integration between a Commerce Server order and profile system and a Dynamics AX would prove to be a challenge.


 


In order to assist folks about to embark on their own implementation, I offer a few experiences to consider.


 


Design Experiences


%u00d8  Consider canonical messages to abstract out Dynamics AX schemas


o   This is particularly important when dealing with a difficult schema, such as the Commerce Server Orders schema.  The mapping between the CS Order schema and the AX Order schema proved to be quite complex.  Because I did not include a canonical format, each time the Commerce Server schema changed, I had to rework a number of transformations. 


o   Potential issues with reworking the complex transformations outweigh the additional level of indirection caused by a canonical message.


%u00d8  Consider separate BizTalk project for the AX schemas


o   This approach is certainly better than mixing the AX schemas with the internal schemas.


 


BizTalk Administration Experiences


%u00d8  Create a separate Application for the Dynamics AX artifacts and associate this application to the main application


o   This will allow the AX artifacts to be used in other applications


o   Consider situations where the Standard edition of BizTalk Server 2006 is installed.  This edition allows for only five applications.


 


Implementation Experiences


%u00d8  The string “Dynamics” in namespace name for either the Schema or the Orchestration project will cause compilation error in any orchestration containing a Dynamics AX message


o   Namespace was “Company.Integration.Dynamics.AX.Schemas” and “Company.Integration.Dynamics.AX.Orchestrations”.


o   The compilation error occurs when importing the EntityKey or EntitySet schema from the Dynamics AX assembly


o   The solution was to remove the string “Dynamics” from the namespace


%u00d8  Sync operation is the recommended option


o   This was recommended by Microsoft


o   I was not able to get the asynchronous operation to work


%u00d8  EntityKey and EntitySet Messages


o   EntityKey is the response for operation involving a single entity


o   EntitySet is the response for operation involving a collection of entities


o   Both entities contain the internal keys from AX and are really only useful for bi-directional interfaces


 


The remaining seven articles in this series will review other experiences in more detail.


 

Windows Home Server System Builder Edition is now available on NewEgg.com

Windows Home Server System Builder Edition is now available on NewEgg.com, and some companies already offering it on Amazon.com site.


As a reminder, System Builder Edition is a standalone software without support. Like OEM edition it is supposed to be used for preinstallation on new computers produced or assembled for sale, but the company does not have to qualify for OEM status to get it. That’s the edition used by British Tranquil PC T7-HSA manufacturer, who already ships the systems.


Cool.


[1] http://www.newegg.com/Product/Product.aspx?Item=N82E16832116395


[2] http://www.amazon.com/MICROSOFT-WINDOWS-SERVER-WIN32-ENGLISH/dp/B000VWW8QQ/

Cannot call the EDISend Pipeline from an Orchestration

I’m quite certain I won’t be the only person who tries this, I had a need to send

an encoded EDI message to a Web Service, so I was like “No problem, we’re in the high

tech land of BizTalk 2006 R2 now, I’ll just call a Pipeline directly from an Orchestration,

get the results and send that along.”

Not so quick, buck-o replied BizTalk, and after some Googleing I came up with

this link to a post on the Microsoft forums which informed me that you can’t do

that. Specifically, to quote it here in case that forum thread disappears, the

question was “Steven G.” and asked (in part) :

I have an orchestration which is trying to send EDI files using a dynamic send port.

I have been trying, with no success, to call the “Microsoft.BizTalk.Edi.DefaultPipelines.EdiSend”

from within my orchestration, as follows:

And the response can back from Tony Bernard of Microsoft:

Running the EDISend pipeline from an orchestration is not supported in R2. We

are tracking this for the future, but had higher priority items to address for this

release.

I would suggest one of two approaches:

  • a post-processing pipeline component which performs the manipulation that you need

    to occur after serialization

  • using a loopback port. Basically, use a send port with that pipeline into an MSMQ

    or file location and a receive location with a pass through pipeline back into the

    orchestration

So no love there. I ended up working around the problem, but know I will have

to solve this again in a few days, so be looking for a post from me on how to implement

the Loopback port which Tony suggested.

Which BizTalk Version is right for you – check the chart

I recently came across this and thought I’d share it with you – keep it handy for
those planning meetings 🙂

Microsoft
BizTalk Server 2006 R2  Editions
– Comparison Chart

SKUs

Microsoft
BizTalk Sever 2006 R2 Editions

 

Enterprise

Standard

Branch

Developer

Primary
Scenario

Designed
for customers with enterprise-level requirements for high volume, reliability, and
availability

Designed
for businesses with moderate volume and deployment scale requirements

Specialty
version of BizTalk Server designed for hub and spoke deployment scenarios

Available
for development and testing purposes, and BizTalk Server 2006 Evaluation Edition (EVAL)
is for free evaluation purposes

License

Per
processor basis

Per
processor basis

Per
processor basis

Per
processor basis

Price
(in US Dollars)

$30K
per proc

$8.5K
per proc

$1.8K
per proc

$500
per proc
(free with MSDN Universal)

Functionality

Complete
EAI, B2B, and Business Process Management functionality

Complete
EAI, B2B, and Business Process Management functionality

Subset
of BizTalk Server functionality appropriate for intra-enterprise hub-and-spoke scenarios

Complete
EAI, B2B, and Business Process Management functionality

Accelerators

Includes
all vertical industry accelerators (RosettaNet, HIPAA, HL7, and SWIFT)

Includes
all vertical industry accelerators (RosettaNet, HIPAA, HL7, and SWIFT)


Limited
solely to designing, developing, and testing solutions

Adapters

Includes
all current and new application and technology adapters

Includes
all current and new application and technology adapters


Includes
all current and new application and technology adapters

RFID

Includes
BizTalk RFID

Includes
BizTalk RFID

Includes
BizTalk RFID

Includes
BizTalk RFID

Host
Integration Server (HIS)

Includes
Host Integration Server 2006 Server Edition

Includes
Host Integration Server 2006 Server Edition

Includes
Host Integration Server 2006 Server Edition


Applications

Unlimited

Five

One

Unlimited

Failover

Scale
out/failover multiple message boxes



Non-production (must
participate in the ISV Royalty Program to sell these SKUs)

Maximum
Processors

Unlimited

Two

Two

Not
Applicable

Virtual
Processors

Unlimited




Windows Home Server System Builder Edition is now available on NewEgg.com

Windows Home Server System Builder Edition is now available on NewEgg.com, and some companies already offering it on Amazon.com site.


As a reminder, System Builder Edition is a standalone software without support. Like OEM edition it is supposed to be used for preinstallation on new computers produced or assembled for sale, but the company does not have to qualify for OEM status to get it. That’s the edition used by British Tranquil PC T7-HSA manufacturer, who already ships the systems.


Cool.


[1] http://www.newegg.com/Product/Product.aspx?Item=N82E16832116395


[2] http://www.amazon.com/MICROSOFT-WINDOWS-SERVER-WIN32-ENGLISH/dp/B000VWW8QQ/

BizTalk Server 2006 R2 Download Links

 


Since the announcement of the release and Global Availability (GA) of BizTalk Server 2006 R2, there have been questions about how to get different versions of the product. 


 


To clarify, here are some links to the latest:


 


%u00b7         Evaluation (LIVE) – http://msdn2.microsoft.com/en-us/bb738071.aspx


%u00b7         MSDN Subscription for DEV (Live) – http://msdn2.microsoft.com/en-us/default.aspx (must sign in)


%u00b7         Customers with SA (LIVE) – https://licensing.microsoft.com/eLicense/L1033/Default.asp (must sign in)


%u00b7         New Customers (LIVE) – On the price list currently. 


You can get the price list by working with your Microsoft representative (sales) or partner. 


 


As you can see, only the R2 Developer edition and Evaluation edition bits are posted to MSDN.  Customers who would like to download any other editions such as Branch or Enterprise should do so from the Microsoft Volume Licensing (MSVL) site.


 


Best Regards,
Marjan Kalantar


 

North Dallas .NET User Group

Had a great time talking at the North Dallas .NET

User Group last night about C# 3.0. The crowd, once they warmed up, had

lots of good questions and a good time was had by all. If you’re interested

in the code from that talk, it

is posted here. One question came up that was not answered, which is how

you might initialize a Dictionary using the new collection initialization techniques.

I really had intended to research the answer, but by the time I was home from carousing

with folks at the Fox Sports Grill after the meeting, the obviously much more dedicated

Paul Igendorf had already emailed me the answer. Here’s an example:

Dictionary<string, int>

numbers = new Dictionary<string,int>()
{
    {"zero",

0},
    {"one",

1},
    {"two",

2},
    {"three",3}
};

              foreach (string key in numbers.Keys) 
{
    Console.WriteLine(key + "=" +

numbers[key].ToString());
}

Thanks Paul for sharing this!