Überprüfung der Sprachpflege

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

Überprüfung der Sprachpflege

Beitrag von Spookykid (Specialist / 140 / 28 / 0 ) »
Hallo zusammen,

ich würde gerne alle Customizungtabellen durchgehen und überprüfen, ob das Feld, welches z.B auf Englisch gepflegt wurde auch einen Eintrag auf Portugiesisch hat. Logischerweise sind die Tabellen von einer unterschiedlichen Struktur und müssen deshalb dynamisch abgefragt werden.
table.gif
Wenn man sich diese Tabelle anschaut, dann wäre Feld 2-4 die identifizierende Objekte und Feld 5, nämlich der Text müsste auf "is initial" geprüft werden. Wie würdet ihr das bewerkstelligen. Gibt es eine Möglichkeit (mit ABAP OO habe ich bisher nichts gemacht) die Anzahl der Felder und den Feldnamen auszulesen?

Vielen Dank im Voraus.

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


Re: Überprüfung der Sprachpflege

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
hmm...

Mit OO (Object Orientatet) an sich hat dein Problem nichts zu tun! Sonder viel eher mit RTTI! (Run Time Type Information)

Ich umreiß mal grob was du ungefähr machen musst:
  • Mittels den Klassen CL_ABAP_*DESCR oder dem Funktionsbaustein DDIF_FIELDINFO_GET die Struktur der Datenbanktabelle ermitteln
  • Aus dieser Struktur das Sprachfeld ermitteln (Interner Datentyp LANG)
  • Mittels der Klasse CL_ABAP_STRUCTDESCR den RTTI-Handle der Datenbankstruktur anlegen
  • Mittels der Klasse CL_ABAP_TABLEDESCR den RTTI-Handle für den internen Tabellentyp anlegen
  • Eine interne Tabelle von der Datenbankstruktur anlegen (DATA ... TYPE REF TO DATA. CREATE DATA ... TYPE HANDLE OF ...)
  • Die interne Tabelle einem Feldsymbol vom typ STANDARD TABLE zuweisen
  • Die Tabelle vollständig abfragen mittels INTO TABLE und Feldsymbol
  • Das Ergebnis mit einem dynamischen SORT sortieren (siehe SORTORDER_TAB) wobei man die Sprache in der Sortierung zuletzt durchführt.
  • Mittels LOOP AT ... ASSIGNING die Tabelle gruppiert durchlaufen
    • Zwei Hilfsstruktur (CREATE DATA... / ASSIGN...) vor dem LOOP AT anlegen.
    • Bei beiden das Sprachfeld mittels ASSIGN COMPONENT zuweisen
    • Am Beginn von LOOP AT der ersten Hilfstruktur mittels MOVE CORRESPONDING die Werte aus dem Feldsymbol des LOOP AT zuweisen
    • Das Sprachfeld der ersten Hilfsstruktur löschen
    • Hilfsstruktur 1 mit Hilfsstruktur 2 vergleichen (Gruppierungsbedingung) und dann prüfen ob der gesuchte Text (Feld welches nicht im KEY der Tabelle vorkommt; siehe DDIF_FIELDINFO_GET) in der Sprache XYZ vorkommt.
    • Am Ende des LOOP AT den Inhalt von Hilfsstruktur 1 in die Hilfsstruktur zwei kopieren


lg
ADT

P.S.: Gilt nur für SAP-Basis 7.00 in allen niedrigeren Releases musst du anstatt RTTI alles mittels GENERATE SUBROUTINE POOL erledigen und damit kann ich dir leider nicht helfen (Ist mir zu instabil und habs daher fast bis garnicht verwendet) :down:

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

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: Überprüfung der Sprachpflege

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »
Hallo spookykid,

zusätzlich zu den schon sehr ausführlichen Erklärungen von adt solltest du noch folgende Sachen beachten:

1.) Du schreibst "Text is initial" - denk dran dass bei Texttabellen dies einerseits dadurch auftreten kann, dass zwar ein Eintrag in der gewünschten Sprache da ist, dieser jedoch leer ist als auch dadurch, dass der Eintrag zur gewünschten Sprache ganz fehlt.

2.) Du solltest noch abprüfen, dass es sich bei der Tabelle tatsächlich um die Texttabelle zu einer Customizingtabelle handelt ( Schlüsselvergleich , Sprache muss Schlüsselfeld sein ; Femdschlüsselbeziehung der beiden Tabellen ).
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Überprüfung der Sprachpflege

Beitrag von Spookykid (Specialist / 140 / 28 / 0 ) »
Vielen Dank für eure Antworten. Ich werde mich in nächster Zeit dem Problem widmen.

Viele Grüße
Spookykid

Re: Überprüfung der Sprachpflege

Beitrag von Spookykid (Specialist / 140 / 28 / 0 ) »
Hallo zusammen,

ich habe mich mit RTTI und RTTS in letzter Zeit 'intensiv' beschäftigt. Ich habe auch die, von A-D-T vorgeschlagene, Vorgehensweise teilweise umgesetzt. Nun stoße ich jedoch auf Probleme.

Hier nochmal kurz den Sachverhalt: SAP Rollout am Standort Brasilien. Es soll überprüft werden, ob die die Sprache "PT" in den Customizing-Tabellen korrekt gepflegt wurde.

Ich möchte daher eigentlich nur überprüfen, ob das Feld in portugiesischer Sprache != der dem Feld in englischer Sprache und ob das Feld ungleich null ist.

Dies soll jedoch über alle Customizing Tabellen laufen.

Hier mal den Code, den ich bisher mit Hilfe des Buches ABAP Objects erarbeitet habe.

Code: Alles auswählen.

loop at t_dbtab into wa_dbtab .

cl_abap_typedescr=>describe_by_name(
EXPORTING p_name = wa_dbtab-tname
RECEIVING p_descr_ref = type_descr
EXCEPTIONS type_not_found = 4 ).

if sy-subrc  = 4.

write: 'typedescr', wa_dbtab-tname, '/'.
*  Message 'Type not found ' TYPE 'I' DISPLAY LIKE 'E'.
*  return.
  endif.

try.

  struct_descr ?= type_descr.

  catch cx_sy_move_cast_error into error.
*    MESSAGE error type 'I' DISPLAY LIKE 'E'.
    write: 'structdescr', '/'.
    return.
endtry.
try.
components = struct_descr->get_components( ).

struct_descr = cl_abap_structdescr=>create( components ).
table_descr = cl_abap_tabledescr=>create( struct_descr ).

catch cx_sy_struct_creation
      cx_sy_table_creation into error.
*Message error type 'I' Display like 'E'.
write: 'cx_sy_struct_creation', '/'.
return.

endtry.

try .
  create data table_ref type handle table_descr.
  assign table_ref->* to <table>.

 catch cx_sy_create_data_error into error.
*   message error type 'I' DISPLAY LIKE 'E'.
write: 'table ref', '/'.
   return.
endtry.
try.
  Select (wa_dbtab-cols)
        FROM (wa_dbtab-tname) into CORRESPONDING FIELDS OF TABLE <table>.


  catch cx_sy_sql_error into error.
*    Message error type 'I' display like 'E'.
write: 'sql error', '/'.
    return.



endtry.

display( <table> ).

endloop.
Ich habe in der t_dbtab ca. 8000 Tabellen, bei ca. 400 werden Exceptions unterschiedlicher Art geworfen. Ich denke, das liegt daran, dass es zum einen Strukturen und keine Tabellen sind zum Anderen, dass einige Tabellen auch komplett leer sind. Hat jemand eine Idee, wie ich dies abfangen kann?

Vielen Dank im Voraus
Patrick

Re: Überprüfung der Sprachpflege

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
hi!

Alle Tabellen im SAP haben das Kennzeichen TABCLASS = TRANSP in der Definition (DD02L)
Wenn du vor der ganzen Verarbeitung mit dem Funktionsbaustein DDIF_FIELDINFO_GET die Tabellenklasse und auch die Felder prüfst solltest du eigentlich so ziemlich alle Exceptions im Keim ersticken.

Evtl. bist du mit der Variante DDIF_FIELDINFO_GET auch schneller als die RTTI zu bemühen.

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: Überprüfung der Sprachpflege

Beitrag von Spookykid (Specialist / 140 / 28 / 0 ) »
@ a-d-t; sorry, dass ich auf deinen beitrag nicht geantwortet habe, wollte diese Aufgabe wohl unterbewusst verdrängen ^^

Ich mal mein Code um die Tabellen und deren Spalten zu erhalten.

Vorsicht!!! Erfahrene Programmierer werden wohl stark den Kopf schüttlen.

Mit diesem Code erhalte ich eine interne Tabelle, die die relevanten custm. Tabellen beinhaltet

Code: Alles auswählen.

select dd02l~tabname dd03l~fieldname dd03l~languflag  from dd02l
    inner join dd03l on dd02l~tabname = dd03l~tabname
    into table t_itab
    where ( dd02l~contflag = 'C' or
            dd02l~contflag = 'G' ) and
            dd02l~tabclass = 'TRANSP'.



    sort t_itab ascending by tname.

* Interne Tabelle wird geloopt, sollte ein Sprachfeld vorhanden sein, wird das interne Sprachkennzeichen gesetzt und an eine weitere interne Tabelle übergeben.

    loop at t_itab into wa_dbtab.

*Abfangen der Daten beim ersten Durchgang.
      if wa_dbtab_temp-tname is initial.
        wa_dbtab_temp-tname = wa_dbtab-tname.
      endif.


*Wenn die Tabellennamen identisch sind werden die Spaltenfelder miteinander verbunden.
      if wa_dbtab_temp-tname = wa_dbtab-tname.

*Sollte die Spalte Include oder ähnlich heißen, wird diese nicht übernommen, da Select damit nicht umgehen kann.
        if wa_dbtab-cols cp '.*'.
          continue.
        endif.
        concatenate wa_dbtab_temp-cols wa_dbtab-cols into wa_dbtab_temp-cols separated by space.

*Sollte die Tabelle ein Sprachfeld haben, wird dies vermerkt.
        if wa_dbtab-langu = 'X' or wa_dbtab_temp-langu = 'X'.
          langu_sign = 'X'.
        endif.
      endif.


*Sollten die Tabellennamen ungleich und das Sprachkennzeichen gesetzt sein, wird der Satz in die interne Tabelle gespeichert werden
      if wa_dbtab_temp-tname <> wa_dbtab-tname and
        langu_sign = 'X' and
        wa_dbtab_temp-tname is not initial.

*Solle das erste Zeichen des Spaltenchars ein Leerzeichen sein, wird dieses gelöscht.
        if wa_dbtab_temp-cols(1) = ' '.
          shift wa_dbtab_temp-cols by 1 places left.
        endif.

        append wa_dbtab_temp to t_dbtab.
        clear: wa_dbtab_temp, langu_sign.

* Sicherung der ersten Spalte der folgenden (Vergleichs)Tabelle.
        wa_dbtab_temp = wa_dbtab.

* Sollte die Tabelle kein Sprachfeld haben
      elseif wa_dbtab_temp-tname <> wa_dbtab-tname and langu_sign <> 'X'.
        clear wa_dbtab_temp.
* Sicherung der ersten Spalte der folgenden (Vergleichs)Tabelle.
        wa_dbtab_temp = wa_dbtab.

      endif.

    endloop.


*Hier wird sichergestellt, dass die letzte Tabelle ebenfalls mitaufgenommen wird.
    if langu_sign = 'X'.
