SAP Jobsuche bei DV-Treff
philipp10
vor 8 Jahre
Hallo,

ich benötige in einer Query die erste Zeile oder die ersten 60 Zeichen des Langtexts vom Fertigungsauftrag. Folgenden Code habe ich hierzu gefunden nur scheitert es noch an der Umsetzung. Das Feld in meiner Query heißt ZTEXTPP.

Kann mir jemand weiterhelfen?

select single objnr

into *aufk-objnr

from *aufk

where aufnr = faufnr.

refresh lines.

concatenate sy-mandt *aufk-objnr+2(12) into xtdname.

call function 'READ_TEXT'

exporting

* CLIENT = SY-MANDT

id = 'KOPF'

language = sy-langu

name = xtdname

object = 'AUFK'

* ARCHIVE_HANDLE = 0

* LOCAL_CAT = ' '

* IMPORTING

* HEADER =

tables

lines = lines

Mein jetziger Stand ist, dass ich den Textname aus STXH-TDNAME mit folgendem Code generiere:

data: lf_objnrpp type j_objnr,

xtdname type tdobname.

clear: ZTEXTPP, lf_objnrpp, xtdname.

*Lesen der OBJNR da diese mit vorangestelltem Mandanten 100

*das Feld Textname aus Tabelle STXH ergibt

select single objnr from aufk into lf_objnrpp

where aufnr = afko-aufnr.

*Zeichen aneinander hängen ergibt den Eintrag vom Feld Textname

*aus STXH-TDNAME

CONCATENATE sy-mandt lf_objnrpp+2(12) into ZTEXTPP.

Kann mir nun jemand sagen wie ich mit READ_TEXT weiter mache?

philipp10
vor 8 Jahre
Momentan sieht der Code so aus:

data: lf_objnrpp type j_objnr,

xtdname type tdobname.

clear: ZTEXTPP, lf_objnrpp, xtdname.

select single objnr from aufk into lf_objnrpp

where aufnr = afko-aufnr.

CONCATENATE sy-mandt lf_objnrpp+2(12) into xtdname.

call function 'READ_TEXT'

exporting

client = sy-mandt

id = 'KOPF'

language = sy-langu

name = xtdname

object = 'AUFK'

importing

HEADER = ZTEXTPP.

Fehlermeldung:

In der Schnittstelle des Funktionsbausteins wurde festgelegt, daß

unter "HEADER" nur Felder eines bestimmten Typs und einer bestimmten

Länge mitgegeben werden dürfen. Das aktuell mitgegebene Feld

"ZTEXTPP" hat zwar den richtigen Typ, nicht aber die richtige Länge.

Alpmann
vor 8 Jahre
Hallo philipp10,

mit dem folgenden Code sollte es klappen:

DATA: begin of z_stxh occurs 0.

include type stxh.

DATA: end of z_stxh.

DATA: Z_TEXT TYPE stxh-tdname.

DATA: z_lines TYPE TABLE OF TLINE WITH HEADER LINE.

concatenate '100' afko-aufnr into z_text.

select single * FROM STXH into z_stxh

where TDOBJECT = 'AUFK' and

TDID = 'KOPF' and

TDSPRAS = 'DE' and

TDNAME = z_text.

if sy-subrc = 0.

" Text gefunden, dann erste Zeile einlesen

CALL FUNCTION 'READ_TEXT'

EXPORTING

ID = z_stxh-tdid

LANGUAGE = z_stxh-tdspras

NAME = z_stxh-tdname

OBJECT = z_stxh-tdobject

TABLES

LINES = z_lines

EXCEPTIONS

id = 1

language = 2

name = 3

not_found = 4

object = 5

reference_check = 6

wrong_access_to_archive = 7.

if sy-subrc = 0.

read z_lines index 1.

" erste Zeile -> z_lines-tdline.

endif.

endif.

Mit freundlichen Grüßen

Matthias Alpmann

philipp10
vor 8 Jahre
Hallo Matthias,

1000 Dank für den Code. Es funktioniert 🙂 Habe nur noch read z_lines index 1 into zt_lines geändert.

Danke und viele Grüße

Philipp

Alpmann
vor 8 Jahre
Hallo philipp10,

ergänz mal oben folgendes:

DATA: zt_lines TYPE TLINE.

Und unten:

read z_lines index 1 into zt_lines.

" erste Zeile -> zt_lines-tdline.

Ohne dass ich auf einem System gerade bin, sollte das aber ungetestet funktionieren.

Mit freundlichen Grüßen

Matthias Alpmann

philipp10
vor 8 Jahre