yaramohamed78

select option test -v3 - FM

Jan 18th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 1.92 KB | None | 0 0
  1. FUNCTION Z_ASG_FN_SEARCH_TEST.
  2. *"----------------------------------------------------------------------
  3. *"*"Local Interface:
  4. *"  TABLES
  5. *"      Z_EMPID STRUCTURE  SELOPT
  6. *"----------------------------------------------------------------------
  7. DATA : emp_name LIKE ZASG_EMP-name,
  8.        emp_amount LIKE ZASG_SAL-amount,
  9.        emp_currency LIKE ZASG_SAL-currency,
  10.        where_statement TYPE STRING,
  11.        STR2 TYPE STRING, STR3 TYPE STRING,
  12.        counter TYPE INT1 VALUE 0,
  13.        errors TYPE INT1 VALUE 0.
  14.  
  15.  
  16. LOOP AT Z_EMPID.
  17.   counter = counter + 1.
  18.  IF Z_EMPID-OPTION = 'EQ'.
  19.    where_statement = 'e~id = Z_EMPID-LOW'.
  20.    CONCATENATE where_statement STR2 INTO where_statement.
  21.  ELSEIF Z_EMPID-OPTION = 'NE'.
  22.    STR2 = 'e~id <> Z_EMPID-LOW'.
  23.     CONCATENATE where_statement STR2 INTO where_statement.
  24.  ELSEIF Z_EMPID-OPTION = 'GT'.
  25.    STR2 = 'e~id > Z_EMPID-LOW'.
  26.     CONCATENATE where_statement STR2 INTO where_statement.
  27.   ELSEIF Z_EMPID-OPTION = 'LT'.
  28.     STR2 = 'e~id < Z_EMPID-LOW'.
  29.     CONCATENATE where_statement STR2 INTO where_statement.
  30.     ELSEIF Z_EMPID-OPTION = 'GE'.
  31.     STR2 = 'e~id >= Z_EMPID-LOW'.
  32.     CONCATENATE where_statement STR2 INTO where_statement.
  33.     ELSEIF Z_EMPID-OPTION = 'LE'.
  34.     STR2 = 'e~id <= Z_EMPID-LOW'.
  35.     CONCATENATE where_statement STR2 INTO where_statement.
  36.     ELSEIF Z_EMPID-OPTION = 'BT'.
  37.       STR2 = 'e~id BETWEEN Z_EMPID-LOW AND Z_EMPID-HIGH'.
  38.    CONCATENATE where_statement STR2  INTO where_statement.
  39.   ENDIF.
  40.   SELECT e~name s~amount s~currency
  41.     INTO (emp_name,emp_amount,emp_currency)
  42.   FROM (
  43.     ZASG_EMP AS e
  44.     INNER JOIN ZASG_SAL AS s ON e~id = s~empid
  45.     )
  46.     WHERE (where_statement).
  47.     WRITE : / emp_name , emp_amount , emp_currency.
  48.     ENDSELECT.
  49. *    If no id is found.
  50.    IF  SY-SUBRC <> 0.
  51.      errors = errors + 1.
  52.  ENDIF.
  53. ENDLOOP.
  54.  
  55. if errors = counter.
  56. MESSAGE ID 'ZINSERTION_ERRORS' TYPE 'I' NUMBER '007'.
  57. ENDIF.
  58.  
  59.  
  60. ENDFUNCTION.
Add Comment
Please, Sign In to add comment