Den und auch RFVDTXBA2 hatte ich gefunden, die kündigen sich großmäulig als "Verwendungsnachweis" an, was allgemein klingt, meinen aber irgend was mit "Korrespondenzschnittstelle: Brief-Baustein-Beziehung" (Tabelle TTXBS).wreichelt hat geschrieben:Hallo,
bin mir nicht sicher aber mal den probieren:
RFVITXBA - Verwendungsnachweis für Textbausteine, Transaktion TXBA .
Gruß Wolfgang
Ich wäre ja froh wenn wenigstens die klar verdrahteten Texte gefunden würden dieses verfluchte System quält seit Jahrzehnten ganze Generationen von Entwicklern damit, von wegen hyper-OO, Java, UI5, alles voll modern, aber unter der Haube ein Dreizylinder.ST22 hat geschrieben:Hallo,
Problem wird sein, dass viele Textbausteine dynamisch eingebunden werden.
Grüße
Frank
Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Report ZXXX_SAPSCRIPT_SEARCH
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZXXX_SAPSCRIPT_SEARCH.
TABLES:
stxh.
DATA:
gv_found TYPE flag,
gv_form TYPE itcta-tdform,
gt_result TYPE match_result_tab,
gs_result LIKE LINE OF gt_result,
gs_form TYPE stxh,
gt_forms TYPE TABLE OF stxh,
gt_form_lines TYPE TABLE OF tline,
gt_pages TYPE TABLE OF itctg,
gt_page_windows TYPE TABLE OF itcth,
gt_paragraphs TYPE TABLE OF itcdp,
gt_strings TYPE TABLE OF itcds,
gt_tabs TYPE TABLE OF itcdq,
gt_windows TYPE TABLE OF itctw,
gs_form_line LIKE LINE OF gt_form_lines,
gs_form_header TYPE itcta.
PARAMETERS:
p_form TYPE flag,
p_order TYPE e071k-trkorr.
SELECT-OPTIONS:
s_mandt FOR stxh-mandt DEFAULT sy-mandt,
s_tdnam FOR stxh-tdname,
s_spras FOR stxh-tdspras,
s_search FOR gs_form_line-tdline.
CONSTANTS:
c_search_string(5) TYPE c VALUE 'Include',
c_repl_string(4) TYPE c VALUE '(3Z)'.
INITIALIZATION.
s_search = 'IEQINCLUDE'. append s_search.
START-OF-SELECTION.
IF p_form = 'X' AND p_order IS INITIAL.
MESSAGE e000(00) WITH 'Fehlender Transportauftrag'.
ENDIF.
SELECT * FROM stxh CLIENT SPECIFIED
INTO TABLE gt_forms
WHERE mandt IN s_mandt
AND tdobject = 'FORM'
AND tdname IN s_tdnam
AND tdid = 'TXT'
AND tdspras IN s_spras.
LOOP AT gt_forms INTO gs_form. "1
gv_form = gs_form-tdname.
CLEAR:
gv_found,
gt_form_lines,
gt_pages,
gt_page_windows,
gt_paragraphs,
gt_strings,
gt_tabs,
gt_windows.
CALL FUNCTION 'READ_FORM'
EXPORTING
client = gs_form-mandt
form = gv_form
language = gs_form-tdspras
* OLANGUAGE = ' '
* OSTATUS = ' '
* STATUS = ' '
* THROUGHCLIENT = ' '
* READ_ONLY_HEADER = ' '
* THROUGHLANGUAGE = ' '
IMPORTING
form_header = gs_form_header
* FOUND = FOUND
* HEADER =
* OLANGUAGE = OLANGUAGE
TABLES
form_lines = gt_form_lines
pages = gt_pages
page_windows = gt_page_windows
paragraphs = gt_paragraphs
strings = gt_strings
tabs = gt_tabs
windows = gt_windows.
FIND ALL OCCURRENCES OF c_search_string IN TABLE gt_form_lines
RESULTS gt_result.
IF gt_result IS NOT INITIAL.
WRITE: / 'Formular:', gv_form, gs_form-tdspras, gs_form-mandt.
gv_found = 'X'.
ELSE.
gv_found = space.
ENDIF.
LOOP AT gt_result INTO gs_result. "2
READ TABLE gt_form_lines INTO gs_form_line INDEX gs_result-line.
IF sy-subrc = 0.
WRITE: / gs_form_line-tdline UNDER gv_form.
IF p_form IS NOT INITIAL.
REPLACE c_search_string WITH c_repl_string INTO gs_form_line-tdline.
MODIFY gt_form_lines FROM gs_form_line INDEX gs_result-line.
ENDIF.
ENDIF.
ENDLOOP. "2
IF p_form IS NOT INITIAL.
CALL FUNCTION 'SAVE_FORM'
EXPORTING
form_header = gs_form_header
* IMPORTING
* SAVE_FORM_HEADER = SAVE_FORM_HEADER
TABLES
form_lines = gt_form_lines
pages = gt_pages
page_windows = gt_page_windows
paragraphs = gt_paragraphs
strings = gt_strings
tabs = gt_tabs
windows = gt_windows.
CALL FUNCTION 'ACTIVATE_FORM'
EXPORTING
form = gv_form.
CALL FUNCTION 'SAPSCRIPT_ORDER_CHECK'
EXPORTING
objecttype = 'FORM'
form = gs_form_header-tdform
* STYLE = STYLE
* IMPORTING
* ORDER = gv_ORDER
* VALUE_TADIR = VALUE_TADIR
EXCEPTIONS
invalid_input = 1
object_locked = 2
object_not_available = 3
OTHERS = 4.
CASE sy-subrc.
WHEN 0.
CALL FUNCTION 'SAPSCRIPT_ORDER_INSERT'
EXPORTING
objecttype = 'FORM'
form = gs_form_header-tdform
masterlang = gs_form_header-tdospras
* IMPORTING
* VALUE_TADIR = VALUE_TADIR
CHANGING
order = p_order
EXCEPTIONS
invalid_input = 1
order_canceled = 2
OTHERS = 3.
CASE sy-subrc.
WHEN 0.
WHEN OTHERS.
WRITE: / 'Formular prüfen', gv_form.
ENDCASE.
WHEN OTHERS.
WRITE: / 'Formular prüfen', gv_form.
ENDCASE.
ENDIF.
ENDLOOP. "1
Danke dir, das Teil sucht jedoch nach Inhalten in Texten, ich suche ein Tool mit dem ich auswerten kann in welchen SapScript-Formularen ein bestimmter Standardtext benutzt wird. Muss da was im Text ändern und will vorher prüfen welches Formular betroffen ist.wreichelt hat geschrieben:Hallo,
unter Tricktresor gibt es ein Suchprogramm:
https://www.tricktresor.de/blog/durchsu ... ardtexten/
Gruß Wolfgang
Das kannst du ja auch!deejey hat geschrieben: Danke dir, das Teil sucht jedoch nach Inhalten in Texten, ich suche ein Tool mit dem ich auswerten kann in welchen SapScript-Formularen ein bestimmter Standardtext benutzt wird.
War gerade dabei es mir anzusehen ... das ist für meine Zwecke perfekt, ehrlich gesagt "READ_FORM" habe ich vorher nie gesehen, danke dir, werde es am WE klaramachen und laufen lassen. Parallel noch mit Codescanner in Reports suchen, das reicht mir, wenn es noch irgendwo in der DB gespeichert ist haben sie eben Pech gehabtST22 hat geschrieben:siehe mein Beispielcoding...
Du hast recht, habe nicht sorgfältig genug geschaut, auf diesem Wege kommt man also auch an die Infos ran. Das wird mir eine große Hilfe sein, habe mich meist erfolgreich vor Formularen drücken können, jetzt aber irgendwie in den SapScript-Focus geraten, aus dem Schlamassel komme ich nie mehr raus, nur im Sargewx hat geschrieben:Das kannst du ja auch!deejey hat geschrieben: Danke dir, das Teil sucht jedoch nach Inhalten in Texten, ich suche ein Tool mit dem ich auswerten kann in welchen SapScript-Formularen ein bestimmter Standardtext benutzt wird.
Du musst nur als Text-ID "FORM" eintragen und dann nach "INCLUDE MEINSTANDARDTEXT" suchen...