Smartforms-Texte Datenbanktabelle

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

Getting started ... Alles für einen gelungenen Start.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Smartforms-Texte Datenbanktabelle

Beitrag von abuma (Specialist / 102 / 36 / 14 ) »
Huhu zusammen,

ich würde gerne ein Programm schreiben, dass mir die SO10-Texte bzw. die Textbausteine ausliest die in einem Smartforms verwendet werden, sodass ich nicht alle Fenster einzeln absuchen muss...

Für Sapscript gibt es hierbei ja folgende Möglichkeit:
http://www.apentia-forum.de/viewtopic.php?t=1038
Mit READ_FORM kann ich dabei die Texte vom Sapscript auslesen und nach Includes absuchen.

Doch wie funktioniert das ganze bei Smartforms? :roll:
In der Tabelle STXFTXT stehen die Texte die auch im Smartforms enthalten sind, jedoch keine Zeilen die Textbausteine oder SO10-Texte enthalten.

Komm da gerade einfach nicht weiter. :(
Vielleicht kennt sich ja jemand damit aus?

Vielen Dank im Voraus!

Liebe Grüße
abuma

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


Re: Smartforms-Texte Datenbanktabelle

Beitrag von wreichelt (Top Expert / 1046 / 30 / 192 ) »
Hallo,

da gibt's folgende Tabellen:


STXBITMAPS - SAPscript Graphics Management Basis - SAPscript
STXFADM - Smart Forms: Administration Basis - Smart Forms
STXB - SAPscript Texte in nicht SAPscript Format Basis - SAPscript
STXFTXT - SAP Smart Forms: Texte Basis - Smart Forms
STXFADMI - Smart Forms: Administration - Interal Informationen Basis - Smart Forms
STXFADMT - Smart Forms: Administration - textuelle Beschreibung Basis - Smart Forms
STXSADM - Smart Styles: Administration Basis - Smart Forms
STXFOBJT - Smart Forms: Subobjekt Langtexte Basis - Smart Forms
STXFCONT - Smart Forms: Form Subobjekte (Aktiv) Basis - Smart Forms
STXSTAB - Smart Styles: Tabs Basis - Smart Forms
STXSPARA - Smart Styles: Absatzformate Basis - Smart Forms
STXFCONTR - Smart Forms: Laufzeitobjekte Basis - Smart Forms
STXFVART - Smart Forms: Varianten - textuelle Beschreibung Basis - Smart Forms
STXFCONTS - Smart Forms: Form Subobjekte (Saved) Basis - Smart Forms
STXSOBJT - Smart Styles: Texte für Absatz- und Zeichenformate Basis - Smart Forms
STXSADMT - Smart Styles: Administration - Beschreibung der Stile Basis - Smart Forms
STXSHEAD - Smart Styles: Style Header - Basis - Smart Forms
STXSCHAR - Smart Styles: Zeichenformate Basis - Smart Forms
STXSVAR - Smart Styles: Varianten Basis - Smart Forms
STXSVARL - Smart Styles: Sprache Zuordnung von Varianten Basis - Smart Forms
STXSVART - Smart Styles: Varianten - textuelle Beschreibung Basis - Smart Forms
STXFTXTV - SAP Smart Forms: Texte - Versionen Basis - Smart Forms
STXFTXTA - SAP Smart Forms: Texte - Verwaltung Basis - Smart Forms

Gruß
Wolfgang

Folgende Benutzer bedankten sich beim Autor wreichelt für den Beitrag (Insgesamt 2):
ST22abuma


Re: Smartforms-Texte Datenbanktabelle

Beitrag von abuma (Specialist / 102 / 36 / 14 ) »
Vielen Dank für deine Antwort, die habe ich mir jedoch alle bereits angesehen.
Habe grundsätzlich schon die Tabellen mit STX* abgeklappert.

Wie oben bereits genannt stehen die Texte ja in der Tabelle STXFTXT.
Allerdings fehlen dort die Anweisungen für den Include. Habe extra nach einem Formular gesucht, dass auch wirklich einen Textbaustein beinhaltet, aber dies taucht in der Auflistung nicht auf.

Liebe Grüße
abuma

Re: Smartforms-Texte Datenbanktabelle

Beitrag von wreichelt (Top Expert / 1046 / 30 / 192 ) »
Hallo abuma,

über Hilfsmittel -> Formularinfo kann nach allen möglichen Texten gesucht werden.
Wenn zumindest etwas bekannt ist kann das evtl. hierrüber gefunden werden.
Gruß
Wolfgang

Folgende Benutzer bedankten sich beim Autor wreichelt für den Beitrag:
abuma


Re: Smartforms-Texte Datenbanktabelle

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Hab mir den Code mal vor einiger Zeit zusammenkopiert:

Code: Alles auswählen.

FUNCTION zread_smartforms 
  IMPORTING id_name TYPE csequence
            id_variant TYPE csequence optional
            id_spras TYPE spras default SY-LANGU
  EXPORTING et_text TYPE tlinetab
            es_header TYPE ssfhead.

  DATA:
    ld_variant         TYPE tdvariant,
    ld_name            TYPE tdtxtname,
    ld_spras           TYPE tdspras,
    lr_form            TYPE REF TO cl_ssf_fb_smart_form,
    lr_text            TYPE REF TO cl_ssf_fb_text_item.

  FIELD-SYMBOLS:
    <ls_variant>       TYPE ssfvarhdr.

  REFRESH et_text.
  CLEAR es_header.

  ld_spras = id_spras.
  IF ld_spras IS INITIAL.
    ld_spras = sy-langu.
  ENDIF.

  ld_name = id_name.
  IF ld_name IS INITIAL.
    RETURN.
  ENDIF.

* read text module
  CREATE OBJECT lr_form.
  TRY.
*   check if exists and lock text module
      lr_form->enqueue( language_upd_exit       = space
                        suppress_language_check = space
                        mode                    = 'SHOW'
                        formname                = ld_name
                        authority_check         = space ).
      lr_form->load( im_formname    = ld_name
                     im_language    = ld_spras
                     im_active      = abap_true ).
    CATCH cx_ssf_fb.
      RETURN.
  ENDTRY.

  IF lr_form->header-formtype NE cssf_formtype_text.
    RETURN.
  ENDIF.

  es_header = lr_form->header.

* get lines[]
  IF et_text IS SUPPLIED.
    ld_variant = id_variant.
    READ TABLE lr_form->varheader ASSIGNING <ls_variant> WITH KEY vari = ld_variant.
    IF sy-subrc EQ 0.
      lr_text ?= <ls_variant>-pagetree->obj.
      IF lr_text IS BOUND.
        et_text = lr_text->text.
      ENDIF.
    ENDIF.
  ENDIF.

  lr_form->dequeue( EXPORTING formname = ld_name ).
ENDFUNCTION.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
abuma

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: Smartforms-Texte Datenbanktabelle

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Smartforms sind auf der Datenbank als XML Strukturen hinterlegt. Wenn man die Formulardefinition absuchen möchte muß man das XML Dokument lesen und entsprechend auswerten.
Ein einfacher Test ist der XML Download des Formulars und das laden in einen Browser. Mit STRG-F ( suchen) kann man die Definition untersuchen.
Das Element <INAME> entspricht dabei dem Knotennamen etc...

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  YBC_READ_SMARTFORM_XML
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  YBC_READ_SMARTFORM_XML.
constants: c_xml_ns_uri_sf(255)  type c
    value 'urn:sap-com:SmartForms:2000:internal-structure', "#EC NOTEXT
           c_xml_ns_uri_ifr(255) type c
    value 'urn:sap-com:sdixml-ifr:2000'.                    "#EC NOTEXT



types: t_gnode   type ssfgnode,
       t_gnodes  type tsfgnode.

* internal tables
data: g_nodes type t_gnodes with header line,
      wa_g_nodes like line of g_nodes.

data: l_filename          type string,
      l_file_filter       type string,
      l_user_action       type i.
data: wa_node             like line of g_nodes,
      l_element           type ref to if_ixml_element.
data: l_language_str      type string,
      l_language(2)       type c.
data: l_lines             type i,
      l_splitted_name_tab type table of string.
data: l_stylename         type tdssname,
      l_stylevari         type tdvariant,
      l_save_style        type tdssname.


data: g_ixml               type ref to if_ixml,
      xml_document         type ref to if_ixml_document,
      xml_element          type ref to if_ixml_element,
      xml_ns_prefix_sf     type string,
      xml_ns_uri_sf        type string,
      xml_ns_uri_ifr       type string,
      xml_macro_name       type string,
      xml_macro_rc         type i,
      xml_macro_objt       type stxfobjt,
      xml_macro_text       type stxftxt,
      xml_macro_tline      type tline,
      xml_upload_language  type tdspras.

types: t_raw(250) type x.

data: xml_xtable        type table of t_raw with header line,
      xml_document_size type i,
      g_download_path   type string,
      g_xml_fullpath    type string.

data: sform             type ref to cl_ssf_fb_smart_form.

* Namen der aktuell bearbeiteten Objekte
data: formname    type tdsfname,     " Name des Formulars
      variant     type tdvariant,    " Name der Formularvariante
      language    type sy-langu,     " Bearbeitungssprache
      fmnumb      type tdfmnumb,     " Nummer des zugeordneten Fb
      fmnumb_test type tdfmnumb.     " Fb zum Test der inaktiven Fassung



parameters form type TDSFNAME obligatory MATCHCODE OBJECT SH_STXFADM.


formname = form.
language = 'D'.

* create form object
  create object sform.


call method sform->load
     exporting  im_formname    = formname
                im_language    = language
                im_active      = space
     importing  ex_fmnumb      = fmnumb
                ex_fmnumb_test = fmnumb_test.

if g_ixml is initial.
  g_ixml          = cl_ixml=>create( ).
endif.

xml_document      = g_ixml->create_document( ).
xml_ns_prefix_sf  = 'sf'.
xml_ns_uri_sf     = c_xml_ns_uri_sf.
xml_ns_uri_ifr    = c_xml_ns_uri_ifr.
clear: xml_document_size, xml_xtable[].
sform->xml_init( ).

* create XML for the entire smart form
  call method sform->xml_download
              exporting parent   = xml_document
              changing  document = xml_document.

* namespace
l_element  = xml_document->get_root_element( ).
l_element->set_attribute( name      = xml_ns_prefix_sf
                          namespace = 'xmlns'
                          value     = xml_ns_uri_sf ).
l_element->set_attribute( name  = 'xmlns'
                          value = xml_ns_uri_ifr ).

* language
write language to l_language.
l_language_str = l_language.
xml_macro_rc = l_element->set_attribute(
                    name      = 'language'
                    namespace = xml_ns_prefix_sf
                    value     = l_language_str ).


** convert DOM to xml
*call function 'SDIXML_DOM_TO_XML'
*     exporting  document     = xml_document
*     importing  size         = xml_document_size
*     tables     xml_as_table = xml_xtable
*     exceptions others       = 1.
*
*
* DATA d TYPE REF TO if_ixml_document.
* DATA e TYPE REF TO if_ixml_element.
* DATA problems TYPE  dcxmlprbl.
*
*
*e = d->get_root_element( ).
*
*CALL FUNCTION 'SDIXML_DOM_TO_DATA'
*  EXPORTING
*    data_as_dom          = e
**   CONTROL              =
* IMPORTING
*   DATAOBJECT           =
*   PROBLEMS             = problems
** EXCEPTIONS
**   ILLEGAL_OBJECT       = 1
**   OTHERS               = 2
*          .
*IF sy-subrc <> 0.
** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
**         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*ENDIF.





data lv_title type sy-title.
concatenate 'Smartform :' form into lv_title.

CALL FUNCTION 'SDIXML_DOM_TO_SCREEN'
  EXPORTING
    document          = xml_document
    TITLE             = lv_title
 EXCEPTIONS
   NO_DOCUMENT       = 1
   OTHERS            = 2.

IF sy-subrc <> 0.
ENDIF.
viel Erfolg

gruß Jens

Folgende Benutzer bedankten sich beim Autor Tron für den Beitrag:
abuma

<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: Smartforms-Texte Datenbanktabelle

Beitrag von abuma (Specialist / 102 / 36 / 14 ) »
Super, vielen Dank für eure Antworten. Ich werde mir das ganze mal ansehen :)
wreichelt hat geschrieben:Beitrag von wreichelt » 20.02.2017, 13:13
Hallo abuma,

