You are on page 1of 8

function modules: FUNCTION ZERM_POST.

*"---------------------------------------------------------------------*"*"Local Interface: *" IMPORTING *" REFERENCE(ERM_HEAD) TYPE ZERM_REQUEST_H *" REFERENCE(ERM_ITEM) TYPE ZERM_REQUEST_I *" EXPORTING *" REFERENCE(MSGTY) TYPE MSGTY *"---------------------------------------------------------------------DATA : LT_BKPF TYPE TABLE OF BKPF, LS_BKPF TYPE BKPF, LS_ZERM_APPR TYPE ZERM_APPR. DATA : LV_MSGID LV_MSGNO LV_MSGTY LV_MSGV1 LV_MSGV2 LV_MSGV3 LV_MSGV4 LV_SUBRC TYPE TYPE TYPE TYPE TYPE TYPE TYPE TYPE SY-MSGID, SY-MSGNO, SY-MSGTY, SY-MSGV1, SY-MSGV2, SY-MSGV3, SY-MSGV4, SY-SUBRC.

DATA : LT_BLNTAB TYPE TABLE OF BLNTAB, LS_BLNTAB TYPE BLNTAB, LT_FTPOST TYPE TABLE OF FTPOST, LS_FTPOST TYPE FTPOST, LT_FTTAX TYPE TABLE OF FTTAX, LV_TEXT TYPE STRING. DATA : GJAHR TYPE BKPF-GJAHR, MONAT TYPE BKPF-GJAHR. SELECT * INTO TABLE LT_BKPF FROM BKPF WHERE BUKRS = ERM_HEAD-CCODE AND TCODE = 'FB01'. READ TABLE LT_BKPF INTO LS_BKPF INDEX 1. LS_BLNTAB-BUKRS = ERM_HEAD-CCODE. APPEND LS_BLNTAB TO LT_BLNTAB. LS_FTPOST-STYPE = 'K'. LS_FTPOST-COUNT = '001'. LS_FTPOST-FNAM = 'BKPF-BLDAT'. LS_FTPOST-FVAL = SY-DATUM. APPEND LS_FTPOST TO LT_FTPOST. LS_FTPOST-STYPE = 'K'. LS_FTPOST-COUNT = '001'. LS_FTPOST-FNAM = 'BKPF-BLART'. LS_FTPOST-FVAL = LS_BKPF-BLART. APPEND LS_FTPOST TO LT_FTPOST. LS_FTPOST-STYPE = 'K'. LS_FTPOST-COUNT = '001'. LS_FTPOST-FNAM = 'BKPF-BUKRS'. LS_FTPOST-FVAL = ERM_HEAD-CCODE. APPEND LS_FTPOST TO LT_FTPOST.

LS_FTPOST-STYPE = 'K'. LS_FTPOST-COUNT = '001'. LS_FTPOST-FNAM = 'BKPF-BUKRS'. LS_FTPOST-FVAL = ERM_HEAD-CCODE. APPEND LS_FTPOST TO LT_FTPOST.

CALL FUNCTION 'FI_PERIOD_DETERMINE' EXPORTING i_budat = SY-DATUM I_BUKRS = ERM_HEAD-CCODE IMPORTING E_GJAHR = GJAHR E_MONAT = MONAT EXCEPTIONS ERROR_MESSAGE = 1. LS_FTPOST-STYPE = 'K'. LS_FTPOST-COUNT = '001'. LS_FTPOST-FNAM = 'BKPF-MONAT'. LS_FTPOST-FVAL = MONAT. APPEND LS_FTPOST TO LT_FTPOST. LS_FTPOST-STYPE = 'K'. LS_FTPOST-COUNT = '001'. LS_FTPOST-FNAM = 'BKPF-WAERS'. LS_FTPOST-FVAL = ERM_HEAD-CURRK. APPEND LS_FTPOST TO LT_FTPOST. LS_FTPOST-STYPE = 'K'. LS_FTPOST-COUNT = '001'. LS_FTPOST-FNAM = 'BKPF-XBLNR'. LS_FTPOST-FVAL = ERM_ITEM-ITEM_NO. APPEND LS_FTPOST TO LT_FTPOST. LS_FTPOST-STYPE = 'K'. LS_FTPOST-COUNT = '001'. LS_FTPOST-FNAM = 'BKPF-XBLNR'. LS_FTPOST-FVAL = ERM_ITEM-ITEM_NO. APPEND LS_FTPOST TO LT_FTPOST. LV_TEXT = ERM_HEAD-ERDATE. SHIFT LV_TEXT LEFT DELETING LEADING SPACE. LS_FTPOST-STYPE = 'K'. LS_FTPOST-COUNT = '001'. LS_FTPOST-FNAM = 'BKPF-KURSF'. LS_FTPOST-FVAL = LV_TEXT. APPEND LS_FTPOST TO LT_FTPOST. LS_FTPOST-STYPE = 'K'. LS_FTPOST-COUNT = '001'. LS_FTPOST-FNAM = 'ERM_ITEM-S_AMT'. LS_FTPOST-FVAL = ERM_ITEM-S_AMT. APPEND LS_FTPOST TO LT_FTPOST.

IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION 'POSTING_INTERFACE_START' EXPORTING i_function = 'C' I_MODE = 'E' EXCEPTIONS CLIENT_INCORRECT = 1 FUNCTION_INVALID = 2 GROUP_NAME_MISSING = 3 MODE_INVALID = 4 UPDATE_INVALID = 5 OTHERS = 6. IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION 'POSTING_INTERFACE_DOCUMENT' EXPORTING i_tcode = 'FB01' IMPORTING E_MSGID = LV_MSGID E_MSGNO = LV_MSGNO E_MSGTY = LV_MSGTY E_MSGV1 = LV_MSGV1 E_MSGV2 = LV_MSGV2 E_MSGV3 = LV_MSGV3 E_MSGV4 = LV_MSGV4 E_SUBRC = LV_SUBRC tables t_blntab = LT_BLNTAB t_ftpost = LT_FTPOST t_fttax = LT_FTTAX EXCEPTIONS ACCOUNT_MISSING = 1 COMPANY_CODE_MISSING = 2 POSTING_KEY_INVALID = 3 POSTING_KEY_MISSING = 4 RECORD_TYPE_INVALID = 5 TRANSACTION_CODE_INVALID = 6 AMOUNT_FORMAT_ERROR = 7 TOO_MANY_LINE_ITEMS = 8 COMPANY_CODE_INVALID = 9 SCREEN_NOT_FOUND = 10 NO_AUTHORIZATION = 11 OTHERS = 12. IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. CALL FUNCTION 'POSTING_INTERFACE_END'. IF LV_MSGTY = 'S' AND

LV_MSGNO = '312'. LS_ZERM_APPR-DOCTY LS_ZERM_APPR-DOCNO LS_ZERM_APPR-ARDBY LS_ZERM_APPR-ARDON = = = = LV_MSGTY. LV_MSGV1. SY-UNAME. SY-DATUM.

INSERT ZERM_APPR FROM LS_ZERM_APPR. ENDIF. MSGTY = LV_MSGTY. ENDFUNCTION. FUNCTION ZERM_APPROVAL. *"---------------------------------------------------------------------*"*"Local Interface: *" IMPORTING *" REFERENCE(TRANSID) TYPE ZERM_REQUEST_H-TRANSID *" EXPORTING *" REFERENCE(ES_RETURN) TYPE BAPIRETURN *"---------------------------------------------------------------------DATA: LV_APPROVED TYPE ZERM_REQUEST_I-ARDBY, LT_ZERM_REQ_I TYPE TABLE OF ZERM_REQUEST_I. DATA: LS_ZERM_REQ_I TYPE ZERM_REQUEST_I. SELECT * INTO TABLE LT_ZERM_REQ_I FROM ZERM_REQUEST_I WHERE TRANSID = TRANSID. READ TABLE LT_ZERM_REQ_I INTO LS_ZERM_REQ_I INDEX 1. LS_ZERM_REQ_I-ARDBY = SY-UNAME. LS_ZERM_REQ_I-ARDON = SY-DATUM. MODIFY ZERM_REQUEST_I FROM LS_ZERM_REQ_I. ENDFUNCTION. FUNCTION ZERM_CREATE_REQUEST. *"---------------------------------------------------------------------*"*"Local Interface: *" IMPORTING *" REFERENCE(LS_HEAD) LIKE ZERM_REQUEST_H STRUCTURE *" ZERM_REQUEST_H *" REFERENCE(LT_ITEM) LIKE ZERM_REQUEST_I STRUCTURE *" ZERM_REQUEST_I *" EXPORTING *" REFERENCE(ES_RETURN) TYPE BAPIRETURN *" TABLES *" LT_TBITEM STRUCTURE ZERM_REQUEST_I *"---------------------------------------------------------------------DATA : LT_ZERM_REQ_H DATA : LT_ZERM_REQ_I LS_ZERM_REQ_H LS_ZERM_REQ_I TYPE TYPE TYPE TYPE TABLE OF ZERM_REQUEST_H. TABLE OF ZERM_REQUEST_I, ZERM_REQUEST_H, ZERM_REQUEST_I,

LV_ENDDAT TYPE STRING, LV_END TYPE STRING, LV_EREM TYPE STRING, LV_REM TYPE STRING, LV_TXT TYPE STRING, LV_STR TYPE STRING, LV_DATE TYPE STRING, LS_TBITEM TYPE ZERM_REQUEST_I. Data : LV_TRANSID type ZERM_REQUEST_H-TransID. Data : LV_TNSID type ZERM_REQUEST_I-TransID. Data : LV_COUNT type I VALUE 0. * LV_TRANSID TYPE ZERM_REQUEST_H-TRANSID. LV_ENDDAT = SY-DATUM. LV_END = LV_ENDDAT+0(4). LV_REM = LV_ENDDAT+6(2). LV_EREM = LV_ENDDAT+4(2). LV_ENDDAT = LV_END + 3. *LV_ENDDAT = LV_STR + LV_REM. CONCATENATE LV_REM LV_EREM LV_ENDDAT INTO LV_TXT SEPARATED BY '.' . CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL' EXPORTING date_external = LV_TXT * ACCEPT_INITIAL_DATE = IMPORTING DATE_INTERNAL = LV_DATE EXCEPTIONS DATE_EXTERNAL_IS_INVALID = 1 OTHERS = 2 . IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. IF LS_HEAD IS NOT INITIAL. CLEAR LV_TRANSID. SELECT MAX( TRANSID ) INTO lv_transid FROM ZERM_REQUEST_H. SELECT * INTO TABLE LT_ZERM_REQ_H FROM ZERM_REQUEST_H where TRANSID = LV_TRANSID. READ TABLE LT_ZERM_REQ_H INTO LS_ZERM_REQ_H INDEX 1. LS_ZERM_REQ_H-TRANSID LS_ZERM_REQ_H-PERNR LS_ZERM_REQ_H-CCODE LS_ZERM_REQ_H-ESGRP LS_ZERM_REQ_H-CCENT LS_ZERM_REQ_H-WBS LS_ZERM_REQ_H-DDATE LS_ZERM_REQ_H-CURRK = = = = = = = = LS_ZERM_REQ_H-TRANSID + 1. LS_HEAD-PERNR. LS_HEAD-CCODE. LS_HEAD-ESGRP. LS_HEAD-CCENT. LS_HEAD-WBS. LS_HEAD-DDATE. LS_HEAD-CURRK.

LS_ZERM_REQ_H-ERDATE LS_ZERM_REQ_H-RMRKS LS_ZERM_REQ_H-RPMGR LS_ZERM_REQ_H-ISAPPR LS_ZERM_REQ_H-CRDBY LS_ZERM_REQ_H-CRDON LS_ZERM_REQ_H-CHDBY LS_ZERM_REQ_H-CHDON LS_ZERM_REQ_H-FTRAVAL

= = = = = = = = =

LS_HEAD-ERDATE. LT_ITEM-RMRKD. LS_HEAD-RPMGR. LS_HEAD-ISAPPR. SY-UNAME. SY-DATUM. SY-UNAME. SY-DATUM. LS_HEAD-FTRAVAL.

****** ITEM TABLE UPDATION SELECT * INTO LS_ZERM_REQ_I FROM ZERM_REQUEST_I WHERE TRANSID = LV_TRANSID. ENDSELECT. LS_ZERM_REQ_I-TRANSID = LV_TRANSID + 1. LOOP AT LT_TBITEM INTO LS_TBITEM. IF LV_COUNT NE 0. CLEAR LV_TRANSID. SELECT MAX( TRANSID ) INTO LV_TRANSID FROM ZERM_REQUEST_I. CLEAR LT_ZERM_REQ_I. SELECT * INTO TABLE LT_ZERM_REQ_I FROM ZERM_REQUEST_I WHERE TRANSID = LV_TRANSID. * WHERE PERNR = LS_ZERM_REQ_H-PERNR. CLEAR LS_ZERM_REQ_I. READ TABLE LT_ZERM_REQ_I INTO LS_ZERM_REQ_I INDEX 1. endif. LS_ZERM_REQ_I-ITEM_NO = LS_ZERM_REQ_I-ITEM_NO + 1. LS_ZERM_REQ_I-EXPSET = LS_TBITEM-EXPSET. LS_ZERM_REQ_I-EDESC = LS_TBITEM-EDESC . LS_ZERM_REQ_I-TRANSID = LS_ZERM_REQ_i-TRANSID. LS_ZERM_REQ_I-BILL_NO = LS_TBITEM-BILL_NO. LS_ZERM_REQ_I-MOBILE = LS_TBITEM-MOBILE. LS_ZERM_REQ_I-B_AMT = LS_TBITEM-B_AMT. LS_ZERM_REQ_I-S_AMT = LS_TBITEM-S_AMT. LS_ZERM_REQ_I-ISAPPR = LS_TBITEM-ISAPPR. LS_ZERM_REQ_I-TMODE = LS_TBITEM-TMODE. LS_ZERM_REQ_I-CONVN = LS_TBITEM-CONVN. LS_ZERM_REQ_I-RMRKD = LS_TBITEM-RMRKD. IF LS_TBITEM-EDESC = 'Mobile Expenses'. LS_ZERM_REQ_I-BEGDT = SY-DATUM. LS_ZERM_REQ_I-ENDDA = LV_DATE. ENDIF. LS_ZERM_REQ_I-CRDBY = SY-UNAME. LS_ZERM_REQ_I-CRDON = SY-DATUM. LS_ZERM_REQ_I-CHDBY = SY-UNAME. LS_ZERM_REQ_I-CHDON = SY-DATUM. LS_ZERM_REQ_I-ARDBY = SY-UNAME. LS_ZERM_REQ_I-ARDON = SY-DATUM. MODIFY ZERM_REQUEST_I FROM LS_ZERM_REQ_I. LV_COUNT = LV_COUNT + 1. ENDLOOP. MODIFY ZERM_REQUEST_H FROM LS_ZERM_REQ_H."ZERM_REQ_H. "ZERM_REQ_H. ENDIF.

