Текущее время: Ср, июн 25 2025, 21:34

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Пн, апр 25 2011, 13:18 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 14 2009, 09:24
Сообщения: 69
Откуда: Санкт-Петербург
Пол: Женский
Всем привет!

Сама проблема описана на форуме FI (тут).
На данный момент не получается найти точку, в которой можно было бы изменить группировку после того как сформировано предложение, то есть при прогоне программы платежей (программа SAPF110S).
При формировании предложения повлиять на группировку получилось в событии 1820.
Точки останова стоят на события:
00001120 ПРОВОДКА ДОКУМЕНТА: замещение полей в загол./строк
00001640 Прогр. платежей FI-BA: данные платежного док-та
00001810 ПЛАТЕЖНАЯ ПРОГРАММА: индивидуальный выбор банка
00001820 ПРОГРАММА ПЛАТЕЖЕЙ: выбор позиций
00001830 ПРОГРАММА ПЛАТЕЖЕЙ: обработка группы

Но при прогоне программы платежей в эти события программа не заходит (только в 1025, 1030, но там уже поздно ,как я поняла).

Может быть кто-то делал что-то подобное, или просто есть идеи?
Заранее благодарю)

_________________
Пессимисты, глядя на стакан, содержащий 50% воды и 50% воздуха, говорят, что он наполовину пуст.
Оптимисты, наоборот, считают, что наполовину полон.
А разработчики понимают, что просто сам стакан в два раза больше, чем должен быть.

(c) Боб Льюис


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Пн, апр 25 2011, 19:56 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Если подойдет: для F110 имеется настройка по разделению документов. При этом генерируется программа RSZGR000. FORM GRUPPE_AUFBAUEN. К этой подпрограмме можно сделать ENHANCEMENT и вставить заполнение G01-PAYGR по своему алгоритму.
P.S. ENHANCEMENT не пропадает после перегенерации.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Вт, апр 26 2011, 11:05 
Ассистент
Ассистент

Зарегистрирован:
Чт, окт 23 2008, 14:51
Сообщения: 44
__Gennady написал(а):
Если подойдет: для F110 имеется настройка по разделению документов. При этом генерируется программа RSZGR000. FORM GRUPPE_AUFBAUEN. К этой подпрограмме можно сделать ENHANCEMENT и вставить заполнение G01-PAYGR по своему алгоритму.
P.S. ENHANCEMENT не пропадает после перегенерации.


А что за настройка имеется в виду?
есть группировка (V_TZGR) но я так понимаю тут что то другое упоминается.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Вт, апр 26 2011, 11:10 
Ассистент
Ассистент

Зарегистрирован:
Чт, окт 23 2008, 14:51
Сообщения: 44
__Gennady написал(а):
Если подойдет: для F110 имеется настройка по разделению документов. При этом генерируется программа RSZGR000. FORM GRUPPE_AUFBAUEN. К этой подпрограмме можно сделать ENHANCEMENT и вставить заполнение G01-PAYGR по своему алгоритму.
P.S. ENHANCEMENT не пропадает после перегенерации.


А что за настройка имеется в виду?
есть группировка (V_TZGR) но я так понимаю тут что то другое упоминается.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Вт, апр 26 2011, 12:26 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Да, V_TZGR. Подэкран "Поля для группировки платежей". Это правила заполнения поля PAYGR, по которому проиходит группировка.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Вт, апр 26 2011, 13:17 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 14 2009, 09:24
Сообщения: 69
Откуда: Санкт-Петербург
Пол: Женский
TO __Gennady: Подскажите пожалуйста, что нужно сделать, чтобы сгенерилась программа RSZGR000? Настройки какие-то?

_________________
Пессимисты, глядя на стакан, содержащий 50% воды и 50% воздуха, говорят, что он наполовину пуст.
Оптимисты, наоборот, считают, что наполовину полон.
А разработчики понимают, что просто сам стакан в два раза больше, чем должен быть.

(c) Боб Льюис


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Вт, апр 26 2011, 13:24 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
SPRO->Финансы->Бухгалтерия дебиторов и кредиторов->Бизнес-операции->Исходящий платеж->Исходящий платеж автоматически->Определение групп платежей. Далее проваливаемся в требуему группу.
Посмотрите программу SAPF110S, FORM PAYGR_FUELLEN.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Вт, апр 26 2011, 15:07 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 14 2009, 09:24
Сообщения: 69
Откуда: Санкт-Петербург
Пол: Женский
__Gennady написал(а):
SPRO->Финансы->Бухгалтерия дебиторов и кредиторов->Бизнес-операции->Исходящий платеж->Исходящий платеж автоматически->Определение групп платежей. Далее проваливаемся в требуему группу.
Посмотрите программу SAPF110S, FORM PAYGR_FUELLEN.


