Текущее время: Пн, июл 21 2025, 17:07

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Функциональный модуль возвращающий остаток по счету на дату.
СообщениеДобавлено: Чт, мар 06 2008, 14:18 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 863
Откуда: СССР
Пол: Мужской
Коллеги,
неохота программировать, то что уже наверняка написано.
Ищу Subj. На входе: БЕ, номер счета главной книги, дата. На выходе - баланс счета. Мож кто знает.
Мне найти не удалось. :cry:
Есть ЛБД SDF с кучей привязанных программ, но мне кажется, "сабмитить" программу не лучший метод.
Кто-нибудь ходил по этим граблям ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Функциональный модуль возвращающий остаток по счету на дату.
СообщениеДобавлено: Чт, мар 06 2008, 14:26 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
hoar написал:
Коллеги,
неохота программировать, то что уже наверняка написано.
Ищу Subj. На входе: БЕ, номер счета главной книги, дата. На выходе - баланс счета. Мож кто знает.
Мне найти не удалось. :cry:
Есть ЛБД SDF с кучей привязанных программ, но мне кажется, "сабмитить" программу не лучший метод.
Кто-нибудь ходил по этим граблям ?

BAPI_GL_GETGLACCPERIODBALANCES не подойдёт?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Функциональный модуль возвращающий остаток по счету на дату.
СообщениеДобавлено: Чт, мар 06 2008, 14:35 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 863
Откуда: СССР
Пол: Мужской
Alex80 написал:
BAPI_GL_GETGLACCPERIODBALANCES не подойдёт?

Посмотрел, этот не подойдет. Он возвращает по периодам, а мне нужно на произвольную дату.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Функциональный модуль возвращающий остаток по счету на дату.
СообщениеДобавлено: Чт, мар 06 2008, 14:58 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
hoar написал:
Посмотрел, этот не подойдет. Он возвращает по периодам, а мне нужно на произвольную дату.
Где-то подобная самописка была через glt0, bsis, bsas........ Если проблема не отпала - свисти - поищу.......

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Функциональный модуль возвращающий остаток по счету на дату.
СообщениеДобавлено: Чт, мар 06 2008, 15:07 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 863
Откуда: СССР
Пол: Мужской
vvvictor написал:
Где-то подобная самописка была через glt0, bsis, bsas........ Если проблема не отпала - свисти - поищу.......

Не отпала, уже свищу.... :lol: Неохота ходить по кем-то пройденным граблям. :wink:
Только BSIS/BSAS, как мне кажется не подойдут, придется лопатить BSEG. Задача нужна в общем виде, в том числе, по счетам "без просмотра отдельных позиций".


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 06 2008, 15:24 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Что-то похожее
Give Open Balance for a given GL account

_________________
С уважением, VGA
Мой блог


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 06 2008, 15:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
glt0 — это круто, пока гибкая главная книга не активирована.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Функциональный модуль возвращающий остаток по счету на дату.
СообщениеДобавлено: Чт, мар 06 2008, 15:30 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
hoar написал:
vvvictor написал:
Где-то подобная самописка была через glt0, bsis, bsas........ Если проблема не отпала - свисти - поищу.......

Не отпала, уже свищу.... :lol: Неохота ходить по кем-то пройденным граблям. :wink:
Только BSIS/BSAS, как мне кажется не подойдут, придется лопатить BSEG. Задача нужна в общем виде, в том числе, по счетам "без просмотра отдельных позиций".
BSIS/BSAS как раз самое то........ Там все, причем в основном ключе - счет....
Code:
data: zmon(2) type n, zmon1 type i,
       fnam(5) type c, zdatum like sy-datum.
field-symbols <obr>.
refresh: t12dt1, t12dt2.
select * from glt0 where rldnr = '00' and rrcty = '0' and rvers = '001'
   and bukrs = s_bukrs and ryear = s_datum(4) and racct in s_hkonts and
       rbusa = space.
  clear t12dt1.
  t12dt1-racct = glt0-racct.
  zmon1 = s_datum+4(2) + 1.
  do zmon1 times.
   if s_datum < sy-datum and sy-index = s_datum+4(2).
    continue.                                  endif.
   if sy-index = zmon1. fnam = 'HSLVT'.                 else.
    zmon = sy-index. concatenate 'HSL' zmon into fnam.  endif.
   assign component fnam of structure glt0 to <obr>.
    if sy-index = zmon1. add <obr> to t12dt1-sum01. endif.
    if sy-index = zmon1 or sy-index < s_datum+4(2).
     add <obr> to t12dt1-sum02.              endif.
    add <obr> to t12dt1-sum03.
  enddo.
  collect t12dt1.
endselect.
if s_datum < sy-datum.
  zdatum = s_datum.  zdatum+6(2) = '01'.
  select * from bsis where bukrs = s_bukrs and budat >= zdatum and
            budat <= s_datum and hkont in s_hkonts.
   clear t12dt1.                      t12dt1-racct = bsis-hkont.
   if bsis-shkzg = 'S'.
    add bsis-dmbtr to t12dt1-sum03.
   else.      subtract bsis-dmbtr from t12dt1-sum03.      endif.
   collect t12dt1.
  endselect.
  select * from bsas where bukrs = s_bukrs and budat >= zdatum and
                        budat <= s_datum and hkont in s_hkonts.
   clear t12dt1.                      t12dt1-racct = bsas-hkont.
   if bsas-shkzg = 'S'.
    add bsas-dmbtr to t12dt1-sum03.
   else.      subtract bsas-dmbtr from t12dt1-sum03.      endif.
   collect t12dt1.
  endselect.
endif.
Как-то так........
Задача стояла по работе с текущим месяцем - причем собирали только рубли.......... Но подточить под любую дату - не проблема......... Ну и, соответственно - что я там собирал в собственные таблица - те места поменяешь на свои действия.........

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Последний раз редактировалось vvvictor Чт, мар 06 2008, 15:34, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 06 2008, 15:33 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
Фактически везде - где присутствует sy-datum - тебе надо поменять ее на некую переменную - в которой сидит последний день месяца на который ты получаешь баланс счета............ Ну и в селекте у меня там ranges - потому как собирал по группе счетов..........

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, мар 06 2008, 15:46 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Пн, сен 06 2004, 11:43
Сообщения: 1551
Пол: Мужской
sibrin написал:
glt0 — это круто, пока гибкая главная книга не активирована.
у нас 4.6 :wink:

_________________
Ex ipso fonte bibere
Цитата:
Abyssus abyssum invocat
Dies diem docet
Ducunt volentem fata, nolentem trahunt

Estote prudentes sicut serpentes


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Функциональный модуль возвращающий остаток по счету на дату.
СообщениеДобавлено: Чт, мар 06 2008, 16:04 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 863
Откуда: СССР
Пол: Мужской
Alex80 написал:
BAPI_GL_GETGLACCPERIODBALANCES не подойдёт?

Посмотрел другие предложения, пришел к выводу, придется базироваться именно на этом модуле.
vga написал(а):

Проверил, не работает, у меня GLT0 - пустая.
sibrin написал:
glt0 — это круто, пока гибкая главная книга не активирована.

У меня имено этот случай.
vvvictor написал:
hoar написал:
Только BSIS/BSAS, как мне кажется не подойдут, придется лопатить BSEG. Задача нужна в общем виде, в том числе, по счетам "без просмотра отдельных позиций".
BSIS/BSAS как раз самое то........ Там все, причем в основном ключе - счет....

Мне нравится использовать таблицу по ключу, но не всегда это возможно.
Проверка подтвердила, индексные таблицы BSIS/BSAS у меня пустые. Т.е. в общем случае придется использовать BKPF/BSEG
Кстати, модуль BAPI_GL_GETGLACCPERIODBALANCES возвращает корректные значения по периодам, даже если GLT0 - пустая.
Т.е. решение будет комбинированное, первоначальнй баланс возвращает функциональный модуль, и затем по значениям из BSEG. отсчитываю назад до нужной даты.
Я надеялся, что кто-нибудь это уже написал :wink: :oops:
Придется самому, а так неохота.... :x


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 07 2008, 16:56 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 12:43
Сообщения: 863
Откуда: СССР
Пол: Мужской
В развитии темы.
Пытаюсь оптимизировать выборку позиций.
Новую главную книгу не знаю (впрочем как и старую) :wink: , прошу не пинать.
Посмотрел, что в случае использования новой книги, наверное оптимизация возможна.
У меня в системе новая книга активирована, ФМ FAGL_GET_TABLENAMES возвращает три таблицы: FAGLFLEXT, FAGLFLEXA, FAGLFLEXP.
Одна из них - FAGLFLEXA, содержит, как мне кажется, как номера счетов RACCT, так и номера документов DOCNR (ссылаются ли они на BELNR в BSEG ? Не уверен) .
Напоминаю постановку задачи - необходимо получить остаток по счету главной книги на произвольную дату.
Вот я и подумал:
1. беру ближайший остаток на конец периода по определенному счету посредством ФМ BAPI_GL_GETGLACCPERIODBALANCES;
2. выбираю из таблицы FAGLFLEXA все позиции связанные со счетом и использую их для "отмотки" назад от полученного остатка.

Вопросы к знатокам новой книги.
Возможно ли посредством содержимого таблицы FAGLFLEXA получить все позиции связанные со счетом главной книги ?
Нет ли какой "засады" в лице splitting ?
Допустима ли ситуация, когда таблица t881 содержит более чем одну запись с полем XLEADING = 'X' ? И мешает ли это для получения всех позиций по счету (в моих целях)?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Как узнать, за какие года посчитаны итоги?
СообщениеДобавлено: Ср, янв 14 2009, 14:34 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Как узнать, за какие года посчитаны итоги?

Использую модуль BAPI_GL_GETGLACCPERIODBALANCES для получения оборотов за период, но если за указанный год не было проводок по данному счету, то ФМ просто возвращает сообщение. Приходится тупо перебирать года, но как точно определить, что данные расчитаны в таком то диапазоне лет, чтобы не перебирать от рождения Христа?

p.s.
Чтение таблицы GLT0 напрямую не предлагать, т.к. программа работает в разных версиях систем (4.6, ERP).

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как узнать, за какие года посчитаны итоги?
СообщениеДобавлено: Чт, янв 15 2009, 16:05 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Parazit написал:
Как узнать, за какие года посчитаны итоги?


Допрос FI-консалтеров с паяльником показал, что через настройки расчитанные периоды не узнать.
Пока вывернулся так:
Code:
  Select single GJAHR
    into MinGJAHR
    from BKPF
    where BUKRS = ZOBSALD_Params-BUKRS.

  Select MANDT BUKRS BELNR GJAHR
    into (BKPF-MANDT, BKPF-BELNR, BKPF-BUKRS, MaxGJAHR)
    from BKPF
    up to 1 rows
    where BUKRS = ZOBSALD_Params-BUKRS
    order by BUKRS descending
             BELNR descending
             GJAHR descending.

    Exit.
  EndSelect.


p.s.
Функции агрегации Min(GJAHR) и Max(GJAHR) не стал использовать, т.к. стандартные индексы не позволят оптимизировать запрос.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB