Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => SE38 - ABAP Редактор => Тема розпочата: Паганель від Серпень 16, 2009, 01:37:29 ПП

Назва: Баланс (обороты) по счету ГК - маленький примерчик
Відправлено: Паганель від Серпень 16, 2009, 01:37:29 ПП
Пишу больше для себя, что бы потом не забыть,
по мотивам http://www.sapnet.ru/viewtopic.php?t=651 (http://www.sapnet.ru/viewtopic.php?t=651).

Работает быстренько.

Работает как для "старой" (табличка 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.