Import průchodů: Porovnání verzí

Z Prirucky
Řádek 156: Řádek 156:


<h3>Položky</h3>
<h3>Položky</h3>
<table border="1">
{|class="wikitable sortable" border="1" cellpadding="3" cellspacing="0"
    <tr>
|- style="background-color: #eeeeee"
      <th>Údaj</th>
!'''Údaj'''
      <th>Datový typ</th>
!'''Datový typ'''
      <th>Povinné pole</th>
!'''Povinné pole'''
      <th>Význam</th>
!'''Význam'''
    </tr>
|-
    <tr>
| IdZaznamu || integer || Ne || Jednoznačná identifikace záznamu v externím systému.
      <td>IdZaznamu</td>
|-
      <td>integer</td>
| OsCislo || decimal(10,0) || Ano || Osobní číslo zaměstnance.
      <td>Ne</td>
|-
      <td>Jednoznačná identifikace záznamu v externím systému.</td>
| CisloPom || smallint || Ne || Číslo pracovního poměru.
    </tr>
|-
    <tr>
| Kod || char(10) || Ano || Docházkový kód externího systému.
      <td>OsCislo</td>
|-
      <td>decimal(10,0)</td>
| Cas || char(17) || Ano || Datum a čas ve formátu yyyy-MM-dd hhmmss.
      <td>Ano</td>
|-
      <td>Osobní číslo zaměstnance.</td>
| NazevZarizeni || char(50) || Ne || Název zařízení externího systému.
    </tr>
|}
    <tr>
 
      <td>CisloPom</td>
      <td>smallint</td>
      <td>Ne</td>
      <td>Číslo pracovního poměru.</td>
    </tr>
    <tr>
      <td>Kod</td>
      <td>char(10)</td>
      <td>Ano</td>
      <td>Docházkový kód externího systému.</td>
    </tr>
    <tr>
      <td>Cas</td>
      <td>char(17)</td>
      <td>Ano</td>
      <td>Datum a čas ve formátu yyyy-MM-dd hhmmss.</td>
    </tr>
    <tr>
      <td>NazevZarizeni</td>
      <td>char(50)</td>
      <td>Ne</td>
      <td>Název zařízení externího systému.</td>
    </tr>
</table>


<h3>Příklad</h3>
<h3>Příklad</h3>

Verze z 11. 3. 2025, 15:30

Import průchodů je Rozšíření aplikace (KS docházka (Rozšíření aplikace)).

Dva způsoby importu průchodů

  • Přes webovou službu pro import dat pro KS docházku. Dokumentace je součástí webové služby.
      Protokol SOAP.
      Rozšíření "Import průchodů"
  • Přes aplikační server.
      Protokol SOAP/REST.
      Rozšíření "Import průchodů SOAP/REST - Nová"

S touto funkcí je možné importovat data z docházkových nebo přístupových systémů třetích stran do modulu Docházka v aplikaci KS portál.

Lze využít v případě, že jsou k dispozici informace o průchodech zaměstnanců přes nějaký terminál nebo turniket a k takto získaným datům nelze přistupovat z plnohodnotného docházkového systému. Pokud tedy nelze data pro mzdy připravit jinak, je možné je naimportovat do modulu Docházka v aplikaci KS portál, kde s nimi lze pracovat jako s běžným docházkovým systémem.

Import průchodů přes webovou službu

Nastavení

  • Aktivace rozšíření.
  • Následně je potřeba do web.cofigu do appsettings doplnit klíč WsAuthKey, jako hodnotu zadejte dostatečně dlouhý bezpečný řetězec. Tato hodnota musí být předávána v autentizační SOAP hlavičce s názvem AuthKeyHeader, a to při každém požadavku o zápis průchodu.
  • Pokud bude aktivní rozšíření, popis služby lze získat přes odkaz v KS portále
[rootKSportalu]/webservices/dchpruchody.asmx?op=PruchodVloz
  • V struktuře předávaných dat jsou důležité následující položky
OsCislo - Osobní číslo zaměstnance
Kod - Kód dopovídající číselníku docházkových kódů
Cas - DateTime
  • Pokud při zápisu dojde k chybě tak ta je vrácena s kódem a popisem chyby (popis dále).

SOAP 1.1

Následuje ukázkový požadavek a odpověď SOAP 1.1. Uvedené zástupce je třeba nahradit skutečnými hodnotami.

POST /ksportal/webservices/dchpruchody.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "ksprtl/WebServices/PruchodVloz"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org /soap/envelope/">
 <soap:Header>
   <AuthKeyHeader xmlns="ksprtl/WebServices">
     <AuthKey>string</AuthKey>
   </AuthKeyHeader>
 </soap:Header>
 <soap:Body>
   <PruchodVloz xmlns="ksprtl/WebServices">
     <pr>
       <OsCislo>decimal</OsCislo>
       <CisloPom>short</CisloPom>
       <Kod>int</Kod>
       <Prac_str>string</Prac_str>
       <Cas>dateTime</Cas>
       <Doba>string</Doba>
       <Kodprst>string</Kodprst>
       <Sazba>decimal</Sazba>
       <Castka>decimal</Castka>
       <C_pole1>string</C_pole1>
       <C_pole2>string</C_pole2>
       <N_pole1>long</N_pole1>
       <N_pole2>long</N_pole2>
       <Poznamka>string</Poznamka>
     </pr>
   </PruchodVloz>
 </soap:Body>
