FI 쪽 FUNCTION 같은대...
이곳 저곳 찾아봐도 어떤 것인지 찾아 볼수가 없내요..
힌트 부탁 드림니다.
댓글 4
-
초보아밥퍼
2008.06.03 22:09
-
bd
2008.06.03 23:42
아구... 무엇에 쓰는 펑션인고 하는 질문이였습니다.. 질문에 요점에 대해 생각좀 하고 글남겨야 겠네요 ^^
다시한번 힌트 부탁 드림니다. " ㅇ ㅓㄸ ㅏ쓰는 펑션인고????" 요렇게 ^^
-
SAP폐인
2008.06.04 00:07
어따쓰는 펑션이냐고요? 들어가서 검색해보세요.. 나오는데..
Cueerncy 환율 바꾸는 거 같네요. 반올림,내림 이런거 인듯.. 아마 EDI로 은행이나 그런 곳에서 데이터 받아오면서 처리할 때 사용 할 것 같습니다. - 이상 간단히 SAP 뒤적거려본 결과
-
bd
2008.06.04 00:10
FUNCTION 열어서 실행까지 해보면서 했는대...EXPORING 으로 값이 나오지가 않아서요..
힌트하나 얻어서 역으로 접근해 볼려고 ^^ 헤헤 .. 좋은 힌트 감사 드림니다. (__)~
어떤 힌트를 말씀하시는지? 그냥 소스만 올립니당.. ^^
FUNCTION RH_CURRENCY_AMOUNT_IDOC_TO_SAP.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(SAP_CURRENCY)
*" VALUE(IDOC_AMOUNT)
*" EXPORTING
*" VALUE(SAP_AMOUNT)
*" EXCEPTIONS
*" NOT_FOUND
*"----------------------------------------------------------------------
DATA: SAPCURRENCY LIKE TCURC-WAERS.
SAPCURRENCY = SAP_CURRENCY.
CALL FUNCTION 'CURRENCY_AMOUNT_IDOC_TO_SAP'
EXPORTING
CURRENCY = SAPCURRENCY
IDOC_AMOUNT = IDOC_AMOUNT
IMPORTING
SAP_AMOUNT = SAP_AMOUNT
EXCEPTIONS
ERROR_MESSAGE = 1
OTHERS = 2.
IF SY-SUBRC > 0.
RAISE NOT_FOUND.
ENDIF.
ENDFUNCTION.
FUNCTION CURRENCY_AMOUNT_IDOC_TO_SAP.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(CURRENCY) LIKE TCURC-WAERS
*" VALUE(IDOC_AMOUNT)
*" EXPORTING
*" VALUE(SAP_AMOUNT)
*"----------------------------------------------------------------------
STATICS: FACTOR TYPE ISOC_FACTOR,
STATIC_CURRENCY LIKE TCURC-WAERS.
IF CURRENCY IS INITIAL.
SAP_AMOUNT = IDOC_AMOUNT.
EXIT.
ENDIF.
IF STATIC_CURRENCY <> CURRENCY.
STATIC_CURRENCY = CURRENCY.
CALL FUNCTION 'CURRENCY_CONVERTING_FACTOR'
EXPORTING
CURRENCY = CURRENCY
IMPORTING
FACTOR = FACTOR.
* exceptions
* too_many_decimals = 1
* others = 2.
ENDIF.
SAP_AMOUNT = IDOC_AMOUNT / FACTOR.
ENDFUNCTION.
FUNCTION CURRENCY_CONVERTING_FACTOR.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(CURRENCY) LIKE TCURR-TCURR
*" EXPORTING
*" VALUE(FACTOR) TYPE ISOC_FACTOR
*" EXCEPTIONS
*" TOO_MANY_DECIMALS
*"----------------------------------------------------------------------
DATA: CUR_FACTOR TYPE ISOC_FACTOR.
*- determine Decimal place in currency from TCURX
CLEAR TCURX.
SELECT SINGLE * FROM TCURX WHERE CURRKEY EQ CURRENCY.
IF SY-SUBRC NE 0.
TCURX-CURRDEC = 2.
ENDIF.
IF TCURX-CURRDEC GT 5.
*- entry in tcurx with more than 5 decimals not allowed
RAISE TOO_MANY_DECIMALS.
ENDIF.
*- compute converting factor respecting currency
CUR_FACTOR = 100.
IF TCURX-CURRDEC NE 0.
DO TCURX-CURRDEC TIMES.
CUR_FACTOR = CUR_FACTOR / 10.
ENDDO.
ENDIF.
IF CUR_FACTOR = 0.
*- factor 0 not allowed; check data definition of factor
*- entry in tcurx with more than 5 decimals not allowed
RAISE TOO_MANY_DECIMALS.
ENDIF.
FACTOR = CUR_FACTOR.
ENDFUNCTION.