Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
16.02.2006
Zusammenfassung
Symptom
Die Verwendung eines Standardmakros ist nicht mglich.
Weitere Begriffe
Makro Macro /SAPAPO/SDP94 /SAPAPO/SNP94
Lsung
Das Problem kann durch Anlegen eines User-Exit-Makros gelst werden. Die genaue Vorgehensweise soll im folgenden illustriert werden. Ab SCM Release 5.0 wird empfohlen, anstelle eines User-Exit-Makros ein BAdI-Makro zu verwenden (siehe SAP Online Dokumentation).
28.07.2011
Seite 1 von
Hinweis 418801 -
Danach bettigen Sie die Drucktaste 'Komponenten' oder Umsch+F11 und doppelklicken Sie auf die Bezeichnung des Funktionsbausteins. Doppelklicken Sie auf das in dem Funktionsbaustein befindliche Include, um ihr Coding zu erfassen.
Schnittstelle
Im folgenden soll dargelegt werden, wie die Schnittstelle des Userexits zu fllen ist. Der Benutzer fllt bzw. modifiziert ausschlielich die Tabellen T_C_TAB T_E_TAB_OLD
Die Tabelle T_C_TAB ist hier die eigentliche Ausgabetabelle. T_E_TAB_OLD gibt Aufschlu ber Datenvernderungen und mu aus technischen Grnden gepflegt werden. Alle weiteren Tabellen dienen als Eingabeparameter. Die auf der Plantafel befindlichen Werte sind in der Tabelle T_C_TAB unter dem Feldnamen V abgelegt. Die Tabelleneintrge werden eindeutig durch ihren Zeilenindex Z und ihren Spaltenindex C festgelegt. Dabei liefert die Tabelle T_I_COLS die Spalteninformation, whrend sich die Zeileninformation aus einem inneren Join ber die Tabellen T_I_PLOB_VALUES und T_I_LINES ergibt. Zur Berechnung von Zeilen und Spalten werden die Parameter der folgenden Tabellen verwendet: Schnittstellen-Parameter -----------------------------------------------------------------| Tabelle | Feld | Beschreibung | -----------------------------------------------------------------| T_I_COLS | VONTG | Datumsuntergrenze | | T_I_COLS | BISTG | Datumsobergrenze | -----------------------------------------------------------------| T_I_PLOB_VALUES | SELECTION | Tabelle bestehend aus dem | | | | Merkmal IOBJNM und einer | | | | Ranges-Struktur | | T_I_PLOB_VALUES | PLOBJ | (fr Join-Bedingung) | | T_I_PLOB_VALUES| IOBJNM | Technische Bezeichnung des | | SELECTION | | betr. Merkmals | -----------------------------------------------------------------| T_I_LINES | FELDH | Technische Bezeichnung der | | | | betr. Kennzahl | | T_I_LINES | GRIDNR | Name des betr. Grids | | T_I_LINES | KRIT1 | (fr Join-Bedingung) | -----------------------------------------------------------------| T_C_TAB / T_E_TAB_OLD | Z | Zeilenindex der Plantafel | | T_C_TAB / T_E_TAB_OLD | C | Spaltenindex der Plantafel | | T_C_TAB / T_E_TAB_OLD | V | num. Plantafeleintrag | -----------------------------------------------------------------Um die Plantafeleintrge zu manipulieren, mssen die Matrixeintrge der der Tabelle T_C_TAB durch das Coding des User-Exits geeignet angepat werden. Jede einzelne Zelle wird dabei durch die Koordinaten der Matrix addressiert. Im einzelnen gehen Sie wie folgt vor:
28.07.2011 Seite 2 von 5
Hinweis 418801 -
Bestimmen Sie abhngig von den Datumsgrenzen VONTG und BISTG die Spalte C aus der Tabelle T_I_COLS. Prfen Sie ber die interne Tabelle T_I_PLOB_VALUES-SELECTION die Eindeutigkeit der Lsung und bestimmen Sie gegebenenfalls T_I_PLOB_VALUES-PLOBJ. Bestimmen Sie aus Tabelle T_I_LINES vermittels der Schlsselfelder T_I_PLOB_VALUES-PLOBJ FELDH GRIDNR = '001'
die Zeilennummer Z = T_I_LINES-LINE. o In die Tabelle T_C_TAB tragen Sie zum ermittelten Zeilen- und Spaltenindex den erwnschten Wert unter T_C_TAB-V ein. Falls ein Wert der Tabelle verndert werden soll, speichern Sie den frheren Eintrag der T_C_TAB in der strukturgleichen Tabelle T_E_TAB_OLD ab. Wird ein Wert in die Tabelle T_C_TAB neu eingefuegt, muss dabei in die Tabelle T_E_TAB_OLD ein Nullwert fuer die entsprechende Zeilen und Spaltennummer eingefuegt werden.
Bemerkungen
o Es is ntig, die Eindeutigkeit der Selektion sicherzustellen, sofern man Modifikationen auf der Stufe niedrigster Granularitt vornehmen mchte. Wir mchten uns hier auf diesen Fall beschrnken. Die technischen Bezeichnungen fr Kennzahl und Merkmal entnehmen Sie der Transaktion /SAPAPO/SDP8B.
Beispiel-Coding
Der folgende Funktionsbaustein belegt alle Buckets zur Kennzahl FELDH innerhalb des Zeitintervalles VONTG bis BISTG mit einem konstanten Wert V. Die Selektion wird durch die Felder IOBJNM und CHAR_VAL bestimmt, wobei ersteres der technische Name des Merkmals ist und letzteres den Wert des Merkmals bezeichnet. FUNCTION zfill_buckets *"---------------------------------------------------------------------*"*"Global interface: *" IMPORTING *" VALUE(I_CUBE) TYPE /SAPAPO/INFOCUBE *" VALUE(I_LAYOUT) TYPE /SAPAPO/LAYOUT *" VALUE(I_SCTYP) TYPE /SAPAPO/SCTYP *" VALUE(I_MACRO_NAME) TYPE /SAPAPO/TXMAK *" VALUE(I_ACT_PLOBJ) TYPE /SAPAPO/PLOBJ *" VALUE(VONTG) TYPE BEGDA *" VALUE(BISTG) TYPE ENDDA *" VALUE(IOBJNM) TYPE /SAPAPO/IOBJNM OPTIONAL *" VALUE(CHAR_VAL) TYPE /SAPAPO/CHAVL
28.07.2011 Seite 3 von 5
Hinweis 418801 -
*" VALUE(FELDH) TYPE /SAPAPO/IOBJNM *" VALUE(V) TYPE I *" TABLES *" T_I_PLOB_VALUES TYPE /SAPAPO/DM_T_PLOB_VALUES *" T_I_DRILL_HIER STRUCTURE /SAPAPO/PGAN *" T_I_LINES STRUCTURE /SAPAPO/MCP6_LI *" T_I_COLS STRUCTURE /SAPAPO/PGCOLS *" T_C_TAB STRUCTURE /SAPAPO/MXSOP *" T_E_TAB_OLD STRUCTURE /SAPAPO/MXSOP *"---------------------------------------------------------------------DATA: l_selection LIKE LINE OF t_i_plob_values-selection. DATA: l_line LIKE LINE OF t_i_lines. DATA: l_tab LIKE LINE OF t_c_tab. DATA: l_col LIKE LINE OF t_i_cols. DATA: l_column LIKE t_i_cols-column. DATA: l_cnt TYPE i. DATA: l_gridnr TYPE char3 VALUE '001'. DATA: l_index LIKE sy-tabix. * read table t_i_cols index 1 into l_col. LOOP AT t_i_cols INTO l_col WHERE bistg <= bistg AND vontg >= vontg. l_column = l_col-column. LOOP AT t_i_plob_values. For checking uniqueness calculate # entries CLEAR l_cnt. LOOP AT t_i_plob_values-selection INTO l_selection WHERE iobjnm = iobjnm AND low = char_val. l_cnt = l_cnt + 1. IF l_cnt > 1. EXIT. ENDIF. ENDLOOP.
IF sy-subrc <> 0 OR l_cnt > 1. CONTINUE. ENDIF. READ TABLE t_i_plob_values-selection WITH KEY iobjnm = iobjnm low = char_val z = l_line-line c = l_column TRANSPORTING NO FIELDS. * store old value IF sy-subrc = 0. MODIFY t_e_tab_old FROM l_tab INDEX sy-tabix. ELSE. APPEND l_tab TO t_e_tab_old. ENDIF. * store new value l_tab-v = v. MODIFY t_c_tab FROM l_tab INDEX l_index. ENDLOOP. ENDLOOP. ENDFUNCTION.
28.07.2011 Seite 4 von 5
Hinweis 418801 -
Kopfdaten
Freigabestatus: Freigegeben am: Mastersprache: Proritt: Kategorie: Hauptkomponente: Zustzliche Komponenten: SCM-APO-SNP-MAC MacroBuilder Fr Kunden freigegeben 16.02.2006 09:45:22 Deutsch Korrektur mit mittlerer Prioritt Beratung SCM-APO-FCS-MAC MacroBuilder
Gltige Releases
Software Komponente SAP_APO SAP_APO SCM SCM SCM SCM Release 30 310 400 410 500 510 Von Release 30A 310 400 410 500 510 Bis Release 30A 310 400 410 500 510 und folgende
Verwandte Hinweise
Nummer 1045639 539797 Kurztext Beratungshinweise fr SNP/CTM Sammelberatungshinweis fr Makros
28.07.2011
Seite 5 von