Пишу больше для себя, что бы потом не забыть,
по мотивам You are not allowed to view links.
Register or
Login.
Работает быстренько.
Работает как для "старой" (табличка GLT0)так и для "новой, гибкой" ГК (табличка faglflext )
Для удобства, завернул в подпрограмму:
*&---------------------------------------------------------------------*
*& Form get_glaccount_balance
*&---------------------------------------------------------------------*
* Получение баланса по счету
*----------------------------------------------------------------------*
FORM get_glaccount_balance
USING
account TYPE bapi1028_0-gl_account
bukrs TYPE mseg-bukrs
CHANGING
rs_dmbtr TYPE mseg-dmbtr.
DATA: year TYPE BAPI1028_4-FISC_YEAR,
mon(2) TYPE c.
DATA: gt_account_balances LIKE bapi1028_4 OCCURS 0 WITH HEADER LINE.
year = so_budat-low+0(4).
mon = so_budat-low+4(2).
CALL FUNCTION 'BAPI_GL_GETGLACCPERIODBALANCES'
EXPORTING
companycode = bukrs
glacct = account
fiscalyear = year
currencytype = '10' "Moneda local
* IMPORTING
* BALANCE_CARRIED_FORWARD =
* RETURN =
TABLES
account_balances = gt_account_balances.
SORT gt_account_balances BY comp_code gl_account fisc_year fis_period.
READ TABLE gt_account_balances
WITH KEY
comp_code = bukrs
gl_account = account
fisc_year = year
fis_period = mon.
IF sy-subrc EQ 0.
rs_dmbtr = gt_account_balances-debits_per.
ENDIF.
ENDFORM. " get_glaccount_balance
Вызов:
purch_dmbtr = 0.
PERFORM get_glaccount_balance
USING
'0063109900'
ls_sumtab-bukrs
CHANGING
purch_dmbtr.