8
0
Files
Skriptentwickung/archive/Zeiterfassung/Zeiterfassung vor Umbau auf WinLine 12/XML1.py
2024-01-24 16:42:38 +01:00

190 lines
7.6 KiB
Python

# Import von Bibliotheken
import time
import requests
from datetime import *
# IF (DEBUG_ON = True) Or (DebugMode = "Enabled") THEN
# MSGBOX "Kennzeichen: " + Kennzeichen + vbCrLf &_
# "AccountNr: " + AccountNr + vbCrLf &_
# "Mandator: " + Mandator + vbCrLf &_
# "",,DEBUG_TITLE& " - Call Webservice"
# x = date(1, 1, 1)
# End if
# Variablen
WebServiceActioncode = "1"
Arbeitnehmernummer = "4" # "1" - Lantelme "4" - Knaus
# Arbeitstagbeginnen = "Start"
ArbeitsZeitPause = "0" # "0" - Arbeitszeit "1" - Pause
StartStopPause = "Ende"
print(ArbeitsZeitPause)
#Feste Variablen
WebServiceURL = "localhost"
WebServiceBenutzerName = "a"
WebServiceBenutzerPasswort = "b"
WinLineMandant = "MEDT"
WebServiceTemplateSTART = "Zeitnahme"
WebServiceTemplateSTOP = "STOP"
#WebServiceTemplateExport = "Export"
if ArbeitsZeitPause == "1":
WebServiceTemplateExport = "ExportPause"
Filter = "FilterTestP-" + Arbeitnehmernummer
else:
WebServiceTemplateExport = "Export"
Filter = "FilterTest-" + Arbeitnehmernummer
WebServiceType = "36"
# Testvariablen
Datumvon = datetime.now().strftime('%Y-%m-%d') + "T" + datetime.now().strftime('%H:%M:%S')
Datumbis = datetime.now().strftime('%Y-%m-%d') + "T" + datetime.now().strftime('%H:%M:%S')
Fehlzeitenstamm = "1"
AN_Gruppe_Ressource = Arbeitnehmernummer
# Build START XML
XML_Start = ""
XML_Start = XML_Start + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
XML_Start = XML_Start + "<MESOWebService TemplateType=\"" + WebServiceType + "\"" " Template=\"" + WebServiceTemplateSTART + "\">"
XML_Start = XML_Start + "<" + WebServiceTemplateSTART + ">"
# Location for WinLine fields
XML_Start = XML_Start + "<Datumvon>" + Datumvon + "</Datumvon>"
# XML = XML + "<Datum bis>"+ Datumbis+ "</Datum bis>"
XML_Start = XML_Start + "<Fehlzeitenstamm>" + Fehlzeitenstamm + "</Fehlzeitenstamm>"
XML_Start = XML_Start + "<ANGruppeRessource>" + AN_Gruppe_Ressource + "</ANGruppeRessource>"
XML_Start = XML_Start + "<TypZeitartPause>" + ArbeitsZeitPause + "</TypZeitartPause>"
XML_Start = XML_Start + "</" + WebServiceTemplateSTART + ">"
XML_Start = XML_Start + "</MESOWebService>"
# Replace placeholder in XML
# XML = Replace(XML,"%WebServiceType%",WebServiceType)
# XML = Replace(XML,"%WebServiceTemplate%",WebServiceTemplate)
#####################################START################################
# Build webservice URL
URL_Start = "http://%SERVER%/ewlservice/import?User=%USER%&Password=%PASSWORD%&Company=%COMPANY%&Type=%TYPE%&Vorlage=%VORLAGE%&Actioncode=%ACTIONCODE%&byref=0&Data=%DATA%"
URL_Start = URL_Start.replace("%SERVER%", WebServiceURL)
URL_Start = URL_Start.replace("%USER%", WebServiceBenutzerName)
URL_Start = URL_Start.replace("%PASSWORD%", WebServiceBenutzerPasswort)
URL_Start = URL_Start.replace("%COMPANY%", WinLineMandant)
URL_Start = URL_Start.replace("%TYPE%", WebServiceType)
URL_Start = URL_Start.replace("%VORLAGE%", WebServiceTemplateSTART)
URL_Start = URL_Start.replace("%ACTIONCODE%", WebServiceActioncode)
URL_Start = URL_Start.replace("%DATA%", XML_Start)
#print("URL_Start =" + URL_Start)
# Webservice Export
XMLExport = Filter
URL_Export = "http://%SERVER%/ewlservice/export?User=%USER%&Password=%PASSWORD%&Company=%COMPANY%&Type=%TYPE%&Vorlage=%VORLAGE%&Actioncode=%ACTIONCODE%&byref=0&Key=%KEY%"
URL_Export = URL_Export.replace("%SERVER%", WebServiceURL)
URL_Export = URL_Export.replace("%USER%", WebServiceBenutzerName)
URL_Export = URL_Export.replace("%PASSWORD%", WebServiceBenutzerPasswort)
URL_Export = URL_Export.replace("%COMPANY%", WinLineMandant)
URL_Export = URL_Export.replace("%TYPE%", WebServiceType)
URL_Export = URL_Export.replace("%VORLAGE%", WebServiceTemplateExport)
URL_Export = URL_Export.replace("%ACTIONCODE%", WebServiceActioncode)
URL_Export = URL_Export.replace("%KEY%", XMLExport)
URL_Export = URL_Export.replace("%FILTER%", Filter)
print("URL_Export = " + URL_Export)
HTTPRequest_Export = requests.post(URL_Export)
print(HTTPRequest_Export.text)
#########################ENDE DER ZEITNAHME##########################################################
IndexVonDatum = HTTPRequest_Export.text.find("<Datumvon>")
v1 = IndexVonDatum + len("<Datumvon>")
v2 = v1 + 19
Datumvon = HTTPRequest_Export.text[v1:v2]
print(Datumvon)
print(Datumbis)
XML_Ende = ""
XML_Ende = XML_Ende + "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
XML_Ende = XML_Ende + "<MESOWebService TemplateType=\"" + WebServiceType + "\"" " Template=\"" + WebServiceTemplateSTOP + "\">"
XML_Ende = XML_Ende + "<" + WebServiceTemplateSTOP + ">"
# Location for WinLine fields
XML_Ende = XML_Ende + "<Datumvon>" + Datumvon + "</Datumvon>"
XML_Ende = XML_Ende + "<Datumbis>" + Datumbis + "</Datumbis>"
XML_Ende = XML_Ende + "<Fehlzeitenstamm>" + Fehlzeitenstamm + "</Fehlzeitenstamm>"
XML_Ende = XML_Ende + "<ANGruppeRessource>" + AN_Gruppe_Ressource + "</ANGruppeRessource>"
XML_Ende = XML_Ende + "<TypZeitartPause>" + ArbeitsZeitPause + "</TypZeitartPause>"
XML_Ende = XML_Ende + "<Importoption>" + "1" + "</Importoption>"
XML_Ende = XML_Ende + "</" + WebServiceTemplateSTOP + ">"
XML_Ende = XML_Ende + "</MESOWebService>"
#######################################################################################################################
URL_Ende = "http://%SERVER%/ewlservice/import?User=%USER%&Password=%PASSWORD%&Company=%COMPANY%&Type=%TYPE%&Vorlage=%VORLAGE%&Actioncode=%ACTIONCODE%&byref=0&Data=%DATA%"
URL_Ende = URL_Ende.replace("%SERVER%", WebServiceURL)
URL_Ende = URL_Ende.replace("%USER%", WebServiceBenutzerName)
URL_Ende = URL_Ende.replace("%PASSWORD%", WebServiceBenutzerPasswort)
URL_Ende = URL_Ende.replace("%COMPANY%", WinLineMandant)
URL_Ende = URL_Ende.replace("%TYPE%", WebServiceType)
URL_Ende = URL_Ende.replace("%VORLAGE%", WebServiceTemplateSTOP)
URL_Ende = URL_Ende.replace("%ACTIONCODE%", WebServiceActioncode)
URL_Ende = URL_Ende.replace("%DATA%", XML_Ende)
#print("URL_ENDE = " + URL_Ende)
# Set XML content
# Requests
if StartStopPause == "Start":
HTTPRequest_Start = requests.post(URL_Start)
print(URL_Start)
print(HTTPRequest_Start.text)
else:
HTTPRequest_Ende = requests.post(URL_Ende)
print(HTTPRequest_Ende.text)
#print("Zeile die ich zurück bekomme: " + HTTPRequest_Export.text)
# 'Send request to WebServer
# HTTPRequest.Open "POST", URL, False
# HTTPRequest.Send
#
# IF (HTTPRequest.Status = 200) Then
#
# If InStr(HTTPRequest.ResponseText, "<?xml") = 1 Then
#
# Doc.loadXML(HTTPRequest.ResponseText)
#
# Set Nodes = Doc.SelectNodes("MESOWebServiceResult/ResultDetails")
# Set OverallSuccess = Doc.SelectSingleNode("MESOWebServiceResult/OverallSuccess")
#
# If OverallSuccess.Text = "true" Then
# Dim IsSuccess : IsSuccess = True
#
# For Each Node in Nodes
# Set Success = Node.SelectSingleNode("Success")
#
# If Success.Text <> "true" Then
# IsSuccess = False
# End If
# Next
#
# msgbox "Die Übertragung war erfolgreich!" & vbCrlf & vbCrlf & _
# "Bitte prüfen Sie nun noch Felder," & vbCrlf & _
# "welche von der Übertragung ausgeschloßen sind."& vbCrlf & vbCrlf & _
# "Beispiele: " & vbCrlf & _
# "ZahlungskonditionFIBU, ZahlungskonditionFAKT," & vbCrlf & _
# "Belegart, Lieferbedingungen, BKZ, ..." & vbCrlf & _
# "",vbInformation,DEFAULT_TITLE
# Else
# msgbox "Fehler bei der Übertragung!" & vbCrLf &_
# HTTPRequest.ResponseText & vbCrLf &_
# "",,DEFAULT_TITLE &" - WebServices"
#
# End If
# Else
# msgbox "Fehler bei der Übertragung!" & vbCrLf &_
# HTTPRequest.ResponseText & vbCrLf &_
# "",,DEFAULT_TITLE &" - WebServices"
#
# End If
#
# Else
# msgbox "Fehler bei der Übertragung!" & vbCrLf &_
# HTTPRequest.ResponseText & vbCrLf &_
# "",,DEFAULT_TITLE &" - WebServices"