INETA Speaker’s Bureau

What a way to kick off the new year!  I’ve just been notified (ok, it happened a few days ago but I was on vacation) that I’ve been selected to join the INETA NORAM Speaker’s Bureau.  Stupidly happy is a massive understatement, I am a huge fan of INETA’s work getting great speakers to user groups throughout the United States and Canada, and I couldn’t be more happy to join the ranks of speakers who will be delivering interesting, cutting edge content to user groups.

When I informed my employer of this honor this morning, I used the analogy that I consider this the equivalent of being called up to the majors in baseball.  It is an opportunity to shine, but it also means that I’m the rookie now no matter what I’ve done before.

I will let everyone know once I’m in the system enough to be requested at your local user group.  Also congratulation to all those who were selected at the same time I was, particularly my pal and fellow Connected Systems MVP Stuart Celarier.

Installing BizTalk RFID on a DC!!! Oh at last!!!

“The product cannot be installed on this machine since it seems to be a domain
controller”

What a start to 2009!!! – the above dreaded message when trying to (in this case)
install BizTalk RFID on a DC.
For me – this happens quite a bit, as I’m building up a proof of concept, a demo,
something to show and present with.

I alwaysalways.forget to install BizTalk RFID bits before I promote to a DC (this
technique can also cause security acct issues after the machine has been promoted
to a DC – depends on how the authentication is setup etc)

NOTE: BTW – Installing BizTalk RFID on a DC is NOT SUPPORTED (had
to put that one in their – keeps both sides happy)

For love or money I’ve bounced this question around for a while and come up empty,
untiltoday!!! Niklas Engfelt a senior MS support engineer came to my rescue (he
famously provided those thoughts from left field which were on the money! Big thank
you Niklas)

He suggested grabbing Orca from the Platform SDK and having a browse
through – I’d used HEX editors, disassembled files, attached process monitors during
installs and looked through any config file with a fine tooth combbut I’d never tried
a MSI Editor.

The steps to Enlightenment: (changing the installer validation conditions)

  1. Grab a download of Orca
    from here (I didn’t have the platform SDK currently installed and wasn’t about
    to install 1.2 GB worth either) and follow default install prompts.
  2. If you haven’t done so already copy the RFID_x86 or RFID_x64 folders
    off the install media to a temp folder nearby (note: sometimes on Win2K8, the system
    prevents copied files from being accessed until an admin comes along and says ’these
    are ok’ by going into File->Properties on each file. It’s weird I know, but I get
    it every now and then)
  3. Locate the RFIDServices.msi under the RFID folder and you’re ready
    to go.
  4. Launch Orca and open RFIDServices.msi to get something
    like:
  5. Under the Tables Column select LaunchCondition and
    drop the 2nd Row as follows:
  6. Drop the Row and Save the MSI file again.
  7. Run Setup.exe as per normal.

Oh what a sweet day!

p.s. I’m sure you’d be able to employ this technique onto other MSI’s causing grief.

Mick

A Quick Walkthrough of the BizTalk 2006 R2 Upgrade to BizTalk 2009

Originally posted by Nick Heppleston at: http://www.modhul.com/2009/01/04/upgrading-biztalk-server-2006-r2-to-biztalk-server-2009/
In this post, I’ll quickly walk through upgrading a production BizTalk 2006 R2 installation to the latest BizTalk 2009 Beta release.
Prerequisites
The only prerequsite for an upgrade is the .Net 3.5 Framework (link) and the framework must be manually installed before starting the upgrade process. Although the provision for an […]

Defining real-time aggregations with BizTalk Server 2009 / Excel 2007

If you’re using Excel 2007 to define your BAM activities and views, you may up spending some time trying to figure out what happened to the “mark pivot table as real time aggregation (RTA)” button. It’s there, but unless you’re used to working with it, it can be a little subtle to notice. At the time this was written, the relevant documentation only shows an Office 2003 screen shot, so I thought I’d do a post.

In the toolbar, press the Add-in button, and you’ll see what’s shown below. The arrow is pointing at the RTA button, and it is pressed in this screen shot, indicating the pivot table is RTA.

And, along those same lines, if you’re not seeing the BAM add-in, then press the top-left Office button, choose “Excel options”, then and use “manage add-ins” to add it:

Technorati Tags: BizTalk,BAM,Real time aggregations,Excel 2007

BizTalk Training for January & February 2009

