Текущее время: Чт, июн 26 2025, 02: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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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