Sei sulla pagina 1di 6

FUNCTION Z_FKK_CRM_ACCOUNT_PAYMENT.

*"---------------------------------------------------------------------*"*"Local Interface: *" IMPORTING *" VALUE(IS_PAY_HEADER) TYPE FKK_CRM_ACCOUNT_PAYMENT_HEADER *" VALUE(IS_PAY_CARD) TYPE FKK_CRM_ACCOUNT_PAYMENT_CARD OPTIONAL *" VALUE(IS_PAY_AUTH) TYPE FKK_CRM_ACCOUNT_PAYMENT_AUTH OPTIONAL *" EXPORTING *" VALUE(EV_REFID) TYPE CHAR24 *" TABLES *" RT_PAYMENT_ITEM STRUCTURE FKK_CRM_ACCOUNT_PAYMENT_ITEM *" OPTIONAL *" RT_PAYMENT_GROUP STRUCTURE FKK_CRM_ACCOUNT_PAYMENT_GROUP *" OPTIONAL *" RT_BAPI_RET STRUCTURE BAPIRET2 *" ET_WORKFLOW_TEXTS STRUCTURE FKK_WF_COMMENT OPTIONAL *"---------------------------------------------------------------------data:C_DFKKOPKC type DFKKOPKC. ******** New Declarations TYPES: BEGIN OF TY_BUT0CC, CCARD_ID TYPE BU_CCID, CCINS TYPE CC_INSTITUTE, CCNUM TYPE BU_CCNUM, END OF TY_BUT0CC, BEGIN OF TY_CCARD, CCNUM TYPE CCNUM, CCNAME TYPE CCNAME, CCTYP TYPE CC_CCTYP, DATAB TYPE CC_DATAB, DATBI TYPE CC_DATBI, END OF TY_CCARD, BEGIN OF TY_FKKVKP, VKONT TYPE VKONT_KK, GPART TYPE GPART_KK, END OF TY_FKKVKP. ***********internal table declaration*************************************** *data: lt_but0cc type table of ty_ty_but0cc, * lt_paycard type GENEBPP_PAYCARD, * lt_bankdetaildata type fIS_BANK_DETAIL. ************work area declaration ***************************************** DATA: LS_BUT0CC TYPE TY_BUT0CC, LS_PAYCARD TYPE GENEBPP_PAYCARD, LS_BANKDETAILDATA TYPE FIS_BANK_DETAIL, LS_FKKVKP TYPE TY_FKKVKP, I_CONTROLDATA TYPE GENEBPP_CONTROL, LS_CCARD TYPE TY_CCARD, ZPSTLZ TYPE CCAUT-PSTLZ. DATA: LT_CCAUT_IN LIKE CCAUT OCCURS 0 WITH HEADER LINE, LT_CCAUT_OUT LIKE CCAUT_R OCCURS 0 WITH HEADER LINE, LT_CCAUT_HEADERS LIKE CCAUT_H OCCURS 0 WITH HEADER LINE, LT_CCAUT_ITEMS LIKE CCAUT_I OCCURS 0 WITH HEADER LINE. DATA: L_PARTNER TYPE ERDK-PARTNER. DATA: L_ACCOUNT TYPE ERDK-VKONT. DATA: L_VKONT TYPE ERDK-VKONT. DATA: L_ADDRNUMBER TYPE BUT020-ADDRNUMBER.