Поставила точку останова в PAYGR_FUELLEN, но при прогоне программы платежей она не сработала. Получается, место не подходит? Или все-таки точка останова должна была сработать? (бывают же глюки...)

В SPRO настройку сделали...

_________________
Пессимисты, глядя на стакан, содержащий 50% воды и 50% воздуха, говорят, что он наполовину пуст.
Оптимисты, наоборот, считают, что наполовину полон.
А разработчики понимают, что просто сам стакан в два раза больше, чем должен быть.

(c) Боб Льюис


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Вт, апр 26 2011, 15:36 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Просто точка останова не сработает, т.к. F110 планирует фоновое задание. Сделайте enhancement с ФМ RSSM_SLEEP_DEBUG или бесконечным циклом. Потом переведите процесс в отладку...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Вт, апр 26 2011, 15:52 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 14 2009, 09:24
Сообщения: 69
Откуда: Санкт-Петербург
Пол: Женский
Планируется фоновое задание, я узнаю под каким вариантом запуска программы оно запланировано (Система -> Услуги -> Задания -> Обзор заданий) и запускаю через se38 программу SAPF110S с вариантом. При таком запуске тоже не должна сработать точка?

_________________
Пессимисты, глядя на стакан, содержащий 50% воды и 50% воздуха, говорят, что он наполовину пуст.
Оптимисты, наоборот, считают, что наполовину полон.
А разработчики понимают, что просто сам стакан в два раза больше, чем должен быть.

(c) Боб Льюис


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Вт, апр 26 2011, 16:05 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Должна. Поотлаживайте программу SAPF110S, для запуска PAYGR_FUELLEN не нужны какие-то особенные условия.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Вт, апр 26 2011, 16:14 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Вот пример.
Code:
REPORT RSZGR000.

TABLES: BSID,
        BSIK.

DATA:   CHAR(15)         TYPE C,
        PACK(8)          TYPE P,
        PAYGR(20)        TYPE C.

*-----------------------------------------------------------------------
*       FORM         GRUPPE_AUFBAUEN
*-----------------------------------------------------------------------
FORM GRUPPE_AUFBAUEN USING G01-ZGRUP G01-KOART G01-PAYGR.
  PAYGR = SPACE.

*-----------------------------------------------------------------------
*        Debitoren
*-----------------------------------------------------------------------
  IF G01-KOART = 'D'.
    IF G01-ZGRUP NE SPACE.
      CASE G01-ZGRUP.

*---- Групп-ка плат за услуги связи
        WHEN 'S1'.
          PAYGR+00(20) = BSID-KUNNR+00.
      ENDCASE.
      G01-PAYGR = PAYGR.
    ENDIF.
  ENDIF.

*-----------------------------------------------------------------------
*        Kreditoren
*-----------------------------------------------------------------------
  IF G01-KOART = 'K'.
    IF G01-ZGRUP NE SPACE.
      CASE G01-ZGRUP.

*---- Платеж за товар по новой схеме
        WHEN 'P1'.
          PAYGR+00(10) = BSIK-LIFNR+00.

*---- Группировка по договору ВГО
        WHEN 'VG'.
          PAYGR+00(13) = BSIK-VERTN+00.

*---- Группировка платежей за товар
        WHEN 'Z1'.
          PAYGR+00(10) = BSIK-BELNR+00.
      ENDCASE.
      G01-PAYGR = PAYGR.
    ENDIF.
  ENDIF.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) FORM GRUPPE_AUFBAUEN, Выход                                                                                                                       A
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1  ZFI_TEST_ENH_F110_1.    "active version
IF g01-zgrup IS INITIAL.
  paygr+00(10) = bsik-belnr+00.
  g01-paygr = paygr.
ENDIF.
DATA: l_k_z1 TYPE char1.
DATA: l_k_p1_date TYPE char1.

FIELD-SYMBOLS <zzbsik> TYPE bsik.

ASSIGN ('(SAPF110S)BSIK') TO <zzbsik>.
CHECK sy-subrc = 0 AND <zzbsik> IS ASSIGNED.


IF g01-koart = 'K' AND g01-zgrup = 'Z1'.
  l_k_z1 = 'X'.
ENDIF.

DATA: l_kontrakt TYPE as4flag.
data: l_res TYPE char1.

IF g01-koart = 'K' AND g01-zgrup = 'P1'.
  CALL FUNCTION 'ZFI_GET_KONTRAKT'
  EXPORTING
    i_lifnr       = <zzbsik>-lifnr
    i_bukrs       = <zzbsik>-bukrs
    i_budat       = sy-datum
  IMPORTING
    E_RES         = l_res.
  IF l_res = 'X'.
    l_kontrakt = 'X'.
  ELSE.
    l_kontrakt = space.
  ENDIF.
