Отчет, чтобы найти объекты проекта segw и поставить их на запрос - PullRequest
0 голосов
/ 21 февраля 2019

Я новичок в SAP, и во время практики у меня возникла «проблема»: когда я переносил свой проект в другую систему, мне приходилось вручную включать некоторые объекты, которые были в других запросах.Поэтому сейчас я пытаюсь создать отчет, чтобы объединить все объекты, связанные с проектом segw, в один запрос.Моя идея - передать идентификатор проекта или имя в мой отчет, найти объекты, создать запрос и поместить их все в него.

Я уже что-то нашел.При создании и создании проекта segw запрос имеет: - Класс (объекты ABAP) с DPC и MPC - Включение SAP Gateway Business Suite - Модель - SAP Gateway BSE - Проект построителя служб - Включение SAP Gateway Business Suite - Служба

Я нашел две таблицы, которые помогают мне получить объекты DPC и MPC: TMDIR, VSEOCLASS.

Я на правильном пути?Есть ли способ найти все связанные с проектом объекты или мне нужно будет найти их отдельно, например, DPC и MPC, которые я уже нашел?

Спасибо!

1 Ответ

0 голосов
/ 31 мая 2019

Предполагая, что все ваши объекты SEGW находятся в одном пакете, что обычно имеет место при создании проекта SEGW с нуля:

DATA: l_trkorr TYPE trkorr,
      l_package TYPE devclass VALUE 'ZSEGW_P'.

cl_pak_package_queries=>get_all_subpackages( EXPORTING im_package     = l_package
                                             IMPORTING et_subpackages = DATA(lt_descendant) ).

INSERT VALUE cl_pak_package_queries=>ty_subpackage_info( package = l_package ) INTO TABLE lt_descendant.

SELECT pgmid, object, obj_name FROM tadir
  INTO TABLE @DATA(lt_segw_objects)
   FOR ALL ENTRIES IN @lt_descendant
 WHERE devclass = @lt_descendant-package.

DATA(instance) = cl_adt_cts_management=>create_instance( ).

LOOP AT lt_segw_objects ASSIGNING FIELD-SYMBOL(<fs_obj>).
  TRY.
      instance->insert_objects_in_wb_request( EXPORTING pgmid        = <fs_obj>-pgmid
                                                        object       = <fs_obj>-object
                                                        obj_name     = CONV trobj_name( <fs_obj>-obj_name )
                                              IMPORTING result       = DATA(result)
                                                        request      = DATA(request)
                                              CHANGING  trkorr       = l_trkorr ).
    CATCH cx_adt_cts_insert_error.
  ENDTRY.
ENDLOOP.

Этот фрагмент создает запрос на перенос с номером l_trkorr и сразу после этогоvar не изменяется, поместите все оставшиеся объекты в одном запросе.

WARNING : это будет не работать, если объекты заблокированы (в другом запросе) и выдастВы cx_adt_cts_insert_error исключение.Невозможно разблокировать объекты программно, только с помощью инструмента SE03.

...