SAP Adapter error

My integration was not working with only this error in the eventlog:

Microsoft.ServiceModel.Channels.Common.XmlReaderGenerationException: An error occurred when trying to convert the byte array [30-00-30-00-30-00-30-00-30-00-30-00-30-00-30-00] of RFCTYPE RFCTYPE_DATE with length 8 and decimals 0 to XML format. Parameter/field name: REF_DATE   Error message: Year, Month, and Day parameters describe an un-representable DateTime. —> System.ArgumentOutOfRangeException: Year, Month, and Day parameters describe an un-representable DateTime. 

Generating new xsd schemas from the adapter with the option enable safetyping was not helping. Then I changed the document type to rfc:

This worked, the message was received by BIzTalk, but a complete other schema! The setting was set in SAP to put out a Typed document.

You do not see anything happening in BizTalk when this happens only in the evenlog. I was changing the settings of the SAP adapter and every time the SAP guy needed to send the document again. Hope this saves some time for you.

 

Cheers.

Issue with FTPs on BizTalk 2013 r2

I got this error in BizTalk:

No Client Certificate matching the provided client certificate hash was found. Verify if the certificate is present in the personal store of the corresponding BizTalk host instance user account.

PLaying with the certificate store, thumbprints did not do anything. So I tried it on another dev machine and the event log showed a different error!

The adapter “FTP” raised an error message. Details “Unable to connect to FTP server “”xxx.xxx.xxx.xxx” as user “username”. Inner Exception details: “The server name in the server certificate does not match with the name of the physical server. Make sure you provide the right server name.

Changing the server in the FTP adapter to the DNS name in the certificate did the trick! Without thumbprint the certificate is correct resolved. So when you encounter certificate error also you can check this.

Receiving file via HTTP simple script for IIS

I was working for a customer and there was a need for receiving files via HTTP and saving them to disk. A BizTalk receive location was enabled on that location and processed the file after it was stored. Normally you would make use of BTSHTTPReceive.dll and directly send it to a BizTalk location. In this case the client wanted a buffer location for the files.

I created a simple script to do just that with no editting in the iis settings. Just create a file in the iis folder with the name ReHttpsRawPost.ashx with the following code:


<%@ WebHandler Language="C#" Class="ReHttpsRawPost" %>

using System;
using System.Web;
using System.IO;
using System.Collections.Specialized;

public class ReHttpsRawPost : IHttpHandler {

public void ProcessRequest (HttpContext context)
{
string path = @"D:\Messages\out\interfacename";

if (!System.IO.Directory.Exists(path))
System.IO.Directory.CreateDirectory(path);

context.Response.ContentType = "text/plain";
string destionationPath = Path.Combine(path, Guid.NewGuid() + ".xml");

if (!File.Exists(destionationPath))
using (FileStream fs = File.Create(destionationPath)) { }

context.Request.SaveAs(destionationPath, false);
}

public bool IsReusable {
get {
return false;
}
}

}

Now you can you the https settings in IIS to encrypt the transfer and disable anonymous settings so posting is only allowed with username and password.

Enjoy the script, let me know if it works!

 

The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid

Hi, I was debugging some project and got this error while executing. I added the connectiong string in the machine.config and still getting this error….. The fix was restarting Visual Studio….. Somehow it is cached in vs..