Variante per Report verändern (SEPA)?

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

Variante per Report verändern (SEPA)?

Beitrag von miru77 (ForumUser / 68 / 10 / 7 ) »
Hallo,

da ich bei SEPA-Überweisungen verschiedene Dateinamen bzw. Speicherpfade je nach Lauf (Lohn/Gehalt/SV) benötige, wollte ich die vor dem Lauf per Report in den Varianten anpassen.

Für das Ändern der Varianten habe ich dazu folgenden Testreport geschrieben...

Code: Alles auswählen.

REPORT ZPTEST7.

TABLES: VARID.
DATA: VTAB LIKE RSPARAMS OCCURS 0 WITH HEADER LINE.

PARAMETERS: REPORT LIKE VARID-REPORT.
PARAMETERS: VARIANT LIKE VARID-VARIANT.

START-OF-SELECTION.

  SELECT * FROM VARID WHERE REPORT EQ REPORT AND VARIANT EQ VARIANT.

*   Variante einlesen
    CALL FUNCTION 'RS_VARIANT_CONTENTS'
      EXPORTING
        REPORT               = VARID-REPORT
        VARIANT              = VARID-VARIANT
      TABLES
        VALUTAB              = VTAB
      EXCEPTIONS
        VARIANT_NON_EXISTENT = 1
        VARIANT_OBSOLETE     = 2
        OTHERS               = 3.


* bestimmtes Feld ändern
    LOOP AT VTAB WHERE SELNAME EQ 'PAR_FILE'.
      VTAB-LOW = 'C:\test.xml'.
      MODIFY VTAB.
    ENDLOOP.


*  Variante geändert speichern
    CALL FUNCTION 'RS_CHANGE_CREATED_VARIANT'
      EXPORTING
        CURR_REPORT               = VARID-REPORT
        CURR_VARIANT              = VARID-VARIANT
        VARI_DESC                 = VARID
      TABLES
        VARI_CONTENTS             = VTAB
      EXCEPTIONS
        ILLEGAL_REPORT_OR_VARIANT = 1
        ILLEGAL_VARIANTNAME       = 2
        NOT_AUTHORIZED            = 3
        NOT_EXECUTED              = 4
        REPORT_NOT_EXISTENT       = 5
        REPORT_NOT_SUPPLIED       = 6
        VARIANT_DOESNT_EXIST      = 7
        VARIANT_LOCKED            = 8
        SELECTIONS_NO_MATCH       = 9
        OTHERS                    = 10.
  ENDSELECT.
Sieht auch soweit alles gut aus... allerdings zerhaut mit der Funktionsbaustein zwei andere wichtige Felder in der Variante - und zwar das Ausführungsdatum (falsches Format) und die oberen Druckparameter sind anschließend auch weg (siehe Screenshot).

Woran kann das liegen?

Gruß
Michael

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


Re: Variante per Report verändern (SEPA)?

Beitrag von jensschladitz (Specialist / 417 / 0 / 56 ) »
Sali,

in der Docu steht
Der Funktionsbaustein ermöglicht das Ändern einer Variante ohne

Prozessierung des Selektionsbildes.

In der Tabelle VARI_CONTENTS müssen alle Select-Options und Parameter

der Variante - mit Werten - mitgegeben werden.

Selektionskriterien, die in dieser Tabelle fehlen, werden in der

Variante auf Initialwert gesetzt.

Wird die Strukturbeschreibung (Parameter VARI_DESC) nicht versorgt,

werden alle Felder - außer Name des Änderers, Uhrzeit der Änderung,

Version und Sprache - auf Initialwert gesetzt.

Die Tabelle VARI_TEXT ist optional.

..,. hast du das berücksichtigt ?

Gruss
thanks Jens

Re: Variante per Report verändern (SEPA)?

Beitrag von miru77 (ForumUser / 68 / 10 / 7 ) »
Hallo,

also da ich im ersten Schritt die aktuelle Variante komplett einlese (mit allen Feldern die zuvor gefüllt waren) und dann nur einen Wert verändere, würde ich erwarten das alles was sonst vorhanden war auch wieder richtig zurückgeschrieben wird - aber das ist hier ja anscheinend nicht der Fall, warum auch immer.

Re: Variante per Report verändern (SEPA)?

Beitrag von miru77 (ForumUser / 68 / 10 / 7 ) »
Ich hab's mir nochmal angesehen...

DATA: VTAB LIKE RSPARAMS OCCURS 0 WITH HEADER LINE.

Ich glaub da ist schonmal das erste Problem, da die RSPARAMS nur 45 Zeichen für Low und High hat. Die Selektionsparameter sind aber teilweise viel länger, sprich der Rest wird beim Einlesen abgeschnitten und dann dementsprechend falsch zurück geschrieben. Gibt's vielleicht irgendwelche neueren Funktionsbausteine die mehr Platz bieten?

Re: Variante per Report verändern (SEPA)?

