Overblog Alle Blogs
Edit post Folge diesem Blog Administration + Create my blog
MENU
Werbung
SAPManDoo - SAP Resource

Kostenartentexte und Sachkontentexte in andere Sprache kopieren

4. Dezember 2017 , Geschrieben von sapmandoo Veröffentlicht in #SAP Reports, #FI, #CO, #Basis-Entwicklung allg.

Das hat vermutlich jeder schon mal erlebt: man meldet sich in einer Sprache <> DE im System an und bei der Anzeige von Sachkonten und/oder Kostenarten fehlen die Texte, weil bei der Anlage von neuen Konten das Übersetzen vergessen bzw. unterlassen wurde.

Anbei zwei Reports, die Kostenarten- und Sachkontentexte von einer Quellsprache in eine Zielsprache kopieren. Ein Anwendungsfall könnte bspw. sein, dass die englischen Texte in andere (Fremd-) Sprachen kopiert werden sollen, damit die ausländischen Kollegen in ihren Reports wenigstens die englischen Kontenbezeichnungen sehen...

 

Werbung

Kopieren von Sachkontentexten

 

REPORT z_copy_sako_texts
       NO STANDARD PAGE HEADING LINE-SIZE 255.

*******************************************************************
* Rohde 01/2010
*******************************************************************
* Kopieren(!) von Sachkonten-Texten (Kurz und Langtext) von einer
* Sprache in eine andere. So lassen sich z.B. die englischen
* Sachkontenbezeichnungen auch in andere Sprachen kopieren, damit
* man bspw. bei Anmeldung in Spanisch keine leeren Sachkontentexte
* vorfindet. Die Betonung liegt auf KOPIEREN, nicht übersetzen,
* so schlau ist das Programm leider noch nicht!!!!
* Die Änderungen werden per Batch-Input durchgeführt. Bestehende
* Texte in der Zielsprache werden NICHT überschrieben.
*******************************************************************
TABLES: skat, ska1, t001.

INCLUDE bdcrecx1.

SELECTION-SCREEN ULINE.
SELECT-OPTIONS: so_saknr FOR skat-saknr.          "Sachkonten
* Achtung: die Angabe Buchungskreis wird nur zur Ermitlung des
* Kontenplans benötigt. Das Programm muss nicht pro Buchungskreis
* laufen, da die Texte buchungskreisunabhängig sind!!!!
PARAMETERS: pa_bukrs LIKE t001-bukrs OBLIGATORY.  "Buchungskreis
PARAMETERS: pa_qlang LIKE sy-langu OBLIGATORY.    "Quell-Sprache
PARAMETERS: pa_zlang LIKE sy-langu OBLIGATORY.    "Ziel-Sprache
PARAMETERS: pa_test AS CHECKBOX DEFAULT 'X'.      "Testlauf

DATA: i_skat TYPE TABLE OF skat.
DATA: wa_skat TYPE skat.

START-OF-SELECTION.

  IF pa_test IS INITIAL.
    PERFORM open_group.
  ENDIF.
* Buchungskreisdaten inkl. Kontenplan holen
  SELECT SINGLE * FROM t001 WHERE bukrs = pa_bukrs.
  CHECK sy-subrc = 0.
  SELECT * FROM  skat   INTO TABLE i_skat
         WHERE  spras  = pa_qlang
         AND    ktopl  = t001-ktopl
         AND    saknr IN so_saknr.
  LOOP AT i_skat INTO wa_skat.
    SELECT SINGLE COUNT(*) FROM  skat
           WHERE  spras  = pa_zlang
           AND    ktopl  = wa_skat-ktopl
           AND    saknr  = wa_skat-saknr.
    IF sy-subrc = 0.
      WRITE: / 'Konto', wa_skat-saknr,
               'Text in Sprache', pa_zlang, 'schon vorhanden'.
    ELSE.
      PERFORM protokoll.
      IF pa_test IS INITIAL.
        PERFORM fs00.
      ENDIF.
    ENDIF.
  ENDLOOP.
  IF pa_test IS INITIAL.
    PERFORM close_group.
  ENDIF.

*&---------------------------------------------------------------------*
*&      Form  fs00
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM fs00.

  PERFORM bdc_dynpro      USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
  PERFORM bdc_field       USING 'BDC_OKCODE'
                                '=TAB04'.
  PERFORM bdc_field       USING 'BDC_CURSOR'
                                'GLACCOUNT_SCREEN_KEY-SAKNR'.
  PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_KEY-SAKNR'
                                wa_skat-saknr.
  PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_KEY-BUKRS'
                                pa_bukrs.
  PERFORM bdc_dynpro      USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
  PERFORM bdc_field       USING 'BDC_OKCODE'
                                '=ACC_MOD'.
  PERFORM bdc_field       USING 'BDC_CURSOR'
                                'GLACCOUNT_SCREEN_KEY-SAKNR'.
  PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_KEY-SAKNR'
                                wa_skat-saknr.
  PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_KEY-BUKRS'
                                pa_bukrs.
  PERFORM bdc_dynpro      USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
  PERFORM bdc_field       USING 'BDC_OKCODE'
                                '=2105_P++'.
  PERFORM bdc_field       USING 'BDC_CURSOR'
                                'GLACCOUNT_SCREEN_COA-LANGU_KW(01)'.
  PERFORM bdc_dynpro      USING 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
  PERFORM bdc_field       USING 'BDC_OKCODE'
                                '=SAVE'.
  PERFORM bdc_field       USING 'BDC_CURSOR'
                                'GLACCOUNT_SCREEN_COA-TXT50_TX(01)'.
  PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-LANGU_TX(01)'
                                pa_zlang.
  PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-TXT20_TX(01)'
                                wa_skat-txt20.
  PERFORM bdc_field       USING 'GLACCOUNT_SCREEN_COA-TXT50_TX(01)'
                                wa_skat-txt50.
  PERFORM bdc_transaction USING 'FS00'.

