λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ§‘‍πŸ’Ό SAP/ABAP

[SAP ABAP] MOVE TO λž€? MOVE-CORRESPONDING λž€? (예제 포함)

by Jay Din 2023. 12. 5.
728x90
λ°˜μ‘ν˜•
λ°˜μ‘ν˜•

1️⃣ MOVE와 MOVE-CORRESPONDING μš”μ•½

ꡬ뢄 MOVE ꡬ문 MOVE-CORRESPONDING ꡬ문
κΈ°λ³Έ κ°œλ… ν•œ λ³€μˆ˜μ˜ 값을 λ‹€λ₯Έ λ³€μˆ˜μ— 볡사 `λ™μΌν•œ ν•„λ“œλͺ…`을 κ°€μ§„ 두 ꡬ쑰체 κ°„ κ°’ 볡사
μš©λ„ 단일 λ³€μˆ˜ κ°„μ˜ 데이터 이동 ꡬ쑰체 λ˜λŠ” 인터널 ν…Œμ΄λΈ” κ°„ 데이터 이동
볡사 λŒ€μƒ κ°œλ³„ λ³€μˆ˜ κ΅¬μ‘°μ²΄λ‚˜ 인터널 ν…Œμ΄λΈ”
ν•„λ“œ λ§€ν•‘ 직접 μ§€μ •λœ λ³€μˆ˜μ— κ°’ 볡사 λ™μΌν•œ μ΄λ¦„μ˜ ν•„λ“œλ§Œ μžλ™μœΌλ‘œ λ§€ν•‘λ˜μ–΄ 볡사
μž‘λ™ 방식 μ™Όμͺ½ λ³€μˆ˜μ— 였λ₯Έμͺ½ λ³€μˆ˜ 값을 κ·ΈλŒ€λ‘œ 볡사 ꡬ쑰체의 동일 ν•„λ“œλΌλ¦¬ 볡사
데이터 μœ ν˜• λ³€ν™˜ 지원 지원
μœ μ—°μ„± λͺ¨λ“  ν•„λ“œ λ˜λŠ” 단일 ν•„λ“œ 볡사 κ°€λŠ₯ ν•„λ“œ 이름이 λ™μΌν•œ ν•„λ“œλ§Œ μ„ νƒμ μœΌλ‘œ 볡사
μ£Όμš” μ‚¬μš© μ‹œλ‚˜λ¦¬μ˜€ κ°œλ³„ λ³€μˆ˜ κ°„ κ°’ 이동 κ΅¬μ‘°μ²΄λ‚˜ 인터널 ν…Œμ΄λΈ”μ˜ 곡톡 ν•„λ“œ 볡사
μ„±λŠ₯ 일반적으둜 빠름 볡사 λŒ€μƒ ν•„λ“œλ₯Ό 탐색해야 ν•˜λ―€λ‘œ μ•½κ°„ 느림

 

2️⃣ MOVE λž€?

MOVEλŠ” 데이터λ₯Ό ν•œ λ³€μˆ˜μ—μ„œ λ‹€λ₯Έ λ³€μˆ˜λ‘œ 직접 λ³΅μ‚¬ν•˜λŠ”λ° μ‚¬μš©λ˜λŠ” κΈ°λ³Έ λͺ…λ Ήμ–΄μž…λ‹ˆλ‹€.데이터λ₯Ό ν• λ‹Ήν•  λ•Œ 데이터 μœ ν˜• λ³€ν™˜κ³Ό 길이 쑰정이 μžλ™μœΌλ‘œ μ΄λ£¨μ–΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

νŠΉμ§•

  1. κ°œλ³„ λ³€μˆ˜ κ°„μ˜ κ°’ 볡사
    • MOVEλŠ” λ³€μˆ˜ κ°„μ˜ κ°’ 볡사에 μ‚¬μš©λ˜λ©°, κ΅¬μ‘°μ²΄λ‚˜ 인터널 ν…Œμ΄λΈ” κ°„μ˜ λ³΅μ‚¬λŠ” μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  2. 데이터 μœ ν˜• λ³€ν™˜
    • 데이터 μœ ν˜•μ΄ λ‹€λ₯΄λ”라도 MOVEꡬ문을 μ‚¬μš©ν•˜λ©΄ μžλ™μœΌλ‘œ λ³€ν™˜λ©λ‹ˆλ‹€.
    • 예: μ •μˆ˜ν˜•μ—μ„œ λ¬Έμžμ—΄ν˜•μœΌλ‘œ λ³€ν™˜ μ‹œ, 값이 λ¬Έμžμ—΄λ‘œ λ³€ν™˜λ¨.
  3. λͺ…μ‹œμ  ν• λ‹Ή
    • 볡사할 λŒ€μƒκ³Ό 원본을 λͺ…μ‹œμ μœΌλ‘œ μ§€μ •ν•©λ‹ˆλ‹€.

 

