300x250
# APPEND의 New Syntax..?
# Value문은 ABAP 7.40 버전 이후부터 New Syntax으로 쓸 수 있는 방법이 나오게 되었다.
# 여러 New Syntax가 나왔지만 여기서는 Append에 관련한 Value에 대해서 알아보자.
# 여기서는 Workarea을 스트럭처로.. 참고..
# 그리고 항상 조심해야 하는 것은 New Syntax은 띄어쓰기가 가장 중요하다.
# Append -> VALUE...
# 이거를 Append의 New Syntax라고 보기보다는 Append의 업그레이드 버전이라고 보면 될 것 같다.
# 그 이유는 Append에 없는 기능을 사용하기도 하며, Append 가지고 있는 기능을 쓰기도 하기 때문이다.
우선적으로 크게 봐야 할 기능들은
- 스트럭처 값 넣기
- 인터널 테이블 값 넣기
- # 에 대해서
이다..!
## 스트럭처에 값 넣기
# 01. 여기서는 Append 기능이 아닌 Value에 대한 기능이다.
# Value 기능을 통해 스트럭처에 다음과 같이 값을 넣을 수 있다.
# 02. Value문을 쓰다가 이러한 상황이 올 수가 있다.
# 현재 다음과 같이 스트럭처에 값이 있을 때? 변경된 값이 생겨서 변경해야 할 때..
# 그럴 때 위에서 썼던 것처럼 하면 기존에 있던 값들은 초기화되고 변경된 값만 들어가게 된다.
# 정말 간단한 예시이니 참고 정도만 #
# 02-1. [ LS_VALUE-CARRID = PA_ID ] 부분을 Value문으로 변경을 하게 된다면? 다음과 같이 설정을 해야한다.
# BASE 옵션 #
# "기존에 있던 값들은 BASE 옵션을 통해서 값은 그대로(BASE)가고 나머지는 추가로 한다" 라고 생각하면 된다.
DATA:
LS_VALUE TYPE SCARR.
LS_VALUE = VALUE #(
CARRID = 'AA'
CARRNAME = '감자'
CURRCODE = 'KRW'
URL = 'https://potato98.tistory.com/'
).
PARAMETERS:
PA_ID TYPE SCARR-CARRID.
LS_VALUE = VALUE #(
BASE LS_VALUE
CARRID = PA_ID
).
WRITE:
/ ls_value-CARRID,
/ ls_value-CARRNAME,
/ ls_value-CURRCODE,
ls_value-URL .
## 인터널 테이블에 값 넣기
# 01. 여기서는 Append 기능을 사용하는 Value 기능이다.
# 스트럭처에 넣는 거와 차이점은 " ( ) " 괄호의 개수이다.
# 더 자세히 보면 빨간 상자가 하나의 스트럭처라고 보면 된다.
# 만약 여러 개의 스트럭처를 가지고 있으면 다음과 같이 나오게 되는 것이다.
# 02. 인터널 테이블 넣을 때 Value 또한 BASE 옵션을 통해서 기존에 있던 값을 배제하고 값을 넣을 수 있다.
DATA:
LT_VALUE TYPE TABLE OF SCARR.
LT_VALUE = VALUE #(
(
CARRID = 'AA'
CARRNAME = '감자'
CURRCODE = 'KRW'
URL = 'https://potato98.tistory.com/'
)
(
CARRID = 'GJ'
CARRNAME = '여행'
CURRCODE = 'KRW'
URL = 'https://GAMJA.com/'
)
).
LT_VALUE = VALUE #( BASE LT_VALUE
(
CARRID = 'VA'
CARRNAME = '추가'
CURRCODE = 'KRW'
URL = 'https://ADD.com/'
)
).
# 03. Value문을 통해서 정말 다양하게 조작? 할 수 있다. 예를 들어 날짜를 이런 식으로 사용해서 Value문을 사용할 수 있다.
# 넘어가기 전에 Header Line이 있는 인터널 테이블이면 꼭 " [ ] " 써줘야 에러가 발생 안 한다.
## " # " 이란?
# 정말 간단하게 " 그림자 또는 따라간다 " 라고 생각하면 될 것 같다.
# 타입을 추론할 수 있는 경우? # 기호를 생략 가능하다.
# 정식적인 명칭은 Easy ABAP 3.0을 보면 될 것이다.
- 다음과 같이 " # "이 타입을 추론할 수 있는 경우에만 이런 식으로 사용할 수 있다.
- " # "은 항상 앞에 있는 변수( 스트럭처, 인터널 테이블) 타입을 추론한다.
- 만약 다음과 같이 추론할 수 없는 경우에는 " # " 대신 타입을 지정해주면 된다.
- 중요한 것은 추론할 수 없는 인터널 테이블(?)을 " # " 대신 다음과 같이 타입을 지정하려고 하면
오류가 떨어지니 참고 바란다.
끝..!!!!
728x90
'.SAP > ..ABAP' 카테고리의 다른 글
SAP Excel Upload( ABAP2XLSX용 ) (5) | 2024.11.14 |
---|---|
SAP E-Mail(이메일) 발송 ( EXCEL, PDF 첨부파일 ) (0) | 2024.11.12 |
SAP Function Module 에서 Commit Work 하기 (0) | 2024.11.11 |
SAP Function Module - 2 정리 (0) | 2024.11.10 |
SAP 타임스태프( 엑셀 -> SAP ) 변경 (1) | 2024.11.09 |