Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

update IF Condition

Former Member
0 Likes
655

Dear Experts,

In case of Systems QM5 and PM5 we need to consider the compny codes additionally.

When

lc_logsys_QM5 and company code 1200 or 1400

lc_logsys_PM5 and company code 1200 or 1400

MOVE 'X' TO ls_it_poitem-gr_non_val.

When NOT company code 1200 and 1400 BUT ONLY lc_logsys_QM5

When NOT company code 1200 and 1400 BUT ONLY lc_logsys_PM5

DONT MOVE 'X' TO ls_it_poitem-gr_non_val.

How can the IF Statement be updated with to meet this requirement.

I kindly ask you for your support.

LOOP AT cs_po1_document-it_poitem INTO ls_it_poitem.

    lv_poitem_index = sy-tabix.

    IF ( is_control-iv_log_sys NE lc_logsys_Q2C AND

         is_control-iv_log_sys NE lc_logsys_P2C AND

         is_control-iv_log_sys NE lc_logsys_QYS AND

         is_control-iv_log_sys NE lc_logsys_PYS AND

         is_control-iv_log_sys NE lc_logsys_Q7J AND

         is_control-iv_log_sys NE lc_logsys_P7J AND

         is_control-iv_log_sys NE lc_logsys_Q6S AND

         is_control-iv_log_sys NE lc_logsys_P6S AND

         is_control-iv_log_sys NE lc_logsys_TXI AND

         is_control-iv_log_sys NE lc_logsys_QXI AND

         is_control-iv_log_sys NE lc_logsys_PXI AND

         is_control-iv_log_sys NE lc_logsys_TOS AND

         is_control-iv_log_sys NE lc_logsys_QOS AND

         is_control-iv_log_sys NE lc_logsys_POS and

         is_control-iv_log_sys NE lc_logsys_QM5 and

         is_control-iv_log_sys NE lc_logsys_PM5 ).

      MOVE 'X' TO ls_it_poitem-gr_non_val.

    ENDIF.

    MOVE 'X' TO ls_it_poitem-gr_ind.

    MOVE 'X' TO ls_it_poitem-ir_ind.

    MODIFY cs_po1_document-it_poitem FROM ls_it_poitem INDEX lv_poitem_index.

  ENDLOOP.

Best Regards

Alex

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
617

Hi Alexander,

Assuming you have company code variable in is_control structure , see the below code

LOOP AT cs_po1_document-it_poitem INTO ls_it_poitem.

    lv_poitem_index = sy-tabix.

    IF ( is_control-iv_log_sys NE lc_logsys_Q2C AND

         is_control-iv_log_sys NE lc_logsys_P2C AND

         is_control-iv_log_sys NE lc_logsys_QYS AND

         is_control-iv_log_sys NE lc_logsys_PYS AND

         is_control-iv_log_sys NE lc_logsys_Q7J AND

         is_control-iv_log_sys NE lc_logsys_P7J AND

         is_control-iv_log_sys NE lc_logsys_Q6S AND

         is_control-iv_log_sys NE lc_logsys_P6S AND

         is_control-iv_log_sys NE lc_logsys_TXI AND

         is_control-iv_log_sys NE lc_logsys_QXI AND

         is_control-iv_log_sys NE lc_logsys_PXI AND

         is_control-iv_log_sys NE lc_logsys_TOS AND

         is_control-iv_log_sys NE lc_logsys_QOS AND

         is_control-iv_log_sys NE lc_logsys_POS )

           MOVE 'X' TO ls_it_poitem-gr_non_val.

else if

  is_control-iv_log_sys  EQ lc_logsys_QM5 and ( is_control-company_code eq '1200'  OR  is_control-company_code eq '1400')  OR

  is_control-iv_log_sys  EQ lc_logsys_PM5 and ( is_control-company_code eq '1200'  OR  is_control-company_code eq '1400')

  MOVE 'X' TO ls_it_poitem-gr_non_val.

    ENDIF.

    MOVE 'X' TO ls_it_poitem-gr_ind.

    MOVE 'X' TO ls_it_poitem-ir_ind.

    MODIFY cs_po1_document-it_poitem FROM ls_it_poitem INDEX lv_poitem_index.

  ENDLOOP.

BR.

Message was Tweaked by: Ankit Maskara

5 REPLIES 5
Read only

Former Member
0 Likes
618

Hi Alexander,

Assuming you have company code variable in is_control structure , see the below code

