GL Opening Closing Balance as on Key Date

7
G/L Opening/Closing Balance as on Key Date By Venu Chippa, NovelERP Solutions Pvt Ltd Scenario: Step-by-step creation of a FM to Get Opening/Closing Balance of G/L as on Key Date. As we have Standard FM in SAP For G/L Balances: - BAPI_GL_GETGLACCBALANCE:- closing balance of G/L account for a year. BAPI_GL_GETGLACCCURRENTBALANCE: - closing balance of G/L account for the current year BAPI_GL_GETGLACCPERIODBALANCES:- Posting period balances for each G/L account. And BAPI_AP_ACC_GETKEYDATEBALANCE:- Opening Vendor balance BAPI_AR_ACC_GETKEYDATEBALANCE:- Opening Customer Balance But we don’t have any standard FM to get Opening/Closing G/L Account Balance As on key date. This Document specifies Step by Step how to create a FM for getting Opening/Closing G/L Account Balance with code. 1. Create FM in SE37:- ZGL_OPENING_CLOSING_BAL_KEYDAT.

description

GL Opening Closing Balance as on Key Date Function Module

Transcript of GL Opening Closing Balance as on Key Date

Page 1: GL Opening Closing Balance as on Key Date

G/L Opening/Closing Balance as on Key Date

By Venu Chippa, NovelERP Solutions Pvt Ltd

Scenario: Step-by-step creation of a FM to Get Opening/Closing Balance of G/L as on Key Date.

As we have Standard FM in SAP For G/L Balances: -

BAPI_GL_GETGLACCBALANCE:- closing balance of G/L account for a year.

BAPI_GL_GETGLACCCURRENTBALANCE: - closing balance of G/L account for the current year

BAPI_GL_GETGLACCPERIODBALANCES:- Posting period balances for each G/L account.

And

BAPI_AP_ACC_GETKEYDATEBALANCE:- Opening Vendor balance

BAPI_AR_ACC_GETKEYDATEBALANCE:- Opening Customer Balance

But we don’t have any standard FM to get Opening/Closing G/L Account Balance As on key date.

This Document specifies Step by Step how to create a FM for getting Opening/Closing G/L Account Balance with code.

1. Create FM in SE37:- ZGL_OPENING_CLOSING_BAL_KEYDAT.

Page 2: GL Opening Closing Balance as on Key Date

2. Maintain Parameters in Import and Export as shown below.

Page 3: GL Opening Closing Balance as on Key Date

3. Source code:-

Code:-

FUNCTION ZGL_OPENING_CLOSING_BAL_KEYDAT.*"----------------------------------------------------------------------*"*"Local Interface:*" IMPORTING*" REFERENCE(COMP) TYPE BKPF-BUKRS*" REFERENCE(DATE) TYPE BKPF-BUDAT*" REFERENCE(ACCT) TYPE BSEG-HKONT*" EXPORTING*" REFERENCE(BALANCE) TYPE BSEG-DMBTR*"----------------------------------------------------------------------DATA : COMPANYCODEID LIKE BAPI0002_2-COMP_CODE ,

Page 4: GL Opening Closing Balance as on Key Date

POSTING_DATE LIKE BAPI0002_4-POSTING_DATE ,FISCAL_YEAR LIKE BAPI0002_4-FISCAL_YEAR ,FISCAL_PERIOD LIKE BAPI0002_4-FISCAL_PERIOD .

DATA : ACCOUNT_BALANCES TYPE TABLE OF BAPI3006_4 WITH HEADER LINE.DATA : BAL TYPE BSEG-DMBTR.

DATA : IV_DATE TYPE D ,EV_MONTH_BEGIN_DATE TYPE D,EV_MONTH_END_DATE TYPE D .

DATA : COMPANYCODE LIKE BAPI3006_0-COMP_CODE,GLACCT LIKE BAPI3006_0-GL_ACCOUNT ,FISCALYEAR LIKE BAPI3006_4-FISC_YEAR,CURRENCYTYPE LIKE BAPI3006_5-CURR_TYPE VALUE 10.

DATA : IT_BKPF TYPE TABLE OF BKPF WITH HEADER LINE.

DATA : BEGIN OF IT_BSEG OCCURS 0,BELNR TYPE BSEG-BELNR,GJAHR TYPE BSEG-GJAHR,SHKZG TYPE BSEG-SHKZG ,DMBTR TYPE BSEG-DMBTR,END OF IT_BSEG.

COMPANYCODEID = COMP.POSTING_DATE = DATE.

IV_DATE = DATE.

CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'EXPORTINGIV_DATE = IV_DATEIMPORTINGEV_MONTH_BEGIN_DATE = EV_MONTH_BEGIN_DATEEV_MONTH_END_DATE = EV_MONTH_END_DATE.

CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'EXPORTINGCOMPANYCODEID = COMPANYCODEIDPOSTING_DATE = POSTING_DATEIMPORTINGFISCAL_YEAR = FISCAL_YEARFISCAL_PERIOD = FISCAL_PERIOD.

IF EV_MONTH_END_DATE NE DATE.

IF FISCAL_PERIOD = 1.FISCAL_PERIOD = 12 .FISCAL_YEAR = FISCAL_YEAR - 1 .ELSE.FISCAL_PERIOD = FISCAL_PERIOD - 1.ENDIF.

ENDIF.

Page 5: GL Opening Closing Balance as on Key Date

COMPANYCODE = COMP.GLACCT = ACCT.FISCALYEAR = FISCAL_YEAR.

CALL FUNCTION 'BAPI_GL_ACC_GETPERIODBALANCES'EXPORTINGCOMPANYCODE = COMPANYCODEGLACCT = GLACCTFISCALYEAR = FISCALYEARCURRENCYTYPE = CURRENCYTYPETABLESACCOUNT_BALANCES = ACCOUNT_BALANCES.

READ TABLE ACCOUNT_BALANCES WITH KEY FISC_YEAR = FISCALYEAR FIS_PERIOD = FISCAL_PERIOD.IF SY-SUBRC = 0.BALANCE = ACCOUNT_BALANCES-BALANCE.ENDIF.

IF EV_MONTH_END_DATE NE DATE.

SELECT * FROM BKPF INTO TABLE IT_BKPF WHERE BUKRS = COMP AND BUDAT >= EV_MONTH_BEGIN_DATEAND BUDAT <= DATE.

IF IT_BKPF[] IS NOT INITIAL.

SELECT BELNR GJAHR SHKZG DMBTRFROM BSEG INTO CORRESPONDING FIELDS OF TABLE IT_BSEGFOR ALL ENTRIES IN IT_BKPFWHERE BELNR = IT_BKPF-BELNR AND GJAHR = IT_BKPF-GJAHR AND HKONT = ACCT AND BUKRS = COMP.

ENDIF.

LOOP AT IT_BSEG.IF IT_BSEG-SHKZG = 'H'.BAL = BAL - IT_BSEG-DMBTR.ELSEIF IT_BSEG-SHKZG = 'S'.BAL = BAL + IT_BSEG-DMBTR.ENDIF.ENDLOOP.

BALANCE = BALANCE + BAL.

ENDIF.

ENDFUNCTION.

Output:-

Page 6: GL Opening Closing Balance as on Key Date