Der Webservice Zeit

Einleitung

Die Nutzung des Webservice Zeit erfolgt durch mindestens 5 aufeinanderfolgende SOAP-Requests:

  1. Connect zum Webservice Server
  2. Erzeugung der Server-Instanz Zeit
  3. Ausführung einer Methode zum Lesen der Daten
  4. Freigabe der Server-Instanz Zeit
  5. Trennung der Verbindung zum Server

Die Methoden zum Lesen der Daten (Schritt 3) mit fetchV103 und anderen fetch-Methoden können beliebig oft wiederholt werden, bevor dann die Methoden 4 und 5 aufgerufen werden müssen.

Alle SOAP-REQUESTS werden als Https POSTS an die URL

https://www.virtic24.com/wsa/wsa1

gesendet.

1. Connect zum Webservice Server

Der Connect zum WebService Server (Connect_wsZeit)
userId und password ist durch ‘XXXXX‘ ersetzt worden, appServerInfo ist durch ‘00000000‘ ersetzt worden.


================Request====================
POST /wsa/wsa1 HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.42000)
VsDebuggerCausalityData: uIDPowoztjd6qj1OpUpGnyr9ZEcAAAAAweJ3ui8Q2UWEYXdsBGCUFJF4SJ6ccNlLipErFMz7CBUACQAA
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Host: www.virtic24.com
Content-Length: 423
Expect: 100-continue
Proxy-Connection: Keep-Alive

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><Connect_wsZeit xmlns="http://www.virtic.com/xmlns/virsapZeit/wsZeit"><userId>XXXXX</userId><password>XXXXX</password><appServerInfo>00000000</appServerInfo></Connect_wsZeit></soap:Body></soap:Envelope>


================Response===================
HTTP/1.1 200 OK
Date: Tue, 03 May 2022 14:22:09 GMT
Server: Http Server
Content-Length: 604
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin
Connection: close
Content-Type: text/xml;charset=utf-8

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Header>
<wsZeitID xmlns="http://www.virtic.com/xmlns/virsapZeit/wsZeit"><UUID>82e67c56c48374a2:38ed0e06:17fd07a06b4:-7ffa;<virsapZeit|PX-820469|AO>;gbWcNimQ7j9NNaguIeRkXQ==</UUID></wsZeitID>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Connect_wsZeitResponse xmlns="http://www.virtic.com/xmlns/virsapZeit/wsZeit">
</Connect_wsZeitResponse>

</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
    

2. Erzeugung der Server-Instanz Zeit (CreatePO_zeitResponse)

In diesem Request wird der Wert aus dem Element UUID des Responses verwendet.


    ================Request====================
POST /wsa/wsa1 HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.42000)
VsDebuggerCausalityData: uIDPowsztjd6qj1OpUpGnyr9ZEcAAAAAweJ3ui8Q2UWEYXdsBGCUFJF4SJ6ccNlLipErFMz7CBUACQAA
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Host: www.virtic24.com
Content-Length: 532
Expect: 100-continue

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Header><wsZeitID xmlns="http://www.virtic.com/xmlns/virsapZeit/wsZeit"><UUID>82e67c56c48374a2:38ed0e06:17fd07a06b4:-7ffa;<virsapZeit|PX-820469|AO>;gbWcNimQ7j9NNaguIeRkXQ==</UUID></wsZeitID></soap:Header><soap:Body><CreatePO_zeit xmlns="http://www.virtic.com/xmlns/virsapZeit/wsZeit" /></soap:Body></soap:Envelope>

================Response===================
HTTP/1.1 200 OK
Date: Tue, 03 May 2022 14:22:09 GMT
Server: Http Server
Content-Length: 621
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin
Connection: close
Content-Type: text/xml;charset=utf-8

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Header>
<zeitID xmlns="http://www.virtic.com/xmlns/virsapZeit/zeit"><UUID>82e67c56c48374a2:38ed0e06:17fd07a06b4:-7ffa;<virsapZeit|PX-820470|PO>;ZnhR4I3WRY7dVhAlXnlYdg==</UUID></zeitID>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<CreatePO_zeitResponse xmlns="http://www.virtic.com/xmlns/virsapZeit/wsZeit">
<result xsi:nil="true"/>
</CreatePO_zeitResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
    

3. Ausführung einer Methode zum Lesen der Daten (fetchV103)

Die Parameter der Methode:

