====== 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}}