Monthly Archives: February 2009

Getting errors when building BizTalk Solution

What a bad and wasted day.. Hours was wasted to configure out why Biztalk solution can not be compiled even the last opened project can. It’s an compile error that tells parameter indentifier of Multi-part messsage types is not recognized. “identifier ‘parameters’ does not exist in ‘ProcessOrderRequestMessage’; are you missing an assembly reference?“.

The project I develop calls many web services from orchestration to update or store data. 4 types of WCF services and 2 types of Web services. The problem comes when I finish coding for the first time it runs OK .  But after I quit the VS and open it again and do some minor change (to trigger the code to be compiled again), the project can not be compiled and shows error as described above.

One workaround I used to solve that problem is make again the project from the beginning and add each files. But this is not a good solution, because it’s time consuming and the problem occurs again when we reopen the solution again.

Another workaround is to copy all the port types and multi-part message types from the generated orchestration to the master orchestration.

Hope this can help others who has the same problem with me..



Creating Multiple Input Maps for BizTalk Server

When you add a map Biztalk file, you can only choose one source file and one destination file. But in reality we could have multiple input schema.

The link below has steps as guidance to add multiple schema as input.

Creating Multiple Input Maps for BizTalk Server


If you are familiar with ASP .Net you will know files with extenstion .aspx , .asmx, .asax, .config and .ascx… Because these extenstions you always use on your every working day. Yesterday I got an email from may Boss to provide a page with extension .ashx. On the first place , I thought it just miss typo. But it made me such curious, was my boss missed typo the word. To fulfill my curiosity, the best way is to ask uncle google to answer the question :).. Ya, .ashx is part of ASP .Net extensions. Usually .ashx is used as a web handler. A web handler file works just like an aspx file except you are one step back away from the messy browser level where HTML and C# mix. One reason you would write an .ashx file instead of an .aspx file is that your output is not going to a browser but to an xml-consuming client of some kind. Working with .ashx keeps you away from all the browser technology you don’t need in this case. Notice that you have to include the IsReusable property.

<%@ webhandler language=”C#” class=”SuccessHandler” %>

using System;
using System.Web;
using System.IO;

public class SuccessHandler : IHttpHandler
public bool IsReusable
{ get { return true; } }

public void ProcessRequest(HttpContext ctx)
// create a write stream
FileStream writeStream = new FileStream(string.Format(“/success/{0}.txt”, Guid.NewGuid().ToString()), FileMode.Create, FileAccess.Write);
ReadWriteStream(ctx.Request.InputStream, writeStream);

// readStream is the stream you need to read
// writeStream is the stream you want to write to
private void ReadWriteStream(System.IO.Stream readStream, System.IO.Stream writeStream)
int Length = 256;
Byte[] buffer = new Byte[Length];
int bytesRead = readStream.Read(buffer, 0, Length);
// write the required bytes
while (bytesRead > 0)
writeStream.Write(buffer, 0, bytesRead);
bytesRead = readStream.Read(buffer, 0, Length);

Adding SOAP Header in BizTalk..

When you are working with orchestration we can use property schema to handle the SOAP header in Biztalk.

These are the simple steps you can follow as guidance :

  • Make sure your web reference to web service has been updated.
  • Open Reference.xsd from the wsdl of the web service. It should define how the SOAP header constructed. And this the example :<soap:Header><Header><SessionId>12345</Sessionid></Header> </soap:Header>
  • Took the root of the element from the SOAP header which is Header.
  • Create the property schema and name it as SOAPHeader.xsd. I have tried using different names but it is not working so I suggest you to use this name.
  • Set the target namespace of the schema become
  • Add an element to property schema, in this case Header
  • Change Property Schema Bae to MessageContextPropertyBase
  • Save the file.

Now you are ready to use the SOAP header in biztalk. You can use it in construction message before sending it to port or on expression after receiving message from port. You can access the SOAP header by this simple code :

SampleMessage(MyNamespace.Header) = “<ns0:Header xmlns:ns0=\”\”>

This also has been provided by MSDN here.

Why DeBelog?

Actually it’s been a long time I had a desire to express myself on writing. But for many reasons I did not do it effectively. One of it, is laziness. This disease affects me a lot. I have been thinking how many years I have been being controlled by this devil. Every plan I made always ended up without result. From future plan, business, love and etc…. This laziness makes me sick. I have to stop this and continue my life with something that I can be proud of.

One way to kill this devil on my thinking is by writing. A small step but I hope I can change my life to a better one. This blog is dedicated to all of you who has the same problem with me and I’ll be writing for now on on this blog.

Why I choose debelog? It just crossed in my mind, it comes from blog actually. And in Balinesse we have almost the same sound with it, that is belog.. ‘Belog‘ means ‘stupid’ and ‘De’ means ‘don’t be’. ‘Debelog‘ has the meaning don’t be stupid. Don’t be stupid feels warm and comforts by the hug of laziness.

One wisdom word that I always remember is “IF YOU HAVE AN APPLE AND I HAVE AN APPLE AND WE EXCHANGE APPLES THEN YOU AND I WILL STILL EACH HAVE ONE APPLE. BUT IF YOU HAVE AN IDEA AND I HAVE AN IDEA AND WE EXCHANGE THESE IDEAS, THEN EACH OF US WILL HAVE TWO IDEAS.”. This is what I call the power of sharing. Everyone would have many and many ideas (rich by ideas – not just money 🙂 ) even without losing his idea at all.

Keep wrting.. Keep sharing.. Keep on spirit…