ENDFUNCTION. FUNCTION zerm_get_emp_details. *"---------------------------------------------------------------------*"*"Local Interface: *" IMPORTING *" REFERENCE(I_UNAME) TYPE UNAME DEFAULT SY-UNAME *" REFERENCE(I_PERNR) TYPE BAPIEMPLB-PERNO *" EXPORTING *" REFERENCE(ES_EMPLOYEE) TYPE ZERM_EMP *" REFERENCE(ES_RETURN) TYPE BAPIRETURN *"---------------------------------------------------------------------DATA : ls_org_assignment TYPE bapip0001b, lt_org_assignment TYPE TABLE OF bapip0001b, ls_personal_data TYPE bapip0002b, lt_personal_data TYPE TABLE OF bapip0002b, ls_communication TYPE bapip0105b, lt_communication TYPE TABLE OF bapip0105b, lv_uname TYPE bapiemplb-userid. lv_uname = i_uname. CALL FUNCTION 'BAPI_EMPLOYEE_GETDATA' EXPORTING employee_id = i_pernr userid = lv_uname date = sy-datum authority_check = 'X' IMPORTING return = es_return TABLES org_assignment = lt_org_assignment personal_data = lt_personal_data communication = lt_communication. CLEAR ls_org_assignment. READ TABLE lt_org_assignment INTO ls_org_assignment INDEX 1. IF sy-subrc EQ 0. MOVE ls_org_assignment-perno MOVE ls_org_assignment-name MOVE ls_org_assignment-comp_code MOVE ls_org_assignment-orgtxt MOVE ls_org_assignment-esubgroup MOVE ls_org_assignment-pers_admin MOVE ls_org_assignment-org_unit MOVE ls_org_assignment-payarea MOVE ls_org_assignment-costcenter ENDIF. TO TO TO TO TO TO TO TO TO es_employee-empid . es_employee-name . es_employee-ccode . es_employee-ccode_t. es_employee-esgrp . es_employee-esgrp_t. es_employee-sectn . es_employee-curr . es_employee-ccent .

CLEAR ls_communication. READ TABLE lt_communication INTO ls_communication WITH KEY subtype = 'CELL'. IF sy-subrc EQ 0.

MOVE ls_communication-userid ENDIF.

TO es_employee-mobil.

CLEAR ls_communication. READ TABLE lt_communication INTO ls_communication WITH KEY subtype = '0010'. IF sy-subrc EQ 0. MOVE ls_communication-usrid_long TO es_employee-email. ENDIF. ENDFUNCTION.

*---------------------------------------------------------------------* * program for: TABLEFRAME_ZERM_VIEWS * generation date: 07.12.2010 at 11:07:30 by user CNLT05_INWIT * view maintenance generator version: #001407# *---------------------------------------------------------------------* FUNCTION TABLEFRAME_ZERM_VIEWS . PERFORM TABLEFRAME TABLES X_HEADER X_NAMTAB DBA_SELLIST DPL_SELLIST EXCL_CUA_FUNCT USING CORR_NUMBER VIEW_ACTION VIEW_NAME. ENDFUNCTION. *---------------------------------------------------------------------* * program for: TABLEPROC_ZERM_VIEWS * generation date: 07.12.2010 at 11:07:30 by user CNLT05_INWIT * view maintenance generator version: #001407# *---------------------------------------------------------------------* FUNCTION TABLEPROC_ZERM_VIEWS . PERFORM TABLEPROC. ENDFUNCTION.

You might also like