Probleme bei Feldübergabe ABAP-SAPscript-Formular

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

Probleme bei Feldübergabe ABAP-SAPscript-Formular

Beitrag von ralf.wenzel (Top Expert / 4009 / 208 / 282 ) »
Moin,

ich habe gelegentlich ein Problem und jetzt funktioniert mein Workaround nicht mehr. Ich fülle eine Reihe von DDIC-Feldern in einem ABAP und fülle damit ein Formular. Bei allen Feldern geht das, nur ein streikt manchmal (nicht ein bestimmtes, sondern irgendeins, in diesem Falle KNB1-EIKTO, der Fehler bzw. das Verhalten ist absolut nicht reproduzierbar).

Mein Workaround war bisher, ein anderes zu nehmen, zur not ein globales aus dem Programm selbst. Leider funktioniert auch dieser "Trick" nicht.

Im ABAP-Debugger kann ich definitiv sehen, dass das Feld gefüllt ist, und zwar die ganze Zeit über, bis über das Formularende hinaus. Im SAPscript-Debugger wird das Feld aber als leer ausgewiesen.

Alle anderen Felder werden, wie gesagt, gefüllt. Frage daher: Kann ich feststellen wo zwischen ABAP und Formular der Feldinhalt verloren geht? Welche Problemlösung gibt es?

Ich bin dankbar für jeden sinnvollen Tip.



Ralf
Bild
Ralf Wenzel Heuristika SAP-Development -- 25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

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


Beitrag von ewx (Top Expert / 4913 / 332 / 653 ) »
Hallo Ralf,

hört sich ja sehr mysteriös an...

Verwendest du für die Felder irgendwelche Aufbereitungsoptionen oder Vor- bzw. Nachtexte?

Bist du sicher, dass alle IF-Anweisungen korrekt wieder geschlossen werden?

Ist die KNB1 im Hauptprogramm deklariert?

Überschreiben evtl. irgendwelche zuweisungen mit DEFINE die KNB1?

Passiert das im Entwicklungssystem evtl. wenn du Formularänderungen ausprobierst (--> Report RSTXDELL mal ausprobieren) oder gibt's das Phänomen auch im Test-/Produktivsystem?

Gruß, Enno

Beitrag von ralf.wenzel (Top Expert / 4009 / 208 / 282 ) »
Hallo,

es IST misteriös. Zu deinen Fragen/Anregungen:

Keine Aufbereitungsoptionen.

Bei den IFs bin ich mir ganz sicher (es steht ein KNA1-Feld, das ausgegeben wird, direkt daneben).

Die KNB1 ist im Hauptprogramm (eigentlich: im Deklarationsinclude, wie die anderen Tabellen auch) deklariert (sonst würd ich ich beim MOVE in das Feld ja auch einen Syntax-Error bekommen).

Es gibt im Formular keine Zuweisungen, sowas verwende ich normalerweise nicht.

Das Phänomen existiert auf allen Systemen.



Gruß


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development -- 25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von ewx (Top Expert / 4913 / 332 / 653 ) »
Hi Ralf,

hast du auch im SAP-Skript-Debugger geschaut, ob das
Feld gefüllt ist oder wird es "nur" nicht ausgegeben?

Poste doch mal den Ausschnitt aus dem Formular. Bitte nur aus dem "alten" Editor kopieren!

Gruß, Enno

Beitrag von ralf.wenzel (Top Expert / 4009 / 208 / 282 ) »
Hallo,

natürlich ist das Feld im Debugger LEER (sonst würde es ja auch beim Druck/in der Druckansicht ausgegeben).

Den Formularausschnitt poste ich heute noch, komme aber vielleicht erst gg. Abend dazu.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development -- 25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von ralf.wenzel (Top Expert / 4009 / 208 / 282 ) »
Sorry, hat etwas gedauert mit dem Formularcoding, aber hier ist es:

Code: Alles auswählen.

RE		 <h2>Nummer,,&bkpf-bukrs&/&bkpf-belnr&</>	
RE		 <h2>Rechnungsdatum,,&bkpf-budat&</>	
RE		 <h2>Kunden-Nr,,&kna1-kunnr&</>	
/:		IF &BKPF-BELNR& NE '          '	
RE		 Lieferung/Leistung vom: &bkpf-bktxt&	
T1		  &KNA1-name4&       &KNA1-NAME3&	
RE		 (Bitte bei Zahlung und Rückfragen angeben)	
/:		ELSE	
/:		IF &KNB1-EIKTO& NE '                        '	
RE		  (&knb1-eikto&, &kna1-name4&)	
/:		ENDIF	
/:		ENDIF	
Im Programm werden alle genannten DDIC-Felder gefüllt, die entsprechenden MOVEs stehen im ABAP alle direkt untereinander. Im ABAP-Debugger werden auch alle Felder als gefüllt ausgewiesen, es werden ebenfalls alle Feldinhalte gedruckt, mit der einzigen Ausnahme: KNB1-EIKTO.

Dafür habe ich keine Erklärung, auch wenn sowas ähnliches schon gelegentlich vorkam (bei anderen Kunden auf anderen Rechnern!). Dann habe ich ein anderes Feld verwendet und es lief wieder (darum habe ich mir auch nie einen Kopf darum gemacht).

