Inhaltsverzeichnis
SDK Oracle Primavera
Mit dem SDK kann zum Beispiel direkt mit ODBC aus Excel auf die Primavera Datenbank zugegriffen werden.
Installation
Bei der Installation des PPM Desktops explicit das Software Development Kit auswählen, kann auch nachträglich erfolgen (Option „Change“ im Installer).
Im Client Installationsverzeichnis unter .\PMSDK\ liegen die Dokumentation (p6_pro_sdk.chm) und die Treiber.
Nach der Software Installation muss der ODBC Treiber eingerichtet werden:
Eigenschaften des ODBC Treibers einrichten:
Bei Bedarf die Log Einstellung auf „verbose“ setzen um die Verbindung zu debuggen.
Support Nodes:
- How to install the Oracle Primavera P6 Release 8 (R8) Software Development Kit (SDK) [VIDEO] [ID 1314957.1]
- Which Excel Utilities Are Available For Use With The Primavera Software Development Kit (SDK) [ID 895537.1]
Entwicklung
Für die Verwendung des SDK's unter der Windows Powershell muss diese für XP zuvor installiert werden ( Download über Windows PowerShell 2.0 and WinRM 2.0 for XP )
Beispiel für die Verwendung in der Powershell:
# Refrenz auf das ODBC Object $ODBCConnect=New-Object System.Data.Odbc.OdbcConnection #DNS für die ODBC Verbindung mit der Primavera SDK $DSN="DSN=Primavera P6 SDK;UID=admin;PWD=xxxxxxx;" #DNS setzen $ODBCConnect.ConnectionString=$DSN #Verbindung öffnen $ODBCConnect.Open() #SQL Statement $sql="select PROJ_ID,PROJ_SHORT_NAME from project" # Kommando ausführung vorbereiten $command=New-Object System.Data.Odbc.OdbcCommand $command.Connection=$ODBCConnect $command.CommandText=$sql #SQL absetzen $resultset=$command.ExecuteReader() # Anzahl der Treffer write-host ("Info -- Found {0} Rows" -f $resultset.count) $results=$resultset.FieldCount write-host ("Info -- Found {0} Columns" -f $results) # Kopf der Tabelle ausgeben for ($i=0;$i -lt $results;$i++) { # Debug structure of the record Write-Host "Position ::" $i "::" $resultset.GetName($i)"::" $resultset.GetDataTypeName($i) } # Inhalt ausgeben while ($resultset.Read()) { for ($i = 0; $i -lt $results; $i++) { write-host $resultset.GetName($i) "=" $resultset.GetValue($i) } } #Verbindung wieder schließen $command.dispose() $resultset.dispose() $ODBCConnect.close()
Beim ersten Aufruf klappt es meist, gelegentlich kommt folgende Fehlermeldung:
Ausnahme beim Aufrufen von "Open" mit 0 Argument(en): "ERROR [HZ080] [ATI][OpenRDA ODBC]RDA error: Resource not available - Connect error: da=PMSDK; Driver=PMSDK;engine=PM;lf=d:\temp\PMSDK.LOG;lo=terse;pg=1;pp=pubuser;pu=pubuser;. Error returned from engine: VDB.Connect; Exception=TCCustomVirtualRow.Create: Out of memory for TASKSUM row 0 Error number: 0x80004005 ERROR [01000] [Microsoft][ODBC Driver Manager] Der Treiber unterstützt nicht die Version der ODBC-Funktion, die die Anwendung benötigt (siehe SQLSetE nvAttr)."
Ursache:
- Version der pmsdk.dll überprüfen : 8.2.0.1926 ⇒ Passt damit zur 8.2 DB Schema
Support Nodes:
- Primavera P6 Software Development Kit (SDK) Sample Code for Creating a Project [ID 893464.1]
- Sample Visual Basic / ADO code to connect to the SDK [ID 914298.1]
- How To Access The Calendar Information In The Database [ID 892559.1]
Quellen
Links: