Commit Graph

312 Commits

Author SHA1 Message Date
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
Boris Sachsenberg
6cc5e63dfd Exclude reusable includes in FUGR deserialization
Function groups can use includes that were separately created as programs of type include. Those includes could be reusedin various other programs and function groups. They might even be created in a different package. This type of include is an object of it's own that get serialized with it's package as a separate object. Therefore it should not be included in serialization of any function group that uses it. This fix checks for which includes TADIR entries of type PROG exists and excludes them from serialization in FUGR serializer.
2019-02-14 21:09:32 -08:00
p-dmitrij
de4c92fb73 SFPF, SFPI: Error by import (issue #2353) (#2388)
* SFPF, SFPI: Error by import (issue #2353)

The renumbering of the attributes "id" and "href" is reworked

* Pretty printer of the full class source

* indentation
2019-02-13 04:49:35 -08:00
Lars Hvam
4e40705350
Downport (#2390)
* SHI3, remove unused variable

* SUSC, constant, plus no need to pass attributes
2019-02-12 21:46:10 -08:00
larshp
e2e703a0bd DOMA do not serialize texts without language #2311 2019-02-12 21:45:53 -08:00
Dmitry Pisarev
de7dfea3d3 SCP1: Text tables are not imported #2348
The field "recnumber" of the internal table "cs_scp1-scprvall" is condensed now in xml
2019-02-11 22:17:58 -08:00
larshp
5018eae46c refactor public attributes #2369
refactor public attributes #2369
2019-02-09 23:28:22 -08:00
Lars Hvam
3e1de36861
PINF downport (#2367)
* PINF downport

PINF downport, #2365

* update
2019-02-07 00:56:13 -08:00
larshp
f68c3c244e SPRX: refactor
SPRX: refactor, issue #2365
2019-02-07 00:55:59 -08:00
larshp
474a4b9051 include "SPRX" in SPRX error description 2019-02-05 23:11:34 -08:00
Lars Hvam
30547792dd
use built in types (#2363)
* replace use of x255

* use same type as field source

* remove use of text25

* remove use of numc4

* remove use of DATUM
2019-02-05 23:08:04 -08:00