LOOP AT cs_po1_document-it_poitem INTO ls_it_poitem.

    lv_poitem_index = sy-tabix.

    IF ( is_control-iv_log_sys NE lc_logsys_Q2C AND

         is_control-iv_log_sys NE lc_logsys_P2C AND

         is_control-iv_log_sys NE lc_logsys_QYS AND

         is_control-iv_log_sys NE lc_logsys_PYS AND

         is_control-iv_log_sys NE lc_logsys_Q7J AND

         is_control-iv_log_sys NE lc_logsys_P7J AND

         is_control-iv_log_sys NE lc_logsys_Q6S AND

         is_control-iv_log_sys NE lc_logsys_P6S AND

         is_control-iv_log_sys NE lc_logsys_TXI AND

         is_control-iv_log_sys NE lc_logsys_QXI AND

         is_control-iv_log_sys NE lc_logsys_PXI AND

         is_control-iv_log_sys NE lc_logsys_TOS AND

         is_control-iv_log_sys NE lc_logsys_QOS AND

         is_control-iv_log_sys NE lc_logsys_POS )

           MOVE 'X' TO ls_it_poitem-gr_non_val.

else if

  is_control-iv_log_sys  EQ lc_logsys_QM5 and ( is_control-company_code eq '1200'  OR  is_control-company_code eq '1400')  OR

  is_control-iv_log_sys  EQ lc_logsys_PM5 and ( is_control-company_code eq '1200'  OR  is_control-company_code eq '1400')

  MOVE 'X' TO ls_it_poitem-gr_non_val.

    ENDIF.

    MOVE 'X' TO ls_it_poitem-gr_ind.

    MOVE 'X' TO ls_it_poitem-ir_ind.

    MODIFY cs_po1_document-it_poitem FROM ls_it_poitem INDEX lv_poitem_index.

  ENDLOOP.

BR.

Message was Tweaked by: Ankit Maskara

Read only

Former Member
0 Likes
617

Hi,

   Try this..

IF is_control-iv_log_sys EQ lc_logsys_QM5 OR

   is_control-iv_log_sys EQ lc_logsys_PM5.

  IF conpany_code eq '1200' OR

     conpany_code eq '1400'.

    MOVE 'X' TO ls_it_poitem-gr_non_val.

  ENDIF.

ENDIF.

Regards,

Mordhwaj

Read only

Former Member
0 Likes
617

Hi alexander,

use case endcae instead of multiple if statements.

case lc_logsys_

when  'QM5 '.

if company_code = '200'.

endif.

when 'PM5'.

if company_code = '200'.

endif.

endcase.

Read only

0 Likes
617

this will also add to better performance when compared to multiple if statements.

Read only

Former Member
0 Likes
617

Hi Alex,

You can put conditions like below

lv_company_code = cs_po1_document-is_poheader-comp_code.

LOOP AT cs_po1_document-it_poitem INTO ls_it_poitem.

    lv_poitem_index = sy-tabix.

    IF ( is_control-iv_log_sys NE lc_logsys_Q2C AND

         is_control-iv_log_sys NE lc_logsys_P2C AND

         is_control-iv_log_sys NE lc_logsys_QYS AND

         is_control-iv_log_sys NE lc_logsys_PYS AND

         is_control-iv_log_sys NE lc_logsys_Q7J AND

         is_control-iv_log_sys NE lc_logsys_P7J AND

         is_control-iv_log_sys NE lc_logsys_Q6S AND

         is_control-iv_log_sys NE lc_logsys_P6S AND

         is_control-iv_log_sys NE lc_logsys_TXI AND

         is_control-iv_log_sys NE lc_logsys_QXI AND

         is_control-iv_log_sys NE lc_logsys_PXI AND

         is_control-iv_log_sys NE lc_logsys_TOS AND

         is_control-iv_log_sys NE lc_logsys_QOS AND

         is_control-iv_log_sys NE lc_logsys_POS  ).

***     is_control-iv_log_sys NE lc_logsys_QM5 and 

***     is_control-iv_log_sys NE lc_logsys_PM5 ).

      MOVE 'X' TO ls_it_poitem-gr_non_val.

    ENDIF.

*--------------------------------

    IF  is_control-iv_log_sys  EQ  lc_logsys_QM5  OR

        is_control-iv_log_sys   EQ  lc_logsys_PM5.

     

       IF  lv_company_code EQ lc_1200 OR

            lv_company_code EQ lc_1400.            

          MOVE 'X' TO ls_it_poitem-gr_non_val. 

       ELSE.      

           ls_it_poitem-gr_non_val = space.

       ENDIF.       

    ENDIF.

*---------------------------------

    MOVE 'X' TO ls_it_poitem-gr_ind.

    MOVE 'X' TO ls_it_poitem-ir_ind.

    MODIFY cs_po1_document-it_poitem FROM ls_it_poitem INDEX lv_poitem_index.

  ENDLOOP.

Regards

Praveen