Every case is unique, but here’s what happened to me.

My goal was to receive a CSV file, and have it split into multiple output files in the Send Port. I did specify my CSV flat-file pipeline in my Receive Location’s Pipeline.

I took over a project at a new client. And while re-writing the code, I changed the names of all the programs and namespaces from XYZLongCompany, to just XYZ.

When I built the receive location on the test system, I copied the old long names, instead of the new short names into my Receive Location Pipeline properties, where you specify the “Document Spec Name” and the “Header Spec Name”.

This MSDN post shows how to find the document spec name by expanding the schemas then showing the properties. I can’t include any screen shots with actual client name.

I got this error from the following Scripting Functoid with inline C# script:

public int PutHL03()
{
     if (hl01 > 2) return "I"; 
     else if (hl01 == 1) return "S"; 
     return "0"; 
}
You can see it is returning string, but I specified the return type as “int”. Just changed “int” to “string” as the return type, and it worked. At least this error, pointed to “Inline Script”. See this StackOverflow question/answer I posted with a similar error, but there the I could have sworn the error was related to an XSLT sum, when it was really just a small error in a similar scripting functoid. https://stackoverflow.com/questions/55070442/biztalk-map-xslt-1-0-sum-cannot-implicitly-convert-type-string-to-int

Error Message on dropping an EDI file:

The interchange had a structural error in-before the first functional group

The issue was that I had taken a large 846 inventory file that had 1000s and 1000s of rows and I just took the first 10 or 20 rows using a text editor.

So what I had done is inadvertently taken off the last 3 rows:

SE*15*92232~
GE*1*20787570~
IEA*1*181838349~

Once I added these rows back, I got this error:

… is being suspended with following errors:
Error: 1 (Miscellaneous error)
4: Number of included segments do not match

I just had to carefully adjust the value of SE01 from the huge number it was, down to the smaller number of segments that I actually had.

The following is the generally document way fo doing this:

System.Convert.ToString(Microsoft.XLANGs.Core.Service.RootService.InstanceId);

However, sometimes, for no apparent reason, it won’t compile, or at least shows a “red dot” on the upper right corner of the expression shape, even though it is technically correct. Sometimes if you open it, and close it, or move it and move it back, then the error will go away. But this is a bug, and should not be required.

New alternative way to get the Orchestration InstanceID:

strProcessId = System.Convert.ToString
(YourOrchestrationName 
(Microsoft.XLANGs.BaseTypes.InstanceId));

YourOrchestrationName is the TypeName found in the Orchestration Properties.

This has not caused the “stupid” problem of the compile errors and having to touch the shape, and move it.

I deleted a BizTalk SendPort from the EDI agreement, but when trying to delete the same SendPort from the EDI Party, got the cryptic error: “Sequence contains no elements”.

I had been doing a proof of concept with Role Links, and turned out that I still had the roles enlisted. I found that out when I tried to delete the SendPort in the application.

So you have to unbind/unenlist the SendPort from the RoleLinks before removing the SendPort from the Party.