ENDIF.

CHECK l_k_z1 = 'X' OR l_kontrakt = space.

FIELD-SYMBOLS <zzmax> TYPE i.
FIELD-SYMBOLS <zztext> TYPE i.
FIELD-SYMBOLS <zzpaygr> TYPE zfi_paygr_f110_t.
FIELD-SYMBOLS <zz_wa_paygr> TYPE zfi_paygr_f110.
DATA: zz_wa_paygr TYPE zfi_paygr_f110.

DATA: zz_len TYPE i.

TYPES:    BEGIN OF zzfkttab,
            bugrp(2)         TYPE n,             " Gruppe
            zwels(10)        TYPE c,             " Zahlwege
            nedat            TYPE d,             " naechster Lauf
            wdate            TYPE d,             " Wechsel-Ausstellung
            wfael            TYPE d,             " Wechsel-Faelligkeit
            bukls(50)        TYPE c,             " Buchungskreise
            xwanf(1)         TYPE c,             " Wechselanforderg.
            xswec(1)         TYPE c,             " Scheck-Wechsel
            xweca(1)         TYPE c,             " Wechsel-Ausgang
            xwece(1)         TYPE c,             " Wechsel-Eingang
            xwesa(1)         TYPE c,             " Wechsel-Ausgang sof.
            xwese(1)         TYPE c,             " Wechsel-Eingang sof.
            xwfai(1)         TYPE c,             " Wechsel-Fael.-int.
            xwfaf(1)         TYPE c,             " Wechsel bei Faellig
            xpruf(1)         TYPE c,             " Pruefkennzeichen
            xpruw(1)         TYPE c,             " Pruefkennzeichen
         END OF zzfkttab.
TYPES: zztfkttab TYPE TABLE OF zzfkttab.

TYPES:    BEGIN OF zzbuktab,
            bukrs            LIKE t001-bukrs,    " Buchungskreis
            bugrp(2)         TYPE n,             " Gruppe
            land1            LIKE t001-land1,    " Laenderschluessel
            zbukr            LIKE t001-bukrs,    " zahlender Buchungskr.
            xkwes(1)         TYPE c,             " Debitoren-Wechsel
            xdwes(1)         TYPE c,             " Kreditoren-Wechsel
         END OF zzbuktab.
TYPES zztbuktab TYPE TABLE OF zzbuktab.

FIELD-SYMBOLS <zztfkttab> TYPE zztfkttab.
FIELD-SYMBOLS <zztbuktab> TYPE zztbuktab.
FIELD-SYMBOLS <zzfkttab> TYPE zzfkttab.
FIELD-SYMBOLS <zzbuktab> TYPE zzbuktab.
DATA: zz_l_xeipo TYPE t042e-xeipo.
DATA: oref   TYPE REF TO cx_root,
      text   TYPE string.

ASSIGN ('(SAPF110S)FKTTAB[]') TO <zztfkttab>.
CHECK sy-subrc = 0 AND <zztfkttab> IS ASSIGNED.

ASSIGN ('(SAPF110S)BUKTAB[]') TO <zztbuktab>.
CHECK sy-subrc = 0 AND <zztbuktab> IS ASSIGNED.


CHECK <zzbsik>-zlspr IS INITIAL.

READ TABLE <zztbuktab> ASSIGNING <zzbuktab> WITH KEY bukrs = <zzbsik>-bukrs.
CHECK sy-subrc = 0.

READ TABLE <zztfkttab> ASSIGNING <zzfkttab> WITH KEY bugrp = <zzbuktab>-bugrp.
CHECK sy-subrc = 0.

CHECK <zzbsik>-zlsch CA <zzfkttab>-zwels.
DATA: zz_l_zlsch TYPE bsik-zlsch.
IF <zzbsik>-zlsch IS INITIAL.
  SELECT SINGLE zwels INTO zz_l_zlsch
    FROM lfb1
    WHERE lifnr = <zzbsik>-lifnr
      AND bukrs = <zzbsik>-bukrs.

  CHECK sy-subrc = 0 AND zz_l_zlsch CA <zzfkttab>-zwels.

  SELECT SINGLE xeipo INTO zz_l_xeipo
    FROM t042e
   WHERE zbukr = bsik-bukrs
     AND zlsch = zz_l_zlsch.
ELSE.
  SELECT SINGLE xeipo INTO zz_l_xeipo
    FROM t042e
   WHERE zbukr = bsik-bukrs
     AND zlsch = <zzbsik>-zlsch.
ENDIF.

CHECK sy-subrc = 0 AND zz_l_xeipo IS INITIAL.
paygr+00(10) = bsik-lifnr+00.

ASSIGN ('(SAPF110S)ZZ_MAX_TEXT_LENGTH') TO <zzmax>.
CHECK sy-subrc = 0 AND <zzmax> IS ASSIGNED.