DATA: L_NOW(15) TYPE N. DATA: L_POSTCODE1 TYPE ADRC-POST_CODE1, L_POSTCODE2 TYPE ADRC-POST_CODE2, L_POSTCODE3 TYPE ADRC-POST_CODE3. DATA:L_AUDAT TYPE ZEDS_LOG-AUDAT, L_AUNUM TYPE ZEDS_LOG-AUNUM, L_AUTIM TYPE ZEDS_LOG-AUTIM. DATA: L_ZIP1(5) TYPE C, L_ZIP2(4) TYPE C. CONSTANTS: C_HYPHEN TYPE C VALUE '-', C_DEFAULT TYPE BUT021_FS-ADR_KIND VALUE 'XXDEFAULT'. DATA: W_EXEMPT TYPE FKKVKP-VKONT. CLEAR: L_ZIP1, L_ZIP2, W_EXEMPT, LS_BUT0CC, LS_PAYCARD, LS_BANKDETAILDATA, LS_FKKVKP, I_CONTROLDATA, LS_CCARD, ZPSTLZ, LT_CCAUT_IN, LT_CCAUT_OUT, LT_CCAUT_HEADERS, LT_CCAUT_ITEMS, L_PARTNER, L_ACCOUNT, L_ADDRNUMBER, L_NOW, L_POSTCODE1, L_POSTCODE2, L_POSTCODE3, L_AUDAT, L_AUTIM. REFRESH: LT_CCAUT_IN, LT_CCAUT_OUT, LT_CCAUT_HEADERS, LT_CCAUT_ITEMS. SELECT SINGLE VKONT GPART FROM FKKVKP INTO LS_FKKVKP WHERE GPART = IS_PAY_HEADER-GPART. IF LS_FKKVKP IS NOT INITIAL. SELECT SINGLE GPART INTO L_PARTNER FROM FKKVKP WHERE GPART EQ IS_PAY_HEADERGPART. SELECT SINGLE VKONT INTO L_VKONT FROM FKKVKP WHERE GPART EQ IS_PAY_HEADER-GP ART. CONCATENATE SY-DATUM SY-UZEIT INTO L_NOW.

SELECT SINGLE ADDRNUMBER INTO L_ADDRNUMBER FROM BUT021_FS WHERE PARTNER = L_PARTNER AND ADR_KIND = C_DEFAULT "XXDEFAULT AND VALID_TO >= L_NOW AND VALID_FROM <= L_NOW. * End of change by Satheesh Bala (BALASA) on Sept 22, 2008 * IF SY-SUBRC <> 0. EXIT. ENDIF. SELECT POST_CODE1 POST_CODE2 POST_CODE3 INTO (L_POSTCODE1, L_POSTCODE2, L_POSTCODE3) FROM ADRC UP TO 1 ROWS WHERE ADDRNUMBER = L_ADDRNUMBER. ENDSELECT. IF SY-SUBRC <> 0. * EXIT. ENDIF. IF L_POSTCODE1 IS NOT INITIAL. IF L_POSTCODE1 CA C_HYPHEN. SPLIT L_POSTCODE1 AT C_HYPHEN INTO L_ZIP1 L_ZIP2. CONCATENATE L_ZIP1 L_ZIP2 INTO ZPSTLZ. ENDIF. IF ZPSTLZ IS INITIAL. IF L_POSTCODE1 IS NOT INITIAL. ZPSTLZ = L_POSTCODE1. ENDIF. ENDIF.

ELSEIF L_POSTCODE2 IS NOT INITIAL. IF L_POSTCODE2 CA C_HYPHEN. SPLIT L_POSTCODE2 AT C_HYPHEN INTO L_ZIP1 L_ZIP2. CONCATENATE L_ZIP1 L_ZIP2 INTO ZPSTLZ. ELSE. IF L_POSTCODE2 IS NOT INITIAL. ZPSTLZ = L_POSTCODE2. ENDIF. ENDIF. ELSEIF L_POSTCODE3 IS NOT INITIAL. IF L_POSTCODE3 CA C_HYPHEN. SPLIT L_POSTCODE3 AT C_HYPHEN INTO L_ZIP1 L_ZIP2. CONCATENATE L_ZIP1 L_ZIP2 INTO ZPSTLZ.

