manual : user exitdocshare02.docshare.tips/files/26954/269547270.pdf · user exit번호와 function...

31
Manual : User Exit

Upload: vanquynh

Post on 08-Sep-2018

377 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

Manual : User Exit

Page 2: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

목차

1. Exit 의 원리

2. Exit 이란

3. Customer Exit 찾기 14. Customer Exit 찾기 25. User Exit 과 Customer Exit 의 연결

6. Function Exit Parameter7. CO-PA 주요 Exit8. User Exit 번호와 Function Exit 연결 ( 특성유도 )9. CO-PA 특성유도 User Exit 설명

10. User Exit 번호와 User Exit Logic11. User Exit 번호와 Function Exit 연결 ( 평가 )12. FI 전표 유효성점검과 대체

13. FI 전표 유효성점검 IMG14. FI 전표 유효성점검 Logic 만들기

15. FI 전표에서의 예산 Check16. 매출채권 , 받을어음의 손익센타 대체 (FI)부록 : Exit 에서 사용하는 간단한 ABAP 구문

Page 3: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

Exit 의 원리

User 자신의 Program 이 불리어 지는 SAP Program 의 PointUser 자신의 Program 이 불리어 지는 SAP Program 의 Point

SAP S

tandard Program Flow

User ExitInclude ZGGBR000

SAP Standard Program Flow 중 User 가원하는 대로 Control(Data 의 변화나 오류 점검 )을 할 수 있도록 SAP 에서 구멍을 뚫어 놓은 것

Activate(OBBH)

평소는 Direct 로 Process 가 흐르지만 Enhancement를 활성화 하면 그 곳을 거쳐가게 된다 .

Add On Program 으로는 Exit 과 같은 효과를 낼 수없다 .Exit 이 없으면 Table 을 직접 건드려야 하는 일이 발생또는 Source 를 고쳐야 한다 .

Page 4: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

Exit 이란

SAP 가 준비한 Standard Enhancement Program 생성 , 변경 : SMOD

Customer Exit 을 사용하는 User Program생성 , 변경 : CMOD일반 Developer 가 Project 성격에 따라 수정( 통상 Customer Exit 의 Include 문 사용 )

Customer ExitCustomer Exit

User ExitUser Exit

Project(CMOD)Project(CMOD)

기능확장 지정기능확장 지정

Function Exit ModuleFunction Exit Module

Include 문Include 문

User LogicIF Exit_No = ‘U10’. …ENDIF.

User LogicIF Exit_No = ‘U10’. …ENDIF.

평가전략 U10특성유도 ( 기능확장 ) U20기타 특성으로 인한 평가 ( 기능확장 ) U30

User Exit

Customer Exit, Enhancement

필요한 Customer Exit 만 선택하여 활성화

Page 5: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

Customer Exit 찾기

Exit 을 걸기 전에 내가 걸고자 하는 기능의 Customer Exit 이 있는 곳과 가능성을 파악해야 한다 .

Application 구성요소를 찾아 Customer Exit 을 찾는다 .

선택을 한 후 Double Click

T-code : SMODT-code : SMOD

SAP 가 미리 준비한 기능확장 (= Enhancement = Customer Exit)각 모듈별로 가능한 기능이 정리되어 있다 .기능확장 Component 별로 어떤 기능을 갖고 있는지 확인 ( 다음 Page)

Page 6: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

Customer Exit 찾기 2

찾은 Customer Exit 을 조회한다 .

Customer Exit 에는 1 개 이상의 Function Module Exit 이 있으며각 설명을 볼 수 있다 .

Function Module Exit 을 Double Click 하면Source Code 가 보인다 .

각 Function Module Exit 에 대해 Document 를찾아보면 아래와 같은 설명과 User Exit 예제가제공된다 .

Page 7: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

User Exit 과 Customer Exit 의 연결

T-Code : CMODT-Code : CMOD

Project 를 생성하여 사용할 Customer Exit 을지정한 후 거기에 소속된 Function ModuleExit 의 Include 문에 User 의 Logic 을 입력한다 .

Include 문에 User Logic 을 입력

Include 문에 User Logic 을 입력

처음에는 Include 문이 비어있음생성하고

처음에는 Include 문이 비어있음생성하고활성화를 시키면

파란불

Page 8: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

Function Exit Parameter

ImportImport

ExportExport

EXIT_SAPLKEDRCOPA_001

Function Module Exit 의 Source 를 보고당황하지 말자Tab Page 의 Import, Export 를 보면 자세한정보를 알 수 있다즉 Import Data 를 이용하여 Export Data 를변경하는 것이다 .

구조 CE0XXXX( 경영단위 )

결국 IMG Setting 에 의해 유도된 특성을 Table 에Write 하기 전에 User 가 변경할 수 있는 여지를 제공한 것

Page 9: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

CO-PA 주요 Exit

특성유도특성유도

평가평가

CustomerEnhancement

CustomerEnhancement

COPA0001COPA0001

COPA0002COPA0002

EXIT_SAPLKEAA_001 4.X 이상에서 사용 안함EXIT_SAPLKEAA_002 4.X 이상에서 사용 안함EXIT_SAPLKEDRCOPA_001 4.X 이상버전 특성유도에 사용

EXIT_SAPLKEAA_001 4.X 이상에서 사용 안함EXIT_SAPLKEAA_002 4.X 이상에서 사용 안함EXIT_SAPLKEDRCOPA_001 4.X 이상버전 특성유도에 사용

EXIT_SAPLKEAB_001 Actual Data ValuationEXIT_SAPLKEAB_002 Plan Data ValuationEXIT_SAPLKEAB_003 Valuation Using ConditionsEXIT_SAPLKEAB_004 Flexible Assignment Costing Key

EXIT_SAPLKEAB_001 Actual Data ValuationEXIT_SAPLKEAB_002 Plan Data ValuationEXIT_SAPLKEAB_003 Valuation Using ConditionsEXIT_SAPLKEAB_004 Flexible Assignment Costing Key

Function Module ExitFunction Module Exit

구조 CE0XXXX

Table CE1XXXX, CE2XXXX KOMK/KOMP( 가격결정 )

구조 COPA_EXIT_KEAB_004( 원가계산키 )

Page 10: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

CO-PA 특성유도 User Exit 설명

영업사원 특성 유도 기능확장 SAP R/3 표준으로 영업사원 특성유도 실패영업사원정보를 HR Master 사용시 영업사원별 PA 배부 불가

영업사원 특성 유도 기능확장 SAP R/3 표준으로 영업사원 특성유도 실패영업사원정보를 HR Master 사용시 영업사원별 PA 배부 불가

사용자정의 특성 WW100 등록특성추출정의에서 기능확장으로 정의 (U20)판매오더의 파트너 (VBPA) Table 에서 영업사원을 읽어서 유도유도된 영업사원번호별 성명을 인사 Master Table 에서 찾아서 Update

사용자정의 특성 WW100 등록특성추출정의에서 기능확장으로 정의 (U20)판매오더의 파트너 (VBPA) Table 에서 영업사원을 읽어서 유도유도된 영업사원번호별 성명을 인사 Master Table 에서 찾아서 Update

예제예제

1. 특성구조 CE0EH00 와 동일 구조 Data 정의 (TABLE: CE0_EH00 LIKE CE0EH00)2. 영업사원번호 특성 WW100 의 점검 Table(T2500) 과 Text Table(T25A0) 과 동일 구조 Data 정의 BEGIN OF T_2500 OCCURS 0. INCLUDE STRUCTURE T2500. END OF T_2500.3. 경영단위와 User Exit 번호를 Check (Case ~ When ~ Endcase, 혹은 IF ~ ELSE ~ ENDIF 사용4. 특성 정보를 사용자 정의 구조에 복사 CE0_EH00 = I_COPA_ITEM.5. 기 유도 특성인 판매오더로 VBPA TABLE( 파트너 ) 에서 영업사원을 검색 ) SELECT SINGLE * FROM VBPA ( 영업문서 : 파트너 Table) WHERE VBELN = CE1_EH00-KAUFN ( 판매오더 번호 ) AND PARVW = ‘AF’.6. 검색된 값으로 구조의 특성치를 변경 (CE0_EH00-WW100 = VBPA-PERNR)7. 변경이 완료되었으면 Exporting 구조에 사용자 정의 구조를 복사 E_COPA_ITEM = CE0_EH00.

Page 11: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

User Exit 번호와 Function Exit 연결 ( 특성유도 )

Page 12: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

CO-PA 평가 User Exit Logic

1. Import Parameter 중 Data 구조를 확인 ( 예 ) EP_SOURCE. (CE1EH00)2. 해당 구조를 복사할 구조 (DATA) 을 정의 ( 예 ) DATA: CE1_EH00 LIKE CE1EH00.3. Data 구조를 사용자가 정의한 구조로 복사 ( 예 ) CE1_EH00 = EP_SOURCE) CE1EH00 의 Data 가 EP_SOURCE 를 통하여 CE1_EH00 으로 Import4. 경영단위와 User Exit 번호일 때를 조건으로 지정 ( 예 ) WHEN ERKRS. CASE ‘EH00’ WHEN EXIT_NR CASE ‘U10’5. 이미 유도된 특성치를 이용 , Table 에서 원하는 특성을 찾는다 . 찾을 Table 의 Key 를 확인 ( 예 ) SELECT * FROM MBEW WHERE MATNR = CE1_EH00-ARTNR AND …6. Table 에서 찾은 값을 사용자 정의 구조에 입력 ( 예 ) CE1_EH00-VV006 = MBEW-STPRS.7. Logic 이 완료되면 Export 구조로 복사 ( 예 ) EP_TARGET = CE1_EH00.

예제예제

SD 에서 VPRS 를 못 받는 경우 Material Master 에서 직접 표준원가 가져오는 Exit( 영업의 판매사원에게 제조원가 정보를 보이지 않게 하기 위하여 SD 의 Pricing Procedure 에서 VPRS 를제외하고 대신 판매오더 원가 Simulating 용 조건유형 EK02 를 사용한다 .(CO IMG))CO-PA 는 SD 의 조건유형 VPRS 로 부터 제조원가를 받게 되는데 이 값이 0 이므로 CO-PA 는 직접 Table을 찾아서 값을 가져와야 한다 .

SD 에서 VPRS 를 못 받는 경우 Material Master 에서 직접 표준원가 가져오는 Exit( 영업의 판매사원에게 제조원가 정보를 보이지 않게 하기 위하여 SD 의 Pricing Procedure 에서 VPRS 를제외하고 대신 판매오더 원가 Simulating 용 조건유형 EK02 를 사용한다 .(CO IMG))CO-PA 는 SD 의 조건유형 VPRS 로 부터 제조원가를 받게 되는데 이 값이 0 이므로 CO-PA 는 직접 Table을 찾아서 값을 가져와야 한다 .

Page 13: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

User Exit 번호와 Function Exit 연결 ( 평가 )

평가전략평가전략

COPA0001COPA0001

경영단위CE1EH00 : 경영단위통화CE1EH00 : 회사코드통화User Exit No

Page 14: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

FI 전표 유효성점검과 대체

1. 개요

기본적으로 사용할 수 있는 BKPF 나 BSEG FLD 로 User 의 Logic 이 불충분 할 경우 User Exit 을사용한다 . FI 전표의 Exit 은 Validation 을 위한 RGGBR000 와 Substitution 을 위한 RGGBS000 로 구성된다 .각 Program 에 FORM <User Exit No> ~ ENDFORM 문을 사용하여 Logic 을 입력하며 User Exit No 를 유효성점검이나 대체의 단계에 지정한다 .