MOVE μ‚¬μš© 예제

DATA: source_variable TYPE i,      " μ •μˆ˜ν˜• λ³€μˆ˜ μ„ μ–Έ
      destination_variable TYPE i. " μ •μˆ˜ν˜• λ³€μˆ˜ μ„ μ–Έ

source_variable = 10.            " 값을 ν• λ‹Ή

MOVE source_variable TO destination_variable. " κ°’ 볡사

WRITE: / 'Source Variable:', source_variable,
       / 'Destination Variable:', destination_variable.

μ‹€ν–‰ν™”λ©΄

 

예제 μ„€λͺ…

  1. source_variable μ΄λΌλŠ” μ •μˆ˜ν˜• λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κ³  값을 10으둜 μ„€μ •ν•©λ‹ˆλ‹€.
  2. MOVE λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ source_variable 의 값을 destination_variable 둜 μ΄λ™μ‹œν‚΅λ‹ˆλ‹€.
  3. 이 μ˜ˆμ œμ—μ„œλŠ” source_variable 에 ν• λ‹Ήλœ 값이 10이 destination_variable 둜 λ³΅μ‚¬λ˜μ–΄, 두 λ³€μˆ˜λŠ” λ™μΌν•œ 값을 κ°€μ§€κ²Œ λ©λ‹ˆλ‹€.

주의 ν•΄μ•Ό ν•  μ€‘μš”ν•œ 점은 MOVE λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•  λ•Œ, ABAP은 μžλ™μœΌλ‘œ 데이터 μœ ν˜• λ³€ν™˜μ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

즉, μ„œλ‘œ λ‹€λ₯Έ 데이터 μœ ν˜• 간에도 MOVE λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ 값을 μ΄λ™μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

 

데이터 μœ ν˜•μ΄ λ‹€λ₯Έ κ°’ MOVE μ˜ˆμ‹œ

i_int λŠ” i(μ •μˆ˜) νƒ€μž…μ΄κ³ , s_str 은 string(λ¬Έμžμ—΄) νƒ€μž…μž…λ‹ˆλ‹€.

i_int 에 10을 ν• λ‹Ήν•œ ν›„, s_str 에 값을 ν• λ‹Ήν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

DATA: i_int TYPE i,
      s_str TYPE string.

i_int = 10.

MOVE i_int TO s_str.

WRITE: / 'i_int: ', i_int,
      / 's_str:', s_str.

μ‹€ν–‰ν™”λ©΄

 

μ„œλ‘œ λ‹€λ₯Έ 데이터 μœ ν˜• 간에도 μžλ™μœΌλ‘œ 데이터 μœ ν˜•μ„ λ³€ν™˜ν•˜μ—¬ 값을 ν• λ‹Ήν•©λ‹ˆλ‹€.

 

3️⃣ MOVE-CORRESPONDING λž€?

MOVE-CORRESPONDING 은 두 ꡬ쑰체(Structure) λ˜λŠ” 인터널 ν…Œμ΄λΈ” 간에 ν•„λ“œ 이름이 λ™μΌν•œ 경우 ν•΄λ‹Ή ν•„λ“œλ“€ 간에 값을 λ³΅ν•˜λŠ” λͺ…λ Ήμ–΄μž…λ‹ˆλ‹€.

 

νŠΉμ§•

  1. ν•„λ“œ 이름 기반 볡사
    • κ΅¬μ‘°μ²΄λ‚˜ 인터널 ν…Œμ΄λΈ”μ—μ„œ ν•„λ“œ 이름이 λ™μΌν•œ ν•„λ“œλ§Œ λ³΅μ‚¬λ©λ‹ˆλ‹€.
    • ν•„λ“œ 이름이 λ‹€λ₯Ό 경우 값이 λ³΅μ‚¬λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  2. 선택적 볡사
    • λ™μΌν•œ μ΄λ¦„μ˜ ν•„λ“œλ§Œ μžλ™ λ§€ν•‘λ˜λ―€λ‘œ, 볡사 λŒ€μƒ ν•„λ“œκ°€ μ œν•œμ μž…λ‹ˆλ‹€.
  3. ꡬ쑰체 κ°„ 볡사
    • ν•œ κ΅¬μ‘°μ²΄μ—μ„œ λ‹€λ₯Έ ꡬ쑰체둜 데이터λ₯Ό μ‰½κ²Œ 이동할 수 μžˆμŠ΅λ‹ˆλ‹€.
  4. 데이터 μœ ν˜• λ³€ν™˜ 지원
    • MOVE와 λ§ˆμ°¬κ°€μ§€λ‘œ 데이터 μœ ν˜• λ³€ν™˜μ΄ μžλ™μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€.

 

MOVE-CORRESPONDING  μ‚¬μš© 예제