iObjId ObjID des Mitarbeiters
cFremdId Personalnummer
iPerObjId ObjId der Periode
iPerMonat Monat der Periode
iPerJahr Jahr der Periode
cQueryString weitere Filterkriterien

Einige der Parameter können alternativ zueinander verwendet werden. Soll für einen Parameter kein Wert übergeben werden, kann für Stringwerte der leere String, für alle anderen NIL übergeben werden.


================Request====================

POST /wsa/wsa1 HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.42000)
VsDebuggerCausalityData: uIDPowwztjd6qj1OpUpGnyr9ZEcAAAAAweJ3ui8Q2UWEYXdsBGCUFJF4SJ6ccNlLipErFMz7CBUACQAA
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Host: www.virtic24.com
Content-Length: 660
Expect: 100-continue

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Header><zeitID xmlns="http://www.virtic.com/xmlns/virsapZeit/zeit"><UUID>82e67c56c48374a2:38ed0e06:17fd07a06b4:-7ffa;<virsapZeit|PX-820470|PO>;ZnhR4I3WRY7dVhAlXnlYdg==</UUID></zeitID></soap:Header><soap:Body><fetchV103 xmlns="http://www.virtic.com/xmlns/virsapZeit/zeit"><iObjId>95220900</iObjId><cFremdId /><iPerObjId xsi:nil="true" /><iPerMonat>3</iPerMonat><iPerJahr>2022</iPerJahr><cQueryString /></fetchV103></soap:Body></soap:Envelope>

================Response===================
HTTP/1.1 200 OK
Date: Tue, 03 May 2022 14:22:09 GMT
Server: Http Server
Content-Length: 343796
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin
Connection: close
Content-Type: text/xml;charset=utf-8

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<fetchV103Response xmlns="http://www.virtic.com/xmlns/virsapZeit/zeit">
<result xsi:nil="true"/>
<zeitV103Out>
<zeitV103OutRow>
<firObjId>0000000000</firObjId>
<ztObjId>586929950</ztObjId>
<marObjId>95220900</marObjId>
<marFremdId>794651</marFremdId>
<marMandant></marMandant>
<marName>Nachname</marName>
<marVorname>Vorname</marVorname>
<perObjId>123456</perObjId>
<perJahr>2022</perJahr>
<perMonat>3</perMonat>
<tgObjId>123456789</tgObjId>
<tgDatum>2022-03-01</tgDatum>
<tgIstFeiertag>false</tgIstFeiertag>
<tgIstArbeitsTag>true</tgIstArbeitsTag>
<sctObjID>551724860</sctObjID>
<sctDatum>2022-03-01</sctDatum>
<sctBerStart>2022-03-01T05:25:17.395+01:00</sctBerStart>
<sctBerEnde>2022-03-01T18:24:11.892+01:00</sctBerEnde>
<sctBez></sctBez>
<sctAnzBSt>1</sctAnzBSt>
<sctHerkunft>Arbeitszeit</sctHerkunft>
<atObjId>94923282</atObjId>
<atFremdId></atFremdId>
<atBez>West, Mo-Fr 8,0 Std. FZR</atBez>
<ztBerStart>2022-03-01T05:25:17.395+01:00</ztBerStart>
<ztBerEnde>2022-03-01T05:25:26.723+01:00</ztBerEnde>
<ztMengeStd>0</ztMengeStd>
<ztMengeStd10>0.0025911111</ztMengeStd10>
<maeObjIdStart>123456789</maeObjIdStart>
<ztStart>2022-03-01T05:25:17.395+01:00</ztStart>
<ztGenehmigtMaeStart>false</ztGenehmigtMaeStart>
<ztKommentarMaeStart></ztKommentarMaeStart>
<maeObjIdEnde>136776248</maeObjIdEnde>
<ztEnde>2022-03-01T05:25:26.723+01:00</ztEnde>
<ztBStBuch>false</ztBStBuch>
<bstObjId>0</bstObjId>
<bstFremdId xsi:nil="true"/>
<bstBez xsi:nil="true"/>
<bstMandant xsi:nil="true"/>
<ztBStStd>0</ztBStStd>
<ztBStStd10>0</ztBStStd10>
<ztAuftrNr></ztAuftrNr>
<ztKm xsi:nil="true"/>
<ztKmEntfernungsTyp xsi:nil="true"/>
<ztKuerzesteEntf xsi:nil="true"/>
<ztFremdIdFakt></ztFremdIdFakt>
<ztNotiz>zahlthotel=no</ztNotiz>
<ztLohnBuch>false</ztLohnBuch>
<zaObjId>111440939</zaObjId>
<zaBez>Dateneingabe unbez.</zaBez>
<fegObjId xsi:nil="true"/>
<fegBez xsi:nil="true"/>
<ztFremdIdLohn></ztFremdIdLohn>
<ztLohnStd>0</ztLohnStd>
<ztLohnStd10>0</ztLohnStd10>
<ztLohnStdFeiertagVerr>0</ztLohnStdFeiertagVerr>
<ztLohnStdFeiertagVerr10>0</ztLohnStdFeiertagVerr10>
<ztHerkunft>Arbeitszeit</ztHerkunft>
<ztIstArbeitszeit>true</ztIstArbeitszeit>
<ztIstKug>false</ztIstKug>
<ztIstPause>false</ztIstPause>
<ztIstSchlechtw>false</ztIstSchlechtw>
<ztIstUeStdRel>true</ztIstUeStdRel>
<ztZeitAnpassung>0</ztZeitAnpassung>
<ztZeitAnpassung10>0</ztZeitAnpassung10>
<ztPauseAbzug>0</ztPauseAbzug>
<ztPauseAbzug10>0</ztPauseAbzug10>
<ztFahrtzeitAbzug>0</ztFahrtzeitAbzug>
<ztFahrtzeitAbzug10>0</ztFahrtzeitAbzug10>
<kstObjIdKst xsi:nil="true"/>
<kstObjIdKtr xsi:nil="true"/>
<ztKStNr xsi:nil="true"/>
<ztKtrNr xsi:nil="true"/>
<ztCreated>2022-05-02T15:37:52.856+02:00</ztCreated>
<fedObjIdStart>132438627</fedObjIdStart>
<fedFremdIdStart></fedFremdIdStart>
<fedBezStart>Verlassen Unterkunft</fedBezStart>
<maeBelegeingabenStart>zahlthotel=no</maeBelegeingabenStart>
<fedObjIdEnde>132438608</fedObjIdEnde>
<fedFremdIdEnde></fedFremdIdEnde>
<fedBezEnde>Fahrt zur Baustelle</fedBezEnde>
<maeBelegeingabenEnde>Besorgung</maeBelegeingabenEnde>
<gewObjId>136490928</gewObjId>
<gewFremdId>23</gewFremdId>
<gewBez>23 - Oberleitung</gewBez>
<ylaObjId>13</ylaObjId>
<ylaIsoCode>DE</ylaIsoCode>
<ylaBez>Germany</ylaBez>
<martObjId>151013841</martObjId>
<martBez>Bauleitender Obermonteur</martBez>
<martVertragsTyp>Angestellter</martVertragsTyp>
<lTransOk>true</lTransOk>
<cErr></cErr>
</zeitV103OutRow>
</zeitV103Out>
<cErr></cErr>
</fetchV103Response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