FI 전표를 생성할 때 오류를 방지하기 위한 유효성점검 (Validation) 과 특정필드를 다른 값으로바꾸기 위한 대체 (Substitution) 이 있다 .

2. 절차

FI IMG 의 유효성점검 또는 대체 항목에서 선행조건과 점검 , 메시지 , 대체 등에 User 가 간단한Boolian Logic 으로 오류 Check 또는 특정필드의 바꾸기를 지정한다 .이 때 각각 FI 전표가 입력되는 시점의 정보를 이용하므로 BKPF( 전표 Header Table) 과 BSEG( 전표 Line Item Table) 의 FLD 를 전부 조건으로 사용할 수 있다 .

3. User Exit

Page 15: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

특별목적원장 IMG

FI 전표의 Exit 을 사용하려면 RGGBR000, RGGBS000 를 COPY 한 ZRGGBR000, ZRGGBS000 를특별목적원장 IMG 에서 Setting 해야 한다 .

앞으로 위의 Program 에 의해 Exit 이 걸린다는 것을IMG 에서 Setting 하는 것

Page 16: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

FI 전표 유효성점검 IMG

다음 IMG Path 를 통하여 유효성점검과 그 하위에 단계를 생성

선행조건 만들기 : BKPF, BSEG 등의 FLD와 Boolean 연산자를 이용

Double ClickDouble Click

점검란에 종료 (Exit 의 번역 ) 란에User Exit 번호를 입력

회사코드별 유효성확인을 생성호출점 : Header, Item, 전표완료활성화

단계마다 선행조건 , 점검 , 메시지 지정

Double ClickDouble ClickUser Exit 번호User Exit 번호

Page 17: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

FI 전표 유효성점검 Logic 만들기

T-Code : SE38 (ABAP Editor) 초기에 RGGBR000 와 RGGBS000 를 ZRGGBR000, ZRGGBS000로 Program Copy

1. Table 선언 Exit 에서 사용할 Table 들을 정의

2. EXIT 선언

3. Exit 본문전표에 입력한 Cost Center 를 CSKS(CCtr Master Table) 에서 찾아 코스트센타 범주에 따라 제조경비 , 판관비를 서로 기표하지못하게 하는 내용

Page 18: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

FI 전표 Exit Source Program 재생성

Exit Program 은 Client Independent 이기 때문에 동일 Server 를 사용할 경우 문제가 없지만개발 Server 에서 운영 Server 로 옮긴 후 Substitution/Validation/Rule 등이 제대로 넘어가지않는 경우가 있어 그럴 때에는 다음 화면과 같이 Reporting Program 을 돌려서 Program 을재생성 한다 .

RGUGBR00 Program 을 실행시켜서아래 Check Box 에 Click 하고 Run 하면

GBAAAAAGBT XXXXXGBS XXXXX

GBAAAAAGBT XXXXXGBS XXXXX

과 같은 Source Program 이 생성된다 .

이와 같이 생성되는 Program 은 절대로CTS 시키면 안되고 반드시 이 Program을 통해 생성해야 한다 .

이와 같이 생성되는 Program 은 절대로CTS 시키면 안되고 반드시 이 Program을 통해 생성해야 한다 .

Page 19: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

FI 전표에서의 예산 Check

예제예제

예산통제를 받을 Object( 예산번호 ) 로 Internal Order 를 사용예산번호 (I/O) 에 Plan Version 20 번으로 원가요소별로 계획한 후 예산으로 간주예산 Check 해당계정으로 FI 전표 Line Item 입력시 COSP Table 에서 해당 오더별 원가요소별 예산 (Version 20) 과 과거실적 (Actual)+ 현재 기표하고자 하는 금액 (BSEG-HSL) 을 비교하여 초과 여부를 판단 , Error Message 를 보여주는 User Exit

예산통제를 받을 Object( 예산번호 ) 로 Internal Order 를 사용예산번호 (I/O) 에 Plan Version 20 번으로 원가요소별로 계획한 후 예산으로 간주예산 Check 해당계정으로 FI 전표 Line Item 입력시 COSP Table 에서 해당 오더별 원가요소별 예산 (Version 20) 과 과거실적 (Actual)+ 현재 기표하고자 하는 금액 (BSEG-HSL) 을 비교하여 초과 여부를 판단 , Error Message 를 보여주는 User Exit

FI IMG 유효성점검의 선행조건에서 오더가 Null 이 아니면서 예산 Check 해당계정이면 (SET 으로등록 , IN 구분 사용 ), 점검의 종료 (Exit 을 번역한 말 ) 에 User Exit 번호를 입력

FI IMG 유효성점검의 선행조건에서 오더가 Null 이 아니면서 예산 Check 해당계정이면 (SET 으로등록 , IN 구분 사용 ), 점검의 종료 (Exit 을 번역한 말 ) 에 User Exit 번호를 입력

1. 오더 범주가 ‘ 1’( 내부오더 ) 이 아니면 Return2. COSP 에서 값유형 = 01, Version 20 인 WKG001~WKG12 총 Sum Budget3. COSP 에서 값유형 = 04, WKG001~WKG12 총 Sum Actual4. BSEG-HSL + Actual > Budget 인 경우 Error Message message E(001) “예산을 초과하였습니다 .”

참고 : FI 의 통화유형 CO 의 통화유형

GLT0 COSP 거래통화 TSL 거래통화 WTG 회사코드통화 HSL 오브젝트통화 WOG 그룹통화 KSL 관리회계통화 WKG

Page 20: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

FI 전표 대체 (Substitution)

대체의 단계를 생성하면 아래와 같이 대체할 필드를 선택하게 된다 .

상수값 : 일정 조건일 때 상수값 대체종료 (Exit) : Exit 사용하는 번호필드 – 필드 : BSEG 의 FLD 를 타 필드로 대체

Exit No

Page 21: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

FI 전표 대체 (Substitution)

대체는 ZRGGBS000 에서 정의한다 .

Page 22: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

CO 내부전기에 대한 유효성점검

완료 후 활성화

처음에는 Menu 에서 찾아서 입력

유효성점검 생성

단계 생성

점검 생성Exit 번호 지정

Double Click

Page 23: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

CO 내부전기에 대한 유효성점검 (Exit Logic)

Program : ZRGGBR000 참조 구조

COBL_GENERALCOBL_SENDERCOBL_RECEIVER

Receiver 의 코스트센터 범주에 따라 판관비 , 제조경비 구분 CheckReceiver 의 코스트센터 범주에 따라 판관비 , 제조경비 구분 Check

Page 24: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

생산오더 저장시 원가추정 여부 Check

SAP 표준에서 표준원가 Release 가 안 되어 있어도 생산이 진행된다 .생산 확정에서 입고 , SD 의 출고까지 Error 없이 진행되다가 SD 대금청구시 Error 가 난다 .이 때 표준원가 Release 를 하려면 이미 물류 전표가 생성되었으므로 Release 가 되지 않는다 .

SAP 표준에서 표준원가 Release 가 안 되어 있어도 생산이 진행된다 .생산 확정에서 입고 , SD 의 출고까지 Error 없이 진행되다가 SD 대금청구시 Error 가 난다 .이 때 표준원가 Release 를 하려면 이미 물류 전표가 생성되었으므로 Release 가 되지 않는다 .

생산오더 생성시 표준원가 추정 Release 여부를 Check 하여 Release 안된 제품에 대해서는생산오더가 생성되지 않게 하는 Exit생산오더 생성시 표준원가 추정 Release 여부를 Check 하여 Release 안된 제품에 대해서는생산오더가 생성되지 않게 하는 Exit

SAP 표준의 문제SAP 표준의 문제

Exit 개요Exit 개요

