Massenkopie von Repository Objekten

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

Massenkopie von Repository Objekten

Beitrag von der_neuling (ForumUser / 89 / 18 / 3 ) »
Hallo,

ich möchte für Schulungen viele Objekte in neue kopieren.

Beispiel:
Die Klasse ZCL_TEST_01 soll kopiert werden in ZCL_TEST_02 usw.

Gibt es aus dem Standard eine Möglichkeit Objekte zu kopieren? Da eine Massenkopie nach meiner Recherche nicht möglich ist wäre es mein Ziel dafür eine eigene Funktionalität zu entwickeln, existieren dafür Klassen/FuBas um ABAP Objekte zu kopieren?

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Massenkopie von Repository Objekten

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Für Klassen kannst du bspw. SEO_CLASS_COPY verwenden und hinterher SEO_CLASS_ACTIVATE.

Re: Massenkopie von Repository Objekten

Beitrag von der_neuling (ForumUser / 89 / 18 / 3 ) »
Danke für die Antwort!

Nun bin ich an einem Punkt wo ich nicht weiterkomme, ich hoffe du kannst mir helfen. Ich möchte auch kopieren, wenn die Klasse schon existiert, also quasi überschreiben.

Stand jetzt versuche ich also die Klasse zu löschen, wenn diese existiert und dann neu zu kopieren.
Leider bekomme ich dabei einen Laufzeitfehler mit der Meldung "Die Klasse existiert bereits".
Es gibt aber keine Einträge zu der Klasse mehr in den Tabellen TADIR UND SEOCLASS, der Existenz Check vorher ist auch immer negativ.
error_class_copy.jpg
Hier mein aktueller Code:

Code: Alles auswählen.

clkey = 'ZCL_TEST_01'.
clkey_new = 'ZCL_TEST_03'.
devclass = '$Z_ROOT'.
devclass_new = '$Z_SUB'.

CALL FUNCTION 'SEO_CLASS_EXISTENCE_CHECK'
  EXPORTING
    clskey        = clkey_new
  EXCEPTIONS
    not_specified = 1
    not_existing  = 2
    is_interface  = 3
    no_text       = 4
    inconsistent  = 5
    others        = 6.
IF sy-subrc = 0.

CALL FUNCTION 'SEO_CLASS_DELETE'
  EXPORTING
    clskeys       = VALUE seoc_class_keys( ( clkey_new ) )
  EXCEPTIONS
    not_specified = 1
    not_existing  = 2
    others        = 3.

IF sy-subrc = 3.
 MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

CALL FUNCTION 'SEO_CLASS_DELETE_GARBAGE'
  EXPORTING
    clskey = clkey_new.
COMMIT WORK AND WAIT.
ENDIF.

CALL FUNCTION 'SEO_CLASS_COPY'
  EXPORTING
    clskey            = clkey
    new_clskey        = clkey_new
*    access_permission =                  " Access Permission wird aufgerufen
*    save              =
*    suppress_corr     =
    suppress_dialog   = abap_false
*    authority_check   =
*    lifecycle_manager =
*    lock_handle       =
*    suppress_commit   =
*  IMPORTING
*    new_class         =
  CHANGING
*    corrnr            =                             " Auftrag/Aufgabe
    devclass          = devclass_new         " Paket
  EXCEPTIONS
    not_existing      = 1
    deleted           = 2
    is_interface      = 3
    not_copied        = 4
    db_error          = 5
    no_access         = 6
    others            = 7
  .
IF sy-subrc <> 0.
 MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

 ROLLBACK WORK.
 RETURN.
ENDIF.

CALL FUNCTION 'SEO_CLASS_ACTIVATE'
  EXPORTING
    clskeys       = VALUE seoc_class_keys( ( clkey_new ) )
  EXCEPTIONS
    not_specified = 1
    not_existing  = 2
    inconsistent  = 3
    others        = 4
  .
IF sy-subrc <> 0.
 MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

