Universal Schnittstelle - Import via Scripts Das ProjectAfterSave1.py Script |
Dieses Dokument kümmert sich um die Abwicklung der Daten nach dem Speichern in die PLANOUT-Datenbank.
Hier wird das Datenbank Statement für die externe Datenbank abgesetzt.
Blau markierte Kommentare zeigen die Selektion der benötigten PLANOUT-Daten für die externe Datenank.
Grün markierte Kommentare geben sonstige Formatierungen und benötigte Implementierungen an.
# #Methode wird nach dem Speichern eines Projektes aufgerufen. #
#Hier werden wieder Imports durchgeführt from java.lang import *; from java.sql import *; from java.util import *; from java.text import *; import Import as Import; reload(Import) from Import import *
#Hier wird das Datumsformat festgelegt dateFormatStart = SimpleDateFormat ("dd.MM.yyyy")
#Ruft die Methoden auf um die Verbindung zur externen Datenbank herzustellen und die Daten in die externe Datenbank einzupflegen def execute(): print 'ProjectAfterSave called...' project = userProject connectToDatabase() writeToExternalDatabase()
#Diese Methode synchronisiert die externe mit der Internen Datenbank def writeToExternalDatabase(): for task in userProject.getChildren(): #Holt die benötigten Werte aus der PLANOUT-Datenbank und stellt sie für die externe Datenbank zur Verfügung StartDate = Date(task.moDataObject.getStartDate()) EndDate = Date(task.moDataObject.getEndDate()) extid = userProject.moDataObject.getExternaleID() intid = userProject.moDataObject.getIDNo() projname = userProject.moDataObject.getShortName() taskRes = task.getProcessResources() externalTimestamp = userProject.moDataObject.getExternalTimeStamp() targettaskRes = taskRes.get(0) targetRes = PyMethods.getResource(targettaskRes.getResourceID()) targetName = targetRes.getShortName()
#Hier wird das Update fuer die externe Datenbank kreiert und überprüft ob einer der Variablen ohne Inhalt ist. if None != StartDate and None != EndDate and None != extid and None != projname and None != intid and None != taskRes and None != externalTimestamp and None != targetName: #Dieses Statement setzt den Befehl für die externe Datenbank. Es muss darauf geachtet werden, dass hier der Text nun, aufgrund von Platzersparnissen, umgebrochen wurde #und das Statement in eine Zeile gesetzt oder mit Anführungszeichen zusammen gesetzt werden sollte. update = "update FERTIGUNGS_AUFTRAG set STARTTERMIN = '<StartDate>', ENDTERMIN = '<EndDate>', ART_BEZ = '<ProjName>', FERT_NR = <intid>, RESSOURCE = '<targetName>',PO_TIMESTAMP = <Timestamp> Where Fert_Nr = <extid>".replace("<StartDate>",dateFormatStart.format(StartDate)).replace("<extid>", extid) .replace("<EndDate>", dateFormatStart.format(EndDate)).replace("<ProjName>", projname).replace("<intid>", intid).replace("<targetName>", targetName).replace("<Timestamp>",externalTimestamp)
#Hier wird das Update ausgeführt con = connectToDatabase() stmt = con.createStatement() stmt.executeUpdate(update) con.close()
#Dieser printBefehl gibt das Statement in der Konsole aus(Alternative, nicht unbedingt benötigt) print update
|