*Solle das erste Zeichen des Spaltenchars ein Leerzeichen sein, wird dieses gelöscht.
      if wa_dbtab_temp-cols(1) = ' '.
        shift wa_dbtab_temp-cols by 1 places left.
      endif.
      append wa_dbtab_temp to t_dbtab.
      clear: wa_dbtab_temp, wa_dbtab, langu_sign.
    endif.

Mit diesem Code wird die Tabelle geloopt und zur Laufzeit die Struktur der entsprechenden Tabelle erstellt und ein Select Stmt ausgeführt.

Code: Alles auswählen.

  loop at t_dbtab into wa_dbtab." where tname <>  '/IXOS/RM_TDL1' or
                                 "      tname <> 'ACCACCOUNT0T'.

      cl_abap_typedescr=>describe_by_name(
      exporting p_name = wa_dbtab-tname
      receiving p_descr_ref = type_descr
      exceptions type_not_found = 4 ).


       if sy-subrc  = 4.

        write: 'Type not found ', wa_dbtab-tname, /.
*         Message 'Type not found ' TYPE 'I' DISPLAY LIKE 'E'.
         continue.
      endif.

      try.

          struct_descr ?= type_descr.

        catch cx_sy_move_cast_error into error.
*    MESSAGE error type 'I' DISPLAY LIKE 'E'.
          write: 'structdescr',wa_dbtab-tname,  /.
          continue.
      endtry.
      try.
          components = struct_descr->get_components( ).

          struct_descr = cl_abap_structdescr=>create( components ).
          table_descr = cl_abap_tabledescr=>create( struct_descr ).

        catch cx_sy_struct_creation
              cx_sy_table_creation into error.
*Message error type 'I' Display like 'E'.
          write: 'cx_sy_struct_creation',wa_dbtab-tname, /.
          continue.

      endtry.

      try .
          create data table_ref type handle table_descr.
          assign table_ref->* to <table>.

        catch cx_sy_create_data_error into error.
*   message error type 'I' DISPLAY LIKE 'E'.
          write: 'table ref',wa_dbtab-tname, /.
          continue.
      endtry.
      try.
          select (wa_dbtab-cols)
                from (wa_dbtab-tname) into corresponding fields of table <table>.


        catch cx_sy_sql_error into error.
*    Message error type 'I' display like 'E'.
          write: 'sql error bei tabelle', wa_dbtab-tname, /.
          continue.



      endtry.

*  call METHOD display( EXPORTING result = <table> ).

    endloop.

  endmethod.                    "main


Kommen wir zu eigentlichen Frage:

Während der Ausführung wird 137 mal WRITE benützt. Könnt ihr mir sagen, wieso genau bei diesen Tabellen ein error geworfen wird?
  • Fehler Tabelle
    cx_sy_struct_creation IWADM
    sql error bei tabelle ACCACCOUNT0T
    sql error bei tabelle ACCCHRTACCTS0T
    sql error bei tabelle ACCDBS0T
    sql error bei tabelle ACCDOCTYPE0T
    sql error bei tabelle ACCLEGENT0T
    sql error bei tabelle ACCSYS0T
    sql error bei tabelle ACCTRANTYPE0T
    sql error bei tabelle ACC_JOURNAL0T
    sql error bei tabelle ADRCITYT
    sql error bei tabelle ADRDIF_CT
    sql error bei tabelle BIWTDUR_CV
    sql error bei tabelle CLPROF
    sql error bei tabelle COMC_PRVIEW_T
    sql error bei tabelle COMS_PRCATVIEW_T
    sql error bei tabelle CVCCN
    sql error bei tabelle DMS_LO_CD1
    sql error bei tabelle FDT_ADMN_0100
    sql error bei tabelle FDT_ADMN_0111
    sql error bei tabelle FDT_CTLG_0600
    sql error bei tabelle FDT_EXTY_0100
    sql error bei tabelle FINCHOFACCT0T
    sql error bei tabelle FINVALFUNC0T
    sql error bei tabelle FINVALMETHOD0T
    sql error bei tabelle FINVALSTRAT0T
    sql error bei tabelle FPB_EXP_SECTT
    sql error bei tabelle FPB_EXP_STPT
    sql error bei tabelle HRP1041
    sql error bei tabelle HRP1206
    sql error bei tabelle HRP1774
    sql error bei tabelle HRPXXXX
    sql error bei tabelle ICL_CPROFILE_EPT
    sql error bei tabelle J_1SPTAXL2
    sql error bei tabelle KLLRBT
    sql error bei tabelle LAW_DESCR_SYSTEM
    sql error bei tabelle OIUOW_LGL_FLD_TX
    sql error bei tabelle OIUREP_TEXT_STDD
    sql error bei tabelle OIUREP_VALTABCTX
    sql error bei tabelle SC2TESTCOUNTRYT
    sql error bei tabelle SWD_TEXT
    sql error bei tabelle T5DPBSZVAVT
    sql error bei tabelle T5UPBSDSCITYT
    sql error bei tabelle T5UPBSDSSTATET
    sql error bei tabelle TB024
    sql error bei tabelle TBCA_REL_STATUST
    sql error bei tabelle TCMS_AST_FLDS_T
    sql error bei tabelle TCMS_AST_TYP_T
    sql error bei tabelle TCMS_CAG_SA_ST_T
    sql error bei tabelle TCMS_CAG_SA_TY_T
    sql error bei tabelle TCMS_LIQ_P_TYP_T
    sql error bei tabelle TCMS_MVTY_PRTY_T
    sql error bei tabelle TCMS_OMS_VALTY_T
    sql error bei tabelle TCMS_PCN_CKY_T
    sql error bei tabelle TCMS_PCN_CR_TY_T
    sql error bei tabelle TCMS_PCN_PLPRC_T
    sql error bei tabelle TCMS_PRD_T
    sql error bei tabelle TCMS_RBL_PROD_T
    sql error bei tabelle TCMS_REL_GRP_T
    sql error bei tabelle TCMS_RE_PRT_TY_T
    sql error bei tabelle TCMS_SAS_TYP_T
    sql error bei tabelle TCMS_SEC_CL_TY_T
    sql error bei tabelle TCMS_TSK_TYP_T
    sql error bei tabelle TFILA_RE_CATT
    sql error bei tabelle TFILA_RE_TNRT
    sql error bei tabelle TJCHECKISSUET
    sql error bei tabelle TJD04
    sql error bei tabelle TJD10
    sql error bei tabelle TJD52
    sql error bei tabelle TJD56
    sql error bei tabelle TJD62
    sql error bei tabelle TJDOCTYPET
    sql error bei tabelle TJG95
    sql error bei tabelle TJGD2
    sql error bei tabelle TJGD6
    sql error bei tabelle TJH30
    sql error bei tabelle TJH72
    sql error bei tabelle TJH76
    sql error bei tabelle TJH80
    sql error bei tabelle TJHAH
    sql error bei tabelle TJHAPT
    sql error bei tabelle TJHBEGRPRT
    sql error bei tabelle TJHCHTYPE_AVMT
    sql error bei tabelle TJHCNTENT_VART
    sql error bei tabelle TJHDEST
    sql error bei tabelle TJHEM2T
    sql error bei tabelle TJHGRAPHIC_TYPET
    sql error bei tabelle TJHOLBMET
    sql error bei tabelle TJHSIBTYPT
    sql error bei tabelle TJHTSYST
    sql error bei tabelle TJHVCAAT
    sql error bei tabelle TJHVKLT
    sql error bei tabelle TJHVZCCT
    sql error bei tabelle TJHWWW_JHAWT
    sql error bei tabelle TJHWWW_JHB4T
    sql error bei tabelle TJI22
    sql error bei tabelle TJI24
    sql error bei tabelle TJJ10
    sql error bei tabelle TJJ12
    sql error bei tabelle TJJ20
    sql error bei tabelle TJJ40
    sql error bei tabelle TJJ42
    sql error bei tabelle TJJ50
    sql error bei tabelle TJJ62
    sql error bei tabelle TJJ70
    sql error bei tabelle TJJAI
    sql error bei tabelle TJJB6
    sql error bei tabelle TJJBEVTMDT
    sql error bei tabelle TJJBEVTPAT
    sql error bei tabelle TJJKGRPT
    sql error bei tabelle TJJLFT
    sql error bei tabelle TJJPLZONLT
    sql error bei tabelle TJJV7T
    sql error bei tabelle TJJW2
    sql error bei tabelle TJK16
    sql error bei tabelle TJK88
    sql error bei tabelle TJKSOCREATET
    sql error bei tabelle TJL28
    sql error bei tabelle TJPPERIOD02
    sql error bei tabelle TJR40
    sql error bei tabelle TJSEARCHADDISST
    sql error bei tabelle TJV88
    sql error bei tabelle TJV90
    sql error bei tabelle TJV96
    sql error bei tabelle TJV98
    sql error bei tabelle TJYCIC_MAM_OLSTT
    sql error bei tabelle TUWS_SURVEY_GRPT
    sql error bei tabelle TUWS_TARGETHIERT
    sql error bei tabelle UDM_STRATEGYT_V
    sql error bei tabelle UMB_MC105
    sql error bei tabelle UMB_SC191
    sql error bei tabelle UMB_ST101
    sql error bei tabelle UMC_TD110
    sql error bei tabelle UMM_VA101
    sql error bei tabelle UMR_TL100T
    sql error bei tabelle UMV_TR123
    sql error bei tabelle UXS_DATAT
    Type not found /IXOS/RM_TDL1