über Hilfsmittel -> Formularinfo kann nach allen möglichen Texten gesucht werden.
Wenn zumindest etwas bekannt ist kann das evtl. hierrüber gefunden werden.
Gruß
Wolfgang
Da gabs bei mir anfangs noch den Fehler "Forbidden".
Nach aktivieren des Services SSF_TECHNIF hat es dann allerdings soweit funktioniert, dass ich zumindest nochmals genauere Fehlermeldung zu den zu aktivierenden Services erhielt und mir somit die Info dann auch ansehen konnte.
Für das Sichten von einzelnen Formularen auf jedenfall schonmal sehr hilfreich :)

Liebe Grüße
abuma

Seite 1 von 1

Vergleichbare Themen

17
Antw.
13426
Views
SAPMV45A USEREXIT Itab Pos.Texte / Head Texte
von Luigi91 » 31.01.2014 09:31 • Verfasst in ABAP® für Anfänger
6
Antw.
1410
Views
Datenbanktabelle
von HH_ABAP » 29.03.2019 15:10 • Verfasst in ABAP® für Anfänger
2
Antw.
1742
Views
Datenbanktabelle als Unicode
von dimes » 19.05.2008 14:40 • Verfasst in ABAP® Core
26
Antw.
20109
Views
Datenbanktabelle füllen
von Dyrdek » 04.06.2014 09:31 • Verfasst in ABAP® für Anfänger
4
Antw.
3507
Views
update Datenbanktabelle
von LittleT » 10.09.2007 09:47 • Verfasst in ABAP® für Anfänger

Ü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 23 Stunden von Bright4.5 1 / 497
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2139
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8735