Текущее время: Вс, июл 27 2025, 23:43

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 12:07 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, ноя 28 2012, 16:26
Сообщения: 52
Нужна помощь с прогой.
Написал такой код:
Code:
DATA : et_ekko TYPE TABLE OF ekko,
           et_ekpo TYPE TABLE OF ekpo  .
 
DATA :

        w_handle TYPE REF TO ZCL_TEST01, " ZCL_TEST01 - BADi-определение

       ob_custom TYPE REF TO cl_gui_custom_container ,
       ob_split1 TYPE REF TO cl_gui_easy_splitter_container ,
       ob_split2 TYPE REF TO cl_gui_easy_splitter_container ,
       ob_grid1  TYPE REF TO cl_gui_alv_grid ,
       ob_grid2  TYPE REF TO cl_gui_alv_grid .

PARAMETER iv_ebeln type ekko-ebeln.

START-OF-SELECTION.

* GET BADI - for getting objects..................
GET BADI w_handle.
* CALL BADI - for calling interface methods.
CALL BADI w_handle->select_data
   EXPORTING
    iv_ebeln = iv_ebeln
   IMPORTING
     et_ekpo  = et_ekpo
     et_ekko  = et_ekko

CALL SCREEN 100.

*&---------------------------------------------------------------------*
*& Module status_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*AT LINE-SELECTION.

MODULE status_0100 OUTPUT.
   SET TITLEBAR 'DYNPRO' .
   SET PF-STATUS 'DYNPR'.


* This will create a container
   CREATE OBJECT ob_custom
      EXPORTING
        container_name = 'CONTAINER' .

* This spit the container OB_CUSTOM into two
   CREATE OBJECT ob_split1
      EXPORTING
        parent = ob_custom
        orientation = cl_gui_easy_splitter_container=>orientation_vertical .

    CREATE OBJECT ob_split2
       EXPORTING
          parent = ob_split1->bottom_right_container
          orientation = cl_gui_easy_splitter_container=>orientation_vertical.

   CREATE OBJECT ob_grid1
      EXPORTING
        i_parent = ob_split1->top_left_container .

   CREATE OBJECT ob_grid2
      EXPORTING
        i_parent = ob_split2->top_left_container.

   CALL METHOD ob_grid1->set_table_for_first_display
      EXPORTING
        i_structure_name = 'ekko'
      CHANGING
        it_outtab = et_ekko.

   CALL METHOD ob_grid2->set_table_for_first_display
      EXPORTING
         i_structure_name = 'ekpo'
      CHANGING
         it_outtab = et_ekpo.

ENDMODULE. " status_0100 OUTPUT

Программа, основанная на BADI для ввода номера документа и вывода результата в ALV сплит контейнеры.

Code:
method zcl_test_01_interface~select_data.
   select *
    from ekko
    into table et_ekko
    where ebeln = iv_ebeln.

  select *
    from ekpo
    into table et_ekpo
    where ebeln = iv_ebeln.

  endmethod.

Нужно сделать возможным редактирование данных перед выводом в ALV через BADI. Как такое реализовать?


Последний раз редактировалось polkon Пт, дек 28 2012, 13:36, всего редактировалось 3 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 12:47 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
Выскажу свое ИМХО:
Подход не совсем правильный:
Если задача, как вы писали
Цитата:
Нужно сделать возможным редактирование данных перед выводом в ALV через BADI.

ТО выбор данных должен осуществляться в программе и далее данные должны передаваться в бади для редактирования.
Тогда осуществляется внедрение бади с реализацией редактирования в методе.
Надеюсь, понятно изложил


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 13:17 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, ноя 28 2012, 16:26
Сообщения: 52
bossjohn написал(а):
Выскажу свое ИМХО:
Подход не совсем правильный:
Если задача, как вы писали
Цитата:
Нужно сделать возможным редактирование данных перед выводом в ALV через BADI.

ТО выбор данных должен осуществляться в программе и далее данные должны передаваться в бади для редактирования.
Тогда осуществляется внедрение бади с реализацией редактирования в методе.
Надеюсь, понятно изложил


