Skip to Content
1
Oct 29, 2019 at 09:43 AM

Outright process crash when setting an alphanumeric field with valid values via DI-API

38 Views

I have a report from a client that our connector isn't functioning as it should. As I have investigated this, I have traced the problem to a UDF in their SAP B1 database. This is in table OINS (Customer Equipment Cards). It appears that when setting some values, the DI-API can crash outright (taking the process with it) or it could also return ErrorCode -1 with Description "General Observer Error". Values which cause a crash always cause a crash, values which cause "General Observer Error" will always cause that error.

I have also verified that there are values that do function, and also verified that there are values that don't exist in the Valid Values list, which also work as expected i.e. there a Valid Values that result in Error Code 0 (success) and invalid values that result in error code -1004 Description This Value does not exist ...

I have replicated this on my development system which is running SAP B1 9.3 PL 3 - I believe that te client is running 9.3 PL 7 - both running in MS-SQL.

One of the Valid Values that outright crashes the process is "AT00002: CF5A Dipole (49.1375MHz)". I have tried different variations of this string, removing characters yet maintaining the error. At some point, the state changes from a crash to a General Observer error, however I have discovered that the sequence "5e49" will give a General Observer Error instead of a -1004 invalid value error, and if I add that value to the list of valid values, it still gives a General Observer Error.

I am guessing here, but I believe that SAP employed a function to grab numbers from within strings such that symbols and measures could be ignored, and I believe that this is going wrong here - note that 5e49 is a number 5 *10^49. There are some numbers that simply cannot follow the letter "e" - numbers up to about 34 seem to work properly.

This peculiarity shouldn't be a concenr for users of the system, so my questions are:

1) Can this be fixed or adequately worked around without the customer having to change their data?

2) Is this a known issue, and is there a full description of what patterns within strings will malfunction?

3) I have an S-Number, can somebody explain how I can officially report this as a fault if it turns out that the community confirms that it is?

Thanks for your help.