Текущее время: Вт, июл 29 2025, 15:29

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




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: FBL3N: добавление полей
СообщениеДобавлено: Пт, мар 23 2007, 14:23 
Специалист
Специалист

Зарегистрирован:
Ср, фев 01 2006, 19:14
Сообщения: 136
ПАРАМЕТРЫ НАСТРОЙКИ - ОСОБЫЕ ПОЛЯ добавил поля
BSEG.LIFNR
BSEC.NAME1

В резултате добавился омер кредитора, а вот его имя - высвечивыается пустым.

Как делу помочь?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FBL3N: добавление полей
СообщениеДобавлено: Пт, мар 23 2007, 14:45 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, фев 14 2005, 17:16
Сообщения: 926
Откуда: Moscow
Ali-baba написал(а):
ПАРАМЕТРЫ НАСТРОЙКИ - ОСОБЫЕ ПОЛЯ добавил поля
BSEG.LIFNR
BSEC.NAME1

В резултате добавился омер кредитора, а вот его имя - высвечивыается пустым.

Как делу помочь?


Так поле все таки есть? Может, надо проверить это поле в основных данных кредитора? Иногда поле пустое, если для выбранного языка не заведено значение.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 23 2007, 16:45 
Специалист
Специалист

Зарегистрирован:
Ср, фев 01 2006, 19:14
Сообщения: 136
Не издевайтесь, поле заполнено и это имя кредитора.

FBLN берет данные из структуры RFPOSXEXT.U_NAME1
В основной записи кредитора это поле ADDR1_DATA.NAME1

Как и что падает в RFPOSXEXT и что это такое?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, мар 23 2007, 17:45 
Администратор
Администратор
Аватара пользователя

Зарегистрирован:
Ср, сен 01 2004, 09:12
Сообщения: 2312
Откуда: Москва
Пол: Мужской
Niki(4.6B) написал(а):
Добрый день.
Такое сделать можно через OpenFI.
Вот Вам инструкция.
На примере поля - Имя кредитора

1.поле ZZNAME1 добавляем (через использование Доп. структуры) в две структуры:
- RFPOS,
- RFPOSX,
2.Копируем функц. модуль образец SAMPLE_INTERFACE_00001650 в Z_INTERFACE_00001650.
3.Пишем в модуле Z_INTERFACE_00001650 обработку поля ZZNAME1
4.Активируем событие 1650. FIBF->Параметры настройки->P/S модули->..клиента.
Далее заполняем "Событие", "Продукт" и "Функц. модуль", все остальное оставляем пустым.
5.Запускаем программу RFPOSXEXTEND.(Генерация структуры RFPOSXEXT).Нота 208807
6.Запускаем программу BALVBUFDEL.(сбрасываем в отчете ALV буфер). Нота 205096

Ноты по теме: 205096,208807,215798,316194,373268.

http://webforum.ru/mes.php?id=9419629&f ... 5719&arhv=


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: FBL3N: добавление полей
СообщениеДобавлено: Сб, мар 24 2007, 00:45 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пт, июл 08 2005, 13:07
Сообщения: 5274
Откуда: Geneva
Пол: Мужской
Ali-baba написал(а):
ПАРАМЕТРЫ НАСТРОЙКИ - ОСОБЫЕ ПОЛЯ добавил поля
BSEG.LIFNR
BSEC.NAME1

В резултате добавился омер кредитора, а вот его имя - высвечивыается пустым.

Как делу помочь?


BSEC - таблица разовых кредиторов. К таблице LFA1, тем более ADRC, не имеет практически никакого отношения.
А по делу - смотри DiaRom, хорошо говорит!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 21 2007, 12:54 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Чт, окт 11 2007, 08:58
Сообщения: 34
Пол: Мужской
DiaRom написал:
Niki(4.6B) написал(а):
Добрый день.
Такое сделать можно через OpenFI.
Вот Вам инструкция.
На примере поля - Имя кредитора

1.поле ZZNAME1 добавляем (через использование Доп. структуры) в две структуры:
- RFPOS,
- RFPOSX,
2.Копируем функц. модуль образец SAMPLE_INTERFACE_00001650 в Z_INTERFACE_00001650.
3.Пишем в модуле Z_INTERFACE_00001650 обработку поля ZZNAME1
4.Активируем событие 1650. FIBF->Параметры настройки->P/S модули->..клиента.
Далее заполняем "Событие", "Продукт" и "Функц. модуль", все остальное оставляем пустым.
5.Запускаем программу RFPOSXEXTEND.(Генерация структуры RFPOSXEXT).Нота 208807
6.Запускаем программу BALVBUFDEL.(сбрасываем в отчете ALV буфер). Нота 205096

