Mittwoch, 26. August 2009

Vertretung im Workplace SBWP nachträglich pflegen

In der Tabelle HRUS_D2 werden die Vertretungen für User gespeichert - leider gibt es dazu keinen Pflegeview und somit kann ein Administrator hier nur beauskunften ob ein User der im Urlaub ist auch seine Vertretung aktiv hinterlegt hat!

Mit diesem einfachen Report kann man den Vertreter als Administrator hinterlegen - in manchen Fällen ist das sehr sehr hilfreich (besonders bei Krankeit eines Users usw.)

*&---------------------------------------------------------------------*
*& Report Z_ACTIVATE_SUBSTITUTE
*&
*&---------------------------------------------------------------------*
*&
*& Workflow Verterter aktiveren
*&---------------------------------------------------------------------*

REPORT Z_ACTIVATE_SUBSTITUTE.

PARAMETERS:

P_usern1 TYPE usr02-bname obligatory,
P_vertr Type usr02-bname obligatory,
P_begdt type BEGDA obligatory default sy-datum,
P_enddt TYPE ENDDA OBLIGATORY,
P_prof TYPE T77RP-REPPR DEFAULT 'ALL' OBLIGATORY,
p_active like hrus_d2-active.

PARAMETERS:

p_insert radiobutton group g1,
p_delete radiobutton group g1.

constants: c_true value 'X',
c_false value space.

data: gs_hrus_d2 like hrus_d2,
gflg_error.

START-OF-SELECTION.

perform check_data changing gflg_error.

if gflg_error = c_false.
clear gs_hrus_d2.
gs_hrus_d2-us_name = p_usern1.
gs_hrus_d2-rep_name = p_vertr.
gs_hrus_d2-begda = P_begdt.
gs_hrus_d2-endda = P_enddt.
gs_hrus_d2-active = p_active.
gs_hrus_d2-REPPR = p_prof.

case c_true.
when p_insert.
insert into hrus_d2 values gs_hrus_d2.
if sy-subrc = 0.
write: 'Vertreter erfolgreich angelegt.'(S01).
else.
write: 'Fehler bei insert!'(E01).
endif.
when p_delete.
delete from hrus_d2 where us_name = p_usern1
and rep_name = p_vertr.
if sy-subrc = 0.
write:/ 'Vertretung erfolgreich gelöscht.'(S02).
else.
write:/ 'Fehler beim löschen der Vertretung!'(E02).
endif.

endcase.
endif.

FORM check_data changing oflg_error.
data: ld_uname like sy-uname,
ld_datdiff type i.
clear oflg_error.
format color col_negative.
if p_enddt < p_begdt.
write:/ 'Enddatum muss größer Beginndatum sein'.
oflg_error = c_true.
endif.

select single bname from usr02 into ld_uname
where bname = p_usern1.
if sy-subrc ne 0.
write:/ 'Benutzer', p_usern1, 'nicht vorhanden'.
oflg_error = c_true.
endif.

select single bname from usr02 into ld_Uname
where bname = p_vertr.
if sy-subrc ne 0.
write:/ 'Benutzer', p_vertr, 'nicht vorhanden'.
oflg_error = c_true.
endif.

format color col_normal.
ENDFORM.
"WRITE: P_usern2, 'wurde als Vertretung für', P_usern1, 'von', P_begdt, 'bis', P_enddt, 'aktiviert'. ULINE.
"WRITE: 'Profil:', P_prof.
"ULINE.

Dienstag, 11. August 2009

saplikey ersetzt saplicense ab 7.00

Zum Basis Release 7.00 wurden digital signierte Lizenzschlüssel eingeführt und das Programm
saplicense steht nur noch zur Kontrolle und Installation der SAP Lizenschlüssel in eingeschränkter Funktionalität zur Verfügung.

z.B. kommt bei der Intsallation eines Lizenzkey's über ein File folgende Meldung:

"The license looks like it contains a digitally signed license.
Those files cannot be installed with the SAPlicense program.
Please logon to the SAP system to install the file. In case the
license is for an ABAP system please got to the transaction SLICENSE
and press the button "New licenses" before pressing the "Install" button."

Nur ist es nach einer Systemkopie recht schwer sich im System anzumelden und die Transkation saplicense zu starten :-) - wenn die Meldung kommt das Ihre Lizenz abgelaufen ist!

Also muss man den Key doch noch über das Betriebssystem einspielen - und das geht seit dem 7.00 Patch Kernel 210 mit dem Programm saplikey.