Re: Massenkopie von Repository Objekten

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
SEO_CLASS_DELETE vorher aufrufen.

Re: Massenkopie von Repository Objekten

Beitrag von der_neuling (ForumUser / 89 / 18 / 3 ) »
Habe ich bereits gemacht, der Laufzeitfehler tritt immer noch auf.

Auch probiert habe ich es mit dem FuBa ''OO_CLASS_DELETE" und --force Parameter. Leider wird auch hier gemeldet, die Klasse existiere nicht und dumpt dann später beim Kopierversuch

Re: Massenkopie von Repository Objekten

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Ich kann den Fehler nachvollziehen.
Die Klasse ist gelöscht? In der SE24 sagt mir das System "Class does not exist".
Mit OO_CLASS_DELETE und Parameter COMMIT = X und FORCE = X hat es bei mir funktioniert. Der Baustein SEO_CLASS_COPY bricht nun nicht mehr ab.

Re: Massenkopie von Repository Objekten

Beitrag von der_neuling (ForumUser / 89 / 18 / 3 ) »
Okay, habe es jetzt nochmal probiert mit einer neuen Klassen zum hinein kopieren (ZCL_TEST_05), hier funktioniert es nun. Scheinbar ist bei den vorherigen Versuchen irgendetwas kaputtgegangen.

Funktioniert bei dir der FuBa 'SEO_CLASS_ACTIVATE'? In meinen Durchläufen beendet er mit sy-subrc = 0, die Klassen bleiben aber inaktiv.

COMMIT WORK habe ich testweise auch dahinter gesetzt, Ergebnis bleibt gleich...

Re: Massenkopie von Repository Objekten

Beitrag von ewx (Top Expert / 4854 / 313 / 644 ) »
Ist mir beim Testen auch aufgefallen, dass das Aktivieren nicht geht. Ich bin mir jedoch einigermaßen sicher, dass es mal funktioniert hat... :/
Vielleicht funktioniert FUBA CLAS_OBJECT_ACTIVATE?

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
der_neuling


Re: Massenkopie von Repository Objekten

Beitrag von der_neuling (ForumUser / 89 / 18 / 3 ) »
ewx hat geschrieben:
14.06.2023 15:55
Vielleicht funktioniert FUBA CLAS_OBJECT_ACTIVATE?
Danke für den Tipp! Die FuBas 'XXX_OBJECT_ACTICVATE' funktionieren ohne Probleme

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1469
Views
Repository erstellen
von BasisGuy » 05.06.2018 09:38 • Verfasst in ABAP® für Anfänger
3
Antw.
2348
Views
Problem mit Repository Browser
von c-harms » 24.06.2005 15:17 • Verfasst in Web Application Server
2
Antw.
1254
Views
Repository Objekttypen und Teilobjekte
von ewx » 05.12.2018 11:56 • Verfasst in ABAP® Core
1
Antw.
2861
Views
Unterschied zw. Repository und Dictionary
von bohne » 24.11.2005 10:02 • Verfasst in ABAP® für Anfänger
16
Antw.
5395
Views
Screen in Repository Klasse erstellen
von Paddy » 25.01.2012 16:51 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

ABAP - Mail so10 Text
vor einer Minute von a-dead-trousers 3 / 52
selection-screen comment mit icon
vor 5 Stunden von DeathAndPain 9 / 1127
Chat GPT - Erfahrungen?
vor 3 Tagen von DeathAndPain 33 / 6809

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

ABAP - Mail so10 Text
vor einer Minute von a-dead-trousers 3 / 52
selection-screen comment mit icon
vor 5 Stunden von DeathAndPain 9 / 1127
Chat GPT - Erfahrungen?
vor 3 Tagen von DeathAndPain 33 / 6809

Unbeantwortete Forenbeiträge

SD_PRINT_TERMS_OF_PAYMENT
vor 4 Tagen von Manfred K. 1 / 915
BUSOBJEKT zu CMIS PHIO ermitteln
vor 3 Wochen von snooga87 1 / 2724