====== 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). {{ :prod:img:primavera_client:primavera_sdk_install_01.png?direct&300 | SDK bei der PPM Installation anwählen}} 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: {{ :prod:img:primavera_client:primavera_sdk_install_02.png?direct&300 | ODBC Treiber einrichten}} Eigenschaften des ODBC Treibers einrichten: {{ :prod:img:primavera_client:primavera_sdk_install_03.png?direct&300 |Eigenschaften des 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 [[http://www.microsoft.com/de-de/download/details.aspx?id=16818 | 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() Verbindung schließen nicht vergessen! 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 * * BUG? siehe auch http://www.planningplanet.com/forums/primavera-version-pm5-pm6/420284/pmsdk-i-cann146t-connect-it-can-anyone-help 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: * http://www.scribd.com/doc/127420457/Primavera-Sdk * http://eastwoodharris.com/DL/TP/A_STEP-BY-STEP_GUIDE_TO_SDK.pdf * http://primaverablog.in/2011/10/using-primavera-excel-sheets-with-sdk/ * http://primaverablog.in/2011/10/entering-data-using-sdk/ * http://www.plannertuts.com/primavera-p6-tutorials/how-to-import-wbs-from-excel-to-primavera-p6-using-the-sdk-722/ {{tag>primaveraarchitektur}}