folgender Syntax für die Installation eines Key's mit einem File:

saplikey pf=/sapmnt/SID/profile/SID_DVEBMGS04_hostname -install SID_multiple.txt

Das File SID_multiple.txt bekommen Sie von der SAP via Mail wenn Sie einen neuen Schlüssel beantragen.

pf=/sapmnt/SID/profile/SID_DVEBMGS04_hostname ist das Instanzprofil

Siehe auch Hinweis 1227762

Donnerstag, 6. August 2009

SAP Webdispatcher Access Log aktivieren


Es kann im Wepdispatcher sehr hilfreich sein wenn man sieht wer sich auf den Dispatcher verbunden hat - bzw. welche Seiten abgerufen worden sind.

Dazu gibt es im Menü HTTP Handler den Unterpunkt
Access Log.

Das Logging ist standardmäßig nicht aktiv und müss über
einen Parameter aktiviert werden.

Der Parameter sieht wie folgt aus:

icm/HTTP/logging_0 = PREFIX=/ , LOGFILE=/usr/sap/SID/D00/access_log , MAXSIZEKB=1000

wobei man mit dem PREFIX die URL einschränken kann was man monitoren möchte.

Mit dem Wert LOGFILE legt man fest wo und mit welchen Dateinamen das File geschrieben wird und mit MAXSIZEKB legt die grösse vom File fest.

Man kann den Filenamen auch dynamisch erstellen z.B.

access_log-%d-%m-%y - dann wird beim starten vom Webdispatcher ein File mit dem Namen
access_log-06-08-2009 angelegt.

Folgende Variablen gibt es:

%d Day of the month (1-31)
%m Month (1-12)
%y Year, in the format YYYY
%h Hour (0-23)
%t Minute (0-59)
%s Second (0-59)

Doku der SAP -

und das ist dann das Ergebnis vom Logging:

Montag, 3. August 2009

Einzelne Tabellen auf Ihre Platzauslastung prüfen

Wenn Sie wissen möchten wieviel Platz in einer Tabelle wirklich verwendet wir dann können Sie diese SQL Statement verwenden:

SELECT
TO_CHAR(SPACE_ALLOCATED / 1024 / 1024,
999990.99) GROSS_MB,
TO_CHAR(SPACE_USED / 1024 / 1024, 999990.99) NET_MB,
TO_CHAR((SPACE_ALLOCATED - SPACE_USED) / 1024 / 1024,
999990.99) UNUSED_MB,
CHAIN_PCENT CHAIN_PERCENT
FROM
TABLE(DBMS_SPACE.OBJECT_SPACE_USAGE_TBF('SAPER3',
'MARA', 'TABLE', NULL ))

Als Beispiel wird hier die Tabelle MARA im Schema SAPER3 überprüft - das sind auch die einzigen beiden Werte die sie gemäß ihrer Datenbank anpassen müssen!

Das Ergebnis sieht dann wie folgt aus (Bespiel MARA):

GROSS_MB NET_MB UNUSED_MB
279.00 263.28 15.72


GROSS MB = die tatsächliche Grösse der Tabelle MB
NET_MB = der Inhalt der Tabelle im MB
UNUSED_MB = der nicht verwendete Platz in der Tabelle in MB

SAP ECC System auf SAP ERP System im Solution Manager umsetzen

Sie möchten im ECC System ein Enhancement Packages einspielen - dafür müssen Sie im MOPZ
eine Wartung anlegen und statt SupportPackageStack eine EHP Installation auswählen.

Und genau das geht nur wenn Sie in der SMSY das System auch wirklich als ERP System
definiert haben - sonst wird die Auswahl im MOPZ für die EHP Einspielung nie sichtbar werden.

Nachdem vor Jahren die SAP auf die wunderbare Idee kam und dem R/3 System den Namen ECC verpasste wurde dieser Name auch bereits im Solution Manager ausgeliefert. Nun hat man damals brav nach dem Upgrade auf 6.00 den System im Solman den Namen ECC zugeteilt - dann kam dass SAP Marketing und hatte wiederrum die Superidee aus dem ECC wieder ein ERP zumachen und
nun hat der Kunde wirklich ein Problem! Es ist nicht so einfach diese Zuordnung zuändern
und somit hat die SAP begonnen einen Migrationsreport zu schreiben - im Moment gibt es nur
einen händische Anleitung der SAP:

HW 1322259

MOPZ, EHP, Enhancement Package, SAP ECC, SAP ERP, Maintenance Optimizer, SAP Solution Manager