Merge branch 'master' of https://github.com/christianguenter2/abapGit into SHMA-Shared-Memory

This commit is contained in:
Christian Günter 2017-08-14 20:03:19 +02:00
commit 83cb0995ec
7 changed files with 368 additions and 3 deletions

View File

@ -8,6 +8,12 @@ Legend
+ : added
- : removed
2017-08-11 v1.40.0
------------------
+ JOBD supported
+ CMPT supported
* downport fix
2017-08-07 v1.39.0
------------------
+ DIAL supported

View File

@ -35,6 +35,7 @@ IARP | Parameters of IAC Language Resource | Yes
IASP | Parameters of an IAC service | Yes
IATU | Language-Independent IAC Templates | Yes
IWPR | Gateway Business Suite Enablement - Service Builder Project | [#75](https://github.com/larshp/abapGit/issues/75)
JOBD | Technical Job Definition | Yes
LPDC | Launchpad short texts | [#107](https://github.com/larshp/abapGit/issues/107)
MSAG | Message Class | Yes
NROB | Number Range Objects | Yes

View File

@ -7,7 +7,7 @@ TYPE-POOLS seop.
INTERFACE lif_defs.
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.39.0'. "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.40.0'. "#EC NOTEXT
TYPES: ty_type TYPE c LENGTH 6,
ty_bitbyte TYPE c LENGTH 8,

View File

@ -131,6 +131,134 @@ CLASS lcl_object_enho_wdyc IMPLEMENTATION.
ENDCLASS. "lcl_object_enho_wdyconf IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS lcl_object_enho_wdyconf DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_enho_wdyn DEFINITION.
PUBLIC SECTION.
METHODS: constructor
IMPORTING
is_item TYPE lif_defs=>ty_item
io_files TYPE REF TO lcl_objects_files.
INTERFACES: lif_object_enho.
PRIVATE SECTION.
DATA: ms_item TYPE lif_defs=>ty_item,
mo_files TYPE REF TO lcl_objects_files.
ENDCLASS. "lcl_object_enho_wdyconf DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_object_enho_wdyconf IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_object_enho_wdyn IMPLEMENTATION.
METHOD constructor.
ms_item = is_item.
mo_files = io_files.
ENDMETHOD. "constructor
METHOD lif_object_enho~deserialize.
DATA: ls_enh_data TYPE enhwdyn,
li_tool TYPE REF TO if_enh_tool,
lo_wdyn TYPE REF TO cl_enh_tool_wdy,
tool_type TYPE enhtooltype,
package TYPE devclass.
FIELD-SYMBOLS: <controller_data> TYPE enhwdyc,
<view_data> TYPE enhwdyv.
io_xml->read(
EXPORTING
iv_name = 'TOOL'
CHANGING
cg_data = tool_type ).
io_xml->read(
EXPORTING
iv_name = 'COMPONENT_DATA'
CHANGING
cg_data = ls_enh_data ).
package = iv_package.
TRY.
cl_enh_factory=>create_enhancement(
EXPORTING
enhname = |{ ms_item-obj_name }|
enhtype = ''
enhtooltype = tool_type
IMPORTING
enhancement = li_tool
CHANGING
devclass = package ).
lo_wdyn ?= li_tool.
lo_wdyn->initialize( ls_enh_data-component_name ).
lo_wdyn->set_component_data( ls_enh_data-component_data ).
LOOP AT ls_enh_data-controller_data ASSIGNING <controller_data>.
lo_wdyn->set_controller_data( p_controller_name = <controller_data>-controller_name
p_enh_data = <controller_data> ).
ENDLOOP.
LOOP AT ls_enh_data-view_data ASSIGNING <view_data>.
lo_wdyn->set_view_data( p_view_name = <view_data>-view_name
p_enh_data = <view_data> ).
ENDLOOP.
lo_wdyn->if_enh_object~save( ).
lo_wdyn->if_enh_object~unlock( ).
CATCH cx_root.
lcx_exception=>raise( |error deserializing ENHO wdyn { ms_item-obj_name }| ).
ENDTRY.
ENDMETHOD. "lif_object_enho~deserialize
METHOD lif_object_enho~serialize.
DATA: lo_wdyn TYPE REF TO cl_enh_tool_wdy,
component_name TYPE wdy_component_name,
ls_enh_data TYPE enhwdyn.
lo_wdyn ?= ii_enh_tool.
component_name = lo_wdyn->get_component_name( ).
TRY.
lo_wdyn->get_all_data_for_comp(
EXPORTING
p_component_name = component_name
IMPORTING
p_enh_data = ls_enh_data ).
io_xml->add( iv_name = 'TOOL'
ig_data = ii_enh_tool->get_tool( ) ).
io_xml->add( iv_name = 'COMPONENT_DATA'
ig_data = ls_enh_data ).
CATCH cx_enh_not_found.
lcx_exception=>raise( |error serializing ENHO wdyn { ms_item-obj_name }| ).
ENDTRY.
ENDMETHOD. "lif_object_enho~serialize
ENDCLASS. "lcl_object_enho_wdyconf IMPLEMENTATION
*----------------------------------------------------------------------*
* CLASS lcl_object_enho_clif DEFINITION
@ -891,7 +1019,7 @@ CLASS lcl_object_enho DEFINITION INHERITING FROM lcl_objects_super FINAL.
IMPORTING
iv_tool TYPE enhtooltype
RETURNING
value(ri_enho) TYPE REF TO lif_object_enho
VALUE(ri_enho) TYPE REF TO lif_object_enho
RAISING
lcx_exception.
@ -988,9 +1116,13 @@ CLASS lcl_object_enho IMPLEMENTATION.
EXPORTING
is_item = ms_item
io_files = mo_files.
WHEN 'WDYENH'.
CREATE OBJECT ri_enho TYPE lcl_object_enho_wdyn
EXPORTING
is_item = ms_item
io_files = mo_files.
* ToDo:
* WHEN 'ENHFUGRDATA'. "cl_enh_tool_fugr
* WHEN 'ENHWDYN'. "cl_enh_tool_wdy
WHEN OTHERS.
lcx_exception=>raise( |Unsupported ENHO type { iv_tool }| ).
ENDCASE.

View File

@ -0,0 +1,200 @@
*&---------------------------------------------------------------------*
*& Include zabapgit_object_jobd
*&---------------------------------------------------------------------*
CLASS lcl_object_jobd DEFINITION INHERITING FROM lcl_objects_super FINAL.
PUBLIC SECTION.
INTERFACES lif_object.
PRIVATE SECTION.
TYPES: ty_jd_name TYPE c LENGTH 32.
ENDCLASS.
CLASS lcl_object_jobd IMPLEMENTATION.
METHOD lif_object~has_changed_since.
rv_changed = abap_true.
ENDMETHOD.
METHOD lif_object~changed_by.
rv_user = c_user_unknown.
ENDMETHOD.
METHOD lif_object~get_metadata.
rs_metadata = get_metadata( ).
rs_metadata-delete_tadir = abap_true.
ENDMETHOD.
METHOD lif_object~exists.
DATA: jd_name TYPE ty_jd_name.
jd_name = ms_item-obj_name.
TRY.
CALL METHOD ('CL_JR_JD_MANAGER')=>('CHECK_JD_EXISTENCE')
EXPORTING
im_jd_name = jd_name
IMPORTING
ex_is_existing = rv_bool.
CATCH cx_root.
lcx_exception=>raise( |JOBD not supported| ).
ENDTRY.
ENDMETHOD.
METHOD lif_object~serialize.
DATA: lr_job_definition TYPE REF TO data,
lo_job_definition TYPE REF TO object,
jd_name TYPE ty_jd_name.
FIELD-SYMBOLS: <ls_job_definition> TYPE any,
<field> TYPE any.
jd_name = ms_item-obj_name.
TRY.
CREATE DATA lr_job_definition TYPE ('CL_JR_JOB_DEFINITION=>TY_JOB_DEFINITION').
ASSIGN lr_job_definition->* TO <ls_job_definition>.
ASSERT sy-subrc = 0.
CREATE OBJECT lo_job_definition TYPE ('CL_JR_JOB_DEFINITION')
EXPORTING
im_jd_name = jd_name.
CALL METHOD lo_job_definition->('GET_JD_ATTRIBUTES')
IMPORTING
ex_jd_attributes = <ls_job_definition>.
ASSIGN COMPONENT 'JDPACKAGE' OF STRUCTURE <ls_job_definition> TO <field>.
CLEAR <field>.
ASSIGN COMPONENT 'BTCJOB_USER' OF STRUCTURE <ls_job_definition> TO <field>.
CLEAR <field>.
ASSIGN COMPONENT 'OWNER' OF STRUCTURE <ls_job_definition> TO <field>.
CLEAR <field>.
ASSIGN COMPONENT 'CREATED_DATE' OF STRUCTURE <ls_job_definition> TO <field>.
CLEAR <field>.
ASSIGN COMPONENT 'CREATED_TIME' OF STRUCTURE <ls_job_definition> TO <field>.
CLEAR <field>.
ASSIGN COMPONENT 'CHANGED_DATE' OF STRUCTURE <ls_job_definition> TO <field>.
CLEAR <field>.
ASSIGN COMPONENT 'CHANGED_TIME' OF STRUCTURE <ls_job_definition> TO <field>.
CLEAR <field>.
io_xml->add( iv_name = 'JOBD'
ig_data = <ls_job_definition> ).
CATCH cx_root.
lcx_exception=>raise( |Error serializing JOBD| ).
ENDTRY.
ENDMETHOD.
METHOD lif_object~deserialize.
DATA: lr_job_definition TYPE REF TO data,
lo_job_definition TYPE REF TO object,
jd_name TYPE ty_jd_name.
FIELD-SYMBOLS: <ls_job_definition> TYPE any,
<field> TYPE any.
jd_name = ms_item-obj_name.
TRY.
CREATE DATA lr_job_definition TYPE ('CL_JR_JOB_DEFINITION=>TY_JOB_DEFINITION').
ASSIGN lr_job_definition->* TO <ls_job_definition>.
ASSERT sy-subrc = 0.
io_xml->read(
EXPORTING
iv_name = 'JOBD'
CHANGING
cg_data = <ls_job_definition> ).
CREATE OBJECT lo_job_definition TYPE ('CL_JR_JOB_DEFINITION')
EXPORTING
im_jd_name = jd_name.
ASSIGN COMPONENT 'JDPACKAGE' OF STRUCTURE <ls_job_definition> TO <field>.
<field> = iv_package.
CALL METHOD lo_job_definition->('CREATE_JD')
EXPORTING
im_jd_attributes = <ls_job_definition>.
CATCH cx_root.
lcx_exception=>raise( |Error deserializing JOBD| ).
ENDTRY.
lcl_objects_activation=>add_item( ms_item ).
ENDMETHOD.
METHOD lif_object~delete.
DATA: lo_job_definition TYPE REF TO object,
jd_name TYPE c LENGTH 32.
jd_name = ms_item-obj_name.
TRY.
CREATE OBJECT lo_job_definition TYPE ('CL_JR_JOB_DEFINITION')
EXPORTING
im_jd_name = jd_name.
CALL METHOD lo_job_definition->('DELETE_JD').
CATCH cx_root.
lcx_exception=>raise( |Error deleting JOBD| ).
ENDTRY.
ENDMETHOD.
METHOD lif_object~jump.
DATA: obj_name TYPE e071-obj_name.
obj_name = ms_item-obj_name.
CALL FUNCTION 'TR_OBJECT_JUMP_TO_TOOL'
EXPORTING
iv_pgmid = 'R3TR'
iv_object = ms_item-obj_type
iv_obj_name = obj_name
iv_action = 'SHOW'
EXCEPTIONS
jump_not_possible = 1
OTHERS = 2.
IF sy-subrc <> 0.
lcx_exception=>raise( |Error from TR_OBJECT_JUMP_TO_TOOL, JOBD| ).
ENDIF.
ENDMETHOD.
METHOD lif_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<PROGDIR>
<NAME>ZABAPGIT_OBJECT_JOBD</NAME>
<STATE>A</STATE>
<VARCL>X</VARCL>
<DBAPL>S</DBAPL>
<DBNA>D$</DBNA>
<SUBC>I</SUBC>
<FIXPT>X</FIXPT>
<LDBNAME>D$S</LDBNAME>
<UCCHECK>X</UCCHECK>
</PROGDIR>
<TPOOL>
<item>
<ID>R</ID>
<ENTRY>ZABAPGIT_OBJECT_JOBD</ENTRY>
<LENGTH>20</LENGTH>
</item>
</TPOOL>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -25,6 +25,7 @@ INCLUDE zabapgit_object_fugr.
INCLUDE zabapgit_object_iarp.
INCLUDE zabapgit_object_iasp.
INCLUDE zabapgit_object_iatu.
INCLUDE zabapgit_object_jobd.
INCLUDE zabapgit_object_intf.
INCLUDE zabapgit_object_msag.
INCLUDE zabapgit_object_nrob.