thruway 3/23/2016 4:35:10 PM

Web Services GetVendorByKey, Hexadecimal value 0x06 is an invalid character.

I am developing an Intranet site that utilizes GP Web Services to manage Vendor information (among other things). Today I noticed that the GetVendorByKey method was failing for one of our Vendors.

We have tested quite a few Vendors, and this is the first time that this error has occurred.

I'll provide some context and cover what steps I have already taken here...

 Visual Studio throws a...

 

1.System.ServiceModel.FaultException<System.ServiceModel.ExceptionDetail>

 

With a message of...

 

1.{"The application encountered an unhandled system exception.  Contact your system administrator for details."}

 

I've seen this message a few times before and previously used the Dynamics GP Exception Management Console to actually view the message. However, when I attempted to view the System Exceptions I received a 'Cannot Access the Exception Service' error from the console.

Following the 3rd solution on this guide, I was able to view the errors in SQL Management Studio. I removed the logs that contained 'invalid chars' using the below SQL query.

 

1.delete from DYNAMICS..WSExceptionLog
2.where ExceptionMessage like '%invalid character%'

 

Heading back into the Dynamics Exceptions Console I can now see an error.

 

Business object not found.
 
at Microsoft.Dynamics.Common.BusinessService.GetByKey(Key key, Context context, Type[] types)

 

The Request XML is (Vendor Id 00490 is the problem Vendor)...

 

<?xml version="1.0"?>
<RequestObjects>
    <Id>OO490</Id>
  </VendorKey>
    <OrganizationKey xsi:type="CompanyKey">
      <Id>1</Id>
    </OrganizationKey>
    <CultureName />
    <CurrencyType>Transactional</CurrencyType>
    <RoleKey>
      <Id xmlns="http://schemas.microsoft.com/dynamics/security/2006/01">e18b321a-9548-48fb-b75a-dee0a618ddaa</Id>
    </RoleKey>
  </Context>
  <string>Microsoft.Dynamics.GP.Vendor</string>

After a few more random attempts to retrieve the Vendor object via Web Services, I received the same error from the Exceptions Console and decided to look at the error in SQL Management Studio. Here, I found an Exception Message of...

 

'', hexadecimal value 0x06, is an invalid character.

 

Apparently this character is ACK, or acknowledgment. Never heard of this before.

I assumed that somewhere in the PM00200 table, there was an invalid 'ACK' character so wrote a quick C# script to check each column in the row for 0x06 characters. Nothing came up.

 I also checked the VendorMaintenance Card in GP and all options/address fields for weird characters and didn't find anything.

 

Now that you're up to speed...

I'm still assuming that there is an invalid character in some Vendor-related table that GP Web Services is tripping over, but other than that I don't have a clue.

It may have something to do with the fact that I can only see one 'Business Object Not Found' error in the Error Management Console while every subsequent error apparently contains 'invalid characters'.

Any suggestions?

Version: GP 2010
Section: .NET Development, Dynamics GP, eConnect, Web Services


Table Definition Quick Links
All Tables
SOP Tables
RM Tables
GL Tables
POP Tables
HR Tables
PM Tables
UPR Tables
IV Tables
Olympic Tables
3