Vielen Dank im Voraus.

Re: Überprüfung der Sprachpflege

Beitrag von Spookykid (Specialist / 140 / 28 / 0 ) »
ok, die sql error konnte ich lösen.

Mein algorithmus um die Spaltennamen in einen String zu schreiben ist ziemlich tückisch.

Zeile

if wa_dbtab-cols cp '.*'.

muss in

if wa_dbtab-cols cp '.*' or wa_dbtab_temp-cols cp '.*'.

geändert werden. Sollte es jemanden interessieren ;-)

Re: Überprüfung der Sprachpflege

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »
Hallo spookykid,

ein paar Stichproben deuten darauf hin, dass die Strukturbeschreibung dieser Tabellen mittels ".include ...." realisiert wurde. Irgendetwas hast du in deinem Coding ja schon gemacht um mit diesem Fall umzugehen - aber das war wohl nicht genug.

Davon abgesehen ist auch die Art der Tabellenerzeugung etwas umständlich. Versuch doch mal folgenden Ansatz - der ist recht gut lesbar und es ist egal wie eine Struktur definiert wurde

Code: Alles auswählen.

REPORT.

PARAMETERS: p_tab TYPE tabname OBLIGATORY DEFAULT 'T000'.

DATA: dref TYPE REF TO data.
FIELD-SYMBOLS: <tab> TYPE STANDARD TABLE.


CREATE DATA dref TYPE STANDARD TABLE OF (p_tab) WITH NON-UNIQUE DEFAULT KEY.
ASSIGN dref->* TO <tab>.

SELECT *
  INTO TABLE <tab>
  FROM (p_tab).
BREAK-POINT.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Spookykid

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Überprüfung der Sprachpflege

Beitrag von Spookykid (Specialist / 140 / 28 / 0 ) »
@black_adept

wow, dein code ist tatsächlich um einiges einfacher und auch kürzer. Ich habe mich bei der Erstellung des Codes an das Buch Abap Objects von Keller gehalten.

