cancel
Showing results for 
Search instead for 
Did you mean: 

Pricing requirement with three requirements

florianbus
Contributor
0 Kudos

Hi,

I'm no developer, but have to create a pricing requirement. I created the one below, but it doesn't work.

I want some conditions only to be used if komk-vkorg = 1111 + komp-zzmtpos = DIEN + any of the defined item categories are used.

FORM KOBED_998.

sy-subrc = 4.

if ( komk-vkorg = '1111' ).

if ( komp-zzmtpos = 'DIEN' ).

if ( komp-pstyv = 'ZSQ1' ) or

( komp-pstyv = 'ZSQA' ) or

( komp-pstyv = 'ZSQC' ) or

( komp-pstyv = 'ZSQE' ) or

( komp-pstyv = 'ZSQF' ) or

( komp-pstyv = 'ZSM' ) or

( komp-pstyv = 'ZS1' ) or

( komp-pstyv = 'ZSA' ) or

( komp-pstyv = 'ZSC' ) or

( komp-pstyv = 'ZSE' ) or

( komp-pstyv = 'ZSF' ) or

( komp-pstyv = 'ZG2N' ) .

sy-subrc = 0.

endif.

sy-subrc = 0.

endif.

sy-subrc = 0.

endif.

ENDFORM.

FORM KOBEV_998.

ENDFORM.

Thank you for help!

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hello Florian,

sy-subrc = 0 means true, sy-subrc = 4 means false. What you wrote, means:

when vkorg = 1111, it's true.

when vkorg = 1111 and zzmtpos = DIEN, it's true.

when vkorg = 1111 and zzmtpos = DIEN and any of the pstyv, it's true.

You could just delete the last two sy-subrc = 0.

Regards Wolfgang

Former Member
0 Kudos

i agree with Wolfgang Valtin

here is piece of code that works for u ..


FORM KOBED_998.
sy-subrc = 4.

if ( ( komk-vkorg = '1111' ) and ( komp-zzmtpos = 'DIEN' ) ) 
and ( ( komp-pstyv = 'ZSQ1' ) or
( komp-pstyv = 'ZSQA' ) or
( komp-pstyv = 'ZSQC' ) or
( komp-pstyv = 'ZSQE' ) or
( komp-pstyv = 'ZSQF' ) or
( komp-pstyv = 'ZSM' ) or
( komp-pstyv = 'ZS1' ) or
( komp-pstyv = 'ZSA' ) or
( komp-pstyv = 'ZSC' ) or
( komp-pstyv = 'ZSE' ) or
( komp-pstyv = 'ZSF' ) or
( komp-pstyv = 'ZG2N' ) ) .
sy-subrc = 0.
endif.
ENDFORM.
FORM KOBEV_998.
ENDFORM.

Answers (1)

Answers (1)

Former Member
0 Kudos

Pls check if this pricing routine is active or not firstly.

Thanks,

Anita