Kostenartentexte und Sachkontentexte in andere Sprache kopieren
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
Standardtexte in andere Sprachen kopieren
Anbei ein kleines Hilfstool, mit dem Standardtexte (SO10) in anderen Sprachen angelegt werden können. Es versteht sich wohl von selbst, dass die Texte nur kopiert und nicht übersetzt werden. Das Verfahren eignet sich z.B. für die Vervielfältigung von Adress-Textbausteinen in andere Sprachen...
Beispiel: "Kopiere alle Texte ZADR*, Text-ID ADRS von DE nach IT"
* Standardtexte (SO10) von einer Sprache in eine * andere kopieren (nur kopieren[!] nicht übersetzen[!]) * Wer möchte, kann natürlich gerne einen Übersetzungsroboter * dazubauen!!! REPORT yytxcopy NO STANDARD PAGE HEADING LINE-SIZE 255. TABLES: rssce, stxh. INCLUDE bdcrecx1. SELECTION-SCREEN ULINE. SELECT-OPTIONS: so_txnam FOR rssce-tdname OBLIGATORY. "Text-name PARAMETERS: pa_tdid LIKE rssce-tdid OBLIGATORY, "Text-ID pa_slang LIKE sy-langu OBLIGATORY "Source language DEFAULT sy-langu, p_tlang LIKE sy-langu OBLIGATORY. "Target language START-OF-SELECTION. PERFORM open_group. SELECT * FROM stxh WHERE tdobject = 'TEXT' AND tdname IN so_txnam AND tdid = pa_tdid AND tdspras = pa_slang. PERFORM so10. ENDSELECT. PERFORM close_group. *&---------------------------------------------------------------------* *& Form so10 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM so10. PERFORM bdc_dynpro USING 'SAPMSSCE' '1100'. PERFORM bdc_field USING 'BDC_CURSOR' 'RSSCE-TDSPRAS'. PERFORM bdc_field USING 'BDC_OKCODE' '=EDIT'. PERFORM bdc_field USING 'RSSCE-TDNAME' stxh-tdname. PERFORM bdc_field USING 'RSSCE-TDID' stxh-tdid. PERFORM bdc_field USING 'RSSCE-TDSPRAS' stxh-tdspras. PERFORM bdc_dynpro USING 'SAPLSTXX' '1100'. PERFORM bdc_field USING 'BDC_CURSOR' 'RSTXT-TXLINE(02)'. PERFORM bdc_field USING 'BDC_OKCODE' '=TXNA'. PERFORM bdc_dynpro USING 'SAPLSTXX' '1111'. PERFORM bdc_field USING 'BDC_CURSOR' 'RSTXT-TDSPRAS'. PERFORM bdc_field USING 'BDC_OKCODE' '=PPUP'. PERFORM bdc_field USING 'RSTXT-TDNAME' stxh-tdname. PERFORM bdc_field USING 'RSTXT-TDID' stxh-tdid. PERFORM bdc_field USING 'RSTXT-TDSPRAS' p_tlang. PERFORM bdc_dynpro USING 'SAPLSTXX' '1100'. PERFORM bdc_field USING 'BDC_CURSOR' 'RSTXT-TXLINE(02)'. PERFORM bdc_field USING 'BDC_OKCODE' '=TXBA'. PERFORM bdc_dynpro USING 'SAPMSSCE' '1100'. PERFORM bdc_field USING 'BDC_CURSOR' 'RSSCE-TDNAME'. PERFORM bdc_dynpro USING 'SAPMSSCE' '1100'. PERFORM bdc_field USING 'BDC_CURSOR' 'RSSCE-TDSPRAS'. PERFORM bdc_field USING 'BDC_OKCODE' '=TXBA'. PERFORM bdc_field USING 'RSSCE-TDNAME' stxh-tdname. PERFORM bdc_field USING 'RSSCE-TDID' stxh-tdid. PERFORM bdc_field USING 'RSSCE-TDSPRAS' stxh-tdspras. PERFORM bdc_transaction USING 'SO10'. REFRESH bdcdata. ENDFORM. "so10
Entwicklung des gleitenden Durchschnittspreises (GLD) eines Materials / Artikels
Nachfolgend ein Link von der Tricktresor-Seite, welcher zwei Reports vorstellt, die die Entwicklung des GLDs darstellen. Als MMler steht man oft vor der Frage, wie sich der GLD eines Materials bzw. Artikels im SAP Retail so (falsch) entwickeln konnte. Den "Übeltäter-Vorgang" zu entlarven ist nicht immer einfach - die beiden im Artikel genannten Reports können helfen, dem Spuk auf die Schliche zu kommen...
/image%2F1473637%2F20170207%2Fob_adae32_profilbild.png)
/http%3A%2F%2Fwww.tricktresor.de%2Fwp-content%2Fuploads%2F2014%2F12%2Fgld.jpg)