Customer Exit : PPC00006 ( 오더헤더필드에 대해 디폴트를 지정하기 위한 기능확장 )Function Exit : EXIT_SAPLCOZF_003

IF CAUFVD_IMP-MATNR NE ''.

SELECT SINGLE * FROM MBEW WHERE BWKEY = CAUFVD_IMP-WERKS AND MATNR = CAUFVD_IMP-MATNR AND BWTAR = ' '.

IF MBEW-LPLPR = 0. MESSAGE E000(ZCA001) WITH TEXT-101. EXIT. ENDIF.ENDIF.

IF CAUFVD_IMP-MATNR NE ''.

SELECT SINGLE * FROM MBEW WHERE BWKEY = CAUFVD_IMP-WERKS AND MATNR = CAUFVD_IMP-MATNR AND BWTAR = ' '.

IF MBEW-LPLPR = 0. MESSAGE E000(ZCA001) WITH TEXT-101. EXIT. ENDIF.ENDIF.

CAUFVD_IMP : 생산오더 헤더 Data 구조MATNR : 생산오더의 자재번호MBEW : 자재 평가 DataLPLPR : 표준원가 Release 된 금액

Page 25: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

판매오더 원가추정의 통제

제품의 표준제조원가를 영업사원에게 노출시키지 않으면서 총원가개념 ( 원가계산표 사용 ) 의원가를 볼 수 있게 하기를 원함

제품의 표준제조원가를 영업사원에게 노출시키지 않으면서 총원가개념 ( 원가계산표 사용 ) 의원가를 볼 수 있게 하기를 원함

판매오더 저장시 총원가 ( 조건유형 : EK02) 가 자동저장 되며 판매오더의 원가계산 화면에서는 원가추정을 할 수 없게 함

판매오더 저장시 총원가 ( 조건유형 : EK02) 가 자동저장 되며 판매오더의 원가계산 화면에서는 원가추정을 할 수 없게 함

현업요구 특징현업요구 특징

ProcessProcess

Customer Exit : COPCP005 ( 자재평가에 대한 User Exit ( 전략 U))Function Exit : EXIT_SAPLCK21_002

IF SY-TCODE = 'VA01' OR SY-TCODE = 'VA02' OR SY-TCODE = 'VA03'. IF IMP_KLVAR = 'IPC4' AND SY-DYNNR = '4611' AND SY-UCOMM = 'PKAL'. MESSAGE E000(ZCA001) WITH TEXT-601. EXIT. ENDIF.ENDIF.

IF SY-TCODE = 'VA01' OR SY-TCODE = 'VA02' OR SY-TCODE = 'VA03'. IF IMP_KLVAR = 'IPC4' AND SY-DYNNR = '4611' AND SY-UCOMM = 'PKAL'. MESSAGE E000(ZCA001) WITH TEXT-601. EXIT. ENDIF.ENDIF.

IMP : 원가추정 Data 구조KLVAR : 원가계산 변형SYST : System Parameter 구조SY-TCODE : 현행 Transaction CodeSY-DYNNR : 화면번호SY-UCOMM : 실행 Icon 의 Code

Page 26: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

SD->FI 전표의 참조 FLD 에 영업사원 사번과 영업팀을 입력

SD 로부터 발생된 FI 전표의 참조필드에 영업사원 사번과 영업팀 ( 영업그룹 ) 을 기록SD 로부터 발생된 FI 전표의 참조필드에 영업사원 사번과 영업팀 ( 영업그룹 ) 을 기록

판매오더 저장시 총원가 ( 조건유형 : EK02) 가 자동저장 되며 판매오더의 원가계산 화면에서는 원가추정을 할 수 없게 함

판매오더 저장시 총원가 ( 조건유형 : EK02) 가 자동저장 되며 판매오더의 원가계산 화면에서는 원가추정을 할 수 없게 함

현업요구 특징현업요구 특징

ProcessProcess

Customer Exit : SDVFX002 (User Exit for A/R Line (transfer to accounting))Function Exit : EXIT_SAPLV60B_002

