Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

Error about apparent data type


Hi


Building a formula which works as expected with the commented code.  When I uncomment, I was getting an error that highlights the else line at the bottom (NewBOM := "";) with a message that says "a boolean is expected here".  After playing around with semicolons and brackets, the error now says "a number is required".


Keener, less bleary eyes might see what I'm doing wrong.  I hope so.


Thanks!



whileprintingrecords;

global numbervar CurrInv;     global numbervar CurrPOS;    global numbervar CurrBOM;

global numbervar PrevInv;     global numbervar PrevPOS;    global numbervar PrevBOM;

global stringvar NewInv;      global stringvar NewPOS;     global stringvar NewBOM;

global stringvar CommTypePOS; global stringvar CommTypeInv;

global numbervar CommRatePOS; global numbervar CommRateInv;

if isnull({Commission.AROBP_A_IDINVC}) then CurrInv := 0 else CurrInv := {Commission.AROBP_A_IDINVC};

if isnull({Commission.POS_POS_NR})     then CurrPOS := 0 else CurrPOS := {Commission.POS_POS_NR};

if isnull({Commission.STKL_BOM_ID})    then CurrBOM := 0 else CurrBOM := {Commission.STKL_BOM_ID};

if CurrInv <> PrevInv

then (NewInv := "I";)

else (NewInv := "";);

if CurrInv <> PrevInv or CurrPOS <> PrevPOS

then (NewPOS := "P";)

else (NewPOS := "";);

if CurrInv <> PrevInv or CurrPOS <> PrevPOS or CurrBOM <> PrevBOM

then (NewBOM := "B";

         (if {@Flag_STKL_Alice}

          then (CommTypePOS := "";

                CommTypeInv := "ALI";

//                    (if  ({Commission.ARSAP_NAMEEMPL} = 'Bernard Ruhl'

//                       or {Commission.ARSAP_NAMEEMPL} = 'MB Building Products'

//                       or {Commission.ARSAP_NAMEEMPL} = 'Carlan Group'

//                       or {Commission.ARSAP_NAMEEMPL} = 'Gerald Fornell')

//                     then (CommRateInv := 10;)

//                     );

               );

         );

     )

else (NewBOM := "";);

PrevInv := CurrInv; PrevPOS := CurrPOS; PrevBOM := CurrBOM;

Former Member
replied

hey Matthew, try moving your newbom around so it's like this in the last big paragraph...

if CurrInv <> PrevInv or CurrPOS <> PrevPOS or CurrBOM <> PrevBOM

then ((if {@Flag_STKL_Alice}

          then (CommTypePOS := "";

                CommTypeInv := "ALI";

                    (if  ({Commission.ARSAP_NAMEEMPL} = 'Bernard Ruhl'

                       or {Commission.ARSAP_NAMEEMPL} = 'MB Building Products'

                       or {Commission.ARSAP_NAMEEMPL} = 'Carlan Group'

                       or {Commission.ARSAP_NAMEEMPL} = 'Gerald Fornell')

                     then (CommRateInv := 10;)

                     );

               );

         );NewBOM := "B";

     )

else (NewBOM := "";);

PrevInv := CurrInv; PrevPOS := CurrPOS; PrevBOM := CurrBOM;



the reason could be that commrateinv is a number type where as newbom is a text and hence your if then else is going from a number to a text.

0 View this answer in context

Helpful Answer

by
Not what you were looking for? View more on this topic or Ask a question