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

Is it correct statement?

Former Member
0 Likes
567

Hi,

Is it correct statement for below code?

<b>Statement :</b>If the document type(FKART) of the input structure is not empty and does not contains any of the following doocument types “B1, B1E, B2, B2E, B3, B3E, B4, BK1, BK3, FXG, G2, G2S, JGL, RE, VLG2, BM1, BM3, FXL, JLL or L2” .

<b>Code</b> :

Ranges : r_fkart for CE0_M200-fkart.

r_fkart-sign = 'I'.

r_fkart-option = 'EQ'.

r_fkart-low = 'B1'.

Append r_fkart.

r_fkart-sign = 'I'.

r_fkart-option = 'EQ'.

r_fkart-low = 'B1E'.

Append r_fkart. -


Etc.....

IF NOT CE0_M200-FKART IN r_fkart.

<b>statement</b>:

if the document type(FKART) of the input structure is not empty and contains any one the following document type “B1, B1E, B2, B2E, B3, B3E, B4, BK1, BK3, FXG,G2, G2S, JGL, RE, VLG2, BM1, BM3, FXL, JLL or L2 .

Code<b></b> ElseiF CE0_M200-FKART IN r_fkart.

Is it correct?Please give me suggestions?

Sudhakar

Message was edited by:

suhhakar goud goud

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
543

It seems correct,the only proposition i can think about it's to group B1-B4 in

r_fkart-sign = 'I'.

r_fkart-option = 'BT'.

r_fkart-low = 'B1'.

r_fkart-low = 'B4'.

Append r_fkart.

to save code space

Regards

Yossi

4 REPLIES 4
Read only

Former Member
0 Likes
543

yes. i think correct.

Read only

Former Member
0 Likes
544

It seems correct,the only proposition i can think about it's to group B1-B4 in

r_fkart-sign = 'I'.

r_fkart-option = 'BT'.

r_fkart-low = 'B1'.

r_fkart-low = 'B4'.

Append r_fkart.

to save code space

Regards

Yossi

Read only

Clemenss
Active Contributor
0 Likes
543

Hi,

yes, looks good. But do't miss the "not empty" condition (NOT IN ... includes empty!)

for better overview, you may do


data:
  r_fkart type range of CE0_M200-fkart.
perform insert_range using 'IEQ':
  'B1'   '' CHANGING r_fkart,
  'B1E'  '' CHANGING r_fkart,
  'B2'   '' CHANGING r_fkart,
  'B2E'  '' CHANGING r_fkart,
  'B3'   '' CHANGING r_fkart,
  'B3E'  '' CHANGING r_fkart,
  'B4'   '' CHANGING r_fkart,
  'BK1'  '' CHANGING r_fkart,
  'BK3'  '' CHANGING r_fkart,
  'FXG'  '' CHANGING r_fkart,
  'G2'   '' CHANGING r_fkart,
  'G2S'  '' CHANGING r_fkart,
  'JGL'  '' CHANGING r_fkart,
  'RE'   '' CHANGING r_fkart,
  'VLG2' '' CHANGING r_fkart,
  'BM1'  '' CHANGING r_fkart,
  'BM3'  '' CHANGING r_fkart,
  'FXL'  '' CHANGING r_fkart,
  'JLL'  '' CHANGING r_fkart,
  'L2'   '' CHANGING r_fkart.
IF CE0_M200-FKART NOT IN r_fkart AND CE0_M200-FKART is NOT INITIAL.
* ...
ElseiF CE0_M200-FKART IN r_fkart.
* ...
ENDIF

*&---------------------------------------------------------------------*
*&      Form  insert_range
*&---------------------------------------------------------------------*
*       insert selection range - handles any range type "CLI20061218
*----------------------------------------------------------------------*
FORM insert_range  USING    p_signopt     TYPE c            "#EC CALLED
                            p_low         TYPE any
                            p_high        TYPE any
                   CHANGING pt_range      TYPE table.
  FIELD-SYMBOLS:
    <range>                               TYPE ANY,
    <sign>                                TYPE ANY,
    <option>                              TYPE ANY,
    <low>                                 TYPE ANY,
    <high>                                TYPE ANY.
  DATA:
    lv_ref                                TYPE REF TO data.
  CHECK NOT ( p_signopt IS INITIAL AND
              p_low     IS INITIAL AND
              p_high    IS INITIAL ).
  CREATE DATA lv_ref                      LIKE LINE OF pt_range.
  ASSIGN lv_ref->* TO <range>.
  CHECK sy-subrc                          = 0.
  ASSIGN COMPONENT 'SIGN' OF STRUCTURE <range> TO <sign>.
  CHECK sy-subrc                          = 0.
  ASSIGN COMPONENT 'OPTION' OF STRUCTURE <range> TO <option>.
  CHECK sy-subrc                          = 0.
  ASSIGN COMPONENT 'LOW' OF STRUCTURE <range> TO <low>.
  CHECK sy-subrc                          = 0.
  ASSIGN COMPONENT 'HIGH' OF STRUCTURE <range> TO <high>.
  CHECK sy-subrc                          = 0.
  <sign>                                  = p_signopt(1).
  <option>                                = p_signopt+1(2).
  <low>                                   = p_low.
  <high>                                  = p_high.
  READ TABLE pt_range WITH KEY table_line = <range> BINARY SEARCH
    TRANSPORTING NO FIELDS.
  CHECK sy-subrc                          <> 0.
  INSERT <range> INTO pt_range INDEX sy-tabix.
ENDFORM.                    " insert_range

Message was edited by:

Clemens Li

Read only

Former Member
0 Likes
543

Thanks for replies.I will assign points.

Thanks & Regards,

T.sudhakar