ELSE. IF L_POSTCODE3 IS NOT INITIAL. ZPSTLZ = L_POSTCODE3. ENDIF. ENDIF. ENDIF. SELECT SINGLE * FROM BUT0BK INTO CORRESPONDING FIELDS OF LS_BANKDETAILDATA WHERE PARTNER = LS_FKKVKP-GPART AND BKVID = IS_PAY_HEADER-BNKID. SELECT SINGLE CCARD_ID CCINS CCNUM FROM BUT0CC INTO LS_BUT0CC WHERE CCARD_ID = IS_PAY_HEADER-CRDID AND PARTNER = LS_FKKVKP-GPART. IF LS_BUT0CC IS NOT INITIAL. SELECT SINGLE CCNUM CCNAME CCTYP DATAB DATBI FROM CCARD INTO LS_CCARD WHERE CCNUM = LS_BUT0CC-CCNUM. ENDIF. ENDIF. IS_PAY_CARD-CCNUM = LS_BUT0CC-CCNUM. *IS_PAY_AUTH-AUNUM "need to pass in from CRM message v2 SELECT AUDAT AUTIM AUNUM INTO (L_AUDAT, L_AUTIM, L_AUNUM) FROM ZEDS_LOG UP TO 1 ROWS WHERE CCNUM = IS_PAY_CARD-CCNUM AND DATE1 = SY-DATUM. * AND TIME1(4) = SY-UZEIT(4). . ENDSELECT. IS_PAY_AUTH-AUDAT IS_PAY_AUTH-AUTIM IS_PAY_AUTH-AUNUM IS_PAY_AUTH-CCWAE IS_PAY_AUTH-MERCH = L_AUDAT. " = L_AUTIM. " = L_AUNUM. = 'USD'. = '341'. 00000000 000000

MOVE-CORRESPONDING RT_PAYMENT_ITEM to C_DFKKOPKC. MOVE-CORRESPONDING IS_PAY_AUTH to C_DFKKOPKC. C_DFKKOPKC-CCNUM = IS_PAY_CARD-CCNUM. *MANDT MANDT CLNT 3 0 Client * C_DFKKOPKC-OPBEL OPBEL_KK CHAR 12 0 Number of Contract Accts Rec. & Payabl e Doc. * C_DFKKOPKC-OPUPK OPUPK_KK NUMC 4 0 Item number in contract account document *.INCLUDE FKKOPKC_CRD STRU 0 0 Payment Cards: Card Data * C_DFKKOPKCCCINS CC_INSTITUTE CHAR 4 0 Payment card type * C_DFKKOPKCCCNUM CCNUM CHAR 25 0 Payment cards: Card number * C_DFKKOPKCCCFOL CCFOL CHAR 10 0 Payment cards: Payment card suffix

* C_DFKKOPKCDATAB CC_DATAB * C_DFKKOPKCDATBI CC_DATBI * C_DFKKOPKCCCNAME CCNAME *.INCLUDE FKKOPKC_AUT STRU *C_DFKKOPKCAUNUM AUNUM_KK *C_DFKKOPKCAUTRA AUTRA_KK umber

DATS 8 0 Payment cards: Valid from DATS 8 0 Payment Cards: Valid To CHAR 40 0 Payment cards: Name of cardholder 0 0 Payment Cards: Data for Authorization CHAR 25 0 Payment cards: Authorization number CHAR 25 0 Payment Cards: Authorization Reference N

