SAP Jobsuche bei DV-Treff


Suchen
daytona80
vor 8 Jahre
Hallo zusammen,

ich befülle eine Zusatzfeld im Infoset mittels einer Select Anweisung aus einem Feld einer Datenbank-Tabelle. Dieses Feld ist vom Typ F (23). Soweit so gut.

Nun kann es jedoch vorkommen, dass jenes Feld was ich abfrage leer bzw. initial ist. Das hat dann den unschönen Effekt, dass in meinen Zusatzfeld 0,0000000000000000E+00 angezeigt wird (logsich, da initial).

Ich würde gern ein "wirklich leeres" Feld (blank) vorfinden. Typ C sollte doch bei initial als blank angezeigt werden. Hat jemand einen Tipp wie die Konvertierung von Typ F nach C aussieht oder geht es evtl noch anders??? Ich bräuchte auch nicht wirklich eine Länge von 23...


Vielen Dank und viele Grüße
wreichelt
vor 8 Jahre
Hallo,

verwende doch 'write f-feld to c-Feld'.

Gruß

Wolfgang

daytona80
vor 8 Jahre
Hallo Wolfgang,

Bin sicher nicht der ABAP pabst aber müsste es nicht etwas in Richtung MOVE sein?😕 Das Feld wird weiter verwendet und auch als ALV ausgegeben... WRITE gibt doch nur den wert aus oder?


Vielen Dank und viele Grüße
wreichelt
vor 8 Jahre
Hallo,

ja richtig.

Aber hier macht es der Zusatz 'to'.

Damit wird das Feld richtig aufbereitet.

SAP:

Neben der Anweisung MOVE, die den Wert des Quellfelds bei einer Wertzuweisung in den Datentyp des Zielfelds konvertiert, gibt es die Anweisung WRITE TO, die den Inhalt des Quellfelds prinzipiell in ein Feld vom Typ C konvertiert.

WRITE TO [

Diese Anweisung

konvertiert den Inhalt eines beliebigen Datenobjekts nach Typ C und überträgt die resultierende Zeichenkette in eine Variable . Der Datentyp von muß in ein Characterfeld konvertierbar sein, ansonsten tritt ein Syntax- oder Laufzeitfehler auf.

Gruß

Wolfgang

daytona80
vor 8 Jahre
Hi Wolfgang,

man lernt nie aus 😁

Scheint wirklich ganz einfach, nur im Infoset will das Coding bzw. der write to Befehl nicht so ganz passen.

Ich habe ja keine Datendeklaration wie im klassischen Sinne. Das Zusatzfeld muss ich ja über das Menü mit einem Typ (und Länge) deklarieren. Wenn ich hier schon c wähle dumpt es. Mein Coding:

Select MITTELWERT from QAMR into Z_QAMR_MITTELWERT

WHERE PRUEFLOS = QAMV-PRUEFLOS

and VORGLFNR = QAMV-VORGLFNR

and MERKNR = QAMV-MERKNR.

ENDSELECT.

IF sy-subrc <> 0.

" clear Z_QAMR_MITTELWERT.

write QAMR-MITTELWERT TO Z_QAMR_MITTELWERT.

ENDIF.

Als Fehlermeldung erscheint, dass das Feld QAMR-MITTELWERT unbekannt ist aber DATA will er hier auch nicht😕


Vielen Dank und viele Grüße
wreichelt
vor 8 Jahre
Hallo,

in dem Select .... Into z_qamr_mittelwert. weglassen

dafür

If SY-SUbrc = 0.

Write Qamr-Mittel.... To Z_qamr-Mittelwert.

Endif.

Gruß

Wolfgang

wreichelt
vor 8 Jahre
Hallo,

da fehlt Tables qamr.

Gruß

Wolfgang

daytona80
vor 8 Jahre
"Feldliste ohne INTO Klausel nicht erlaubt"
Vielen Dank und viele Grüße