본문 바로가기

SAP/ABAP Tips

[ABAP] Dynamic SQL 6 ( UPDATE/DELETE clause,Rel6.10 ) 이글은 자료실에 있는 DynamicOpenSql 영문파일을 정리한 것이다. Dynamic Open SQL. 내역 : UPDATE/DELETE절을 이용한 동적처리 --------------------------------------------------------------------- 사전지식 : Oracle Native SQL사용가능( 집합함수를 사용할 줄 안다.) Oracle Procedure Exception처리를 해본 경험이 있다. 또는 Java/C++ Exception처리를 해본 경험이 있다. --------------------------------------------------------------------- 문법 : Rel6.10 이후 방식 DELETE FROM (table_clause..
[ABAP] Dynamic SQL 5 ( UPDATE/DELETE clause,Rel4.10 ) 이글은 자료실에 있는 DynamicOpenSql 영문파일을 정리한 것이다. Dynamic Open SQL. 내역 : UPDATE/DELETE절을 이용한 동적처리 --------------------------------------------------------------------- 사전지식 : Oracle Native SQL사용가능( 집합함수를 사용할 줄 안다.) --------------------------------------------------------------------- 문법 : Rel6.10 이전 방식임 명령 동적처리부분 FROM work_area DELETE ( ) FROM . UPDATE ( ) FROM . 단점 : 를 통해서 update/delete되어야 하기 때문에 를 명시적..
[ABAP] Dynamic SQL 4 ( Exception Handling ) 이글은 자료실에 있는 DynamicOpenSql 영문파일을 정리한 것이다. Dynamic Open SQL. 내역 : Exception Handling (예외처리). --------------------------------------------------------------------- 사전지식 : Oracle Native SQL사용가능( 집합함수를 사용할 줄 안다.) Oracle Procedure Exception처리를 해본 경험이 있다. 또는 Java/C++ Exception처리를 해본 경험이 있다. --------------------------------------------------------------------- 기술 : 가) Exception Handling DATA : xref typ..
[ABAP] Dynamic SQL 3 ( WHERE clause ) 이글은 자료실에 있는 DynamicOpenSql 영문파일을 정리한 것이다. Dynamic Open SQL. 내역 : SELECT clause, GROUP BY clause. HAVING clause. 문법 : SELECT (lv_select) FROM spfli GROUP BY (lv_group) HAVING (lv_having). SELECT절 : Alias를 사용할 수 있다. column명, 집합함수를 사용할 수 있다. GROUP BY절 : 집합함수의 구분자를 SELECT 맞추워 준다. HAVING절 : 집합함수에 조건을 걸때 사용한다. (Rel6.10 이상부터 사용가능) 기술 : 가) Dynamic Open SQL, 나) Field-Symbols 다) Database TableName을 넘기면 소속..
[ABAP] Dynamic SQL 2 ( SELECT/GROUP BY/HAVING clause ) 이글은 자료실에 있는 DynamicOpenSql 영문파일을 정리한 것이다. Dynamic Open SQL. 내역 : WHERE clause 문법 : SELECT * FROM spfli WHERE (lv_where). WHERE 절에 사용되는 형식은 아래와 같이 사용될 수 있다. 1) Character , Internal table ( embeded character ) Rel4.6D이하(권장) 2) String , Internal table ( embeded string ) Rel6.10이상(권장) => internal Table( 하기 사항을 생각한 후 선택한다) 장점 : Debugging하기가 유리한다. 단점 : 변수선언 등의 코딩라인 증가 기술 : 가) Dynamic Open SQL 프로그램 구동내..
[ABAP] Dynamic SQL 1 ( FROM clause,Rel4.10,One table) 이글은 자료실에 있는 DynamicOpenSql 영문파일을 정리한 것이다. Dynamic Open SQL. 내역 : FROM clause 기초다지기 (Rel4.6이전 버젼내역 설명, Rel6.10이후부터는 Join을 허용하므로 다음 강좌를보자). 사전지식 : Oracle Native SQL사용가능( 집합함수를 사용할 줄 안다.) 문법 : SELECT * FROM (lv_tabname). FROM절에서 사용되는 table이름 단독으로 사용된다. inner join, outter join등은 허용되지 않는다. 이 이야기는 결국 lv_tabname의 type이 internal table 필요가 없을음 알수있다 기술 : 가) Dynamic Open SQL 나) Data Object 참조선언 REF TO 다) F..
프로그램 CTS 버전 비교 - 1 기본적으로 SAP 자체에서는 생성 혹은 수정을 할때 CTS 라는 것을 생성하여 운영서버에 반영하는 등의 작업을 합니다. 그렇기 때문에 기본적으로 ABAP에서는 해당 CTS 번호를 가지고 있으며, 버전을 통해서 원복을 하거나 혹은 예전 버전의 프로그램들과 비교를 해볼 수 있습니다. 그렇다면 혹시 프로그램을 잘못 수정하고 예전에 버전에서 어떻 로직이었는지 확인해 볼 수 있겠고요. 혹은 전에 이상이 없었다는 프로그램에 문제가 생겼을때 잘못 수정한 부분이 없는지 체클를 할 때도 종종 사용가능 할 것입니다. 유틸리티 > 버전 > 버전관리 화면캡처는 정보가 있을 수도 있기 때문에 약산의 수정을 했습니다. 화면에 보시면 ‘DEV960’어쩌구로 시작하는 부분들이 CTS번호이며, 2013.03월부터 현재 5월달까지의 수..
Batch에서 상태 체크 T-CODE : SM37 SM37에서 프로그램이 하염없이 실행되나 프로세스 SM66, SM50에서 잡고 있지 않거나 혹은 실제 사용자가 직접 JOB을 CANCLE 하였는데, SM37에서는 여전히 활성화 되어 있는 상태일 경우, 해당job을 선택 –> JOB –> Check Status job의 상태가 변경 되어지는 것을 확인 할 수 있음.
INSERT [ACCEPTING DUPLICATE KEYS] INSERT a FROM TABLE b ACCEPTING DUPLICATE KEYS 보통의 INSERT 구문에서 KEY 값의 중복으로 TABLE에 넣을 때 SAP에서는 덤프가 떨어 지기 마련. 그런데 ACCEPTING DUPLICATE KEYS 구문을 사용하면 SY-SUBRC 값을 '4' 반환을 해주며, 덤프가 발생하지 않는다. 하지만 덤프가 떨어지지 않는다고 해서 실제 TABLE에 INSERT가 되지는 않는다.