</soap:Envelope>
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org /soap/envelope/">
 <soap:Body>
   <PruchodVlozResponse xmlns="ksprtl/WebServices">
     <PruchodVlozResult>
       <ErrorCode>int</ErrorCode>
       <ErrorString>string</ErrorString>
     </PruchodVlozResult>
   </PruchodVlozResponse>
 </soap:Body>
</soap:Envelope>

SOAP 1.2

Následuje ukázkový požadavek a odpověď SOAP 1.2. Uvedené zástupce je třeba nahradit skutečnými hodnotami.

POST /ksportal/webservices/dchpruchody.asmx HTTP/1.1
Host: localhost
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap- envelope">
 <soap12:Header>
   <AuthKeyHeader xmlns="ksprtl/WebServices">
     <AuthKey>string</AuthKey>
   </AuthKeyHeader>
 </soap12:Header>
 <soap12:Body>
   <PruchodVloz xmlns="ksprtl/WebServices">
     <pr>
       <OsCislo>decimal</OsCislo>
       <CisloPom>short</CisloPom>
       <Kod>int</Kod>
       <Prac_str>string</Prac_str>
       <Cas>dateTime</Cas>
       <Doba>string</Doba>
       <Kodprst>string</Kodprst>
       <Sazba>decimal</Sazba>
       <Castka>decimal</Castka>
       <C_pole1>string</C_pole1>
       <C_pole2>string</C_pole2>
       <N_pole1>long</N_pole1>
       <N_pole2>long</N_pole2>
       <Poznamka>string</Poznamka>
     </pr>
   </PruchodVloz>
 </soap12:Body>
</soap12:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
 <soap12:Body>
   <PruchodVlozResponse xmlns="ksprtl/WebServices">
     <PruchodVlozResult>
       <ErrorCode>int</ErrorCode>
       <ErrorString>string</ErrorString>
     </PruchodVlozResult>
   </PruchodVlozResponse>
 </soap12:Body>
</soap12:Envelope>

Import průchodů přes aplikační server

Umožňuje synchronizovat data prostřednictvím KSweb API (SOAP/REST) uložená v aplikaci KS mzdý PROFI z evidence zaměstnanců, pracovních poměrů a číselníku středisek do libovolných připojených terminálů. Dále se pak data z průchodových terminálů přenáší zpět do modulu Docházka v aplikaci KS portál.

POZOR: Tato funkcionalita vyžaduje nainstalovanou a spuštěnou aplikaci server KS-AS. Před aktivací této funkcionality ověřte, že aplikace server je funkční. Pokud aplikace není nainstalována nebo nefunguje správně, stáhněte si nejnovější instalační balíček instalátor utility (MapSetup.exe) a nainstalujte jej na stejný server jako je instalována aplikace KS mzdý PROFI nebo jej stáhněte z ftp://ftp.ksprogram.cz/download/

Položky

Údaj Datový typ Povinné pole Význam
IdZaznamu integer Ne Jednoznačná identifikace záznamu v externím systému.
OsCislo decimal(10,0) Ano Osobní číslo zaměstnance.
CisloPom smallint Ne Číslo pracovního poměru.
Kod char(10) Ano Docházkový kód externího systému.
Cas char(17) Ano Datum a čas ve formátu yyyy-MM-dd hhmmss.
NazevZarizeni char(50) Ne Název zařízení externího systému.


Příklad

REST

curl -X POST https://example.com/api/rest/ImportPruchodu \
  -H "Content-Type: text/plain" \
  -d '{
    "IdZaznamu": 123,
    "OsCislo": 4567890123,
    "CisloPom": 1,
    "Kod": "ABC123",
    "Cas": "2025-03-11 105844",
    "NazevZarizeni": "Externí zařízení"
  }'

SOAP

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://KSProgram/KSAsServer/WebService" xmlns:ksp="http://schemas.datacontract.org/2004/07/KSProgram.AS.WCF">
    <soap:Header/>
    <soap:Body>
      <web:InsertData>
        <web:aParam>
          <ksp:DataValidationOnly>false</ksp:DataValidationOnly>
          <ksp:ItemGroup>ImportPruchodu</ksp:ItemGroup>
          <ksp:Items></ksp:Items>
          <ksp:JsonChangeData>[{
            "IdZaznamu": 123,
            "OsCislo": 4567890123,
            "CisloPom": 1,
            "Kod": "ABC123",
            "Cas": "2025-03-11 105844",
            "NazevZarizeni": "Externí zařízení"
          }]</ksp:JsonChangeData>
          <ksp:JsonOptions></ksp:JsonOptions>
          <ksp:JsonSearchCriteria></ksp:JsonSearchCriteria>
        </web:aParam>
      </web:InsertData>
    </soap:Body>
  </soap:Envelope>

Odkazy