READ TEXT: Unterschied zwischen den Versionen

Aus SAP Wiki ツ
Zeile 40: Zeile 40:


=== BANF ===
=== BANF ===
- C_PurchaseReqnHeaderText
* C_PurchaseReqnHeaderText
- C_PurchaseReqnItemText
* C_PurchaseReqnItemText


Beispiel zur Nutzung in CL_MM_PUR_PR_PROFNL_DPC_EXT
Beispiel zur Nutzung in CL_MM_PUR_PR_PROFNL_DPC_EXT


- Mapping Verständnis
Mapping Verständnis
-- ArchObjectNumber = text_objectid
* ArchObjectNumber = text_objectid
-- DocumentText = text_id
* DocumentText = text_id
-- TechnicalObjectType = text_object
* TechnicalObjectType = text_object
-- language = spras
* language = spras
- DATAlo_pr_notes TYPE REF TO if_mm_pur_longtext.
 
- lo_pr_notes = cl_mm_pur_text_factory=>get_instance( iv_source_object = lv_text_object ).
Deklaration und Methoden
- CALL METHOD lo_pr_notes->get_text
* DATAlo_pr_notes TYPE REF TO if_mm_pur_longtext.
* lo_pr_notes = cl_mm_pur_text_factory=>get_instance( iv_source_object = lv_text_object ).
* CALL METHOD lo_pr_notes->get_text
       EXPORTING
       EXPORTING
         iv_text_id          = lv_text_id
         iv_text_id          = lv_text_id

Version vom 3. April 2024, 09:49 Uhr

Mit diesem FuBa können die Texte aus Stammsätze und Belege ermittelt werden.

Wie die Parameter für verschiedene Texte zusammengesetzt werden müssen, kann man hier auf einen Blick sehen:
=> Texte in Stammsätze und Belege

Der Text wird in eine simple internen Tabelle mit Typ "TLINE" geschrieben. Oft ist es das Ziel die Inhalte in einem String zu speichern.

Zum Beispiel könnte der Inhalt der interne Tabelle so aussehen:

READ TEXT Output Table.png

Die Verkettung abhängig vom TDFORMAT:

  IF sy-subrc = 0 AND lines( lt_text_lines ) > 0.
    LOOP AT lt_text_lines ASSIGNING FIELD-SYMBOL(<text_line>).
      IF <text_line>-tdformat EQ '*' AND sy-tabix > 1.
        rv_result = |{ rv_result }{ cl_abap_char_utilities=>cr_lf }{ <text_line>-tdline }|.
      ELSEIF <text_line>-tdformat EQ '=' OR sy-tabix = 1.
        rv_result = |{ rv_result }{ <text_line>-tdline }|.
      ELSE.
        rv_result = |{ rv_result } { <text_line>-tdline }|.
      ENDIF.
    ENDLOOP.
  ENDIF.

Textkonvertierung von ITF in ASCII nach Lesen SAPScript Textbausteine

Wenn ein Text von einem SO10 Text gelesen wird, können hier u.U. ungewünschte Textformatierungen vorhanden sein. Zum Beispiel wird bei einem Komma bei der Ausgabe das Komma mit "<(>,<)>" angezeigt:

READ TEXT SAPScript textbaustein.png

Mit FuBa "CONVERT_ITF_TO_ASCII" kann das SAPScript in ein ASCII Format konvertiert werden. Alternativ arbeitet man am Beispiel des Kommas mit REPLACE.

Texte über CDS-Views und API

BANF

  • C_PurchaseReqnHeaderText
  • C_PurchaseReqnItemText

Beispiel zur Nutzung in CL_MM_PUR_PR_PROFNL_DPC_EXT

Mapping Verständnis

  • ArchObjectNumber = text_objectid
  • DocumentText = text_id
  • TechnicalObjectType = text_object
  • language = spras

Deklaration und Methoden

  • DATAlo_pr_notes TYPE REF TO if_mm_pur_longtext.
  • lo_pr_notes = cl_mm_pur_text_factory=>get_instance( iv_source_object = lv_text_object ).
  • CALL METHOD lo_pr_notes->get_text
     EXPORTING
       iv_text_id          = lv_text_id
       iv_language         = lv_text_language
       iv_text_object      = lv_text_object
       iv_text_name        = lv_text_objectkey
       iv_is_draft         = lv_is_draft
     IMPORTING
       ev_text             = lv_text
       ev_fixed_indicator  = DATA(lv_fixie)
       ev_text_displaymode = DATA(lv_text_displaymode)
       ev_adopted_from_ref = DATA(lv_adopted_from_ref).