PERFORM in LOOP

Getting started ... Alles für einen gelungenen Start.
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

PERFORM in LOOP

Beitrag von cschmoel (ForumUser / 84 / 26 / 0 ) »
Hallo :)

Funktioniert das nicht, wenn man in einer LOOP -Schleife, ein PERFORM aufruft????

Naja zumindest funktionierts bei mir nicht :P , was ich eigentlich gar nicht glauben kann das sowas nicht funzen soll ^^

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


Re: PERFORM in LOOP

Beitrag von Murdock (Specialist / 124 / 59 / 10 ) »
Hast Du mal ein Stückchen Code parat? :D

Re: PERFORM in LOOP

Beitrag von cschmoel (ForumUser / 84 / 26 / 0 ) »
Klar ^^

Code: Alles auswählen.

   LOOP AT lt_contactperson ASSIGNING <fs_cperson>.

      IF <fs_cperson>-relationshipcategory <> lv_rel_type. 
        DELETE lt_contactperson WHERE partner1 = <fs_cperson>-partner1.
      ENDIF.


          IF <fs_cperson>-defaultrelationship = ' '.
        DELETE lt_contactperson WHERE partner1 = <fs_cperson>-partner1.
        CONTINUE.
      ENDIF.

      IF p_radd = 'X'. "Beziehungen hinzufügen
                 
                  "PERFORM up_add.

             FORM up_add.   "HIER WiLL ICH MEIN UNTERPROGRAMM______________________________________________________________________________

        CALL FUNCTION 'BAPI_BUPR_RELATIONSHIP_CREATE'
          EXPORTING
            businesspartner1     = <fs_cperson>-partner1
            businesspartner2     = lv_partner
            relationshipcategory = lv_rel_type
            validfromdate        = sy-datlo
            validuntildate       = '99991231'
          TABLES
            return               = lt_return.

        LOOP AT lt_return INTO ls_return.
          IF ls_return-type = 'E'.
            PERFORM select_name.
            WRITE:/'Fehler: '(013) , <fs_cperson>-partner1, '  ', ls_name-name_first(15), ls_name-name_last(15), ' ist bereits vorhanden'.
          ENDIF. "End of ls_return-type = 'E'

          IF ls_return-type = 'S'.
            PERFORM select_name.
            WRITE:/ 'Mitarbeiter'(008), lv_partner, t_bps_to(20), ' erhält'(009),<fs_cperson>-partner1, '  ', ls_name-name_first(15), ls_name-name_last.
          ENDIF. "End of ls_return-type = 'S'
        ENDLOOP. "End of loop lt_return    

            ENDFORM. "ENDFORM     ______________________________________________________________________________________________________________
 
      ENDIF. "End of p_radd = 'X'

      IF p_rdel = 'X'. "Beziehungen löschen

        CALL FUNCTION 'BAPI_BUPR_RELATIONSHIP_DELETE'
          EXPORTING
            businesspartner1     = <fs_cperson>-partner1
            businesspartner2     = lv_partner
            relationshipcategory = lv_rel_type
          TABLES
            return               = lt_return.

        IF lt_return IS INITIAL.
          PERFORM select_name.
          WRITE: / 'Beziehung von'(001), lv_partner2, t_bps_to(18), '>>>>>'(011) ,<fs_cperson>-partner1,
                    ls_name-name_first(15), ls_name-name_last(15), 'wurde erfolgreich gelöscht(15)'.
        ELSE.

          LOOP AT lt_return INTO ls_return.
            WRITE: ls_return-message.
          ENDLOOP. 
        ENDIF.
      ENDIF. 
    ENDLOOP. 
  ELSE. 
    WRITE: 'Gleiche Mitarbeiternummer, bitte neu auswählen!'.
  ENDIF.

Re: PERFORM in LOOP

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
cschmoel hat geschrieben:Klar ^^
Hast du eigentlich mal eine vollständige Fehlerbeschreibung? Gibt die Syntax-Prüfung eine Fehlermeldung aus, oder steht der Saturn im fünften Haus des Mondes und deshalb fallen ein Paar BITs aus dem Register?

FORM ENDFORM definiert eine ROUTINE.
PERFORM ruft die Routine auf.

Definieren im Loop ist natürlich nicht, aber ausführen geht schon.
Gruß Hendrik

Re: PERFORM in LOOP

Beitrag von wreichelt (Top Expert / 1046 / 30 / 192 ) »
Hallo,

aufpassen muss auf SY-TABIX der wird beim zweiten Loop verändert und dann geht der erste Loop an der falschen
Stelle weiter.

Gruß
Wolfgang

Re: PERFORM in LOOP

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
cschmoel hat geschrieben:Klar ^^

Code: Alles auswählen.

  IF <fs_cperson>-relationshipcategory <> lv_rel_type. 
        DELETE lt_contactperson WHERE partner1 = <fs_cperson>-partner1.
      ENDIF.


          IF <fs_cperson>-defaultrelationship = ' '.
        DELETE lt_contactperson WHERE partner1 = <fs_cperson>-partner1.
        CONTINUE.
      ENDIF.
Falls die 1. IF-Bedingung erfüllt ist sollte die 2. IF-Bedingung dumpen, da durch das DELETE dein Feldsymbol nicht mehr assigned ist.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
cschmoel

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: PERFORM in LOOP

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
wreichelt hat geschrieben:Hallo,

aufpassen muss auf SY-TABIX der wird beim zweiten Loop verändert und dann geht der erste Loop an der falschen
Stelle weiter.
Wahrscheinlich willst du etwas anderes aussagen als das was ich da gerade aus diesem Text interpretiere. Denn das hört sich völlig falsch an.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: PERFORM in LOOP

Beitrag von Murdock (Specialist / 124 / 59 / 10 ) »
wreichelt hat geschrieben: aufpassen muss auf SY-TABIX der wird beim zweiten Loop verändert und dann geht der erste Loop an der falschen
Stelle weiter.
Dann würden geschachtelte Loops ja nie funktionieren... Das hört sich für mich etwas, äh, seltsam an.
black_adept hat geschrieben: Falls die 1. IF-Bedingung erfüllt ist sollte die 2. IF-Bedingung dumpen, da durch das DELETE dein Feldsymbol nicht mehr assigned ist.
Ich dachte beim ersten Lesen (und Betrachten des Codes), dass das Delete automatisch die Feldsymbol Zuordnung löschen würde (warum auch immer - Ich bin Abap Anfänger...). Ein 2. Lesen brachte dann Klarheit... :D

Gruß,
Murdock

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1455
Views
2
Antw.
1638
Views
Dynamisches Perform.
von Charly_Brown » 08.12.2005 17:25 • Verfasst in ABAP® Core
2
Antw.
1816
Views
SAPSCRIPT PERFORM
von NEON » 07.12.2005 12:54 • Verfasst in ABAP® Core
2
Antw.
2693
Views
PERFORM ... IF FOUND
von Thomas R. » 10.08.2005 14:59 • Verfasst in ABAP® Core
8
Antw.
2810
Views
Perform Synchronized
von Adrian » 13.12.2013 11:35 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 14 Stunden von DeathAndPain gelöst 22 / 3186
Daten an Tabelle binden
vor 19 Stunden von Lukas Sanders 2 / 1053
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 622

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

Dialog-Container mit Toolbar/Status
vor 14 Stunden von DeathAndPain gelöst 22 / 3186
Daten an Tabelle binden
vor 19 Stunden von Lukas Sanders 2 / 1053
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 622

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2615
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9204