ABAP 에서 사용되는 용어들, 특히 JAVA 와 유사한 기능을 하는 용어들을 정리해보려 한다.
DATA 키워드를 사용해 변수를 선언하며, 데이터 타입과 길이를 명시함
DATA: age TYPE I VALUE 25, " 정수형 변수
name TYPE STRING VALUE 'John', " 문자열 변수
is_adult TYPE ABAP_BOOL. " 부울형 변수
IF age > 18.
is_adult = abap_true.
ELSE.
is_adult = abap_false.
ENDIF.
자바에서는 변수 선언 시 데이터 타입을 먼저 명시함
int age = 25;
String name = "John";
boolean isAdult = age > 18;
문자열 처리에 여러 내장 함수를 사용함
CONCATENATE, SPLIT, SHIFT, CONDENSE 등이 사용됨
문자열 처리에 String 클래스와 관련 메서드들을 사용함
concat(), split(), trim() 등의 메서드가 주로 사용됨
조건문은 IF ... ENDIF, CASE ... ENDCASE 형태로 사용됨
IF age > 18.
WRITE: / 'Adult'.
ELSE.
WRITE: / 'Not an Adult'.
ENDIF.
루프는 LOOP AT ...ENDLOOP 구조로 사용됨
DATA: lt_numbers TYPE TABLE OF I WITH EMPTY KEY,
lv_number TYPE I.
APPEND 1 TO lt_numbers.
APPEND 2 TO lt_numbers.
APPEND 3 TO lt_numbers.
APPEND 4 TO lt_numbers.
APPEND 5 TO lt_numbers.
LOOP AT lt_numbers INTO lv_number.
WRITE: / lv_number.
ENDLOOP.
조건문은 IF 또는 SWITCH로 구현됨
if (age > 18) {
System.out.println("Adult");
} else {
System.out.println("Not an Adult");
}
- 루프는 `for`, `while`, `foreach` 와 같은 구문으로 처리됨
```java
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}
함수 모듈 호출은 CALL FUNCTION 문으로 실행됨
메서드는 CALL METHOD 문을 사용하여 호출됨
FORM add_numbers USING a TYPE I
b TYPE I
CHANGING result TYPE I.
result = a + b.
ENDFORM.
DATA result TYPE I.
PERFORM add_numbers USING 5 10 CHANGING result.
WRITE: / result.
단순히 메소드이름()으로 호출함
클래스의 메소드는 object.메소드이름() 으로 호출함
public int addNumbers(int a, int b) {
return a + b;
}
int result = addNumbers(5, 10);
System.out.println(result);
예외처리는 TRY ... CATCH ... ENDTRY 구조를 사용하여 에러를 처리함
주로 함수 모듈이나 메서드 내에서 발생한 에러를 처리하는 데 사용됨
동일하게 try ... catch ... finally 구문을 사용함
** ABA 에서는 주로 SAP 시스템 내 특정 에러 처리를 위한 예외 구조가 있음
sy-subrc: 최근 실행된 명령의 성공 여부를 나타냄 (0은 성공, 4는 실패)
sy-datum: 현재 날짜를 저장하는 시스템 변수
시스템 변수 대신 명령의 성공 여부를 반환하는 boolean 값이나 직접 관리하는 변수를 사용함
Open SQL 을 사용하여 SAP 데이터베이스에 접근함
데이터는 내부 테이블 (lt_employees) 에 담고, LOOP AT 을 통해 순회함
DATA: lt_employees TYPE TABLE OF zemployees,
ls_employee TYPE zemployees.
SELECT * FROM zemployees INTO TABLE lt_employees.
LOOP AT lt_employees INTO ls_employee.
WRITE: / ls_employee-name.
ENDLOOP.
JDBC 또는 Hibernate 등을 사용하여 데이터베이스에 접근함
String query = "SELECT * FROM employees";
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
System.out.println(rs.getString("name"));
}