본문 바로가기

반응형

ABAP

(23)
MATNR 필드 CONVERSION EXIT INPUT 주의사항 프로그램 코딩하다보면 MATNR 필드가 굉장히 친숙하게 느껴질 것이다. 어떤 모듈을 개발을 하던, 자재번호를 뜻하는 MATNR 필드를 만나게 될텐데 이 필드에 주의해야 할 간단한 팁이 있다. MATNR 필드 속성을 보면 Char 40로써 글자가 40개나 들어가게 된다.(ECC버전에서는 10자린가 그랬던거 같은데..) ABAP 코딩을 하다보면 여러가지 이유로 MATNR 필드의 값에 Leading zero를 붙어야하거나 빼야하는 상황이 오는데, 0을 빼는 경우는 크게 문제가 없다. 하지만 붙이는 경우 아무 Function module을 쓰면 안되는 경우가 있다. 아래 코딩을 보면서 간단하게 설명 ▼ 그냥 일반적으로 쓰는 CONVERSION_EXIT_ALPHA_INPUT을 쓰면 40자리를 전부 0으로 채우게 ..
ALV Grid에서 Screen 스크롤이 무한정 내려갈 때 해결 보통 Custom container에서 해당 문제 발생한다. 어떤 현상인지 스샷을 남기려 했으나 다시 구현하기 실패... 정확히 어떤 원인으로 해당 오류가 생기는지 모르겠음 일단 해결법 1. 해당 스크린의 Layout 메뉴로 이동하고 Custom container 더블클릭하면 우측에 설정 값 입력하는 팝업 호출 ▼ 2. 속성에 수직, 수평 체크박스에 체크하고 저장 및 액티브 ▼ 끝.
1000번 화면 F4 Search help 1. 1000번 스크린에서 Search help를 적용할 파라미터를 선언. ▼ PARAMETERS: P_KDGRP TYPE KNVV-KDGRP OBLIGATORY. 2. AT Selection Screen 영역에 아래 구문 입력 ▼ AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_KDGRP. PERFORM VALUE_REQUEST_KDGRP USING 'P_KDGRP'. 3. PERFORM 더블클릭하여 PERFORM문 생성하고 아래 구문 입력 ▼ FORM VALUE_REQUEST_KDGRP USING PV_FIELDNAME. SELECT KDGRP, KTEXT FROM T151T WHERE SPRAS = @SY-LANGU ORDER BY KDGRP INTO TABLE @DAT..
Internal Table 속성에 맞게 Field Catalog 설정하기 ABAP 프로그램 만들다 보면 필드카탈로그 일일이 설정하기 귀찮을 때가 있죠.. 그럴 때 유용한 클래스 입니다. 일단 클래스로 만들 것이기 때문에 Class Builder로 GoGo 이름은 대충 지어주고 생성 버튼 클릭 ▼ T-CODE : SE24 내역 대충 써주고 넘어가죠 ▼ 방법을 두개 입력 GET_FCAT_FOR_ITAB / Static Method / Public GET_ELEMENTS / Static Method / Private ▼ 각 방법에 매개변수를 설정하기 GET_FCAT_FOR_ITAB 먼저 클릭하고 매개변수 클릭 ▼ IT_TABLE / Importing / TABLE RT_FCAT / Exporting / LVC_T_FCAT 다 입력하였으면 방법 눌러서 다시 뒤로 ▼ 이번엔 GET_E..
Background Job Function 주기 코딩 Background Job 주기 설정하다가 시행착오를 너무 많이 겪어서 글을 남기기로 함.. 일단 내용은 고객들중 계약 효력종료일이 60일 이하로 남은 고객에게 일주일 단위로 경고 메일을 전송하는 비지니스 상황이다. 우선 아래와 같이 Background job 생성 > E-mail전송 프로그램 실행 > Background job 종료 순서대로 코딩을 해주었다. (60일 이하 남은 고객 선정은 현재 포스팅에서 제외) 소스코드 ▼ DATA: LV_BP_ADDR TYPE ADR6-SMTP_ADDR, LV_OD_ADDR TYPE ADR6-SMTP_ADDR. " BP 사원코드의 이메일 주소 발췌 READ TABLE XVBPA WITH KEY PARVW = 'VE'. IF SY-SUBRC = 0. SELECT SI..
User-exit 수정하다가 SQL error 발생(Fixed point arithmetic) MV45AFZZ Include(VA* User-exit) 수정중에 쿼리를 수정할 일이 생겨서 SELECT ZFBDT FROM BSID WHERE KUNNR = @XVBAK-KUNNR INTO @DATA(LT_ZFBDT). 이런 코딩을 했다. Active를 하니 이런 에러가 발생 ▼ 해결은 Include문에 직접 코딩하지 않고 Function module 만들어서 거기에다가 코딩을 하면 된다. 원인은 아래와 같이 고정소수점연산을 체크하면 해결된다고 하지만, MV45AFZZ Include는 Standard라.. 저걸 수정기에는 부담스러워서 Function module 만들었음 추가. 위에 작성해놓은 SELECT ZFBDT FROM BSID WHERE KUNNR = @XVBAK-KUNNR INTO @DATA(..
ALV Grid에서 선택한 데이터 가져오기 DATA: GO_GRID TYPE REF TO CL_GUI_ALV_GRID. DATA: LS_ROWS TYPE LVC_S_ROW, LT_ROWS TYPE LVC_T_ROW. CALL METHOD GO_GRID->GET_SELECTED_ROWS IMPORTING ET_INDEX_ROWS = LT_ROWS. 끝.

반응형