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

Часовой пояс: 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 часа


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

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


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

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