-1

I am trying to call a JDE BSFN from a Java servlet. The business function throws an exception when it has numeric or date as input parameters. However, it works fine when input parameter is a string.The error is com.jdedwards.system.connector.dynamic.ServerfailureException:Fail to execute BSFNmethod com.jdedwards.system.kernel.callObjectSystemException.

1 Answers1

0

In E1, numerics are actually MATH_NUMERIC which is a struct... not an int or float.

struct tag MATH_NUMERIC
{
   ZCHAR String [MAXLEN_MATH_NUMERIC + 1];
   BYTE  Sign;
   ZCHAR EditCode;
   short nDecimalPosition;
   short nLength;
   WORD  wFlags;
   ZCHAR szCurrency [4];
   Short nCurrencyDecimals;
   short nPrecision;
};

Same for JDEDATE,

struct tag JDEDATE
{
   short nYear;
   short nMonth;
   short nDay;
};

So... it sounds like maybe you are not passing the correct type?

Here is more info on E1 types: https://docs.oracle.com/cd/E17984_01/doc.898/e14699/e1_defined_structures.htm#g8d6ab57f7cedeaac_ef90c_10a77c8e3f7__76c5

  • Your quick response is highly appreciated. Can you also provide any document that suggests on how to create the variable in java for jde numeric and date fields. – user3875983 Feb 01 '16 at 09:36
  • take a look at this document: https://docs.oracle.com/cd/E17984_01/doc.898/e14694/create_publishedbssv.htm section 3.3.6.8 talks about converting Integer to from MathNumeric. I believe the function MathNumeric() is in oracle.e1.bssvfoundation.util.MathNumeric - do you have access to that? That function might be easier than creating the structure yourself. – Shaun Meyer Feb 01 '16 at 09:57
  • Thanks a lot for your help. I will check if I can access the MathNumeric() function. – user3875983 Feb 01 '16 at 10:16