Donnerstag, 23. Oktober 2014

Prozesskette per VBA starten

Wenn man eine Prozesskette starten möchte und dies nicht im Business Warehouse erledigen möchte, kann man dies mit folgenden VBA-Code erledigen.

Private Sub PK_Start()

Dim FUBA_PK As Object                      'Variable für Funktionsbaustein
Dim T_I_Options As Object                  'Variable für rfc_read_table Optionen
Dim T_I_Fields As Object                   'Variable für rfc_read_table Felder
Dim T_E_Data As Object                     'Variable für rfc_read_table Daten
Dim retn As Boolean                        'Variable für Rückgabewert des Funktionsbausteins

'Funktionsbaustein Prozessketten starten
Set FUBA_PK = R3.Add("RSPC_CHAIN_START")
With FUBA_PK
    .exports("I_CHAIN") = "TECHNISCHER_NAME_DER_PROZESSKETTE" 'Auszuführende Prozesskette
End With

'Ausführen des Funktionsbausteins
retn = FUBA_PK.Call

Set T_E_Data = Nothing
Set T_I_Fields = Nothing
Set T_I_Options = Nothing

End Sub


Mittwoch, 22. Oktober 2014

Eigenen Funktionsbaustein in VBA verwenden

Wenn man einen eigenen Funktionsbaustein angelegt hat, kann man diesen mit folgendem VBA-Code verwenden. 

Sub Funktionsbaustein()

'Variablen Definition
Dim MyFunc As Object
Dim E_INSERTED As Object
Dim E_MODIFIED As Object
Dim DATA As Object

Set MyFunc = R3.Add("Z_RSDRI_UPDATE_LCP") 'Name des Funktionsbaustein im SAP BW
Set E_INSERTED = MyFunc.imports("E_INSERTED") 'Name der Insert-Funktion im SAP BW
Set E_MODIFIED = MyFunc.imports("E_MODIFIED") 'Name der Update-Function im SAP BW

Set DATA = MyFunc.tables("I_T_DATA") 'In dieser Tabelle werden die Daten gespeichert, die im Funktionsbaustein unter Imports stehen

'Daten Zuweisung
DATA.Rows.Add 'Neue Datenzeile einfügen
DATA.Value(1, 1) = Tabelle1.Cells(1, 10).Value 'Zuweisung der Zelle aus Excel auf das erste Datenobjekt laut Funktionsbaustein

'Ausführen der Insert und Modify Funktion
Result = MyFunc.CALL

'Rückmeldung an den Benutzer
If Result = True Then
    MsgBox "Eingefgte Sätze: " & E_INSERTED.Value & " Geänderte Sätze: " & E_MODIFIED.Value & " Ignorierte Sätze: " & ignoriert, vbInformation
Else
    MsgBox MyFunc.EXCEPTION 'Fehlermeldung
End If

End Sub


Montag, 15. September 2014

Benutzerliste nach Anmeldedatum

Ab und zu möchte man wissen, welche Benutzer auf einem Business Warehouse System angelegt sind und ob diese noch Zugriff haben bzw. sich durch Falscheingaben gesperrt haben. Dafür gibt es die Transaktion rsusr200, dort sieht man den letzten Login, Gültigkeit des Benutzers usw.


  1. Transaktion rsusr200 aufrufen
  2. Ausführen
  3. Liste von allen Benutzern nach Anmeldedatum erscheint



Dieser Blog ist nun unter www.reyemsaibot.com erreichbar.

Freitag, 12. September 2014

Berechtigungsprüfung


Möchte man die Rechte eines Benutzers prüfen, gibt es dafür die Transaktion su53. 
  1. Transaktion su53 aufrufen
  2. Benutzer auswählen
  3. Ausführen

Freitag, 5. September 2014

Alle inaktiven Transformationen aktivieren

Möchte man in einem SAP BW System mehr als eine Transformation aktivieren, gibt es dafür ein ABAP Programm namens "RSDG_TRFN_ACTIVATE".

  1. Transaktion se38 aufrufen
  2. Programm "RSDG_TRFN_ACTIVATE" ausführen 


Aufbau der Fakten- und Dimensionstabellen anzeigen

Möchte man den Aufbau eines InfoCubes sich näher anschauen, so gibt es verschiedene Wege im SAP BW. Ein möglicher Weg sich den Aufbau der Fakten und Dimensionstabellen anzeigen zu lassen, ist die Transaktion listschema.
  1. Transaktion listschema aufrufen
  2. Typ des InfoCubes auswählen
  3. InfoCube auswählen
  4. Ausführen 


Donnerstag, 4. September 2014

VBA SAP Verbindung herstellen

Wenn man automatisierte Berichte mit Daten aus einem SAP ERP oder Business Warehouse System erstellen möchte, muss man zunächst eine Verbindung zu einem SAP System herstellen. Es ist eine einfache VBA-Lösung auf der später weiter aufgebaut werden kann. Wie dies gelingt ist im folgenden Quellcode beschrieben. Die Verbindung kann später genutzt werden um auf Tabellen im ERP oder Business Warehouse System zuzugreifen oder verschiedene andere Aktion auszulösen.

Function Connect_to_SAP()

Dim myConnection As Object
Set myConnection = CreateObject("SAP.Functions")

With myConnection

 .Connection.System = "ABC" 'Systemname
 .Connection.client = "100" 'Mandant
 .Connection.user = "xyz"'Benutzer
 .Connection.password = "123" 'Passwort
 .Connection.Language = "DE" 'Sprace
 .Connection.systemnumber = "00" 'Systemnumber
 .Connection.hostname = "" 'Hostname

End With

'Anmeldung am Server, wenn False erscheint die Loginmaske, wenn True erfolgt die Anmeldung unterdrckt.
If myConnection.Connection.logon(0, False) <> True Then Exit Function  
  
'System Logoff
myConnection.Connection.LOGOFF
 
End Function


Aufgrund des Parameter False in der Verbindung erscheint folgendes Logon-Fenster. Soll dies nicht angezeigt werden, muss der Parameter auf True geändert werden.