Да, совершенно верно, выборка должна быть в программе и передаваться в бади, и вот ведь в чем вопрос не представляю как это осуществить, вс425 прочел, но идей пока нет(


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 14:00 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
я так понял, вы уже все сделали.
Если нет:
перенести алгоритм выбора из метода в программу:
Code:
select *
    from ekko
    into table lt_ekko
    where ebeln = iv_ebeln .

  select *
    from ekpo
    into table lt_ekpo
    where ebeln = iv_ebeln.

через se18 создать BADI.
вызов вы уже реализовали, только будет что-то вроде
Code:
CALL BADI w_handle->select_data
   changing
     t_ekpo  = lt_ekpo
     t_ekko  = lt_ekko.
 


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 14:07 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, ноя 28 2012, 16:26
Сообщения: 52
bossjohn написал(а):
я так понял, вы уже все сделали.
Если нет:
перенести алгоритм выбора из метода в программу:
Code:
select *
    from ekko
    into table lt_ekko
    where ebeln = iv_ebeln .

  select *
    from ekpo
    into table lt_ekpo
    where ebeln = iv_ebeln.

через se18 создать BADI.


Да, бади у меня создано, в нем прописано
select_data, с параметрами:
iv_ebeln importing
et_ekko exporting
et_ekpo changing

Если я переношу в выборку в программу, значит из method zcl_test_01_interface~select_data. ee нужно удалить, так ведь? а что там прописать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 14:10 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
polkon написал(а):
Если я переношу в выборку в программу, значит из method zcl_test_01_interface~select_data. ee нужно удалить, так ведь?


да удалить
polkon написал(а):
а что там прописать?

а в нем то редактирование, которые требуется осуществить, судя по постановке задачи.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 14:12 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, ноя 28 2012, 16:26
Сообщения: 52
bossjohn написал(а):
Code:
CALL BADI w_handle->select_data
   changing
     t_ekpo  = lt_ekpo
     t_ekko  = lt_ekko.
 

t_ekpo и lt_ekpo - их нужно прописать уже в бади?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 14:17 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, ноя 28 2012, 16:26
Сообщения: 52
Еще такой вопрос, для этой программы работая в транзакции se18, нужно использовать вкладку внедрение, которая следует после интерфейса?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 14:21 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, ноя 28 2012, 16:26
Сообщения: 52
bossjohn написал(а):
а в нем то редактирование, которые требуется осуществить, судя по постановке задачи.


можете привести пример как можно задать редактирование?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 14:25 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
polkon написал(а):
t_ekpo и lt_ekpo - их нужно прописать уже в бади?

Это названия параметров, аналогично вашим:
Code:
IMPORTING
     et_ekpo  = et_ekpo
     et_ekko  = et_ekko

polkon написал(а):
Еще такой вопрос, для этой программы работая в транзакции se18, нужно использовать вкладку внедрение, которая следует после интерфейса?

Не понятен вопрос. Что именно использовать?
Внедрение в БАДИ - это по сути реализация класса (implementation если угодно). Без внедрения - Бади просто интерфейс

polkon написал(а):

можете привести пример как можно задать редактирование?


да любой, например, навскидку
Code:
LOOP At t_ekpo.
*изменение каких то данных
modify t_ekpo.
ENDLOOP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 14:29 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, ноя 28 2012, 16:26
Сообщения: 52
bossjohn написал(а):
Не понятен вопрос. Что именно использовать?
Внедрение в БАДИ - это по сути реализация класса (implementation если угодно). Без внедрения - Бади просто интерфейс


там где создается бади-определение есть две строчки, одна из них интерфейс, вторая внедрения, так вот внедрения у меня пока что пуста и я не знаю надо ли там что то прописывать


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 14:42 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
polkon написал(а):
там где создается бади-определение есть две строчки, одна из них интерфейс, вторая внедрения, так вот внедрения у меня пока что пуста и я не знаю надо ли там что то прописывать

у вас какая система?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 14:43 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, ноя 28 2012, 16:26
Сообщения: 52
bossjohn написал(а):
Code:
CALL BADI w_handle->select_data
   changing
     t_ekpo  = lt_ekpo
     t_ekko  = lt_ekko.
 

программа выдает след ошибку, ссылаясь на эти строчки: w_handle is not a valis BAdi handle.
С чем это может быть связано?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 14:47 
Младший специалист
Младший специалист

Зарегистрирован:
Ср, ноя 28 2012, 16:26
Сообщения: 52
bossjohn написал(а):
у вас какая система?

Затрудняюсь ответить на этот вопрос, но как я понимаю, во внедрениях прописывается реализующий класс...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: внедрение BADI
СообщениеДобавлено: Пт, дек 28 2012, 14:51 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
BADI внедрение активировано?


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

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


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

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


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

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