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 / 115 / 55 / 8 ) »
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 / 1189 / 1 / 196 ) »
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 / 1031 / 29 / 188 ) »
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 / 3946 / 105 / 886 ) »
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 / 3946 / 105 / 886 ) »
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 / 115 / 55 / 8 ) »
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.
730
Views
8
Antw.
3358
Views
Perform
von spot » 13.09.2004 08:25 • Verfasst in ABAP® für Anfänger
6
Antw.
1493
Views
Perform in Sapscript
von dkast » 18.10.2017 13:34 • Verfasst in ABAP® für Anfänger
2
Antw.
1499
Views
Dynamisches Perform.
von Charly_Brown » 08.12.2005 17:25 • Verfasst in ABAP® Core
2
Antw.
1648
Views
SAPSCRIPT PERFORM
von NEON » 07.12.2005 12:54 • Verfasst in ABAP® Core

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.