[51465] in SAPr3-news

home help back first fref pref prev next nref lref last post

Re: Interne Tabelle mit Kopf dynamisch deklarieren?

daemon@ATHENA.MIT.EDU (Alfred Bayer)
Thu Sep 16 03:09:29 2004

To: sapr3-news@mit.edu
Date: Thu, 16 Sep 2004 09:09:25 +0200
From: "Alfred Bayer" <Alfred.Bayer@siemens.com>
Message-ID: <1095318565.264877@nbgm66x>


"Stefan Bauer" <s.bauer@softhome.net> wrote
> Hallo zusammen,
>
> ich bastele da an einem Problem.
>
> Ich selektiere eine Tabelle dynamisch in eine (dynamische) interne
> Tabelle. Das klappt auch.
> Diese interne Tabelle soll aber per TRANSFER in ein Dataset geschrieben
> werden. Hier erhalte ich immer die Meldung, dass meine interne Tabelle
> keinen Kopf hat und dies deshalb nicht möglich ist.
> Nun könnte ich meine interne Tabelle in ein weitere schieben, die ein
> Feld mit Typ C und 8000 Stellen hat. Aber da muss es doch noch was
> anderes geben, oder?
>
> Hier noch ein Schnipsel aus meinem Coding:
>        CREATE DATA data_ref TYPE TABLE OF (iliste-tab) .
>        ASSIGN data_ref->* TO <tab1>.
>        SELECT * FROM (iliste-tab) INTO TABLE <tab1>
>        WHERE vbeln = ibel-vbeln AND posnr = ibel-posnr.
> *      TRANSFER data_ref TO dsn.
>


Auszug aus der Online-Doku zu "TRANSFER":
Das Datenobjekt f wird in eine sequentielle Datei ausgegeben, deren Name in
dsn steht, wobei dsn als Feld oder Literal angegeben werden kann. ...
f kann ein Feld, ein String oder eine Struktur sein.
Ein Syntaxfehler wird ausgelöst, wenn f als tiefe Struktur oder Referenz
definiert ist.
*** Interne Tabellen müssen daher immer Zeile zeilenweise übertragen werden,
zum Beispiel in einer LOOP-Schleife. ***

Wenn ich's richtig verstehe dann zeigt dein FIELD-SYMBOL
auf die komplette Tabelle, nicht auf eine Zeile, richtig?

Lösung wurde IMHO bereits im anderem Posting geschrieben:
LOOP mit TRANSFER der einzelnen Zeile.

HTH
Alfred.



home help back first fref pref prev next nref lref last post