DATA: BEGIN OF SOURCE_STRUCTURE,
        FIELD1 TYPE I,
        FIELD2 TYPE STRING,
      END OF SOURCE_STRUCTURE,

      BEGIN OF DESTINATION_STRUCTURE,
        FIELD1 TYPE I,
        FIELD2 TYPE STRING,
      END OF DESTINATION_STRUCTURE.

SOURCE_STRUCTURE-FIELD1 = 100.
SOURCE_STRUCTURE-FIELD2 = 'ABAP Move-Corresponding Example'.

MOVE-CORRESPONDING SOURCE_STRUCTURE TO DESTINATION_STRUCTURE.

WRITE: / 'Source Structure:',  SOURCE_STRUCTURE-FIELD1, ',', SOURCE_STRUCTURE-FIELD2,
       / 'Destination Structure:', DESTINATION_STRUCTURE-FIELD1, ',', DESTINATION_STRUCTURE-FIELD2.

μ‹€ν–‰ν™”λ©΄

예제 μ„€λͺ…

  1. 두 개의 ꡬ쑰체( source_structure 와 destination_structure )λ₯Ό μ •μ˜ν•˜κ³  각각의 ν•„λ“œμ— 값을 ν• λ‹Ήν•©λ‹ˆλ‹€.
  2. MOVE-CORRESPONDING λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ source_structure 의 값을 destination_structure 에 λ³΅μ‚¬ν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ λ°©μ‹μœΌλ‘œ κ΅¬μ‘°μ²΄λ‚˜ ν…Œμ΄λΈ” 라인의 ν•„λ“œ 이름이 μΌμΉ˜ν•  경우 μžλ™μœΌλ‘œ 값이 λ³΅μ‚¬λ˜λ―€λ‘œ μ½”λ“œλ₯Ό κ°„κ²°ν•˜κ²Œ μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

MOVE_CORRESPONDING 데이터 μœ ν˜• λ³€ν™˜ 예제

ꡬ쑰체 GS_REN κ³Ό GS_INFO λŠ” ν•„λ“œ ꡬ쑰가 μ„œλ‘œ λ‹€λ¦…λ‹ˆλ‹€.

GS_REN κ΅¬μ‘°μ²΄μ—μ„œ GS_INFO ꡬ쑰체둜 데이터λ₯Ό ν• λ‹Ήν•˜κΈ° μœ„ν•΄μ„œλŠ” MOVE GS_REN-NAME TO GS_INFO-NAME. κ³Ό 같은 ꡬ문을 μ—¬λŸ¬ 번 μ‚¬μš©ν•˜μ—¬μ•Ό ν•˜λ‚˜ MOVE-CORRESPONDING ꡬ문으둜 ν•œλ²ˆμ— ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

MOVE-CORRESPONDING은 ν•„λ“œλͺ…이 같은 κ°’λ§Œ ν• λ‹Ήν•©λ‹ˆλ‹€.

REPORT ZABAP001 .

DATA : BEGIN OF GS_REN,
  NAME(20)  VALUE 'Jay Din',
  CITY(20)  VALUE'SEOUL',
  COUNTRY(10) VALUE 'KOREA',
  END OF GS_REN.

DATA : BEGIN OF GS_INFO,
  NAME(20),
  CITY(20),
  PHONE(10) VALUE '1521001234',
  END OF GS_INFO.

MOVE-CORRESPONDING GS_REN TO GS_INFO.
WRITE: / GS_INFO-NAME, GS_INFO-CITY, GS_INFO-PHONE.
λ°˜μ‘ν˜•

 

μ‹€ν–‰κ²°κ³Ό

 

gs_ren이 gs_info둜 값을 볡사할 λ•Œ,

gs_info의 ν•„λ“œλͺ…이 같은 name, city κ°’λ§Œ λ³΅μ‚¬λœ 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

4️⃣ μΆ”κ°€ 문법: INTO CORRESPONDING FIELDS OF

ν…Œμ΄λΈ”μ—μ„œ μ‚¬μš©ν•˜λŠ” κ°’ 볡사 INTO CORRESPONDING FIELDS OF κ°€ κΆκΈˆν•˜λ‹€λ©΄?

https://jay-din.tistory.com/248

 

[SAP ABAP] INTO CORRESPONDING FIELDS OF λž€? (예제 포함)

INTO CORRESPONDING FIELDS OF λž€? ABAPμ—μ„œ `SELECT` 문을 톡해 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ 데이터λ₯Ό μ‘°νšŒν•  λ•Œ `INTO CORRESPONDING FIELDS OF` μ ˆμ„ μ‚¬μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ ν…Œμ΄λΈ”μ˜ ν•„λ“œμ™€ 인터널 ν…Œμ΄λΈ”μ˜ ν•„λ“œλ₯Ό μ‰½κ²Œ λ§€

jay-din.tistory.com

 

 

728x90
λ°˜μ‘ν˜•