Post

CORRESPONDING with Lookup Table in ABAP

Learn how to use the CORRESPONDING operator with a lookup table in ABAP to populate fields from another internal table during mapping.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
"𝗖𝗢𝗥𝗥𝗘𝗦𝗣𝗢𝗡𝗗𝗜𝗡𝗚 𝘄𝗶𝘁𝗵 𝗹𝗼𝗼𝗸𝘂𝗽 𝘁𝗮𝗯𝗹𝗲.
"The CORRESPONDING operator can be used to create a new data object from a structured data object, such as an internal table or structure, by copying the values of fields with matching names. 
"Additionally, the operator can perform a lookup on another internal table to populate specific field values.

TYPES: BEGIN OF ty_employee,
  emp_id       TYPE pernr_d,
  emp_name     TYPE text100,
  manager_id   TYPE pernr_d,
  manager_name TYPE text100,
  emp_position TYPE text100,
END OF ty_employee,
tt_employee TYPE TABLE OF ty_employee WITH EMPTY KEY,
BEGIN OF ty_manager,
  mgr_id   TYPE pernr_d,
  mgr_name TYPE text100,
END OF ty_manager.

DATA lt_managers TYPE HASHED TABLE OF ty_manager WITH UNIQUE KEY mgr_id.
DATA lt_employees TYPE tt_employee.
DATA lt_emp_with_mgr_name TYPE tt_employee.

"Employee data w/o manager name
lt_employees = VALUE #( 
  ( emp_id = '1' emp_name = 'Name 1' emp_position = 'DEV_1' manager_id = '1' )
  ( emp_id = '2' emp_name = 'Name 2' emp_position = 'DEV_2' manager_id = '2' ) ).

"Manager data - Lookup Table
lt_managers = VALUE #( 
  ( mgr_id = '1' mgr_name = 'Manager 1' )
  ( mgr_id = '2' mgr_name = 'Manager 2' ) ).

"Employee data with manager name from lookup table
lt_emp_with_mgr_name = CORRESPONDING #( lt_employees 
  FROM lt_managers USING manager_id 
  MAPPING manager_name = mgr_name ).

"Output
"EMP_ID   EMP_NAME  MANAGER_ID  MANAGER_NAME  EMP_POSITION
"00000001 Name 1    00000001    Manager 1     DEV_1
"00000002 Name 2    00000002    Manager 2     DEV_2
This post is licensed under CC BY 4.0 by the author.