Bei der Nutzung deines Codes werde aber die gleichen Exceptions geworfen.

Code: Alles auswählen.

    loop at t_dbtab into wa_dbtab
      where
     tname ne 'IWADM' or
     tname ne '/IXOS/RM_TDL1'.
Es sind genau die unten aufgeführten Tabellennamen, die das Problem verursachen. Komischerweise bekomme ich trotz der where-Klausel diese noch in mein wa. Irgendwie sehe ich den Wald vor Bäumen nicht mehr.

Re: Überprüfung der Sprachpflege

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »
where
tname ne 'IWADM' or
tname ne '/IXOS/RM_TDL1'.

Komischerweise bekomme ich trotz der where-Klausel diese noch in mein wa. Irgendwie sehe ich den Wald vor Bäumen nicht mehr.
Elementare Aussagenlogik:
A <> X1 ODER A <> X2
<==> ( De Morgan)
Nicht( A=X1 UND A=X2 )

Falls X1 <> X2 ist, kann A nicht die Bedingungen A=X1 und A=X2 gleichzeitig erfüllen, so dass die Klammer immer Falsch ist
<==>
Nicht(Falsch) <==> Wahr
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Überprüfung der Sprachpflege

Beitrag von Spookykid (Specialist / 140 / 28 / 0 ) »
erledigt.....

Re: Überprüfung der Sprachpflege

Beitrag von Spookykid (Specialist / 140 / 28 / 0 ) »
Hallo,

hat jemand ne Idee, wie ich die Datenelemente einzelner Felder oder ganzer DDICT Tabellen herausfinden kann?

Für die Sprachanalyse ist der Feldname leider nicht ausreichend. Auf Datenelementebene existieren bei Sprachfeldern jedoch nur LANGU und SPRAS, afaik.

Grüße

Re: Überprüfung der Sprachpflege

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
hi!

Der Funktionsbaustein DDIF_FIELDINFO_GET ist das was du brauchst.
Und prüfen solltest du nicht den Namen sondern auf DATATYPE = LANG

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: Überprüfung der Sprachpflege

Beitrag von Spookykid (Specialist / 140 / 28 / 0 ) »
a-d-ts erster reply auf dieses Thema
Hilfsstruktur 1 mit Hilfsstruktur 2 vergleichen (Gruppierungsbedingung) und dann prüfen ob der gesuchte Text (Feld welches nicht im KEY der Tabelle vorkommt; siehe DDIF_FIELDINFO_GET) in der Sprache XYZ vorkommt.
Das Problem ist, dass einige Tabellen mehrere Nicht-Key-Felder haben und diese auch kein einheitliches Datenelement besitzen.

Vergleichbare Themen

12
Antw.
11346
Views
URL Überprüfung
von Luigi91 » 28.03.2014 07:55 • Verfasst in ABAP Objects®
0
Antw.
925
Views
Überprüfung von Feldinhalten
von KLeinerj » 01.12.2005 07:58 • Verfasst in ABAP® Core
0
Antw.
1147
Views
1
Antw.
1587
Views
Überprüfung ob FUBA vorhanden ist
von nkuhn » 02.02.2007 07:40 • Verfasst in Basis
2
Antw.
1950
Views
Überprüfung der Materialreservierung für Kundenauftrag
von cuncon » 07.11.2017 08:16 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Eclipse - warum/wann verwendet ihr es [nicht]
vor 52 Minuten von ewx 17 / 1031
Dialog-Container mit Toolbar/Status
vor 6 Stunden von DeathAndPain gelöst 20 / 2493
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1633

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.

Aktuelle Forenbeiträge

Eclipse - warum/wann verwendet ihr es [nicht]
vor 52 Minuten von ewx 17 / 1031
Dialog-Container mit Toolbar/Status
vor 6 Stunden von DeathAndPain gelöst 20 / 2493
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1633

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 697
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2327
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8909