4. Freigabe der Server-Instanz Zeit (Release_zeit)

Es wird die bereits bekannte UUID vom Connect Response verwendet.


================Request====================


POST /wsa/wsa1 HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.42000)
VsDebuggerCausalityData: uIDPow0ztjd6qj1OpUpGnyr9ZEcAAAAAweJ3ui8Q2UWEYXdsBGCUFJF4SJ6ccNlLipErFMz7CBUACQAA
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Host: www.virtic24.com
Content-Length: 523
Expect: 100-continue

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Header><zeitID xmlns="http://www.virtic.com/xmlns/virsapZeit/zeit"><UUID>82e67c56c48374a2:38ed0e06:17fd07a06b4:-7ffa;<virsapZeit|PX-820470|PO>;ZnhR4I3WRY7dVhAlXnlYdg==</UUID></zeitID></soap:Header><soap:Body><Release_zeit xmlns="http://www.virtic.com/xmlns/virsapZeit/zeit" /></soap:Body></soap:Envelope>

================Response===================
HTTP/1.1 200 OK
Date: Tue, 03 May 2022 14:22:12 GMT
Server: Http Server
Content-Length: 372
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin
Connection: close
Content-Type: text/xml;charset=utf-8

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<Release_zeitResponse xmlns="http://www.virtic.com/xmlns/virsapZeit/zeit">
</Release_zeitResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

5. Trennung der Verbindung zum Server

Es wird die bereits bekannte UUID vom Connect Response verwendet.


================Request====================


