* Avoid double deserialize of text symbols
Text symbols are already deserialized in `ZCL_ABAPGIT_OBJECTS_PROGRAM->DESERIALIZE_TEXTPOOL`.
* remove method
Co-authored-by: Lars Hvam <larshp@hotmail.com>
In dynpro screen, when a field is referring to a data element and text is taken from dictionary, no need to serialize the text as it is always taken from dictionary. If the text is included then it will show unnecessary diffs when data element text changes.
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* PROG: Refactor deserialize and fix inactive code
This is a follow-up to #4500, #4509, #4518
- Split `ZCL_ABAPGIT_OBJECTS_PROGRAM->DESERIALIZE_PROGRAM` into smaller methods
- `INSERT_PROGRAM` now uses standard `RPY_PROGRAM_INSERT` and only does `INSERT REPORT` in exceptional cases like function groups (see below)
- Special case of Code Inspector variants is handled by `ZCL_ABAPGIT_OBJECT_PROG->DESERIALIZE_WITH_EXT` since these aren't actual programs (but includes containing data)
Using the standard function fixes the issue of inactive code that can't be accessed after a pull. This used to happen, for example, when a program contained syntax errors due to missing objects.
* Update zcl_abapgit_objects_program.clas.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Deserialize: Commit changes before activation
Some objects (like `prog` or `intf`) are deserialized as inactive objects i.e. uncommitted changes. Usually, these changes are committed to the database after the activation process (end of the session). However, if there are any errors during activation, an exception is raised which will automatically do a `rollback work`.
This change will make sure that inactive objects are preserved even if the activation fails. One can then analyze the inactive objects, make necessary corrections, and activate them manually.
Closes#4500
* Replace with standard function
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Terminology: Inclusive Language - Part 2
Change "Master Language" to "Main Language" in UI and comments (documentation and variables next)
* Docs
* Docs
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* change xml references
* change xml reference, remove type definition
deleted type already exists in zif_abapgit_definitions
* change XML references
* change indentation
* fix indentation
* fix ident pt. 3
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* 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.
* sfpf: make deserialization errors more verbose
Just to make debugging a little be easier.
* prog: make updating errors more verbose
For simpler debugging.
* 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
* add missing functions in plugin VCLS
* fix pretty print
* fix check usage for abaplint
* adjust detection of locks
* german type
* move fix to deserialize
* fix syntax for 7.02
* fix dynpro set/get parameter
* Dynpro Generation - Flag SET-/GET_PARAM
* Update zif_abapgit_definitions.intf.abap
* Update zif_abapgit_definitions.intf.xml
* add byte order mark back
* rename local constant to LC_
* correct xml errors of CUA interfaces
Issue error RS_CUA_INTERNAL_WRITE while pulling an old abapgit repository #1807. Same issue as #562 (error RS_CUA_INTERNAL_WRITE) which is solved by correcting manually the XML of the CUA interfaces (fastidious), or by regenerating the XML (but unfortunately sometimes the abapGit repository is from someone else).
Automatically fix this before RS_CUA_INTERNAL_WRITE is called. It's useless having this as a configuration option.
* refactor: extract code to a new method
* Better refactoring of auto correction CUA