* XSLT: Add late activation
In case a transformation depends on other objects like a class, the transformation will not activate if it's deserialized before the dependent objects.
This change adds the transformation to the late activation step.
* lint
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
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>
* ENHO: Split code into separate files
Similarly to class enhancements where enhanced methods are stored as individual files, this change separates the code for implicit enhancements (type `HOOK_IMPL`) into abap-files.
This makes the code more readable (instead of being embedded and escaped into XML) and allows for linting.
* Switch to filenames with hash
* CI
* Filenames in XML
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* CLEAR dd05m-leng
In S/4HANA system some of the data element lengths changed. Example: MATNR length changed from 18 characters to 40 characters. It would show as diff when this repo is pulled into S/4HANA. dd05m-leng is for information only hence, cleared it to avoid diffs.
* Replace tab with space
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Replace tab with 6 spaces
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Post-processing option for custom class serializer
When using the current exit for serializing classes, you have to code the complete serialization yourself (i.e. reading and formatting the code).
https://docs.abapgit.org/ref-exits.html#custom_serialize_abap_clif
With this change, you get the option to let abapGit serialize the class first and then post-process the source in the exit. The change is compatible with existing implementations of the exit.
To use the post-processing option, add the following code to the beginning of the exit:
```abap
IF it_source IS INITIAL.
RETURN.
ENDIF.
```
* Update ref-exits.md
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Naming of class constants
This is in preparation of enforcing a naming convention for constants in classes/interfaces. At the end, the following lint rule shall be set:
```json
"class_attribute_names": {
"constants": "^C_.+$",
...
},
```
After this, the only remaining constants not following this rule are in `zcl_abapgit_version`.
* Update zif_abapgit_dot_abapgit.intf.abap
* Update zcl_abapgit_gui_chunk_lib.clas.abap
* Update zcl_abapgit_gui_router.clas.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* SRFC: Improvements
- Check if `SRFC` is supported in `constructor`. This will ensure proper error handling (closes#4899). Note: Using the constructor is how it should be checked for other object types as well.
- Added `changed_by` logic
- Simplified catch code
* SRFC: Improvements
* SRFC: Improvements
* Update message
* Raise
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* DDLS: Fix dump in lower releases
- Add requirements check to constructor
- Prevent delete call in case object does not exist
Ref #4899
* Update message
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Improvements for Objects Class
This introduces a new `is_type_supported` method for `zcl_abapgit_objects` which is about 30x faster than the current `is_supported` method.
`is_type_supported` is used in the other methods like `changed_by` and `exists` to avoid instanciating or calling the object class unnecessarily. It won't be necessary to check for support before using these methods which will alllow simplifying the calling programs (separate PR).
There are also some new test cases for `is_type_supported` and for serializing a commom interface.
* No user id for unsupported objects
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Clarify error and resolution options in case subpackage already exists in system but is not included in pack hierarchy of repo root package.
Closes#4904
the old get_instance() method in ZCL_ABAPGIT_PERSIST_SETTINGS has been moved to a method in zcl_abapgit_persist_factory, plus interface added. Added to persist injector
* Fixed Version BRF+ Integration
* BRF+ serialization
* Fixed obsolete parameters and wrong boolean type
* Fixed some errors and filtered ComponentReleeases
ComponentReleeases in XML Export and Import of BRF+ API can be omitted and works also the same. Next try if I could delete the useless metadata (User, System, etc...) or must leave them empty and fill them manually before deserialization.
* Some little changes
Removed Parameter iv_marked_option for older releases and removed method wb_request_choice. Changed to transport automatically.
Aligned some parameters.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
* Offline repo: "Import via RFC" feature
Adds option to **offline** repositories for importing a repo via an RFC connection from another SAP system. It's a shortcut for doing "Export ZIP" in one system, and "Import ZIP" in the other.
Closes#4784
Pre-requisite: abapGit develop version (with this change) is installed on remote SAP system.
Note: The general recommendation is to use **online** repositories and a git server for comparing and synchronizing systems.
* Lint
* Create guide-import-rfc.md
* Langu
* Langu
* Write-protect only
* Compare
* Compare
* Compare
* Compare
* Git
* Update docs/guide-import-rfc.md
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix use of sy-langu in object serializers
- Replace sy-langu variable with mv_language
- Replace sy-langu type with langu (makes it easier to spot sy-langu)
- Enhance generic serializer to use mv_language
- Add unit tests to generic serializer
- Adjust and simplify serializers that are based on generic class
Closes#2080
* Update scvi+ueno
* Revert scvi
* Langu
* Langu
* Langu
* Langu
* Langu
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Terminology: Inclusive Language - Part 6
Change remaining variables and switch setting to main_language.
Finally closes#4043
* Add todo
Co-authored-by: Lars Hvam <larshp@hotmail.com>
For local packages, the application component is now stored in AG persistence. This will avoid the diff, if transportable packages are pulled into local packages.
Closes#1880
* Release serialization resources (fixes#4774)
Release serialization resources to prevent dump #4774 for export of large packages
* Free files after parallelization
* transfer files one by one
* Update src/objects/core/zcl_abapgit_serialize.clas.abap
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* fix lint, missing fs declaration
* index access on delete lt_found
* Update src/objects/core/zcl_abapgit_serialize.clas.abap
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* cleanup: index variable not required
* rollback to original APPEND LINES
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Enhance "Force Pull" to become "Selective Pull"
With this PR you can now peform a selective pull. Yay!
- Changes "Force Pull" to show *all* changed objects in the usual "Overwrite Popup". This allows you to select individual objects to be pulled no matter if they were changed locally or remotely.
- Does *not* change the regular "Pull" logic
Closes#413, #4282
* Combine delete and overwrite popups
* Add icons to abaplint.json
* Change if to case
* Add icons to abaplint.json
* Enhance UTs
* show_icon
* Show icon
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Remove adjust_namespace
Method is obsolete since namespace of object is already adjusted in `zcl_abapgit_filename_logic=>file_to_object`
* Remove adjust_namespace
* Remove bracket
Co-authored-by: Lars Hvam <larshp@hotmail.com>
As mentioned in #4673, the existence check for interfaces is not correct and actually checking for classes. The PR will correct the check.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* INTF: Refactor to fix "permission error"
Implements interface deserializer the same way as the class deserializer.
Closes#4672
* Remove types
* Class exists
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* based on the lastest master
* pretty printer
* fix inline declaration fragments
* fixing method chaining
* Fix: Use boolc instead of IF, negate expression
* remove descriptions
* pretty printer
* empty line in method calls
* Fix: Statement does not exist in ABAPv702
* fix exceptions
* fix Indentation problem
* fix: Statement does not exist in ABAPv702(or a par
* mitigate usage of not existing objects in 702
* remove not existing objects for 702
* indentation issues
* next
* next
* Indentation issues
* next
* fix
* Fix: The EXPORTING keyword can be omitted
* change to constant mc_source_file
* Update zcl_abapgit_object_srvd.clas.abap
* changes regarding mbtools' feedback
* according to mbtools' feedback
* Update zcl_abapgit_object_srvd.clas.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Combines `zcl_abapgit_file_status=>identify_object` and `zcl_abapgit_object_files=>filename` into new class `zcl_abapgit_filename_logic`. This class provides `file_to_object` and `object_to_file` conversion logic similar to what `zcl_abapgit_folder_logic` does for packages and git folders.
Also includes unit tests which were missing for the old methods.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Terminology: Inclusive Language - Part 5
Change of terminology (#4043)
- Replace `get_master_language` with `get_main_language` and remove it
* File Status
* Jump
* Language
* Main language
* Main language
Enhancements might refer to other objects of the repo so create them after the other objects.
Example: Repo includes enhancement for an exception class. Therefore, the exception class has to be deserialized before the enhancement.
* Show "data" by object in repo view
Continuing on #3441
- "data" is now shown as `TABU` `<table>` in the repo view
* Remove get_item
* Add cmnt
* Update src/objects/core/zcl_abapgit_serialize.clas.abap
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Update zcl_abapgit_serialize.clas.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Fix dump due to package name conflicts
Raises an error message instead of dumping
Closes#4620
* Split calculate_status
* Refactor only
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* SOTS: Uninstall with usage reference
Remove usage references of `SOTS` texts during uninstall
* Add comment
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
If the composite enhancement already exists, trying to update it fails with error "Error while creating enhancement implementation"
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>
Error "The concept will be created in the non-original system" (`SOTR_MESS 137`)
It's not an error (see function `SOTR_STRING_CREATE_CONCEPT`) and has been removed.
* Fixes DDIC activation
The changes mimic the behavior of CTS Activatin Job as of 7.40 SP 23
* fixes Activation of dependant DDIC (#4496)
The change attempts to mimic behaviour of SAP CTS DDIC Mass Activation Job
* Revert to DDMODE = 'O'
Reverts to activation mode "in original" system; adds "forced activation" (FRCACT = abap_true)
* restore variable definitions
* and Pretty Printer
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* add ORDER BY
* wdcc, add ORDER BY
* wapa add order by
* udmo, add order by
* tobj, add order by
* stvi, add order by
* CHAR, add order by
* CMOD, add order by
* dial, order by
* CLAS: Remove test class include
Once unit tests are disabled, the test class include is now completely removed (before it might have still contains obsolete code).
Closes#4460
* Reverse pp
* Update 6 objects
* Typo
* Typo
* Revert
* Revert
* Revert
* Revert
* Revert
* Lint
* Update zcl_abapgit_oo_class.clas.abap
* Move add_to_activation
Co-authored-by: Lars Hvam <larshp@hotmail.com>
After the pull request:
https://github.com/abapGit/abapGit/pull/4589
Objects supported by abapGit-plugins are not deserialized and
all are reported as not supported.
Closes#4610
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* TYPE: Serialize active version
When a new type-pools is created, SAP creates active version by default. SY-SUBRC is always set to 0 for the first function module call as there is always an active version hence, second function will never be called. Remove the second call.
* Multiple changes
Check existence of the object using TADIR entry
If the active object doesn't exist, show proper message
* Existence check using PROGDIR
* Replace SELECT..ENDSELECT
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Group unsupported messages per object type
When number of unsupported objects increase in a package, user needs to scroll through the long list of messages. This change groups messages per object type reducing the number of messages. Also, the filtering before serialization is good in terms of effective work process utilization( in parallel mode ).
* Replace LINE_EXISTS with READ TABLE
* Cache the supported object types
* Show object name
If there is only one object name for the unsupported object type, show the name.
* Spelling: "object(s)" to "objects"
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
In case DDIC objects exist as "new" version only , the system will now raise an error message to alert the user that "No active version was found".
Note: The log will disappear after some navigation and such objects will not be included in the repo view if they only exist locally (until they are activated).
* Fix#4515Fix#4515 by serializing new TAB_INCLUDES to contain include numbers of new methods of classes.
* Last fix before pull request
* files named "em_<methodname>" instead "emxxx"
* editorder without gaps
* Cleanup commented out line
* fixes abaplint
Co-authored-by: sandra rossi <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* DEVC: Unlock in case of errors
If a package object cannot be deleted or deserialized properly, it remains locked.
The change unlocks the object in these cases.
* Update set_lock
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* TABL: Remove field position from serialization
It's not necessary to serialize field position (`DD03P-POSTION`). Fields can simply be numberred sequentially during deserialize.
This avoid issues with include structures that have different number of fields in original and target systems.
Closes#4506
* Clear tabname, ddlanguage
* Lint
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Clear dd08v-ddlanguage
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
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>
* DEVC: Fix check if package is empty
SOTR object is linked to SAP package and removed together with the package on uninstall. Therefore, it should not be taken into account when checking if a package is empty.
* Update comment
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
The progress bar should not be turned off after `deserialize_object` (but only at end of `deserialize`).
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* ACID: Avoid "no changes found" popup
- Fix "no changes found" popup in case identical object is deserialized again
- Change to T100 messages
- Add missing dequeue
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix status calculation on package move
If an object is moved to another package *and* changed, the status was "blank". Now the object status is properly shown as "added/deleted". Also the `packmove` flag is *not* set anymore since a simple `tadir` change would not be sufficient.
Extended unit test to cover this case.
* Split test method
* pretty
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Automatic creation of top repository package
When adding a repository, it is not necessary anymore that the top SAP package assigned to the repository exists. Just enter a package name and clone (works for offline, too).
The initial diff will now show that the top package exists remotely only. Therefore, when pulling, you will not get the "confirm overwrite package" popup anymore. Yippie!
* Typo
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* NSPC: Add support for namespaces
Part 2 of #835
If a repo contains any namespaced object, then this PR will make namespaces part of the repository. So far, serializing and updating an existing namespace is supported.
abapGit can not (yet) create the namespace automatically. This will require a bit of refactoring which will then also support creating the top repo package automatically. Coming soon.
See readme of test case https://github.com/abapGit-tests/NSPC
* Refactor build
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix for #4425
* Remove whitespace at end of line
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Remove whitespace at end of line
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Refactor I18N settings
- Consolidate I18N parameters into a structure and pass it to xml and serializer classes (#4415)
- Continue change of terminology (#4043)
* Remove changes to serializer class
* Main lang
* DSYS
* OTGR
* Repo view
* Main langu
* Repo view %26 stage
* Serialize
* Settings
* Repo view
* Defs
* Stage
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* NSPC: Add warning if namespace does not exist
Part 1 of #835
* Limit to xml files
* Unit test
* RC
* Regex
* Refactor checks into methods
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Usually, in abapGit packages are created by the folder logic already. But it dumps with "`li_package` is not assigned," if deserialize is used in other ways.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Prevent staging of duplicate files
Since objects cannot exist in multiple packages, the staging page is now checking the selected files to prevent the resulting repo from containing an object multiple times.
If an object is moved to another SAP package and the corresponding files are seleted to be added to the repo (for the new package), then the files must also be removed from the repo (from the old package). If not, an error is raised.
* Remove other changes
* Update file status
* Extend unit test
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Adjustment to BDEF Object Handler
Adjustment to BDEF Object Handler regarding exchange file format
* fix abaplint stuff
* fix abaplint issue
* adaptation in deserialize method
* fix abaplint issues
* fixes abaplinter issues
* requested changes
* fix type issue
* fix type issue
* delete unused method FILL_METADATA_FROM_DB
* enhance signature with exception information
* change reference type
* change to initial activation logic
* change to abap step for activation
* change of reference type as part of create Service
Co-authored-by: Christian Günter <christianguenter@googlemail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
The specific dump occurred when the source was empty. Now it checks the string length properly.
Closes#4309
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Reduce memory consumption during deserialize
Import of objects required unnecessarily a lot of memory. This was the especially the case during the initial import of repos with large (binary) objects or high number of objects (even if they were not under /src/).
With this fix, an instance of an object serializer now contains only the files associated with this object (rather than all (!) files of the repo).
* Change path logic
* Comment
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Uninstall of enhancements failed with "Action cancelled" error and left object locked.
Removed call of `save` since calling `delete` method is sufficient. Also added `run_dark` for `delete`.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Raise error if package is not part of package hierarchy
If a package exists locally and remotely, but the local package is not part of the package hierarchy associated with the repo, then an error message will be raised.
The local package must be assigned manually to the package hierarchy before abapGit can process this scenario.
Note: The assignment is not done automatically, since it's not clear where in the hierarchy the new package should be located.
* lv_msg
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix pull errors related to files deleted remotely
Improve #4281 by moving "ignore logic" to `filter_files_to_deserialize`
* Added unit test
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Remove unnecessary constructors
A constructor that redefines the super constructor but only calls the super constructor with the same parameters is unnecessary and can be removed
https://github.com/abaplint/abaplint/issues/1417
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* fix creation of TR entries for uninstalled PROGs
Fixes creation of CTS Transport Request entries for PROG Objects uninstalled from transportable package.
* Abaplint Fixes
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Align naming of object super classes
- SAXX_SUPER for SAMC %26 SAPC
- W3XX_SUPER for W3HT %26 W3MI
* Delete old classes
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix missing i_suppress_dialog parameter syntax error in 731 system
* replace cx_root with cx_sy_dyn_call_param_not_found
* revert back to cx_root because checks have failed
"Statement does not exist in ABAPv702(or a parser error)"
* Revert "revert back to cx_root because checks have failed"
This reverts commit 73b9b2aa6f.
* replace cx_root with cx_sy_dyn_call_param_not_found, sorry i didn't see that extra quote character, should be fine now.
* fix whitespace
Co-authored-by: larshp <larshp@hotmail.com>
Maintenance views can have dependencies on tables with foreign keys. Such cases can lead to errors during deserialize since the foreign key relationships between tables are processed only in the "late" step.
This fix moves the processing of maintenance views (viewclass = c) to the "late" step.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
In case files are deleted remotely, the files are now ignored during a pull. In other words, "pull" will not touch objects that exist only locally and not remotely.
To delete such objects locally, use "reset local (forced pull)" which will show a popup for these objects and let you delete them.
Closes#4277
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* PROG: Remove objects from work area
Fixes issue with incomplete deletion of inactive objects
Closes#4151
* Lint
* Add correction
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* UI: Clear progress bar
Clears status/progress bar at end of process and removes leftover messages.
Closes#3505
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Remove obsolete late_deser from metadata
Final part to remove late_deser flag. Solution remains compatible with old bridge class which still uses the flag.
* Call
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* show log, remove title parameter
the log objec already have the title as part of the object, another input is not required
this aligns the code to always use the title from the object
closes#4223
* zif_abapgit_log, change title to csequence input
This adds shorthand methods for the SHA1 calculation of the different git artifacts.
More logic in ZCL_ABAPGIT_HASH, but easier to read and less application logic.
* DEVC: Remove obsolete TADIR entries
In case a package is local (ie no transports), abapGit will now check if objects still exist in the package. In case an object does not exist anymore, the corresponding TADIR entry will be removed. This allows empty local packages to be uninstalled automatically.
* Lint
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>
* Update unit tests to use CI
* Make test repo configurable
* Remove local tests and use CI
* Lint fixes
* Replace local tests with CI
* Add Type Group constants to abaplint
* Update constants and replace assert_true
* Revert constants
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix DDIC activation issues
- Avoid double activation of DDIC objects in case of "LATE" processing
- Derive DDIC id for XINX and MCID (same as for INDX)
Closes#4103
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
The field `late_deser` in `ZIF_ABAPGIT_DEFINITIONS=>ty_metadata` is obsolete:
```abap
TYPES:
BEGIN OF ty_metadata,
class TYPE string,
version TYPE string,
late_deser TYPE abap_bool, " refactor: can be removed later. replaced by steps
delete_tadir TYPE abap_bool,
ddic TYPE abap_bool,
END OF ty_metadata .
```
The PR removes the remaining usage with one exception: `ZCL_ABAPGIT_OBJECTS_BRIDGE->GET_DESERIALIZE_STEPS` still depends on the field. In order to remove it completely, the plug-in interface `zif_abapgitp_plugin` (https://github.com/abapGit/abapGit-Plugins/blob/master/src/zif_abapgitp_plugin.intf.abap) will have to be changed.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* 702: Downport
No chaining with CHANGING
* 702: Downport
* Syntax check variant
* Too many fields warning
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* TABL: Skip data check for GTT
fixes#4074
* undo case change
* TABL: use fm DD_EXISTS_DATA for data check
* remove formatting change
* Data existence check only for DB tables
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* CLAS: Avoid unnecessary serialize of testclass file
Unit tests are only functional if the corresponding flag is set (`seoclassdf-with_unit_tests`). Therefore, if the flag is not set, there's no need to serialize this include.
* Added version to select
* Switch to seo function
* Set mv_skip_testclass
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Close some todos
FUGR does not have any class includes
* Remove huh?
* Move WDYN activation to serializer
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Part 1
* Part 2
* Part 3
* Lint
* Part 5
* Part 6
* Part 7
* Part 8
* Part 9
* Enforce type naming prefix
All types need to start with TY_...
* Fix local types
* Adapt trial code from christianguenter2
* Add changed_by
* Adapt trial code from christianguenter2
* Add changed_by
* Add unit test mock class
* Update unit tests
* Unit tests %26 lint fixes
* De-Linting
* More lint fixes
* More lint experimenting
* More de-linting
* Update unit tests
* Turnaround test (WIP)
* More XML turnaround testing
* Turnaround test now working
* Clean up code
* Enable experimental mode
If we want to merge into master, it will only run for daredevil experimentalists
* Update src/objects/zcl_abapgit_object_pdts.clas.testclasses.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Update src/objects/zcl_abapgit_object_pdts.clas.abap
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* 702 compatibility
* More 702 compatibility
* Removed container texts and system elements
Temporary(?) measure as they are being too troublesome, changing XML on successive serializations and suchlike.
* Caught exception
* General refactoring
* Remove NOTEXT pragmas and directives
* De-linting
* Remove diff in transport class
* Refactoring WIP
* Refactoring - WIP
* Refactor serialization
* De-lint
* Update container serialization
* Refactor deserialization WIP
* Object type PDTS - Workflow Task (experimental)
* Object PDTS Alpha version
* De-lint
* Correct CI dependency issues
* Check for critical unit test setting
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Activation of foreign keys now uses with same logic as #3545:
- remove keys during DDIC phase
- add keys during LATE phase
Closes#3867
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* remove uses of CHAR30
* Update abaplint.json
* add basic unit test for ZCL_ABAPGIT_MESSAGE_HELPER
* replace uses of char50
* fix name
* Update abaplint.json
* use sy-uname instead of uname
in ZCL_ABAPGIT_USER_MASTER_RECORD
* 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>
* change xml references to interfaces
changed reference in interfaces:
- zif_abapgit_comparator
- zif_abapgit_oo_object_fnc
* change reference of xml in dependent objects
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Windows cannot store filenames containing "<" and ">"
These two characters are now uri encoded, same approach as already deployed for some characters
#3817
The removed fields have no real use as no other CLAS object contains
that field.
It was added in the commit:
b0d54f97e3
Besides, it causes me troubles in sapcli when I do checkin.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* otgr: initial object support
This commit replaces the generic SOBJ support with native support for
the object type OTGR and the format is not backward compatible,
so repos containing SOBJ serialized objects could not be pulled anymore
(it's necessary to pull them with previous version of abapGit and push
them with the new version of abapGit).
The new OTGR handler supports only master language description because
there is no API which would allow us to maintain other languages and
I am not willing to re-implement parts of ABAP platform just to version
texts which nobody cares about. Also, the texts dealing part is not
that straightforward - one has to think about keeping the texts
in sync which requires lot of code.
I did the following optimizations to the XML format:
- removed the activation state from all elements because we
always serialize only Active and deserialize as Inactive
- removed the foreign key name from texts and other details
because we know which object type group is currently being handled
- used short names for root elements of details to avoid redundancy
because the detail's table name is used for child XML elements -
e.g. TEXTS vs. CLS_TYPE_GROUPT.
Closes#1515
* Update ref-supported.md
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Web DynPro Component Configuration Support
Web DynPro Component Configuration Support Class
* WDCC Support - Syntax Corrections
Web DynPro Component Configuration Support
Syntax Corrrections
* TADIR Object Name Concatenation Change/Removal
TADIR Object Name Concatenation Change/Removal
As ms_item-obj_name hold complete TADIR name, concatenation with ..00 is not necessary.
* WDCC Support - Syntax Corrections
Web DynPro Component Configuration Support
-Remove dynamic coding
-Remove explicit commit/roll back
-Use Tadir functionality of base class
* WDCC Support - Syntax Corrections
Web DynPro Component Configuration Support
-The EXPORTING keyword can be omitted (exporting))
* WDCC Support - Syntax Corrections
Web DynPro Component Configuration Support
-Removal of HJA comments
-Removal of me->
* Removal of Component Config XML in main object fil
Removal of Component Config XML in main object file
-Component Configuration raw XML added to additional comp_conf.xml file
* Additional xml file pretty printed as string
Additional file contents now pretty printed and added as string for easy diff.
Serialisation / Derialisation now working with pretty printing and un-pretty printing.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* WDYN: Fix missing texts
Texts were missing if more than one concept existed per WebDynpro component. Also fixes unit tests which were not working properly before and adds anew test.
* Pretty print
* Refactor and enhance SOTR support
Now supports all objects that use OTR: CLAS (LIMU/CPUB), ENHC, ENHO, ENHS, ENSC, WAPA (LIMU/WAPP) WDYA, WDYN (LIMU/WDYV), WEBI
* Lint
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* IOBJ: Remove number range objects
Number ranges for BW objects are local to a system and will cause errors when duplicates occur.
* Fix spelling
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Fix for objects with space or dot in name
* Update zcl_abapgit_file_status.clas.abap
* Fix for objects with space or dot in name
* Escaping of filenames
* Escape %
* Remove escape of space
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* add variant transaction support and fix FG globals
add handling of variant transaction
clear globals in FG for FM RPY_TRANSACTION_INSERT
fixes#2744
* CC cleanup
* fix linter errors
* fix linter errors
* fix linter error - type pool constants
* fix linter error void type
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Update zcl_abapgit_objects.clas.abap
* DDIC with reference to class/interface
* DDIC with reference to class/interface
* Search help with exit function
* Table with reference to search help
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* DSYS serializer rewritten
* Fixes issue #3374 when object names include a namespace.
* Uses longtexts facility to serialize texts:
* Supports i18n texts.
* Supports text versions other than 0001.
* Fix linter compliance
Co-authored-by: Lars Hvam <larshp@hotmail.com>
Fixes the dump and import error for package interfaces. Even if the package interface is in a different package than the referencedpackage itself.
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Update 3 objects
* Update zcl_abapgit_exit.clas.abap
Pretty printer didnt work in JAVA GUI, so had to manually change the file
* IS_STEP as input parameter
* Issue in JAVA based GUI
Pretty printer not working for class name in implementation
* Move TY_STEP_DATA to ZIF_ABAPGIT_DEFINITIONS
* try moving ty_deserialization_step
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Issue 3324: WDA Texta are not taken into accout
* Remove the not allowed Web Dynpro component
* Correct ABAB CHECKS 702 for SOTR_HANDLER
* ABAP Check 702 SOTR_HANDLER II
* ABAP Check 702 SOTR_HANDLER III: AUnit Exception
* ABAP Check 702 compliant IV
* ABAB Check 702 compliance V
* ABAP Check Compliance 702 VI
* ABAP Check 702 compliance VII
* ABAP Check 702 compliance VIII: delete comment
* ABAP Check compliance 702 IX : conv #
* Commit X: Improvements of ABAP Unit tests
-Test uses a 100% existing wd component and TEST(!) checks it
-Test enhanced with a non existing component -> no exception is raised nor existence is checked inside the PRODUCTIVE ROUTINE(!) via WDR_REPOSITORY_INFO as this check should have been done earlier not in this last phase to append the texts, labels, etc... to the component archive
* C XI: ABAP Unit Tests(2)
* C XII : ABAP Checks 702 for ABAP Unit Tests
* C XIII : ABAP CHECKS 702
* C XIV : ABAP CHECKS 702
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Add syntax-highlighters for CSS, JS, JSON
* Update W3MI ZABAPGIT_CSS_THEME_DEFAULT
* Fix line size and case statement
* Fix line size
* Update styles, removed operators
* Added highlight for comments in HTML/XML
* Fix menu hover background
This makes the selected menu more visible.
Also includes color fix for repo name and url in dark theme.
* Fix for W3xx objects with "." in name
* Reverse fix for W3xx
* Remove hover style changes
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Master lang only - descriptions for clas, intf
* Use master language instead of logon language
* sy-langu to master language - fix cus0, cus1, cus2
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* char: deserialize missing attribute hide_icons
* char: unlock upon all errors
It's very annoying when I have to go to SM12 to unlock CHAR
objects which could not be activated due to a missing OTGR.
* IOBJ fix#3105
* Variable fix
* BW function modules check
* AREA support
AREA support
* update, comment fix
* update
* iobj update
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Support for CHDO
* Remove dependency from GENERIC
* Skip gen. objects by CHDO
* abaplint checks
* Moved filter to zcl_abapgit_repo
* Adjusted filter logic
* Delete unused methods
* Extract apply filter methods
New class zcl_abapgit_repo_filter generated with apply filter methods
* docs: update supported with CHDO
* Clear serialization fields
* Set package at deserialize
* Check errors at deserialize
I know don't why but on our systems the "include for generated
maintenance views" is returned from the function module
RS_GET_ALL_INCLUDES, so when we add it in the method
zcl_abapgit_object_fugr=>includes we have the file twice which cause
duplicate errors on our systems.
I didn't remove the code because we are supposed to run on all ABAP
rutime versions and the problem with duplicates for the T00 includes has
started occurring only recently, so the older versions need this
artificial include (I guess).
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* IOBJ fix#3105
* Variable fix
* BW function modules check
* Enhancement of iobj support
Enhancement of iobj support which enable handling of:
-attributes,
-compoundings,
-hierarchies
Co-authored-by: Lars Hvam <larshp@hotmail.com>
* Issue 3066: Class text elements translation
* Removed comments for Issue 3066
* Pull request checks
* Travis-CI checks fixes
* Travis-CI checks fixes - Identation
* Interfaces pretty printed
* Travis-CI identation check
* Travis-CI identation check
* Changes type tt_langu and serialization
Type tt_langu moved from zif_abapgit_definitions to ZCL_ABAPGIT_OBJECTS_PROGRAM
Encapsulated code to serialize DOCU, TPOOL and SOTR for classes
* abaplint corrections
* abaplint corrections
* Encapsulated serialization %26 new IF lang def.
* zif_abapgit_definitions types indentation
* Restore zif_abapgit_definitions
* Revert zcl_abapgit_object_clas
* Revert zcl_abapgit_object_clas
* Revert zcl_abapgit_objects_program
* Revert zif_abapgit_oo_object_fnc.intf.abap
* Revert zcl_abapgit_object_clas.clas.abap
* Class text language
* Class text language
Co-authored-by: Lars Hvam <larshp@hotmail.com>