Ноты по теме: 205096,208807,215798,316194,373268.

http://webforum.ru/mes.php?id=9419629&f ... 5719&arhv=


Пробовал ваш метод, проблема вот в чем:
в фм Z_INTERFACE_00001650 мне нужно вытащить имя кредитора и дебитора из таблиц lfa1 kna1, соот. по kunnr'y и lifnr'y.
Добавил аппендом в RFPOS и в RFPOSX
всё шаги сделал вышеописанные название не цепляет потомучто, в фм поля KUNNR LINFR пусты.
Где их брать? в конечной таблице они есть но в шаге когда использцется фм они не заполнены....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 21 2007, 14:11 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 24 2007, 09:03
Сообщения: 213
Откуда: Из лесу вестимо
Так если надо для FBL3N, то выбираются обычные счета, на которых контировки контрагента конечно нет.
А в функц модуле мождно прописать более сложную выборку и все будет ок. Например:
(код можно улучшить конечно)

Code:
FUNCTION Z_PARTNERNAME_FILL.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     VALUE(I_POSTAB) LIKE  RFPOS STRUCTURE  RFPOS
*"  EXPORTING
*"     VALUE(E_POSTAB) LIKE  RFPOS STRUCTURE  RFPOS
*"----------------------------------------------------------------------

   tables: lfa1, kna1, bseg.
   data:    zkunnr like bseg-kunnr,
      zlifnr like bseg-lifnr.

   if i_postab-KOART = 'K' and not i_postab-KONTO is initial.
      select single name1 into i_postab-zzpartnername
      from lfa1
      where lifnr = i_postab-konto.
   endif.

   if i_postab-KOART = 'D' and not i_postab-KONTO is initial.
      select single name1 into i_postab-zzpartnername
      from kna1
      where kunnr = i_postab-konto.
   endif.

   if i_postab-KOART = 'S'.
      select single lifnr kunnr into (zlifnr, zkunnr)
      from bseg
      where    bukrs = i_postab-bukrs
         and gjahr = i_postab-gjahr
         and belnr = i_postab-belnr
         and buzei = i_postab-buzei.

      if sy-subrc = 0.
         if not zlifnr is initial.
            select single name1 into i_postab-zzpartnername
            from lfa1
            where lifnr = zlifnr.
         elseif not zkunnr is initial.
            select single name1 into i_postab-zzpartnername
            from kna1
            where kunnr = zkunnr.
         else.
            select single lifnr kunnr into (zlifnr, zkunnr)
            from bseg where bukrs = i_postab-bukrs and
            gjahr = i_postab-gjahr and
            belnr = i_postab-belnr and
            ( koart = 'D' or koart = 'K' ).
            
            if not zlifnr is initial.
               select single name1 into i_postab-zzpartnername
               from lfa1
               where lifnr = zlifnr.
            elseif not zkunnr is initial.
               select single name1 into i_postab-zzpartnername
               from kna1
               where kunnr = zkunnr.
            endif.
         endif.
      endif.
   endif.

   E_POSTAB = I_POSTAB.
ENDFUNCTION.

_________________
Крошу аливье ... рубаю капусту ...
C уважением,
Александр


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 21 2007, 14:45 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Чт, окт 11 2007, 08:58
Сообщения: 34
Пол: Мужской
Согласен этот вариант я оставлял на потом, разве это не нагрузит программу? она будет долго грузиться. Я прав?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, дек 24 2007, 10:48 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, окт 24 2007, 09:03
Сообщения: 213
Откуда: Из лесу вестимо
Вопрос хороший и правильный ! 8)

С теоретической точки зрения получается, что на каждую строку отчеты выполняется свой отдельный селект (остальной код несущественнен). Что должно прилично подтормаживать систему.

На практике получалось вот что:
выборка 5800 позиций БЕЗ активации модуля в OpenFI заняла около 25 секунд
выборка 5800 позиций С активацией - около 28-30 секунд.

цифры приблизительные - считалось просто секундомером (уж не ругайте - для наших целей этой информации хватило и более точно измерять не пришлось).
Итого в данных условиях можно абстрагировавшись от параметров железа сказать, что програмка добавляет всего около 10-15% времени на выборку. Для нас это оказалось приемлимо, для Вас - решайте сами :wink:

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

_________________
Крошу аливье ... рубаю капусту ...
C уважением,
Александр


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

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


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

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


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

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