Commit Graph

322 Commits

Author SHA1 Message Date
Martin Fuchs
9f2db446b1 simplified GET_DESERIALIZE_STEPS
Since all object handler contains exactly the same CASE statement for STEP definition, I would recommend that each object handler simply returns the STEP he belongs to.
This fix should "simply" issue #2499.
2019-05-05 00:57:52 -07:00
Thomas B
76b48e63a7 RS_CUA_INTERNAL_WRITE another fix (#2656)
* Update zcl_abapgit_objects_program.clas.abap

Found a situation on my project where on pulling code from a zip file, the error RS_CUA_INTERNAL_WRITE sy-subrc = 2 popped.
The error was due to the content of XML file exported : <CUA><ADM>ACTCODE was containing an 'X' value for a single file. I corrected the file putting it blank and it worked. But it's a fastidious task so I fixed the method ZCL_ABAPGIT_OBJECTS_PROGRAM->auto_correct_cua_adm in order to fix this field also when it contains only an 'X'. Tested ok on my system so I propose this small change.

* Update zcl_abapgit_objects_program.clas.abap

* Update zcl_abapgit_objects_program.clas.abap

Use the same check SAP does in form check_adm of include LSMPIF03 for the CUA values.
2019-04-28 01:09:49 -07:00
larshp
4a4f556e21 Generic: only unique tables 2019-04-24 07:58:07 -07:00
larshp
73b5ddc276 downport 2019-04-23 03:48:34 -07:00
Christian Guenter
4799230514 XINX delete: remove UI call 2019-04-22 22:46:51 -07:00
larshp
3084bb2c60 SSFO fixes for leading spaces #2640 2019-04-22 22:45:33 -07:00
Martin Fuchs
6e860f53da Avoid DYNPRO_SEND_IN_BACKGROUND while ADT Pull (#2634)
* Avoid DYNPRO_SEND_IN_BACKGROUND while ADT Pull

When ADT (aka ABAP in Eclipse) is used to trigger a pull request, there is no SAPGUI available in the backend system. Whenever a dynpro is called, a DYNPRO_SEND_IN_BACKGROUND short dump occurs.
This commit fixes issue #2632.
Additional remark: In case of a private repository, username and password are passed to the backend system. The ADT backend coding handles this via class ZCL_ABAPGIT_DEFAULT_AUTH_INFO. To avoid sending a password dialog in the backend system (class CL_ABAPGIT_PASSWORD_DIALOG), ZABAPGIT coding needs to be adjusted to take over user/pw from ZCL_ABAPGIT_DEFAULT_AUTH_INFO. I know this is not nice and it would be better to have ZCL_ABAPGIT_DEFAULT_AUTH_INFO in ZABAPGIT. Even the best solution would be to re-use ZCL_ABAPGIT_LOGIN_MANAGER, but I would recommend to refactor this in a new pull request later on...

* Fix abaplint identiation failure 

Fix abaplint identiation failure

* Rest ZCL_ABAPGIT_PASSWORD_DIALOG

Rest ZCL_ABAPGIT_PASSWORD_DIALOG to prelimiary version. 
To be changed in a different pull request....
2019-04-16 22:21:46 -07:00
Fabian Lupa
d6dfa424ae Add exit for CLAS CLIF source serialization (#2630)
* Add user exit for serialize_abap_clif_source

* Document CLIF serializer exit

* Add exit redirection for CLIF serializer

* Add link to example for CLIF serialization exit
2019-04-16 05:14:15 -07:00
Martin Fuchs
6560cbe539 report name of xml file in case of format error (#2626)
* report name of xml file in case of format error

In case of an error in the XML file, for support reason I want to know which file causes the error. The file name is mentioned if the XML itself is corrupt or if there is an XML version mismatch.
This PR fixes issue #2619.

* fix abaplint issues

fix abaplint issues
2019-04-14 00:14:22 -07:00
Martin Fuchs
4029cab9f6 Ignore XTI includes in FUGR
Do not serialize XTI includes (simple transformations) for function groups. In case they exist in the remote repositiory, do not import them.
2019-04-05 03:48:06 -07:00
Christian Günter
860896abd2 SFPI deserialization: delete if exists 2019-04-05 03:47:26 -07:00
Lars Hvam
7bbaf069e2
File format update collection (#2605)
* File format update - changed object handler

I removed the following fields:

CLAS
VSEOCLASS-VERSION

INTF
VSEOINTERF-VERSION

PROG
PROGDIR-STATE

DCLS
AS4LOCAL
ABAP_LANGUAGE_VERSION (if exists)

DDLS
ABAP_LANGUAGE_VERSION (if exists)

DDLX
VERSION
RESPONSIBLE
MASTER_SYSTEM

MSAG
DOKIL-DOKSTATE

ENQU
DD25V-AS4LOCAL
DD25V-AS4VERS

* fix syntax error

* also clear PROG VARCL

* update XML files
2019-03-31 01:17:46 -07:00
sandra rossi
6839f81c93 DIFF shown after pull ENHO of implicit enh. #2579
Issue #2579: diff still shown after pull of ENHO hooks (implicit enhancements i.e. code added at start/end of existing methods, etc.)

Reason: if the author has created and deleted implicit enhancements in the original system, the numbering doesn't start from 1 (this is the numbering we can see for the statement ENHANCEMENT, for instance ENHANCEMENT 1. ... ENDENHANCEMENT.) When pulling in another system, the numbering will start from 1, so it will differ from the source. As this enhancement number is serialized by abapGit in the XML, it will detect a difference.

Correction: the method SERIALIZE of class ZCL_ABAPGIT_OBJECT_ENHO_HOOK is changed so that to not serialize the enhancement number.
2019-03-30 03:23:26 -07:00
sandra rossi
0a84d7c830 #2580 enhancement events+ (NEW)enhancement methods
Three issues are corrected:
- Enhancement events are not serialized at all, nor deserialized (missing feature).
- The codeof new enhancement methods (not the implicit enhancements of existing methods, the code for methods added) are serialized but not deserialized (incomplete feature).
- DIFF may also appear after pulling ENHO objects, concerning attributes (OTR text ID being different) and method parameters (author, date, etc.)

Corrections: 
- Add serialization/deserialization of events in class ZCL_ABAPGIT_OBJECT_ENHO_CLIF
- Add deserialization of method implementations in class ZCL_ABAPGIT_OBJECT_ENHO_CLASS
- I havealso moved the existing method SERIALIZE_INCLUDES from ZCL_ABAPGIT_OBJECT_ENHO_CLIF to ZCL_ABAPGIT_OBJECT_ENHO_CLASS and created DESERIALIZE_INCLUDES in the latter class because method implementations exist only for classes, not for interfaces, so it should be done in "CLASS", not in "CLIF".
- DIFF criteria cleared in method SERIALIZE of class ZCL_ABAPGIT_OBJECT_ENHO_CLIF
2019-03-30 03:22:56 -07:00
sandra rossi
f603147bd1 #2577 shortdump ENHO object with new type
Short dump GETWA_NOT_ASSIGNED because of stupid copy/paste error in method SERIALIZE of ZCL_ABAPGIT_OBJECT_ENHO_CLIF:

    LOOP AT lt_tab_types ASSIGNING <ls_type>.
      CLEAR: <ls_attr>-author,
             <ls_attr>-createdon,
             <ls_attr>-changedby,
             <ls_attr>-changedon.
    ENDLOOP.

Replace all <ls_attr> with <ls_type>.

+ clearing of <ls_type>-descript_id (OTR text ID) so that the DIFF ignores this field (new OTR texts, with new IDs, are always created while pulling so the ID must not be compared).
2019-03-29 03:32:51 -07:00
Jakub Filak
00a378a42b A pair of SFPF and PROG error messages with more details (#2588)
* sfpf: make deserialization errors more verbose

Just to make debugging a little be easier.

* prog: make updating errors more verbose

For simpler debugging.
2019-03-28 22:55:55 -07:00
sandra rossi
578ac4ce17 NEW: enho clif handle "types" 2019-03-25 01:40:18 -07:00
Jakub Filak
21e252b5a4 sfpf: save layout in solo XDP file (#2555)
* objects: add a method checking presence of a file

The method is called 'contains' because then you can write:

  if mo_files->contains( iv_ext = 'abap' ) = abap_true.

In newer system, you can even leave out the suffix '= abap_true'.

I am not sure how to make the logic deciding how to the select
shared with the method read_file.

For future developers: if you change the type of raised exception of the
method read_file when the passed file is not found, you can stop using
the method contains and you can save some time in the cases where it is
highly unexpected that the file is missing. You could also remove the
method contains which will have the benefit of having one place with the
select statement.

* sfpf: save layout in solo XDP file

Manually tested pushing and pulling but it still might cause some
problems.

This commit adds a new file with the suffix XDP for every XFPF object.
The new file contains the form layout which can be edited in Adobe
LiveCycle Designer. During debugging I learned that we put layouts in
all supported languages to the serialized SFPF XML file but the new
layout file contains only the layout of the Form's language.

I am not sure if removing the layout data make sense because thelayout
object contains layout data for all supported languages and the call
set_layout_data changes only the form's language.

--- v2

Removed the statement:

  li_fp_form->get_layout( )->set_layout_data( i_layout_data = conv #('') ).

Because it did not save any space in the SFPF XML file (because there
are layouts for other languages) and the statement instantly removes
the layout from caches and breaks forms.

--- v3

Added a check for the presence of the XDP file to make this change
backward compatible with already existing repositories where the XDP
file does not exist. Pointed out by Lars in the review.

In this version, I also "beautified" the code by a constant for the
layout file extension.

--- v4

Re-added the statement:

  li_fp_form->get_layout( )->set_layout_data( i_layout_data = conv #('')
                                              i_set_xliff_ids = abap_false ).

and added the re-cover layout data statement:

  li_fp_form->get_layout( )->set_layout_data( i_layout_data = lv_layout_bck
                                              i_set_xliff_ids = abap_false ).

The parameter i_set_xliff_ids is required by the layout type 'XFA'. It
is not possible to set layout data to an empty string without that
parameter, if you do, an exception is thrown.

The layout type 'XFA2' uses the parameter by default.
---

Closes #2554
2019-03-25 01:40:01 -07:00
Christian Günter
9e2f7e7caf TABL: Simplify control flow (#2552)
* TABL: Simplify control flow

When this commit is applied the control flow in object serializer TABL
is eased. The idoc check returns now a boolean instead of raising an exception. Main purpose is to ease debugging due to reducing the use of 
zcx_abapgit_exception%3D>raise.

* TABL: fill rv_deleted on early exit
2019-03-19 10:05:15 -07:00
larshp
ff6725e759 replace uses of log with interface 2019-03-17 01:39:52 -07:00
Lars Hvam
5b6cc04159
use RETURNING instead of EXPORTING (#2533)
* READ_FILE use returning instead of exporting

* PARSE_LINE, use returning instead of exporting
2019-03-16 03:33:17 -07:00
Lars Hvam
f9318305e9
Minor fixes (#2532)
* minor fixes regarding unused variables

* minor code inspector fixes
2019-03-15 05:54:39 -07:00
larshp
4e780068c7 DTEL, skip TPARA
DTEL, skip TPARA #2520
2019-03-15 01:13:15 -07:00
Lars Hvam
88822bb735
add method to determine if running in cloud (#2515)
* add method to determine if running in cloud

add new class and method to determine if abapGit is running on ABAP cloud/Steampunk systems, part of an effort to align codelines #2511

* fix naming

* add simple unit test
2019-03-14 01:33:39 -07:00
GoWa
21527528c6 call redefined method of IF 2019-03-12 21:49:15 -07:00
larshp
25f6284493 implement GET_DESERIALIZE_STEPS
this is a quick fix, field LATE_DESER will be removed in future
2019-03-12 07:37:56 -07:00
GoWale
6b7b2ba5c5 Implement deserialize steps and swap DDIC/ABAP order (#2449)
* Implement deserialize steps swap DDIC/ÁBAP order

* fix for wapa and abaplint

* bugfix in falback logic and type definition

* fixed constant usage

* fixed abaplint and constant usage

* focus only on design change of deserialze

* focus only on design change of deserialze

* Bugfix for CI because of changes of the order

* cleanup

* cleanup

* minor changes

* move types to IF
2019-03-12 02:08:00 -07:00
Lars Hvam
fc167ff3cd
update abaplint config to latest (#2480)
* update abaplint config to latest

* remove some descriptions

* remove more descriptions

* fixes

* fixes
2019-03-04 07:12:42 -08:00
Gregor Wolf
b04226e8f1 Add missing sy-subrc to exception 2019-03-01 00:06:41 -08:00
larshp
7da7327f36 SPRX downport 2019-02-27 21:56:30 -08:00
Gregor Wolf
06097f9614 Add missing Subrc %3D { sy-subrc } 2019-02-27 21:52:30 -08:00
larshp
afa63c8f3b IWPR basic version #75
IWPR basic version #75

can later be extended with implementations of IS_LOCKED, JUMP, and CHANGED_BY

this uses the generic serializer via OBJH, like abapGit-Plugins
2019-02-27 05:34:39 -08:00
Gregor Wolf
c22cacb197 Add sy-subrc to exception 2019-02-26 21:29:01 -08:00
larshp
9225e0ea0d More error information, RS_CORR_INSERT 2019-02-25 21:28:23 -08:00
larshp
2011be5696 SICF fixes
save data to field ICFALTNME

clear ICFALTNME_ORIG as the api sets it automagically
2019-02-24 22:46:23 -08:00
Lars Hvam
34e8e0bb69
Uninstall, fix some error messages (#2451)
* SUSO, fix error message

* DDLS error message

instead of "Object could not be deleted"
2019-02-24 22:46:02 -08:00
larshp
452c72d6ce move contents of ZCL_ABAPGIT_OBJECT_TABL_VALID to
move contents of ZCL_ABAPGIT_OBJECT_TABL_VALID to ZCL_ABAPGIT_OBJECT_TABL_COMPAR

#2436
2019-02-21 23:05:12 -08:00
larshp
7ff994dd03 fix VCLS diffs in VCLSTRUDEP_TAB #2432 2019-02-21 23:04:56 -08:00
Lars Hvam
3213d0c2dd
Deserialization performance, refactor COMPARE_TO_REMOTE_VERSION (#2438)
* core part refactored #2436

* indentation

* fix implementations

* delete ZCL_ABAPGIT_COMPARISON_NULL

* pretty print

* Update serializers.md

* downport
2019-02-20 22:20:24 -08:00
larshp
75ee96bce0 Activate parallel DDIC activation #1055
Activate parallel DDIC activation #1055

With this more activation errors will be shown, plus better performance
2019-02-20 22:01:03 -08:00
larshp
897755a0eb SOTR skip creation if already exists #2209 2019-02-20 22:00:51 -08:00
Lars Hvam
3cc38cdf90
SPRX, change serialization logic (#2431)
* SPRX, change serialization logic

* some progress

* delete method dequeue_proxy

* move deserialize_proxy to INTF
2019-02-20 22:00:22 -08:00
Lars Hvam
ae5cf8ccc5
PROG + CLAS, suppress popup (#2428)
* PROG, suppress popup

* CLAS, suppress dialog
2019-02-19 21:38:28 -08:00
Christian Günter
a821944e57 Fix filename constr.: Add ext. only if not initial
With this commit we fix the filename construction so that for
objects without file extension the correct filename is constructed.
Before this commit is applied these objects create file names with
an additional dot at the end.
2019-02-19 21:38:16 -08:00
Christian Günter
4cdcb53c2b ENHO: check existence before deletion
With this commit we add an existence check the delete method
of ENHO serializer because some enhancements, like implicit source code
enhancements of classes, are deleted implicitly.
2019-02-18 05:28:12 -08:00
Lars Hvam
d0a721b2cf
Move methods to private (#2416)
* ZCL_ABAPGIT_GUI_CHUNK_LIB move 2 methods private

* HTML_ACTION_UTILS move two methods private

* move calculate_skip_testclass to private

* move BUILD_ASX_NODE to private
2019-02-18 05:27:49 -08:00
Christian Günter
b588daf5f7 ECATT: remove dynamic method calls #2407 (#2411)
* ECATT: remove dynamic method calls

This commit introduces two new interfaces to remove dynamic method calls.
- ZIF_ABAPGIT_ECATT_DOWNLOAD
- ZIF_ABAPGIT_ECATT_UPLOAD

* ECATT: Rename method

Rename method z_set_stream_for_upload to set_stream_for_upload
as we now use our own interface and there's no risk that SAP 
standard introduces a method with the same name
2019-02-18 01:30:14 -08:00
Lars Hvam
9d4436822e
Cleanup (#2408)
* delete method CHECK_PROG_CHANGED_SINCE

not in use anymore

* delete method ADD_XML_FROM_PLUGIN

looks like it is not used anywhere, also not in plugins

* naming conventions
2019-02-17 01:28:58 -08:00
Lars Hvam
25d4c9ea07
Remove HAS_CHANGED_SINCE #1021 (#2401)
* core part removed

* remove method implementations
2019-02-15 06:51:57 -08:00
Martin Fuchs
94c95d46cb Refactoring of CORR_INSERT and adjustment for object types (#2392)
* Refactoring of CORR_INSERT and adjustment for object types

* CORR_INSERT without CORR_CHECK

* Z exception
2019-02-15 03:26:42 -08:00