SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Общее описание OPEN FI



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> Enhancement and Modification | Расширения и модификация
View previous topic :: View next topic  
Author Message
admin
Администратор
Администратор



Joined: 01 Sep 2007
Posts: 1640

PostPosted: Fri Jan 18, 2008 12:47 pm    Post subject: Общее описание OPEN FI Reply with quote

OPEN FI

Общее описание
Обстоятельно написать не выходит, все нет времени Sad поэтому хоть кратенько напишу где искать и как пользоваться...

1. Вообще-то эта шутка действительно разработана для использования по большому счету внутри SAP, а не для клинетов.
2. Есть определенные подводные камешки при вклинивании своих программ.

А теперь танцы Smile

1. Идем по настройке SPRO: Финансы-Основные параметры финансов-События бизнес-транзакций.

2. По меню Среда-Ифносистема(Процессы) или Ифносистема(P/S) отличаются тем в одном случае вроде как можно вызывать последовательность своих функций а в другом только одну функцию. Запускаем втрой пункт Среда-Ифносистема(Процессы) Получаем весь список событий куда можно прицепиться, для лучшей читабельности надо бы скинуть перед запуском галку "Просмотр только кратких текстов", а если поставить "Процессы с активными продуктами" то получим уже активированные события.

3. Находим подходящее событие ставим курсор на него и жмем кнопку "Функциональный модуль образец" получаем заготовку определения модуля. Копируем его в свой и делаем чего нам уже надо.

4. Выходим наверх в меню и выбираем теперь Парметры настройки - Продукты - Клиента. Вносим туда свой любой код например "XXX" и описание типа "Свои расширения" ну и ставим галку "Активно"

5. После этого опять по меню Парметры настройки - Модули процесса - Клиента. И в появившейся табличе добавляем: "Код события", "Имя функциаонального модуля" ну и код продукта "XXX".

Ну и вроде как все...

Замечания: В большинстве совоем передаваемые параметры изменять запрещено или же даже если вы их измените, то все равно ничего не выйдет, так как лучшие саповоды из вальсдорфа перед вызовами этих функций делают экспорт параметров, а после выхода, их импорт, но мы же тоже не один год за их продуктом замужем, поэтому как скромные люди находим по каким именам они делают экспорт перед нашим вызовом и делаем тоже самое после того как изменили нужные нам данные.

Отображение дополнительных полей для позиции бух.проводки
Все можно в 4.6.
Через OpenFi можно добавить любое поле (по любому алгоритму) в набор полей стандартных транзакций просмотра позиций.
Query не нужно.
Если надо подробнее, то чуть позже могу ответить.

Событие OpenFI - 1650, функциональный модуль Z_INTERFACE_00001650
С помощью append добавляете в структуру RFPOS поле ZZNAME1.
Модуль:
Импорт I_POSTAB LIKE RFPOS
Экспорт E_POSTAB LIKE RFPOS

Для добавления полей в отчеты типа FBL1N / FBL5N нужно также продублировать поля в структуру RFPOSX. После добавления полей необходимо запустить программу RFPOSXEXTEND, которая перегенерит структуру RFPOSXEXT, используемую в отчетах. Также нужно помнить о сбрасывании буферов по каталогу полей - программа BALVBUFDEL.

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

*-------------- Initialize Output by using the following line ----------
  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-zzname1
    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-zzname1
    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-zzname1
        FROM lfa1
        WHERE lifnr = zlifnr.
      ELSEIF NOT zkunnr IS INITIAL.
        SELECT SINGLE name1 INTO i_postab-zzname1
        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-zzname1
          FROM lfa1
          WHERE lifnr = zlifnr.
        ELSEIF NOT zkunnr IS INITIAL.
          SELECT SINGLE name1 INTO i_postab-zzname1
          FROM kna1
          WHERE kunnr = zkunnr.
        ENDIF.
      ENDIF.

    ENDIF.
  ENDIF.

  e_postab = i_postab.
ENDFUNCTION.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> Enhancement and Modification | Расширения и модификация All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.