ENDFORM.                    "fs00
*&---------------------------------------------------------------------*
*&      Form  PROTOKOLL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM protokoll .
  WRITE: / wa_skat-saknr,
           pa_zlang,
           wa_skat-txt20,
           wa_skat-txt50.

ENDFORM.                    " PROTOKOLL

Kopieren von Kostenartentexten

Werbung
REPORT  z_copy_kstar_texts.

*******************************************************************
* Rohde 01/2010
*******************************************************************
* Kopieren(!) von Kostenarten-Texten (Kurz und Langtext) von einer
* Sprache in eine andere. So lassen sich z.B. die englischen
* Kostenartenbezeichnungen auch in andere Sprachen kopieren, damit
* man bspw. bei Anmeldung in Spanisch keine leeren Kostenartentexte
* vorfindet. Die Betonung liegt auf KOPIEREN, nicht übersetzen,
* so schlau ist das Programm leider noch nicht!!!!
* Die Änderungen werden per BAPI durchgeführt. Bestehende
* Texte in der Zielsprache werden NICHT überschrieben.
*******************************************************************

TABLES: csku, tka01.

DATA: git_csku TYPE TABLE OF csku,
      gs_csku  TYPE csku.
DATA: git_textmdco  TYPE TABLE OF textmdco,
      gs_textmdco    TYPE textmdco.

*******************************************************************
PARAMETERS: pa_kokrs LIKE tka01-kokrs OBLIGATORY.  "Kostenrech.kreis
SELECT-OPTIONS: so_kstar FOR csku-kstar.           "Kostenart
PARAMETERS: pa_qlang LIKE csku-spras OBLIGATORY,   "Quell-Sprache
            pa_zlang LIKE csku-spras OBLIGATORY.   "Ziel-Sprache
PARAMETERS: pa_test AS CHECKBOX DEFAULT 'X'.       "Testlauf
*******************************************************************

*******************************************************************
START-OF-SELECTION.
*******************************************************************

  SELECT SINGLE * FROM tka01 WHERE kokrs = pa_kokrs.
  IF sy-subrc NE 0.
    MESSAGE e600(fr) WITH 'Kostenrechungskreis' pa_kokrs
                          'ungültig'.
  ENDIF.

  SELECT * FROM  csku INTO TABLE git_csku
         WHERE  spras  = pa_qlang
         AND    ktopl  = tka01-ktopl
         AND    kstar IN so_kstar.

  LOOP AT git_csku INTO gs_csku.
    SELECT SINGLE * FROM  csku
           WHERE  spras  = pa_zlang
           AND    ktopl  = gs_csku-ktopl
           AND    kstar  = gs_csku-kstar.
    IF sy-subrc = 0.
      SUMMARY.
      WRITE: / 'Text zu Kostenart',
             gs_csku-kstar,
             'in Sprache', pa_zlang,
             'schon vorhanden'.
    ELSE.
      REFRESH git_textmdco.
      CLEAR   gs_textmdco.
      gs_textmdco-spras = pa_zlang.
      gs_textmdco-ktext = gs_csku-ktext.
      gs_textmdco-ltext = gs_csku-ltext.
      APPEND gs_textmdco TO git_textmdco.
      IF pa_test = space.
        PERFORM update_kstar_texts.
      ELSE.
        DETAIL.
        WRITE: / gs_csku-ktopl,
                 gs_csku-kstar,
                 gs_textmdco-spras,
                 gs_textmdco-ktext,
                 gs_textmdco-ltext.
      ENDIF.
    ENDIF.
  ENDLOOP.


*&---------------------------------------------------------------------*
*&      Form  update_kstar_texts
*&---------------------------------------------------------------------*
*       BAPI-Aufruf Ändern Kostenartentext
*----------------------------------------------------------------------*
FORM update_kstar_texts.

  CALL FUNCTION 'K_COSTELEMENT_CHANGE_TEXT'
    EXPORTING
      ktopl        = gs_csku-ktopl
      kstar        = gs_csku-kstar
    TABLES
      texttable    = git_textmdco
    EXCEPTIONS
      not_found    = 1
      foreign_lock = 2
      OTHERS       = 3.
  IF sy-subrc <> 0.
    SUMMARY.
    WRITE: 'Fehler', sy-subrc, 'beim Update Kostenart', gs_csku-kstar.
  ELSE.
    DETAIL.
    WRITE: 'Kostenart', gs_csku-kstar, 'aktualisiert'.
  ENDIF.

ENDFORM.                    "update_kstar_texts
Diesen Post teilen
Repost0
Um über die neuesten Artikel informiert zu werden, abonnieren:
Kommentiere diesen Post