*C_DFKKOPKCAUDAT AUDAT_CC DATS 8 0 Payment cards: Authorization date *C_DFKKOPKCAUTIM AUTIM TIMS 6 0 Payment cards: Authorization time *C_DFKKOPKCAUART AUART_KK CHAR 1 0 Payment cards: Authorization type *C_DFKKOPKCAUTWR AUTWR CURR 15 2 Payment cards: Authorized amount *C_DFKKOPKCCCWAE WAERS CUKY 5 0 Currency Key *C_DFKKOPKCMERCH MERCH CHAR 15 0 Payment cards: Merchant ID at the clearing h ouse *.INCLUDE FKKOPKC_DOC STRU 0 0 Payment Cards: Doc Data *C_DFKKOPKCBUDAT BUDAT DATS 8 0 Posting Date in the Document *C_DFKKOPKCBETRW BETRW_KK CURR 13 2 Amount in Transaction Currency with +/Sign *C_DFKKOPKCWAERS WAERS CUKY 5 0 Currency Key *C_DFKKOPKCBUKRS BUKRS CHAR 4 0 Company Code *C_DFKKOPKCVALUT VALUT DATS 8 0 Value date *.INCLUDE FKKOPKC_SET STRU 0 0 Payment Cards: Data for Billing/Reporting *C_DFKKOPKCXSETT XSETT_KK CHAR 1 0 Billing Status *C_DFKKOPKCLAUFI LAUFI_KK2 CHAR 16 0 Payment Cards: Run ID of Billing Run *C_DFKKOPKCSTDOC STDOC_KK CHAR 12 0 Document Number of Billing Document *C_DFKKOPKCRESEND RESEND_KK CHAR 1 0 Payment Card Supplement Was Resent *.INCLUDE FKKOPKC_PYP STRU 0 0 Payment Cards: Data from Payment Program *C_DFKKOPKCLAUFD_PYP LAUFD_KK DATS 8 0 Date ID *C_DFKKOPKCLAUFI_PYP LAUFI_PAY CHAR 5 0 Identification for the payment run *C_DFKKOPKCORIGN_PYP ORIGN_PAY CHAR 1 0 Source of the payment data *.INCLUDE FKKOPKC_PYC STRU 0 0 Payment Cards: Payment Data for Card Organizatio n *C_DFKKOPKCANZRATE ANZRATE_CRD NUMC 3 0 No. of Installments\ *C_DFKKOPKCCVVAL CVVAL_KK CHAR 6 0 Card Verification Code (Check Number on Ca rd, CVC Number) *C_DFKKOPKCCVVCT CVVCT_KK CHAR 1 0 Control Field for Card Verification Value *C_DFKKOPKCCVVST CVVST_KK CHAR 1 0 Usage Status of Card Verification Code *C_DFKKOPKCCGUID CARD_GUID RAW 16 0 GUID of a Payment Card *C_DFKKOPKCENCTP CCSECA_ENCTYPE CHAR 1 0 Type of Encryption *CALL FUNCTION 'Z_FKK_SAMPLE_1400' ** TABLES ** T_FKKCL = * CHANGING * C_DFKKOPKC = C_DFKKOPKC. . CALL FUNCTION 'FKK_CRM_ACCOUNT_PAYMENT' EXPORTING IS_PAY_HEADER = IS_PAY_HEADER IS_PAY_CARD = IS_PAY_CARD IS_PAY_AUTH = IS_PAY_AUTH IMPORTING EV_REFID = EV_REFID TABLES RT_PAYMENT_ITEM = RT_PAYMENT_ITEM * RT_PAYMENT_GROUP =

RT_BAPI_RET = RT_BAPI_RET. ET_WORKFLOW_TEXTS = DATA:ZOPBUK TYPE FKKVKP-OPBUK, ZMESSAGE TYPE EDIMESSAGE, ZRETURN TYPE BAPIRET1, ZUSER TYPE EBPP_USER, ZCATEGORY TYPE EBPP_CATEGORYNAME, ZTIME TYPE EBPP_TIMESTAMP, ZEZAWE TYPE FKKVKP-EZAWE. DATA: I_PARTNER LIKE GENEBPP_PARTNER, LS_PARTNER LIKE BUT000.

CLEAR:ZOPBUK,ZMESSAGE, ZRETURN, ZUSER, ZCATEGORY,ZTIME. SELECT SINGLE * FROM BUT000 INTO CORRESPONDING FIELDS OF LS_PARTNER WHERE PARTNER = LS_FKKVKP-GPART. * I_PARTNER-UNAME = 'CRM_MW_RFC'. " commented by aakriti I_PARTNER-UNAME = sy-uname. " added by aakriti I_PARTNER-PARTNERKEY = LS_PARTNER-PARTNER. I_PARTNER-PARTNERTYPE = LS_PARTNER-TYPE. ZCATEGORY = 'FSCM0004'. ZUSER-ID = I_PARTNER-UNAME. ZUSER-BP_ID = I_PARTNER-PARTNERKEY. ZUSER-BP_TYPE = I_PARTNER-PARTNERTYPE. ZMESSAGE-MSGID = 'ZUCES'. ZMESSAGE-MSGTY = 'S'. ZMESSAGE-MSGNO = '004'. ZMESSAGE-MSGV1 = EV_REFID. ZMESSAGE-MSGV2 = IS_PAY_HEADER-NEBTR. CALL FUNCTION 'EBPP_EVENT_LOG' EXPORTING CATEGORYNAME = ZCATEGORY USER = ZUSER TIMESTAMP = ZTIME MESSAGE = ZMESSAGE *** REFERENCE = IMPORTING RETURN = ZRETURN.

ENDFUNCTION.

Potrebbero piacerti anche