I will be teaching the following BizTalk courses for Stargate Global ConsultingduringJanuary & February 2009:

January 12th-16th -BizTalk “Developer Ready” in Melbourne – http://www.stargateglobalconsulting.com.au/biztalk_readytraining.aspx

January 19th -23rd – BizTalk “Deep Dive” in Melbourne – http://www.stargateglobalconsulting.com.au/biztalk_training.aspx

February 16th – 20th – BizTalk “Deep Dive” in Sydney – http://www.stargateglobalconsulting.com.au/biztalk_training.aspx(this is course information, registration for Sydney course will be up soon)

if you are interested in attending or need additional information please contact me via feedback.

SQL Connection Information for BizTalk Adapters

I created a SQL Bulk load adapter as the standard SQL Adapter casts the stream to a string and runs out of memory for large datasets.

While developing the Bulk Load adapter, I need to specify the connection information. I was about to implement a custom interface, I took the lead from Tomas Restrepo’s Null Adapter. I was having some problems because I was developing on a 64bit box, and then discovered this information about implementing the adapter on 64 bit machines.

I thought that there must be an easier way to do this!

There is an undocumented schema annotation that allows to add connection information.

<xs:element name="ConnectionString" type="xs:string"> <xs:annotation> <xs:appinfo> <baf:designer> <baf:displayname _locID="ConnectionStringName">Edit this field in the resource file</baf:displayname> <baf:description _locID="ConnectionStringDesc">Edit this field in the resource file</baf:description> <baf:editor assembly="%BTSROOT%\Microsoft.BizTalk.Adapter.SQLAdmin.dll">Microsoft.BizTalk.Adapter.SQLAdmin.DatalinkUITypeEditor</baf:editor> <baf:converter assembly="%BTSROOT%\Microsoft.BizTalk.Adapter.SQLAdmin.dll">Microsoft.BizTalk.Adapter.SQLAdmin.DatalinkTypeConverter</baf:converter> <baf:category _locID="DatabaseGrp">Edit this field in the resource file</baf:category> </baf:designer> </xs:appinfo> </xs:annotation> </xs:element>

Here is the adapter interface:

Also, I wanted to show the database information, how you have to do it in C# is the following:

OleDbConnection connection = new OleDbConnection(valueOfConnection); if (connection.DataSource.Length != 0) uri.InnerText = "SQL://" + connection.DataSource + "/" + connection.Database; else uri.InnerText = "SQL://" + connection.DataSource + "/";

Which shows the following:

EDI Warehouse

In an effort to standardize the consumption of EDI documents, what I have come across is the same pattern.

  1. Create flat file schema
  2. Bring in and EDI Transaction
  3. Create the mapping to a fixed length flat file.
  4. Deploy
  5. Start Testing

This is pretty standard, and there is nothing wrong with this approach, it is pretty easy, and relatively quick to implement.The problem is that when the backend changes, the business now wants different data, or they come back and inform that something is missing. The normal request is “we need to be getting field X, can you run the past {month/year} data?”

So what that means is the following pattern must me followed:

  1. Modify flat file schema
  2. Modify existing map
  3. Undeploy map project
  4. Redeploy modified flat file project
  5. Redeploy modified mapping project
  6. Apply bindings
  7. Run all files through updated process

This becomes very tedious when either the output is not clearly defined, or there are a lot of transactions to process.

What we have created is a EDI warehouse that stores all EDI data. Below is the data flow: (click to enlarge)

Once the data is loaded with it’s subsequent primary keys, it waits until the next transaction in the interchange is processed. Once the transactions have been processed, it calls a stored procedure that will extract the data to whatever the business needs.

The nice part of this design, is that when the business needs different data, simply changing the query is all that is now needed. No more code changes, redeploys, etc.

Items that come with the EDI Warehouse package:

  • Because the SQL Adapter runs out of memory for large transactions, a custom Bulk Load adapter is included
  • The following transactions are included: 820, 850, and 856 which include the following:
  • Table definitions for each transaction, map into warehouse, mapping schema for load process

Any ANSI X12 transaction can be purchased for the prices on the Products/Services page.

2008 : Year in Review

As 2009 starts, I thought I’d take a quick gander at the 2008 posts I enjoyed writing the most, and a few of my favorite (non-technical) blogs that I discovered this year.
Early last year I embarked on a 9-part series of articles about how BizTalk and WCF integrate.  I learned a lot in the process […]