* E-OFFICE등에 넘기기 위해 수량을 기본단위로 변환시켜주는 함수.
* 청구예정량, 구매예정량 = pr 수량
* pr의 단위와 기본단위가 틀리면 기본단위로 conversion 한다
IF ( MARA-MEINS NE P_EBAN-MEINS ) AND
NOT MARA-MEINS IS INITIAL.
CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
EXPORTING
I_MATNR = P_EBAN-MATNR
I_IN_ME = P_EBAN-MEINS
I_OUT_ME = MARA-MEINS
I_MENGE = P_EBAN-MENGE
IMPORTING
E_MENGE = P_EBAN-MENGE
EXCEPTIONS
ERROR_IN_APPLICATION = 1
ERROR = 2
OTHERS = 3.
---------------------------------------------------------
* T-CODE /NMMBE에 대해서..
CALL FUNCTION 'MB_ADD_RESERVATION_QUANTITIES'
EXPORTING
X_KZEAR = SPACE
X_MATNR = P_EBAN-MATNR
X_XLOEK = SPACE
* X_KZWSO = ' '
TABLES
XBDART = GR_XBDART
XTAB1 = IT_XTAB1 "수량 들어옴.
XWERKS = GR_XWERKS.
DELETE IT_XTAB1 WHERE WERKS NE P_EBAN-WERKS.
"해당 플랜트에 대해서만 SUM.
LOOP AT IT_XTAB1.
AT FIRST.
SUM.
GV_MENGE = IT_XTAB1-BDMNG.
ENDAT.
ENDLOOP.
WRITE GV_MENGE TO IT_ITEM-BDMNG UNIT MARA-MEINS.
-------------------------------------------------------------
*롱텍스트 가져오는 함수.
FORM READ_LONG_TEXT USING P1 P2 P3.
CLEAR : THEAD, IT_LINE, IT_LINE[].
THEAD-TDID = P1.
THEAD-TDSPRAS = SY-LANGU.
THEAD-TDNAME = P2.
THEAD-TDOBJECT = P3.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = THEAD-TDID
LANGUAGE = THEAD-TDSPRAS
NAME = THEAD-TDNAME
OBJECT = THEAD-TDOBJECT
* ARCHIVE_HANDLE = 0
* LOCAL_CAT = ' '
* IMPORTING
* HEADER =
TABLES
LINES = IT_LINE
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8 .
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
---------------------------------------------------------------------
*알파 컨버젼.... 0000001234 에서 0000빼는 함수.
FORM ALPHA_CONVERSION USING P_KIND P_FIELD.
IF P_KIND = '1'. "0붙임
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = P_FIELD
IMPORTING
OUTPUT = P_FIELD.
ELSEIF P_KIND = '2'. "0제거
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = P_FIELD
IMPORTING
OUTPUT = P_FIELD.
ENDIF.
------------------------------------------------------------------------
*BAPI 전송에 관련된 함수..
*&---------------------------------------------------------------------*
*& Form CHANGE_EKGRP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CHANGE_EKGRP USING P_BANFN P_EKGRP P_TYPE P_MESSAGE.
DATA : LT_BAPIEBAN LIKE BAPIEBAN OCCURS 0 WITH HEADER LINE,
LT_BAPIRETURN LIKE BAPIRETURN OCCURS 0 WITH HEADER LINE,
LT_BAPI_OLD LIKE BAPIEBANV OCCURS 0 WITH HEADER LINE,
LT_BAPI_NEW LIKE BAPIEBANV OCCURS 0 WITH HEADER LINE.
* PR 값 읽어오기
CLEAR : LT_BAPIEBAN, LT_BAPIEBAN[], LT_BAPIRETURN, LT_BAPIRETURN[],
LT_BAPI_OLD, LT_BAPI_OLD[], LT_BAPI_NEW, LT_BAPI_NEW[].
CALL FUNCTION 'BAPI_REQUISITION_GETDETAIL'
EXPORTING
NUMBER = P_BANFN
TABLES
REQUISITION_ITEMS = LT_BAPIEBAN
RETURN = LT_BAPIRETURN
EXCEPTIONS
OTHERS = 1.
* 구매그룹변경
LOOP AT LT_BAPIEBAN .
CLEAR : LT_BAPI_OLD, LT_BAPI_NEW.
MOVE-CORRESPONDING LT_BAPIEBAN TO LT_BAPI_OLD.
MOVE-CORRESPONDING LT_BAPIEBAN TO LT_BAPI_NEW.
LT_BAPI_NEW-PUR_GROUP = P_EKGRP.
APPEND LT_BAPI_OLD.
APPEND LT_BAPI_NEW.
ENDLOOP.
* PR 변경 BAPI 실행
CALL FUNCTION 'BAPI_REQUISITION_CHANGE'
EXPORTING
NUMBER = P_BANFN
TABLES
REQUISITION_ITEMS_OLD = LT_BAPI_OLD
REQUISITION_ITEMS_NEW = LT_BAPI_NEW
RETURN = LT_BAPIRETURN
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC NE 0 OR SY-MSGNO NE '041'.
P_TYPE = 'F'. "실패면 F
CLEAR P_MESSAGE.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
MSGID = SY-MSGID
MSGNR = SY-MSGNO
MSGV1 = SY-MSGV1
MSGV2 = SY-MSGV2
MSGV3 = SY-MSGV3
MSGV4 = SY-MSGV4
IMPORTING
MESSAGE_TEXT_OUTPUT = P_MESSAGE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
P_TYPE = 'S'. "성공이면 S
* BAPI 실행후에는 항상 COMMIT해줄것.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'Y'.
ENDIF.
ENDFORM. " CHANGE_EKGRP
* e-abap님에 의해서 게시물 이동되었습니다 (2007-11-05 12:45)
댓글 3
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
22 | SAP Function 모음 [21] | CO01 | 2007.11.08 | 4858 |
21 | R/3 접속자에게 메세지 보내기 [12] | sapjoy | 2006.12.06 | 6198 |
20 | 숫자 왼쪽의 0 없애기 [8] | ecbase | 2006.12.02 | 15296 |
19 | 도메인 고정 값 read [2] | sapjoy | 2007.02.11 | 5383 |
18 | 유용한 날짜 펑션들....(펌) [17] | 하늘사랑 | 2007.07.04 | 16784 |
17 | POPUP 함수(팝업) [11] | sapjoy | 2007.05.17 | 8807 |
16 | IP를 가져오는 클래스 메소드 및 함수 [6] | sapjoy | 2007.04.04 | 4946 |
15 | 현재 떠있는 화면에서 특정 필드의 값을 읽어오는 함수. [7] | 나침반친구 | 2007.03.13 | 4519 |
14 | IP를 가져오는 함수 [3] | sapjoy | 2007.03.09 | 4256 |
13 | 백그라운드 작업 관련 함수(batch job) [3] | sapjoy | 2007.03.02 | 6701 |
12 | background 관련 함수 [1] | sapjoy | 2006.12.29 | 4654 |
11 | STRING 관련 함수 [3] | sapjoy | 2006.12.29 | 6805 |
10 | (-)부호를 앞으로 바꿔주는 함수입니다 [13] | ecbase | 2006.12.02 | 4849 |
9 | function 날짜 정합성 점검 [5] | senk | 2007.04.21 | 5845 |
8 | SEARCH HELP FUNCTION 이용한 예제 [2] | 이종원 | 2007.04.06 | 5344 |
» | FUNCTION 모음 [3] | 명신용 | 2007.04.03 | 6209 |
6 | BAPI Function 검색 사이트 [10] | 홍성현 | 2007.08.08 | 5796 |
5 | function 모음입니다. [5] | 양파링 | 2007.11.02 | 7908 |
4 | Calling RFC Function Modules in ABAP [12] | SARA | 2007.04.26 | 6114 |
3 | Function 자료 [13] | 밥퍼 | 2007.04.25 | 4772 |