SAP Jobsuche bei DV-Treff
andreas_h
  • andreas_h
  • SAP Forum - Neuling Thema Starter
vor 14 Jahre
Hallo zusammen,

ich habe einen kleinen Report geschrieben um Langtexte auszulesen, das funktioniert auch soweit:

TABLES: thead.
DATA tstxh LIKE stxh OCCURS 0 WITH HEADER LINE.
DATA xtlines LIKE tline OCCURS 0 WITH HEADER LINE.
DATA object LIKE tstxh-tdobject.
DATA name LIKE tstxh-tdname.
DATA id LIKE tstxh-tdid.
DATA s_spras LIKE tstxh-tdspras.

object = 'IMPTT'.
name = '000000000332'.
id = 'LTXT'.
s_spras = 'D'.


  SELECT * FROM stxh into table tstxh

  WHERE tdobject = object

  AND tdname = name

  AND tdid = id

  AND tdspras = s_spras.



  LOOP AT tstxh.

    REFRESH xtlines.


    CALL FUNCTION 'READ_TEXT'
      EXPORTING
        id       = tstxh-tdid
        language = tstxh-tdspras
        name     = tstxh-tdname
        object   = tstxh-tdobject
      IMPORTING
        header   = thead
      TABLES
        lines    = xtlines
      EXCEPTIONS
        OTHERS   = 8.

    CHECK sy-subrc = 0.


    LOOP AT xtlines.
      WRITE xtlines-tdline.
    ENDLOOP.
  ENDLOOP.


Nun muß ich das ganze jedoch in eine Badi-Erweiterung einbauen und da habe ich noch zwei Probleme:

[1] Die Tables-Anweisung ist in Methoden nicht erlaubt !? Wie kann ich diese Syntaxfehlermeldung umgehen?

[2] Anstelle der konstanten Zuweisung eines Strings an "name" muß ein Bezug auf die Instanz der Methode stehen. Wie kann ich auf die Attribute der aktuellen Instanz zugreifen?

Vielen Dank und beste Grüße,

Andreas
Förderer

ahelm
vor 14 Jahre
Hallo Andreas,

[1]: ersetze einfach

TABLES thead.

durch

DATA: l_thead TYPE thead.

...
CALL FUNCTION 'READ_TEXT'
       EXPORTING
id = tstxh-tdid
language = tstxh-tdspras
name = tstxh-tdname
object = tstxh-tdobject
IMPORTING
header = l_thead
TABLES
lines = xtlines
EXCEPTIONS
OTHERS = 8.
...


[2] Was soll hier für ein Wert hinein, es hängt vom BADI ab, welche Strukturen als Aufrufparameter in die Methode hineinkommen. Eine pauschale Aussage kann man da nicht treffen. mfg Andreas

andreas_h
  • andreas_h
  • SAP Forum - Neuling Thema Starter
vor 14 Jahre
Hallo Andreas,

das funktioniert super, danke dir! :)

Zum zweiten Punkt. Hab gemerkt daß es gar keinen Instanzbezug braucht, bzw. gar nich geben darf. Hab einfach aus:

name = me->MEASUREMENT_POINT-MEASPOINT.

ein

name = MEASUREMENT_POINT-MEASPOINT.

Dachte, wie aus anderen Programmiersprachen gewohnt, daß me der Instanzbezug ist....

Viele Grüße,

Andreas