FUBA READ_TEXT

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
17 Beiträge • Seite 1 von 2 (current) Nächste
17 Beiträge Seite 1 von 2 (current) Nächste

FUBA READ_TEXT

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Hallo zusammen

Ich möchte gerne die Einkaufsinfosatztexte mithilfe des Funktionsbausteins READ_TEXT auslesen.
Leider sehe ich wieder einmal nicht durch. Kann mir jemand sagen weswegen das Programm nicht funktioniert?
Bei jedem eingegebenen Infosatz kommt die Fehlermeldung: Sprache bei AT DE nicht gepflegt, obwohl die Sprache gepflegt ist.
Vielen Dank für Eure Hilfe

Code: Alles auswählen.

Report ZR_TEST.

  TABLES: EINA.


SELECT-OPTIONS: S_INFNR FOR EINA-INFNR.


DATA: BEGIN OF HTEXT.
        INCLUDE STRUCTURE THEAD.
DATA: END OF HTEXT.

DATA: BEGIN OF LTEXT OCCURS 50.
        INCLUDE STRUCTURE TLINE.
DATA: END OF LTEXT.

DATA: BEGIN OF DTEXT OCCURS 50.
DATA:   INFNR LIKE EINA-INFNR.
        INCLUDE STRUCTURE TLINE.
DATA: END OF DTEXT.

DATA: TNAME LIKE THEAD-TDNAME.

SELECT * FROM EINA. "WHERE WERKS IN S_WERKS.

 CALL FUNCTION 'READ_TEXT'
   EXPORTING
     CLIENT                        = SY-MANDT
     ID                            = 'AT'
     LANGUAGE                      = 'D'
     NAME                          = TNAME
     OBJECT                        = 'EINA'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        = HTEXT
*    OLD_LINE_COUNTER              =
   TABLES
     LINES                         = LTEXT
*  EXCEPTIONS
*    ID                            = 1
*    LANGUAGE                      = 2
*    NAME                          = 3
*    NOT_FOUND                     = 4
*    OBJECT                        = 5
*    REFERENCE_CHECK               = 6
*    WRONG_ACCESS_TO_ARCHIVE       = 7
*    OTHERS                        = 8.
           .

  LOOP AT LTEXT.
    IF LTEXT-TDLINE NE ''.
      MOVE LTEXT-TDLINE TO DTEXT-TDLINE.
      MOVE EINA-INFNR TO DTEXT-INFNR.
      APPEND DTEXT.
    ENDIF.
  ENDLOOP.
ENDSELECT.
LOOP AT DTEXT.
  WRITE:/ DTEXT-INFNR, DTEXT-TDLINE.
ENDLOOP.

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


Re: FUBA READ_TEXT

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
TNAME ist leer....
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: FUBA READ_TEXT

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Danke
Klingt jetzt vielleicht ein bisschen doof, aber wie soll ich genau TNAME mit der Select-Options Anweisung verknüpfen?
Danke

Re: FUBA READ_TEXT

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Du musst den Tabellen-Schlüssel der EINA nach dem SELECT in den TNAME schreiben.

Code: Alles auswählen.

TNAME = EINA-INFNR.
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: FUBA READ_TEXT

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Ich hab's nun auf jegliche Art probiert, meiner Meinung nach müsste es so aussehen. Sehrwahrschienlich müsste ich ein anderen Code wählen
Danke

Code: Alles auswählen.

SELECT * FROM EINA
  WHERE INFNR IN S_INFNR.
 
 SELECT * FROM THEAD CLIENT SPECIFIED 
  WHERE TNAME = EINA-INFNR.
   ENDSELECT.

 CALL FUNCTION 'READ_TEXT'
   EXPORTING

Re: FUBA READ_TEXT

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
christof hat geschrieben:Sehrwahrschienlich müsste ich ein anderen Code wählen
Dein Code ist unvollständig ;-)

Wenn du in einem Infosatz einen Doppelklick auf den Text machst, kommst du ja in den Texteditor.
Dort übers Menu: Springen -> Kopf, es öffnet sich ein PopUp. Die ersten vier Felder sind der Schlüssel, den du für den Readtext benötigst. Gleich hier mal ab, ob du die gleichen Werte im Programm beim FuBa aufruf verwendest. Die Sprache ist z.B. von der Lieferantensprache (LFA1-SPRAS) abhängig, eine hardcodierung eher unschön.
Gruß Hendrik