DATA: LV_PERNR(10) TYPE C.

SELECT SINGLE PERNR INTO LV_PERNR FROM VBPA WHERE VBELN = CVBRP-AUBEL AND ( PARVW = 'AF' OR PARVW = 'VE' ).

XACCIT-XREF1 = LV_PERNR.XACCIT-XREF2 = CVBRP-VKGRP.

DATA: LV_PERNR(10) TYPE C.

SELECT SINGLE PERNR INTO LV_PERNR FROM VBPA WHERE VBELN = CVBRP-AUBEL AND ( PARVW = 'AF' OR PARVW = 'VE' ).

XACCIT-XREF1 = LV_PERNR.XACCIT-XREF2 = CVBRP-VKGRP.

VBPA : 영업문서 파트너PARVW : Partner FunctionCVBRP : 대금청구 HeaderXACCIT : 회계 Interface 구조

Page 27: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

Report Painter 실행시의 권한 Check Exit

자기 부서 ( 현장 ) 의 Data 만 조회자기 부서 ( 현장 ) 의 Data 만 조회

Report Painter Report 의 실행시 선택화면의 FIELD 정보를 참조하여 권한 CheckReport Painter Report 의 실행시 선택화면의 FIELD 정보를 참조하여 권한 Check

현업요구 특징현업요구 특징

ProcessProcess

Customer Exit : GRWTAUTH (Report Painter Authorization)Function Exit : EXIT_SAPFGRWX_001

선택화면 입력정보 : I_T_SELSCREEN_PARAMS일반정보 : Report, Report Group, Library 등

선택화면 입력정보 : I_T_SELSCREEN_PARAMS일반정보 : Report, Report Group, Library 등

Page 28: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

Report Painter 실행시의 권한 Check Exit ( 실행화면 )

Page 29: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

Field Exit

T-Code : RSMODPRF • 특정 Field 에 정해진 값만 제한하여 받게 하는 사용자 정의 Exit• 모든 경우에 전부 적용하려면 Global 로 , 특정 프로그램에만 적용하려면 Program 명과 화면번호를 지정한다 .• 그 Field 의 값을 제한하는 Coding 을 한다 .

• 특정 Field 에 정해진 값만 제한하여 받게 하는 사용자 정의 Exit• 모든 경우에 전부 적용하려면 Global 로 , 특정 프로그램에만 적용하려면 Program 명과 화면번호를 지정한다 .• 그 Field 의 값을 제한하는 Coding 을 한다 .

Page 30: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

Exit 에서 사용하는 간단한 ABAP 구문

SELECT Table 에서 하나 이상의 특정 Record 를 찾는다 .

DATA:

TABLES:

IF ~ ELSEIF ~ ENDIF

CASE ~ WHEN ~ ENDCASE

Program 에서 사용할 변수 , 구조 , Internal Table 등을 선언

Program 에서 사용할 Table 을 선언

특정조건에 따라 Statement 문이나 타 Program 으로의 Branch

IF 조건문과 비슷하나 경우가 많을 경우

Page 31: Manual : User Exitdocshare02.docshare.tips/files/26954/269547270.pdf · User Exit번호와 Function Exit 연결(특성유도) 9. CO-PA 특성유도 User Exit 설명 ... T-Code : SE38

간단한 ABAP 구문

SELECT SINGLE <col>/* [INTO <f1>] FROM <itab> WHERE …SELECT * FROM <itab> WHERE …

SELECT : Table 에서 Record Read

정의 : TABLE, DATA

INSERT, UPDATE,

APPEND

CASE <f1>. WHEN <f10> OR <f11>. <statement1> WHEN <f20> OR <f21>. <statement2> … WHEN OTHERS.ENDCASE.

IF <f10> OR <f11> <statement1>ELSEIF <f20> OR <f21> <statement2>ELSEIF <f30> OR <f31> <statement3>ELSE <statement4>ENDIF

SY-SUBRC