전체 글 (197) 썸네일형 리스트형 [SAP/ABAP] TABLE MAX KEY FIELD SAP TABLE에 KEY FIELD는 몇 개나 설정할 수 있을까?SAP에서 테이블의 키필드를 최대 16개까지 설정할 수 있고, 테이블 키의 최대 길이는 255를 넘을 수 없다.만약 16개 이상 키필드를 체크한 후 TABLE ACTIVE를 시도하면 아래와 같이 에러가 뜬다. 참고 ) https://community.sap.com/t5/application-development-discussions/max-fields-in-a-z-table/m-p/5666260 [ABAP/FUNCTION] 오늘 날짜 기준 주차 구하기 DATE_GET_WEEK [ABAP] Purchase Order Lock : ENQUEUE_EMEKKOE, DEQUEUE_EMEKKOE 개발을 하다 보면 CBO 프로그램 개발을 통해 구매오더를 변경하는 경우가 있는데,이때 누가 구매오더를 잡고 있다면 개발 프로그램에서는 해당 구매오더에 접근할 수 없어 데이터 변경이 불가하다.내가 이 함수를 찾게 된 계기는 하나의 구매오더에 대해 BAPI를 두 번 돌려야 하는 상황에서 첫 번째 BAPI가 돌아가 고난 후 두 번째 BAPI가 돌아갈 때 그 잠깐 사이에 혹시나 누가 구매오더를 조작하게 될지 몰라(그런 경우는 거의 없겠지만... 만일의 상황에 대비하기 위해..... )이리저리 검색하다 알게 된 함수이다.구매오더 잠금을 설정하는 함수는 'ENQUEUE_EMEKKOE'구매오더 잠금을 해제하는 함수는 'DEQUEUE_EMEKKOE'아래와 같이 사용할 수 있다. 테스트하기 위해 두 개의 함수 사이에 디.. [ABAP] Dynamic Selection Screen Function Key 프로그램을 개발하다 보면 하나의 프로그램에서 여러 개의 트랜잭션을 사용하는 경우가 있다. 이럴 때 T-CODE에 따라 Selection Screen의 Function Key를 다르게 보여주기도 한다. 엑셀 업로드 프로그램을 만든다 가정해 보자. 하나의 프로그램에 트랜잭션을 2개 만들어두고 Selection Screen에 Function Key를 2개 만든다. Initialization Event에서 위에서 선언한 Function Key의 아이콘과 이름을 지정한다. 이를 실행해 보면 이렇게 두 가지 양식을 다운로드할 수 있는 아이콘이 생성된 것을 확인할 수 있다. 그렇다면 이렇게 생성된 아이콘을 T-CODE별로 해당하는 아이콘만 나타낼 수 있도록 한다면 SELECTION-SCREEN OUTPUT EVENT.. [ABAP/Error Log] CX_SY_READ_SRC_LINE_TOO_LONG 프로그램을 개발하고 테스트 실행하는 도중 아래와 같은 덤프가 발생했다. FM 'REUSE_ALV_FIELDCATALOG_MERGE' 함수를 실행하면 이 덤프가 발생하기도 하는데, 덤프가 발생한 이유는 메인 프로그램에서 72자를 넘겼기 때문이다. 내 경우 바로 이 부분이 72자를 넘어 77자가 되었기 때문인데, 이렇게 코드를 수정하고 프로그램을 실행하니 이상 없이 프로그램이 잘 실행되는 것을 확인할 수 있었다. [ABAP] CHECK 구문 CHECK 구문이 LOOP외부에 있고, 해당 구문이 false인 경우 현재 처리 블록을 종료한다. 만약, subroutine안에 check구문이 있다면, check구문이 참일 경우 check 하위 구문을 실행하지만, false일 경우 하위 구문을 실행하지 않고 해당 서브루틴을 종료한다. CHECK RA_BTN02 IS NOT INITIAL. 이 구문의 경우, RA_BTN02라는 변수가 값이 있다면(IS NOT INITIAL) 하위 구문을 실행하고, 값이 없다면(IS INITIAL) 아래 구문을 실행하지 않는다. 이와 동일한 표현으로는 RETURN구문을 사용할 수 있는데, IF RA_BTN02 IS NOT INITIAL. RETURN. ENDIF. 이런 방식으로도 사용이 가능하다. PERFORM MAKE_.. [ABAP] Exiting Loops (EXIT, CONTINUE, CHECK) 1. EXIT EXIT 구문이 LOOP내에 지정되면 현재 단계의 LOOP를 종료한다. 프로그램 흐름은 루프문을 닫은 후 다시 시작된다. EXIT 구문을 LOOP 밖에서 사용한다면 현재 처리 블록을 종료하기 때문에 주의해서 사용해야 한다. 2. CONTINUE CONTINUE 구문은 LOOP 내에서만 사용할 수 있다. 사용되는 경우 현재 루프가 즉시 종료되고, 프로그램 흐름 또한 이후 루프를 계속 패스한다. 3. CHECK CHECK 구문이 LOOP안에서 실행되고 조건이 맞지 않는 경우 CHECK문은 현재 LOOP를 즉시 종료하고 프로그램은 다음 루프를 계속 패스한다. 루프 외부에서의 CHECK 구문은 현재 처리 블록을 종료하지만, LOOP안에서 사용하는 것이 가장 좋다. 이 외에도 LOOP를 탈출하는 방.. [ABAP] Obsolete Syntax - REFRESH REFRESH 인터널 테이블의 모든 행을 삭제하는 구문 인터널 테이블 유형 더 이상 사용하지 않는 문법 권장하는 문법 헤더라인이 있는 경우 REFRESH itab. CLEAR itab[]. 헤더라인이 없는 경우 REFRESH itab. CLEAR itab. FREE itab. ABAP을 공부하며 더 이상 사용하지 않는 구문 정리 앞으로도 꾸준히 공부하며 SAP에서 과거에는 사용했지만 앞으로는 사용하지 않는 문법에 대해 정리할 예정이다. 이전 1 2 3 4 ··· 25 다음