Re: FUBA READ_TEXT

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Nein dieser Code ist in Ordnung.
Mein Problem ist den Textname (TNAME) den ich mit Select-Options ansteuern möchte.

Code: Alles auswählen.

Report ZR_TEST.

  TABLES: EINA.



SELECT-OPTIONS: S_INFNR FOR EINA-INFNR.


DATA: BEGIN OF HTEXT.
        INCLUDE STRUCTURE THEAD.
DATA: END OF HTEXT.

DATA: BEGIN OF LTEXT OCCURS 50.
        INCLUDE STRUCTURE TLINE.
DATA: END OF LTEXT.

DATA: BEGIN OF DTEXT OCCURS 50.
DATA:   INFNR LIKE EINA-INFNR.
        INCLUDE STRUCTURE TLINE.
DATA: END OF DTEXT.


DATA: TNAME LIKE THEAD-TDNAME.



SELECT * FROM EINA
  WHERE INFNR IN S_INFNR.

 CALL FUNCTION 'READ_TEXT'
   EXPORTING

     CLIENT                        = SY-MANDT
     ID                            = 'AT'
     LANGUAGE                      = 'D'
     NAME                          =  TNAME
     OBJECT                        = 'EINA'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        = HTEXT
*    OLD_LINE_COUNTER              =
   TABLES
     LINES                         = LTEXT
*  EXCEPTIONS
*    ID                            = 1
*    LANGUAGE                      = 2
*    NAME                          = 3
*    NOT_FOUND                     = 4
*    OBJECT                        = 5
*    REFERENCE_CHECK               = 6
*    WRONG_ACCESS_TO_ARCHIVE       = 7
*    OTHERS                        = 8.
.

  LOOP AT LTEXT.
    IF LTEXT-TDLINE NE ' '.
      MOVE LTEXT-TDLINE TO DTEXT-TDLINE.
      MOVE EINA-INFNR TO DTEXT-INFNR.
      APPEND DTEXT.
    ENDIF.
  ENDLOOP.
ENDSELECT.


LOOP AT DTEXT.
  WRITE:/ DTEXT-INFNR, DTEXT-TDLINE.
ENDLOOP.

Re: FUBA READ_TEXT

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Moin,

also wenn ich mir allein das anschaue:

Code: Alles auswählen.

SELECT * FROM EINA
  WHERE INFNR IN S_INFNR.

 CALL FUNCTION 'READ_TEXT'
   EXPORTING

     CLIENT                        = SY-MANDT
     ID                            = 'AT'
     LANGUAGE                      = 'D'
     NAME                          =  TNAME
     OBJECT                        = 'EINA'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        = HTEXT
*    OLD_LINE_COUNTER              =
   TABLES
     LINES                         = LTEXT
*  EXCEPTIONS
*    ID                            = 1
*    LANGUAGE                      = 2
*    NAME                          = 3
*    NOT_FOUND                     = 4
*    OBJECT                        = 5
*    REFERENCE_CHECK               = 6
*    WRONG_ACCESS_TO_ARCHIVE       = 7
*    OTHERS                        = 8.
.
dann ist das definitiv nicht korrekt. Denn damit befüllst du TNAME nicht mal ansatzweise!! Gehe bitte so vor wie JHM es beschrieben hat und schaue dir die Schlüssel der Texte mal genau an und baue sie dir dann in TNAME zusammen BEVOR du den READ_TEXT Baustein rufst. Ich kann mir gerade nur schwer vorstellen, dass der Schlüssel sich NUR aus der INFNR zusammensetzen soll. :roll:
Gruß,
der Matze

Re: FUBA READ_TEXT

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Vielen Dank für eure Hilfe
Ich hab meine Fehler gefunden

Ich hätte

Code: Alles auswählen.

MOVE EINA-INFNR TO TNAME.
noch einsetzen müssen
Nochmals vielen Dank

Code: Alles auswählen.

