*&---------------------------------------------------------------------*
*& Include ZSOFTCOPY_PACK *
*& *
*&---------------------------------------------------------------------*
*& *
*& This file is part of ZSOFTCOPY. *
*& *
*& ZSOFTCOPY is free software: you can redistribute it and/or modify *
*& it under the terms of the GNU General Public License as published *
*& by the Free Software Foundation, either version 3 of the License, *
*& or any later version. *
*& *
*& ZSOFTCOPY is distributed in the hope that it will be useful, *
*& but WITHOUT ANY WARRANTY; without even the implied warranty of *
*& MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
*& GNU General Public License for more details. *
*& *
*& You should have received a copy of the GNU General Public License *
*& along with ZDOWNLOAD. If not, see . *
*& *
*&---------------------------------------------------------------------*
*& *
*& Author: Ruediger von Creytz ruediger.creytz@globalbit.net *
*& Copyright: globalBIT, LLC http://www.globalbit.net *
*& *
*&---------------------------------------------------------------------*
*-----------------------------------------------------------------------
* pack
*-----------------------------------------------------------------------
FORM pack.
*DEVCLASS
PERFORM pack_r3tr_devc.
ENDFORM. "pack
*-----------------------------------------------------------------------
* pack_r3tr_devc Devclass
*-----------------------------------------------------------------------
FORM pack_r3tr_devc.
DATA:
lo_package TYPE REF TO if_package,
l_as4text TYPE as4text,
ls_attributes TYPE st_attributes,
ls_ti TYPE st_textinput,
lt_package_properties TYPE it_textinput,
lt_transport_attributes TYPE it_textinput,
l_intf_system TYPE srcsystem,
l_pack_system TYPE srcsystem,
lt_ref_interface TYPE tpak_package_interface_list,
ls_ref_interface TYPE tpak_package_interface_ref,
lt_interface TYPE it_pack_intf,
ls_interface TYPE st_pack_intf,
lt_ref_perm TYPE tpak_permission_to_use_list,
ls_ref_perm TYPE tpak_permission_to_use_ref_typ,
lt_perm TYPE it_pack_perm,
ls_perm TYPE st_pack_perm,
lt_ref_sub TYPE scompaklis,
ls_ref_sub TYPE REF TO if_package,
lt_sub TYPE it_pack_sub,
ls_sub TYPE st_pack_sub,
lt_tabstrip TYPE it_tabstrip,
lt_html TYPE it_string.
FIELD-SYMBOLS:
TYPE st_tabstrip,
TYPE ANY,
TYPE ANY,
TYPE ANY.
CALL METHOD cl_package_factory=>load_package
EXPORTING
i_package_name = gs_tdevc-devclass
IMPORTING
e_package = lo_package.
*general attributes
PERFORM get_devclass
USING
gs_tdevc-devclass
CHANGING
l_as4text.
ls_attributes-descript = l_as4text.
ls_attributes-person_responsible = gs_tdevc-as4user.
PERFORM get_user
USING
gs_tdevc-as4user
CHANGING
ls_attributes-person_responsible_text.
ls_attributes-author = gs_tdevc-created_by.
PERFORM get_user
USING
gs_tdevc-created_by
CHANGING
ls_attributes-author_text.
PERFORM get_date
USING
gs_tdevc-created_on
CHANGING
ls_attributes-date_created.
ls_attributes-bname = gs_tdevc-changed_by.
PERFORM get_user
USING
gs_tdevc-changed_by
CHANGING
ls_attributes-name_text.
PERFORM get_date
USING
gs_tdevc-changed_on
CHANGING
ls_attributes-date_last_changed.
ls_attributes-application_component = gs_tdevc-component.
*package properties
CLEAR ls_ti.
ls_ti-name = txt_main_package.
ls_ti-flag = abap_true.
IF gs_tdevc-mainpack = 'X'.
ls_ti-value = abap_true.
ENDIF.
APPEND ls_ti TO lt_package_properties.
CLEAR ls_ti.
ls_ti-name = txt_surrounding_package.
ls_ti-input = abap_true.
ls_ti-value = gs_tdevc-parentcl.
APPEND ls_ti TO lt_package_properties.
ls_ti-name = txt_allowed_object_types.
ls_ti-input = abap_true.
PERFORM get_dom_value_text
USING
'PACKTYPE'
gs_tdevc-packtype
CHANGING
ls_ti-value.
APPEND ls_ti TO lt_package_properties.
CLEAR ls_ti.
ls_ti-name = txt_package_not_extendable.
ls_ti-flag = abap_true.
ls_ti-value = gs_tdevc-restricted.
APPEND ls_ti TO lt_package_properties.
ASSIGN COMPONENT 'SRV_CHECK' OF STRUCTURE gs_tdevc TO .
IF IS ASSIGNED.
CLEAR ls_ti.
ls_ti-name = txt_package_check_as_server.
ls_ti-flag = abap_true.
ls_ti-value = .
APPEND ls_ti TO lt_package_properties.
UNASSIGN .
ENDIF.
ASSIGN COMPONENT 'CLI_CHECK' OF STRUCTURE gs_tdevc TO .
IF IS ASSIGNED.
CLEAR ls_ti.
ls_ti-name = txt_package_check_as_client.
ls_ti-flag = abap_true.
ls_ti-value = .
APPEND ls_ti TO lt_package_properties.
UNASSIGN .
ENDIF.
*transport attributes
CLEAR ls_ti.
ls_ti-name = txt_transport_layer.
ls_ti-input = abap_true.
ls_ti-value = gs_tdevc-pdevclass.
APPEND ls_ti TO lt_transport_attributes.
CLEAR ls_ti.
ls_ti-name = txt_software_component.
ls_ti-input = abap_true.
ls_ti-value_double_length = abap_true.
ls_ti-value = gs_tdevc-dlvunit.
APPEND ls_ti TO lt_transport_attributes.
CLEAR ls_ti.
ls_ti-name = txt_changes_are_recorded.
ls_ti-flag = abap_true.
ls_ti-value = gs_tdevc-korrflag.
APPEND ls_ti TO lt_transport_attributes.
*package interfaces
CALL METHOD lo_package->get_origin_system
IMPORTING
e_origin_system = l_pack_system
EXCEPTIONS
OTHERS = 1.
CALL METHOD lo_package->get_interfaces
IMPORTING
e_package_interfaces = lt_ref_interface
EXCEPTIONS
OTHERS = 1.
LOOP AT lt_ref_interface INTO ls_ref_interface.
UNASSIGN .
ASSIGN COMPONENT 'DELETED_IN_MEMORY' OF STRUCTURE
ls_ref_interface TO .
IF IS ASSIGNED
AND = abap_true.
CONTINUE.
ENDIF.
CLEAR ls_interface.
ls_interface-intf_name = ls_ref_interface->interface_name.
ls_interface-descript = ls_ref_interface->short_text.
CALL METHOD ls_ref_interface->get_origin_system
IMPORTING
e_origin_system = l_intf_system
EXCEPTIONS
OTHERS = 1.
IF l_pack_system <> l_intf_system.
ls_interface-forsys = txt_foreign_source_system.
ENDIF.
APPEND ls_interface TO lt_interface.
ENDLOOP.
*use access
CALL METHOD lo_package->get_permissions_to_use
IMPORTING
e_permissions = lt_ref_perm
EXCEPTIONS
OTHERS = 1.
LOOP AT lt_ref_perm INTO ls_ref_perm.
UNASSIGN .
ASSIGN COMPONENT 'DELETED_IN_MEMORY' OF STRUCTURE ls_ref_perm
TO .
IF IS ASSIGNED
AND = abap_true.
CONTINUE.
ENDIF.
CLEAR ls_perm.
ls_perm-pack_name = ls_ref_perm->publisher_package_name.
ls_perm-intf_name = ls_ref_perm->package_interface_name.
PERFORM get_dom_value_text
USING
'ERRSEVRTY'
ls_ref_perm->error_severity
CHANGING
ls_perm-err_sever.
APPEND ls_perm TO lt_perm.
ENDLOOP.
*packages included
CALL METHOD lo_package->get_sub_packages
IMPORTING
e_sub_packages = lt_ref_sub
EXCEPTIONS
OTHERS = 1.
LOOP AT lt_ref_sub INTO ls_ref_sub.
UNASSIGN .
ASSIGN COMPONENT 'DELETED_IN_MEMORY' OF STRUCTURE ls_ref_sub
TO .
IF IS ASSIGNED
AND = abap_true.
CONTINUE.
ENDIF.
CLEAR ls_sub.
ls_sub-devclass = ls_ref_sub->package_name.
ls_sub-ctext = ls_ref_sub->short_text.
APPEND ls_sub TO lt_sub.
ENDLOOP.
*tabstrip
PERFORM get_tabstrip
USING 'PACK_DEVC' space
CHANGING lt_tabstrip.
LOOP AT lt_tabstrip ASSIGNING .
-empty = abap_false.
CASE -id.
WHEN 'INTERFACE'.
IF lt_interface IS INITIAL.
-empty = abap_true.
ENDIF.
WHEN 'PERM'.
IF lt_perm IS INITIAL.
-empty = abap_true.
ENDIF.
WHEN 'SUB'.
IF lt_sub IS INITIAL.
-empty = abap_true.
ENDIF.
ENDCASE.
ENDLOOP.
**HTML
PERFORM html_main_header
USING
tpt_pack_devc
txt_package
gs_tdevc-devclass
txt_saved
space
space
space " 'makeDivSize(''SOURCECODE'');'
lt_tabstrip
gt_link
CHANGING
lt_html.
* attributes
PERFORM html_add_attributes_4
USING
ls_attributes
txt_package_properties
lt_package_properties
txt_transport_attributes
lt_transport_attributes
'ATTRIBUTES'
abap_true
CHANGING
lt_html.
* interface
IF NOT lt_interface IS INITIAL
OR g_empty_tab = gc_empty_tab_display.
PERFORM html_add_table
USING
'DEVC_INTF'
lt_interface
lt_interface
'INTERFACE'
abap_false
CHANGING
lt_html.
ENDIF.
* perm
IF NOT lt_perm IS INITIAL
OR g_empty_tab = gc_empty_tab_display.
PERFORM html_add_table
USING
'DEVC_PERM'
lt_perm
lt_perm
'PERM'
abap_false
CHANGING
lt_html.
ENDIF.
* sub
IF NOT lt_sub IS INITIAL
OR g_empty_tab = gc_empty_tab_display.
PERFORM html_add_table
USING
'DEVC_SUB'
lt_sub
lt_sub
'SUB'
abap_false
CHANGING
lt_html.
ENDIF.
*
PERFORM html_main_footer
USING
lt_html.
PERFORM download
USING
lt_html
'R3TR'
'DEVC'
gs_tdevc-devclass
gc_extension_htm
abap_false.
ENDFORM. "r3tr_devc