Текущее время: Пн, июл 28 2025, 14:38

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


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

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


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

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