GL Opening Closing Balance as on Key Date
-
Upload
ritesh0416770 -
Category
Documents
-
view
16 -
download
3
description
Transcript of GL Opening Closing Balance as on Key Date
![Page 1: GL Opening Closing Balance as on Key Date](https://reader036.fdocuments.in/reader036/viewer/2022082710/55cf94e9550346f57ba5472b/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022082710/55cf94e9550346f57ba5472b/html5/thumbnails/2.jpg)
2. Maintain Parameters in Import and Export as shown below.
![Page 3: GL Opening Closing Balance as on Key Date](https://reader036.fdocuments.in/reader036/viewer/2022082710/55cf94e9550346f57ba5472b/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022082710/55cf94e9550346f57ba5472b/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022082710/55cf94e9550346f57ba5472b/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022082710/55cf94e9550346f57ba5472b/html5/thumbnails/6.jpg)