본문 바로가기

SAP/SAP-ABAP10

::SAP-ABAP:: T-code: JDBG - SM37(Batch Schedule) 디버깅(Debugging) 안녕하세요. 피키로그입니다. SM36에서 생성한 Batch Job Schedule 혹은 Back ground job이 실패 했을 때 원인을 파악해야 할 때가 있지 않으신가요? Step1) Batch or Back ground 실행 한 프로그램에 Break Point를 설정합니다. Step2) SM37에서 배치가 실패한 내역을 확인한 뒤 Check Box를 클릭합니다. Step3) T-code 입력 창에 JDBG 를 입력합니다. F8을 실행하면 디버깅 포인트까지 실행이 되며, 그 이후 로직을 디버깅 할 수 있습니다. 2023. 3. 20.
::SAP-ABAP::SE37>SEO_CLASS_GET_METHOD_INCLUDES // 클레스(SE24)-메소드의 Include 프로그램 찾는 방법 안녕하세요. 피키로그입니다. 오늘은 클레스의 각 메소드별로 생성된 실제 인클루드 프로그램의 이름을 찾는 방법에 대해 알아보겠습니다. 아래와 같이 SE37에서 아래 펑션을 실행해줍니다. T-CDOE : SE37 펑션명 : SEO_CLASS_GET_METHOD_INCLUDES Import 매개변수: CLSKEY의 값을 클릭 합니다. CLSNAME에 확인이 필요한 클레스 이름을 입력하고 F3을 눌러 뒤로 돌아갑니다. 아래와 같이 입력된 상태에서 실행(F8) 해주세요. 그러면 아래와 같이 Export 매개변수에 INCLUDES 변수에 메소드와 각 메소드별 INCLUDE 이름이 표시됩니다! 긴 글 읽어주셔서 감사합니다! 2022. 11. 8.
::SAP-ABAP:: SE09 오브젝트 포함 - CTS 관리 안녕하세요. 피키로그입니다. 프로그램 수정을 하다보면 QA(테스트 서버)에 넘겨서 테스트 하면서 추가 수정이 발생되는 경우가 있습니다. 이럴 때는 N개의 CTS를 순서대로 운영 환경에 넘거야 하는 등 번거로워질 수 있습니다. 후속 CTS를 생성할 때 과거에 생성했던 CTS에 포함된 오브젝트를 신규 CTS에 포함시키면 1개의 CTS로 수정사항을 반영할 수 있게 됩니다!! 1] 신규 CTS를 생성한 뒤, SE09에서 해당 CTS를 클릭한 상태로 상단의 [오브젝트 포함] 버튼을 클릭합니다. 2] 오브젝트를 포함 시킬 CTS 번호를 입력하고 체크 표시를 클릭합니다. - 과거에 이미 릴리즈하여 QA에 반영한 CTS 번호를 입력하시면 됩니다. 3] CTS를 추가하면 "요청 오브젝트리스트"라는 항목이 추가되면서 해당.. 2022. 7. 14.
::SAP-ABAP::휴일 여부를 점검하여 다음 근무일 계산하는 로직 안녕하세요. 피키로그입니다. 오늘은 특정 일자가 휴일인지 점검하여, 다음 근무일을 계산하는 로직을 가져왔습니다! 대금 지급일자과 같은 주요 일자가 휴일인 경우, 다음 근무일에 지급이 수행돼야 하기 때문에 아래와 같은 로직으로 User Exit (GGB1), 대체(GGB0) 등에서 활용할 수 있습니다. 1] 계산 로직 1-1. 일자의 요일을 구하는 DAY_IN_WEEK 펑션을 사용하여, 해당 일자의 요일을 구합니다. : 반환 값이 6이면 토요일, 7이면 일요일입니다. 1-2. THOC을 조회하여 지급일자가 SAP 공휴일 달력에 기록된 공휴일인지 점검 합니다. 1-3. 지급일자가 주말 또는 공휴일인 경우 +1일을 추가하여, 다시 점검을 수행하도록 Do문을 10 times 수행합니다. DATA: l_wkgub.. 2022. 7. 12.
::SAP-ABAP:: 스탠다드 필드 텍스트 변경 (T-code : CMOD) 안녕하세요. 피키로그입니다! SAP Standard에서 생성한 필드의 텍스트를 변경하고자 할 때 아주 간단한 방법으로 텍스트 변경이 가능합니다. CMOD 를 통해 스탠다드 필드의 엘리먼트에 지정된 텍스트를 간단하게 변경할 수 있습니다. 오늘은 이 방법에 대해 알아보겠습니다. 1] T-code : CMOD 실행 2] 상단의 [ 이동 > 텍스트기능확장 > 키워드 > 변경 ] 클릭 3] 변경하고자 하는 엘리먼트의 명칭 입력 4] 입력한 엘리먼트의 텍스트를 변경하고 저장 BURKS 엘리먼트를 예시로 해당 텍스트를 변경하게되면, BUKRS를 엘리먼트로 사용하고 있는 모든 필드에 적용되고, 해당 필드를 사용하고 있는 화면의 텍스트도 변경되는 점 참고 부탁드립니다. 감사합니다. 2022. 7. 7.
::SAP-ABAP:: 스탠다드 프로그램과 펑션에 인헨스먼트 추가하는 방법(How to add enhancement to standard programs and functions) 안녕하세요. 피키로그입니다. 오늘은 스탠다드 프로그램과 펑션에 인헨스먼트를 추가하는 방법에 대해서 알아보도록 하겠습니다. SAP 사에서 개발한 패키지 솔루션에 포함된 스탠다드 프로그램과 펑션들은 고객사가 임의로 로직을 변경할 수 없습니다. 그러나, SAP에서는 고객사의 필요에 따라 스탠다드의 로직의 앞 또는 뒤에 ABAP 로직을 추가할 수 있도록 인헨스먼트(Enhancement) 기능을 제공하고 있습니다. 이를 이용해 스탠다드 로직을 제어할 수 있습니다. 1] SE80, SE38, SE37 등에서 스탠다드 프로그램, 펑션을 변경(Change) 모드로 실행합니다. 2] 인헨스먼트 생성/수정 1) Enhace 활성화 : Shift+F4 Enhance 클릭 시 아래와 같이 Enhancements와 관련된 버튼.. 2022. 7. 5.
::SAP-ABAP::SE11 - DB Table의 PK 중복 안녕하세요~ 피키로그입니다. 오늘은 SE11에서 DB Table을 만들 때 PK(Primary Key) 설정 시 중복이 발생되지 않게끔 생성해야 한다는 이야기를 하려고 합니다. 아래와 같이 신규 테이블을 생성할 때 키 필드를 설정하게 되는데, PK는 중복되지 않도록 설정해야 합니다! 왜 그런 지 간단히 아래의 예시로 설명을 드리겠습니다. (PK설정과 테이블 설계에 대해서는 [관계형 데이터 베이스]를 키워드로 검색해보시면 잘 정리된 자료가 많습니다!) 먼저 진료일과 과목 코드를 PK로 설정한 경우입니다. DB에 이미 1개의 레코드가 저장돼 있는 상태에서 같은 키 값으로 Insert(삽입) 구문을 실행할 경우 PK중복으로 저장에 실패하게 됩니다. (실제로는 덤프 에러가 발생됩니다.) 반면 Seq까지 PK로 .. 2020. 5. 17.
::SAP-ABAP::SE11 ABAP Dictionary (1) 오늘은 SE11: ABAP 딕셔너리 (ABAP Dictionary)를 소개하려고 합니다. SE11을 실행하게되면 아래와 같이 ABAP Dictionary에 등록된 개체를 조회, 수정하거나 신규로 생성할 수 있습니다. 먼저 SFLIGHT 테이블을 한 번 조회 해보겠습니다. Database table에 테이블 명을 입력하고 Display 버튼을 누르거나 단축키 F7을 누르면 ABAP Dictionary에 정의된 테이블 내역을 확인할 수 있습니다. 보시면 아래와 같이 여러 개의 탭(Tab)이 있는데 이중 [Fields] 텝을 주로 보시게 될 겁니다. 해당 탭에서는 실제 Database에 저장될 필드(속성)들을 추가/수정/삭제 할 수 있습니다. [Input Help/Check] 탭에서는 각 필드별로 점검 테이블.. 2020. 5. 12.