Der HAMMER ist: Im Coding steht: Wenn KNB1-EIKTO nicht leer ist, gibt das Feld und noch eins aus -- das andere wird ausgegeben (also festgestellt, dass EIKTO nicht leer ist), aber das EIKTO nicht.

Kann ich irgendwie feststellen, WO die Feldinhalte zwischen ABAP und Formular verlorengehen?


Danke


Ralf[/code]
Bild
Ralf Wenzel Heuristika SAP-Development -- 25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von ewx (Top Expert / 4913 / 332 / 653 ) »
Hallo Ralf,

folgende Ansätze hätte ich noch:
1. in der IF-Anbfrage vergleichst du ein 12-Zeichen langes Feld (EIKTO) mit einem 24 Zeichen langen Leerstring. Besser wäre evtl. IF &KNB1-EIKTO(C)& <> &space&. Bei einem Test hat das zwar nichts ausgemacht, aber vielleicht ist in den Leerstring ein unsichtbares Zeichen gerutscht (z.B. ALT-255).

2. Hast du mal im SAP-SKRIPT-Debugger geschaut, was in KNB1-EIKTO steht??

3. Ist vielleicht im Druckprogramm das Feld KNB1-EIKTO nochmal als Variable deklariert? (DATA KNB1-EIKTO type EIKTO_D oder DATA KNB1 type KNB1)????

4. Wo die Übergabe zwischen ABAP und SAP-Skript stattfindet weiss ich auch nicht.

5. Habe ich auch keine Ideen mehr.

Gruß, Enno

Beitrag von kotelna (ForumUser / 27 / 2 / 0 ) »
Hallo Ralf, Hallo Enno,

ich habe mich in letzer Zeit auch mit einigen Formularen im SapScript beschäftigt und mir fallen 2 Sachen an, bzw. mein Vorgehen in solchen Fällen. Ich mache mir vor das Feld und hinter das Feld ein Stern. Da kann man sehen, wie lang das Feld ist. Als zweiten Schritt ich versuche im Programm ein anderen Festen Wert einfügen. Letzte Sache, die ist mir gerade durch Kopf gelaufen ist Frage, ob Du hast die Variable als global definiert. Wenn sie ist als lokal im Form deklariert ist, wird nicht gefüllt. Hast Du mal Syntaxcheck in SE71 probiert. Da findet man Sachen.

Was ich auch nicht schön finde, ist

Code: Alles auswählen.

/:      IF &BKPF-BELNR& NE '          '  
aber ich selber weiss nicht, wie man kann es besser lösen. Ich mache diese Sachen in Programm.

Gruß aus Prag

Kotelna CZ

Beitrag von ralf.wenzel (Top Expert / 4009 / 208 / 282 ) »
Hallo Enno, hallo Kotelna(?).

Enno, du musst nicht schreien, ich hatte diese Frage schon beanwortet.

Jedenfalls ist die Ursache gefunden -- man glaubt gar nicht wie versteckt man Feldinhalte überschreiben kann *kopfschüttel* -- tief in einer sehr komplexen if-Struktur habe ich die Ursache gefunden.

Ich danke allen für die Mühe die sie sich gemacht haben.


Gruß


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development -- 25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von ewx (Top Expert / 4913 / 332 / 653 ) »
ralf.wenzel hat geschrieben:Enno, du musst nicht schreien, ich hatte diese Frage schon beanwortet.
Hi Ralf,

das sollte kein Schreien sein! Du hast nämlich nur von "Debugger" und "ABAP-Debugger" gesprochen und ich wollte deswegen sicher gehen, dass du mich verstanden hast!

Woran lag's denn nun genau?

Gruß,
Enno.

Beitrag von Gast ( / / 0 / 3 ) »
[quote="ewx]Woran lag's denn nun genau?[/quote]
Ich hab's so verstanden, dass im ABAP der Feldinhalt zu einem späteren Zeitpunkt wieder überschrieben wurde.
(Hätte einem das System beim Debuggen sofort mitgeteilt, wenn man einen Watchpoint auf das Feld gesetzt hätte.)

Beitrag von Gast ( / / 0 / 3 ) »
Manchmal, aber nur manchmal.....



.....ist man auch einfach nur blind -- je mehr umso länger man an einem Problem sitzt *ggg


In diesem Sinne



Ralf *dankend an alle, die mitgegrübelt haben

Seite 1 von 1

Vergleichbare Themen

3
Antw.
6452
Views
Smartforms Formular nach SAPscript Formular aufrufen
von walda33 » 26.01.2014 10:14 • Verfasst in ABAP® für Anfänger
1
Antw.
1905
Views
Releasewechsel und SAPscript-Formular
von ulli952 » 09.06.2006 08:24 • Verfasst in Basis
1
Antw.
6640
Views
Transport Sapscript Formular
von babap » 03.10.2006 21:49 • Verfasst in Basis
12
Antw.
15739
Views
Formular Mahnung in Sapscript
von Wowa » 15.10.2013 15:22 • Verfasst in ABAP® für Anfänger
0
Antw.
2153
Views
SAPSCRIPT Problem mit DIN A6 Formular
von strobbel » 22.07.2008 13:42 • Verfasst in ABAP® für Anfänger

Ü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.