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...
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
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