Beitrag von ChrisB (Specialist / 406 / 8 / 20 ) »
Hallo Michael,

also rein von der Bezeichnung her, würde ich mal auf RS_VARIANT_CONTENTS_255 tippen. Ausprobiert bzw. genau geprüft habe ich es aber noch nicht... :wink:

Grüße
Chris

Folgende Benutzer bedankten sich beim Autor ChrisB für den Beitrag:
miru77


Re: Variante per Report verändern (SEPA)?

Beitrag von miru77 (ForumUser / 68 / 10 / 7 ) »
Hallo Chris,
ChrisB hat geschrieben: also rein von der Bezeichnung her, würde ich mal auf RS_VARIANT_CONTENTS_255 tippen. Ausprobiert bzw. genau geprüft habe ich es aber noch nicht... :wink:
hört sich erstmal gut an, allerdings haben wir den gar nicht in unserem System?! (SAP ECC 6.0, Basis Release 701/0013), auch in unserem IDES gibt's den nicht.

Kann man irgendwie rausfinden ab wann der dazu gekommen ist?

Gruß
Michael


Re: Variante per Report verändern (SEPA)?

Beitrag von miru77 (ForumUser / 68 / 10 / 7 ) »
Und hier ist nun auch die Lösung für das Datumsproblem (was ja nicht an den 45 Zeichen liegen kann):

1919560 - Datum-/Zeit-Feld im FB RS_VARIANT_CONTENTS

Re: Variante per Report verändern (SEPA)?

Beitrag von miru77 (ForumUser / 68 / 10 / 7 ) »
Und nochmal ich...

Hinweis 857357 - Werte von Variablen werden abgeschnitten

Mit dem dort beschriebenen Workaround (alle Parameter >45 löschen) kann man zumindest die Felder ändern, die unter 45 Zeichen haben. Und das sollte mir denke ich für den SEPA-Report erstmal reichen.

Code: Alles auswählen.


REPORT ZPTEST7.

TABLES: VARID.
DATA: VTAB LIKE RSPARAMS OCCURS 0 WITH HEADER LINE.

PARAMETERS: REPORT LIKE VARID-REPORT.
PARAMETERS: VARIANT LIKE VARID-VARIANT.

START-OF-SELECTION.

  SELECT * FROM VARID WHERE REPORT EQ REPORT AND VARIANT EQ VARIANT.

*   Variante einlesen
    CALL FUNCTION 'RS_VARIANT_CONTENTS'
      EXPORTING
        REPORT               = VARID-REPORT
        VARIANT              = VARID-VARIANT
        EXECUTE_DIRECT      = 'X'
      TABLES
        VALUTAB              = VTAB
      EXCEPTIONS
        VARIANT_NON_EXISTENT = 1
        VARIANT_OBSOLETE     = 2
        OTHERS               = 3.

* alles löschen außer Dateiname
    LOOP AT VTAB WHERE SELNAME NE 'PAR_FILE'.
          DELETE VTAB.
    ENDLOOP.


* bestimmtes Feld ändern
    LOOP AT VTAB WHERE SELNAME EQ 'PAR_FILE'.
      VTAB-LOW = 'C:\test.xml'.
      MODIFY VTAB.
    ENDLOOP.


*  Variante geändert speichern
    CALL FUNCTION 'RS_CHANGE_CREATED_VARIANT'
      EXPORTING
        CURR_REPORT               = VARID-REPORT
        CURR_VARIANT              = VARID-VARIANT
        VARI_DESC                 = VARID
      TABLES
        VARI_CONTENTS             = VTAB
      EXCEPTIONS
        ILLEGAL_REPORT_OR_VARIANT = 1
        ILLEGAL_VARIANTNAME       = 2
        NOT_AUTHORIZED            = 3
        NOT_EXECUTED              = 4
        REPORT_NOT_EXISTENT       = 5
        REPORT_NOT_SUPPLIED       = 6
        VARIANT_DOESNT_EXIST      = 7
        VARIANT_LOCKED            = 8
        SELECTIONS_NO_MATCH       = 9
        OTHERS                    = 10.
  ENDSELECT. 

Seite 1 von 1

Vergleichbare Themen

6
Antw.
722
Views
Report um MTART in MARA zu verändern
von JohnDictionary » 10.05.2019 09:45 • Verfasst in ABAP® für Anfänger
6
Antw.
1884
Views
Report Variante
von Rabea1103 » 07.09.2020 11:58 • Verfasst in ABAP® für Anfänger
2
Antw.
7459
Views
Report mit Variante starten
von cali » 22.12.2005 14:17 • Verfasst in ABAP® Core
4
Antw.
2429
Views
Report ohne Variante
von gmsddgr » 24.03.2010 10:06 • Verfasst in ABAP® für Anfänger
2
Antw.
4687
Views
User-Variante bei Einstieg in Report-Transaktion aufrufen?
von urk » 01.09.2005 19:02 • Verfasst in ABAP® Core

Über diesen Beitrag


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

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 767
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2389
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8974