POST /wsa/wsa1 HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.42000)
VsDebuggerCausalityData: uIDPow4ztjd6qj1OpUpGnyr9ZEcAAAAAweJ3ui8Q2UWEYXdsBGCUFJF4SJ6ccNlLipErFMz7CBUACQAA
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Host: www.virtic24.com
Content-Length: 533
Expect: 100-continue

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Header><wsZeitID xmlns="http://www.virtic.com/xmlns/virsapZeit/wsZeit"><UUID>82e67c56c48374a2:38ed0e06:17fd07a06b4:-7ffa;<virsapZeit|PX-820469|AO>;gbWcNimQ7j9NNaguIeRkXQ==</UUID></wsZeitID></soap:Header><soap:Body><Release_wsZeit xmlns="http://www.virtic.com/xmlns/virsapZeit/wsZeit" /></soap:Body></soap:Envelope>

================Response===================
HTTP/1.1 200 OK
Date: Tue, 03 May 2022 14:22:13 GMT
Server: Http Server
Content-Length: 378
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin
Connection: close
Content-Type: text/xml;charset=utf-8

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<Release_wsZeitResponse xmlns="http://www.virtic.com/xmlns/virsapZeit/wsZeit">
</Release_wsZeitResponse>

</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Beispiele

Die in der Methode fetchV103 verwendeten Parameter dienen der Bildung eines Filters für die Datenbankabfrage.

Hierbei sind folgende Regeln zu beachten:

  • Es muss entweder eine Mitarbeiter-ID (iObjId) oder die Mitarbeiter FremdId (cFremdId), welche die Personalnummer des Kundensystems ist, übergeben werden.
  • Es muss entweder eine Perioden-ID (iPerObjId) oder ein Wert für den Monat (iPerMonat) und ein Wert für das Jahr(iPerJahr) der Periode übergeben werden.
  • Im Allgemeinen ist die Verwendung der Mitarbeiter-FremdId und die von Monat und Jahr für die Auswahl der Periode einfacher als die Verwendung der Mitarbeiter-ID und der Periode-ID, da diese zuvor über andere Webservices abgefragt werden müssten.

Beispiel 1: Abfrage mit FremdID mit der Methode fetchV103

Abfrage mit FremdID (cFremdId = Personalnummer des Kundensystems) und Monat und Jahr für die Periodenauswahl mit der Methode fetchV103


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soap:Header>
        <zeitID xmlns="http://www.virtic.com/xmlns/virsapZeit/zeit">
            <UUID>82e67c56c48374a2:38ed0e06:17fd07a06b4:-7ffa;<virsapZeit|PX-841369|PO>;XSE/e47JAHpRTq74ZiY9vA==</UUID>
        </zeitID>
    </soap:Header>
    <soap:Body>
        <fetchV103 xmlns="http://www.virtic.com/xmlns/virsapZeit/zeit">
            <iObjId xsi:nil="true"/>
            <cFremdId>794651</cFremdId>
            <iPerObjId xsi:nil="true"/>
            <iPerMonat>3</iPerMonat>
            <iPerJahr>2022</iPerJahr>
            <cQueryString/>
        </fetchV103>
    </soap:Body>
</soap:Envelope>

Beispiel 2: Erweiterung des Filters durch die Verwendung des Parameter cQueryString

Abfrage mit einer Erweiterung des Filters auf einen Zeitraum durch die Verwendung des Parameter cQueryString. Zu beachten ist die Syntax bei der Verwendung des logischen & (und) Operators. Dieser muss URL Post encoded werden (&amp;).


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soap:Header>
        <zeitID xmlns="http://www.virtic.com/xmlns/virsapZeit/zeit">
            <UUID>82e67c56c48374a2:38ed0e06:17fd07a06b4:-7ffa;<virsapZeit|PX-842192|PO>;8+MwzE/2qxHlcTlkRmG64g==</UUID>
        </zeitID>
    </soap:Header>
    <soap:Body>
        <fetchV103 xmlns="http://www.virtic.com/xmlns/virsapZeit/zeit">
            <iObjId xsi:nil="true"/>
            <cFremdId>794651</cFremdId>
            <iPerObjId xsi:nil="true"/>
            <iPerMonat>3</iPerMonat>
            <iPerJahr>2022</iPerJahr>
            <cQueryString>sctDatumGE=2022-03-05T00:00:00.000&sctDatumLE=2022-03-15T23:00:00.000</cQueryString>
        </fetchV103>
    </soap:Body>
</soap:Envelope>

Teilen Feedback