ASSIGN ('(SAPF110S)ZZ_TEXT_LENGTH') TO <zztext>.
CHECK sy-subrc = 0 AND <zztext> IS ASSIGNED.

ASSIGN ('(SAPF110S)ZZ_PAYGR[]') TO <zzpaygr>.
CHECK sy-subrc = 0 AND <zzpaygr> IS ASSIGNED.

READ TABLE <zzpaygr> ASSIGNING <zz_wa_paygr> WITH KEY paygr_18 = paygr(16).
IF sy-subrc NE 0.
  zz_wa_paygr-paygr_18 = paygr(16).
  zz_wa_paygr-paygr_2 = '0001'.
  APPEND zz_wa_paygr TO <zzpaygr>.
ENDIF.
READ TABLE <zzpaygr> ASSIGNING <zz_wa_paygr> WITH KEY paygr_18 = paygr(16).
CHECK sy-subrc = 0.
zz_len = STRLEN( <zzbsik>-xblnr ).
IF zz_len > 0.
  ADD zz_len TO <zztext>.
  ADD 2 TO <zztext>.
ENDIF.
IF <zztext> > <zzmax>.
  <zztext> = zz_len + 2.
  ADD 1 TO <zz_wa_paygr>-paygr_2.
  TRY.
      ADD 1 TO <zz_wa_paygr>-paygr_2.
    CATCH cx_sy_arithmetic_error INTO oref.
      <zz_wa_paygr>-paygr_2 = '0001'.
    CATCH cx_sy_conversion_no_number INTO oref.
      <zz_wa_paygr>-paygr_2 = '0002'.
  ENDTRY.
ENDIF.
paygr+16(4) = <zz_wa_paygr>-paygr_2.
g01-paygr = paygr.
ENDENHANCEMENT.
*$*$-End:   (1)---------------------------------------------------------------------------------$*$*
ENDFORM.



Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Вт, апр 26 2011, 16:25 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 14 2009, 09:24
Сообщения: 69
Откуда: Санкт-Петербург
Пол: Женский
__Gennady написал(а):
Просто точка останова не сработает, т.к. F110 планирует фоновое задание. Сделайте enhancement с ФМ RSSM_SLEEP_DEBUG или бесконечным циклом. Потом переведите процесс в отладку...



Создала enhancement с вызовом ФМ RSSM_SLEEP_DEBUG :
Code:
FORM GRUPPE_AUFBAUEN USING G01-ZGRUP G01-KOART G01-PAYGR.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) FORM GRUPPE_AUFBAUEN, Начало                                                                                                                      A
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1  ZEI_RSZGR000_1.    "active version
*
CALL FUNCTION 'RSSM_SLEEP_DEBUG'
  EXPORTING
    I_SECONDS                = 60
    I_ALWAYS                 = ' '
    I_DEBUG_STATUS_GET       = ' '
*  IMPORTING
*    E_DEBUG_ON               =
           .



ENDENHANCEMENT.


после этого формирование предложения зависло на минуту, а прогон программы платежей (SAPF110S) как отрабатывал за пару секунд, так и отработал.

_________________
Пессимисты, глядя на стакан, содержащий 50% воды и 50% воздуха, говорят, что он наполовину пуст.
Оптимисты, наоборот, считают, что наполовину полон.
А разработчики понимают, что просто сам стакан в два раза больше, чем должен быть.

(c) Боб Льюис


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Вт, апр 26 2011, 16:42 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, янв 14 2009, 09:24
Сообщения: 69
Откуда: Санкт-Петербург
Пол: Женский
__Gennady написал(а):
Должна. Поотлаживайте программу SAPF110S, для запуска PAYGR_FUELLEN не нужны какие-то особенные условия.


PAYGR_FUELLEN вызывается из FORM BSID_VERARBEITEN и FORM BSIK_VERARBEITEN . Поставила точки в самом начале этих подпрограм.
Ничего. Прога не зашла.(

_________________
Пессимисты, глядя на стакан, содержащий 50% воды и 50% воздуха, говорят, что он наполовину пуст.
Оптимисты, наоборот, считают, что наполовину полон.
А разработчики понимают, что просто сам стакан в два раза больше, чем должен быть.

(c) Боб Льюис


Последний раз редактировалось sBykova Вт, апр 26 2011, 16:47, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: АПП (F110) группировка платежа в зависимости от "Назначение"
СообщениеДобавлено: Вт, апр 26 2011, 16:44 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
RSSM_SLEEP_DEBUG сработал, а программа не вызывалась - так не бывает. В примере выше присутствует "разъединение" документов по признаку ограничения на длинну текста назначения платежа. Предложение это как раз то что нужно.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

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


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

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


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

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