SELECT * FROM EINA WHERE INFNR IN S_INFNR.
MOVE EINA-INFNR TO TNAME.

 CALL FUNCTION 'READ_TEXT'
   EXPORTING

     CLIENT                        = SY-MANDT
     ID                            = 'AT'
     LANGUAGE                      = 'D'
     NAME                          =  TNAME
     OBJECT                        = 'EINA'
*    ARCHIVE_HANDLE                = 0
*    LOCAL_CAT                     = ' '
*  IMPORTING
*    HEADER                        = HTEXT
*    OLD_LINE_COUNTER              =
   TABLES
     LINES                         = LTEXT
*  EXCEPTIONS
*    ID                            = 1
*    LANGUAGE                      = 2
*    NAME                          = 3
*    NOT_FOUND                     = 4
*    OBJECT                        = 5
*    REFERENCE_CHECK               = 6
*    WRONG_ACCESS_TO_ARCHIVE       = 7
*    OTHERS                        = 8.

Re: FUBA READ_TEXT

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
Dennoch hat der Kollege recht, wenn er schreibt, dass man z. B. die Sprache nicht hart codieren sollte.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: FUBA READ_TEXT

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Ja dies sehe ich auch so, ist nicht gerade die feine Lösung. Aber für unsere Auswertung reicht es vollkommen.
Das grössere Problem ist, dass nicht alles auf eine Zeile geschrieben wird. Ich habe mit dem Befehl CONCATENATE alles auf eine Zeile schreiben können, es schneidet mir aber nach einer Bildschirmlänge ab.
Wie kann ich dies am einfachsten Lösen, so dass eine Laie wie ich etwas lerne aber nicht überfordert werde :wink:

Code: Alles auswählen.

  LOOP AT LTEXT.

"    CLEAR DTEXT-TDLINE.

    IF LTEXT-TDLINE NE ' '.
      MOVE LTEXT-TDLINE TO DTEXT-TDLINE.
      MOVE EINA-INFNR TO DTEXT-INFNR.
      CONCATENATE DTLINE1 DTEXT-TDLINE  into DTLINE1.
      APPEND DTEXT.

    ENDIF.
  ENDLOOP.
ENDSELECT.


LOOP AT DTEXT.
  WRITE:/ DTEXT-INFNR, DTLINE1. "DTEXT-TDLINE.
ENDLOOP.

Re: FUBA READ_TEXT

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
Den ganzen Text in eine Zeile zu schreiben, ist weder sinnvoll noch sinnvoll machbar (ab einer gewissen Textlänge), weil du dabei einen Haufen Absatzformate verlierst und Zeilenumbrüche, die der Anwender absichtlich reinmacht.

Was genau willst du bezwecken?
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: FUBA READ_TEXT

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
Doppelpost, sorry.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: FUBA READ_TEXT

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Absätze spielen keine Rolle, die Texte müssen auf inhaltliche Richtigkeit geprüft werden. Dies geschieht am Besten wenn wir ein EXCEL mit allen Texten haben.

Re: FUBA READ_TEXT

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
christof hat geschrieben:Absätze spielen keine Rolle, die Texte müssen auf inhaltliche Richtigkeit geprüft werden. Dies geschieht am Besten wenn wir ein EXCEL mit allen Texten haben.
Ach du lieber Himmel. Dann solltest du eine Zieltabelle wählen, für die das Textfeld lang genug ist.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Vergleichbare Themen

12
Antw.
5246
Views
FUBA für File Transfer von int.Tabelle in Text-Datei
von cuncon » 21.02.2018 12:13 • Verfasst in ABAP® für Anfänger
10
Antw.
10501
Views
SAPScript: INCLUDE Text nach Stat. text
von Chrisu » 09.08.2005 11:06 • Verfasst in Basis
1
Antw.
6705
Views
Change Text(Header Text) of each: cl_salv_table
von jamiguel77 » 31.12.2014 20:27 • Verfasst in ABAP® für Anfänger
0
Antw.
746
Views
Read bzw. select
von Fiodora » 07.06.2014 23:33 • Verfasst in ABAP® für Anfänger
4
Antw.
3187
Views
Read mit OR Verknüpfung?
von fcmfanswr » 18.11.2010 09:24 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 18 Stunden von Bright4.5 1 / 379
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2027
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8622