2004-01-16 Datenaustausch mit Zeiterfassung

Grundsätzliches

Innerhalb der von VxS verwendeten Datenbank werden Tabellen bereitgestellt die Daten von und zu der Zeiterfassung aufnehmen. Die Tabellen können im einfachsten Fall via ODBC konnektiert und gefüllt/gelesen werden. Zu einem späteren Zeitpunkt werden für den Zugriff auf die Tabellen ActiveX Controls zur Verfügung gestellt.


Tabellenstruktur und Beschreibung

Name

Beschreibung

TimeControlIn

Die Zeiterfassung stellt die Werte über gestempelte Zeiten in dieser Tabelle ein. JPS2 stellt der Zeiterfassung Startstempelungen (Produktiv und Unproduktiv) zur Verfügung.

TimeControlOut

In dieser Tabelle werden der Zeiterfassung grundsätzliche Angaben zu einem Auftrag zur Verfügung gestellt

TimeControlOutDetails

Enthält Detailinformationen zu einem Auftrag, z.B. Vorgabezeiten für bestimmte Arbeitsgruppen. Welche Daten in diese geschrieben werden hängt maßgeblich von der Definition in der TransformMatrix ab

TimeControlTransformMatrix

Nimmt Definitionen für die Umsetzung von VxS zu Zeiterfassung auf und umgekehrt

TimeControlMissTime

Die Zeiterfassung stellt Fehlzeiten in dieser Tabelle ein.

TimeControlComingGoing

Die Zeiterfassung stellt Kommen- und Gehen-Stempelungen in dieser Tabelle ein. JPS2 stellt der Zeiterfassung Kommen- und Gehen-Stempelungen zur Verfügung.

TimeContolProjects

Sofern Projektverwaltung unterstützt wird und eingestellt ist, werden in dieser Tabelle die Projektdefinitionen der Zeiterfassung  zur Verfügung gestellt.

TimeControlProj2Account

In dieser Tabelle wird die Zuordnung von Projekten zu Kontenklassen verwaltet.


TimeControlIn 


Die Tabelle wird von der Zeiterfassungs-Software oder JPS2 befüllt

Name 

Datentyp

Pflichtf.

Beschreibung

TCInCompanyID

Long

 

Mandanten-Nr falls Zuordnung der Stempelung zu einem bestimmten Mandanten erfolgen soll. 

Wird kein Wert angegeben wird nur die Auftrags-Nummer für die weitere Verarbeitung berücksichtigt

TCInJobID

Long

X

Auftrags-Nummer zu welcher der Datensatz zugeordnet werden soll. In der Praxis sollte dies auch die Auftrags-Nummer sein auf welche gestempelt wurde

TCInJobIDOrg

Long

 

Bei Verwendung eines Leitnummern-Systems wird die Pseudo-Auftrags-Nummer (Leitnummer) bei Abschluss des Auftrages durch die 'echte' Auftragsnummer ersetzt. die ursprüngliche Leitnummer wird in diesem Fall in diesem Feld gespeichert. Das Feld sollte daher nicht durch die Zeiterfassung beschrieben werden.

TCInStaffName

Char(50)

 

Mitarbeitername **

TCInStaffNr

Char(25)

 

Mitarbeiter-Nr **

TCInGroup

Char(25)

 

Arbeitsgruppe **

TCInFunction

Char(25)

 

Tätigkeit ** die gestempelt wurde

TCInDate

Datum

X

Tag für den die Stempelung gilt, die angegebenen Zeiten müssen sich immer innerhalb eines Arbeitstages bewegen

TCInTimeStart

Zeit

 

Beginn der Stempelung

TCInTimeEnd

Zeit

 

Ende der Stempelung 

TCInTime

Float

X

Zeit in Stunden und dezimaler Angabe 90 min = 1,5

TCInTimeCalculated

Float

 

Bewertete Zeit, je nach Mitarbeiter wird in der Zeiterfassung evtl. eine Zeit mit einem zusätzlichen Faktor berechnet da es sich in der Realität z.B. um einen Azubi handelte der die Arbeit verrichtete

TCInCosts

Float

 

Angabe von Kosten für diese Stempelung

TCInCostsCalculated

Float

 

Angabe von bewerteten Kosten für diese Stempelung

TCInBaseCosts

Float

 

Angabe von Basiskosten für diese Stempelung

TCInBaseCostsCalc

Float

 

Angabe von bewerteten Basiskosten für diese Stempelung

TCInCreateDate

Datum/Zeit

X

Anlagezeitpunkt des Datensatzes, wird nur von Zeiterfassung aktualisiert

TCInChangeDate

Datum/Zeit

X

Zeitpunkt der letzten Änderung, wird nur von Zeiterfassung aktualisiert 

TCInState

Long

X

Falls 1 nach update aktualisieren

Status über Verarbeitung des Datensatzes in VxS

0: von VxS noch nicht verarbeitet

1: von KSR verarbeitet

-1: nach KSR Verarbeitung nochmals geändert 

(Änderung des Status durch VxS führt zu keiner Änderung ChangeDate)

-2 ODER -100: Stempelsatz gelöscht 

-3: gelöschter Stempelsatz von KSR berücksichtigt

999: JPS2-Stempelungen (darf nur von JPS2 gesetzt werden)

-999: durch ZE übernommene JPS2-Stempelung

TCInIdentifier

Long

 

Feld zur Speicherung einer externen Kennung für den Datensatz, wird von VxS nicht weiterverarbeitet

TCInProdClass

Long

 

nur für interne Zwecke, darf von der Zeiterfassung nicht verändert werden

TCInRuleId

Long

 

nur intern zu verwenden (enthält die Zuordnung zu einer Regel). Darf von der Zeiterfassung nicht verändert werden

TCInService

Char(50)

 

Dienstleistungsnummer bei Ermittlung der Funktion über Dienstleistungsnummern (z.B. Obelisk-ZE)

TCInAddintionalInfo

Memo

 

wird derzeit nicht verwendet

TCInODBC_PK

Long

 

Autowert-Feld, Primärschlüssel.
 ACHTUNG: Feldname kann ggf. abweichen

TCInInvalid

Long

X

Gültigkeitsflag, Werte:
 0 (Standard) = ungeprüft (muss von ZE gesetzt werden)

-1 = uneingeschränkt gültig (Regel zugeordnet und innerhalb BearbeitungsZR)

-2 = durch Benutzer als gültig markiert (in irgendeiner Form)

-3 = innerhalb Bearbeitungszeitraum, jedoch ohne Regel

1 = ungültig (Regel zugeordnet, jedoch ausserhalb Bearbeitungszeitraum)

2 = ungültig (keine Regel und ausserhalb Bearbeitungszeitraum)

TCInAssignRun

Long

 

Intern, darf durch ZE NICHT geändert werden

TCInStaffType

Char(50)

 

Personalart, nur für Auswertungen, muss von der ZE gesetzt werden

TCInWorkGroup

Char(50)

 

Arbeitsgruppe, nur für Auswertungen, muss von der ZE gesetzt werden

TCInJPS2Project

Long

 

JPS2-Info: Projekt-ID. Nur informativ, darf durch ZE nicht verändert werden.


**für Zuordnung von Stempelungen über Transform Matrix


Diese Tabelle wird auch für das Eintragen von Unproduktiv-Stempelungen verwendet (d.h. Stemeplungen, die keinem Auftrag zugeordnet sind). In diesen Fällen ist die TCInJobID und die TCInJobIDOrg auf -1  zu setzen.


TimeControlOut


In dieser Tabelle werden für die Zeiterfassung Auftragsdaten in kompakter Form zur Verfügung gestellt. Alle schreibenden Zugriffe (bis auf die Aktualisierung des Feldes TCOuState) werden von VxS gemacht.

Name 

Datentyp

Beschreibung

TCOuCompanyID

Long

Mandanten-Nr 

TCOuJobID

Long

Auftrags-Nummer

TCOuClosed

Long

0: Auftrag aktiv

-1: Auftrag wurde abgeschlossen (Rechnung gedruckt)

TCOuTotalAmountNet

Float

Gesamtumsatz Netto des Auftrages

TCOuDescription

Char(50)

Bezeichnung des Auftrages

TCOuState

Long

0: Info wurde von Zeiterfassung noch nicht abgerufen

1: Info wurde durch Zeiterfassung verarbeitet

-1: Info wurde nach Verarbeitung nochmals aktualisiert

-2: Daten zu Auftrag wurden verworfen u. sollen neu übernommen werden

-3: Stempelungen sofort synchronisieren

-4: Projektbezug aktualisiert (sofern aktiv)

TCOuCreateDate

Datum/Zeit

Anlagezeitpunkt des Datensatzes

TCOuChangeDate

Datum/Zeit

Letzter Änderungszeitpunkt des Datensatzes

TCOuIDChange

Long

Enthält nach Leitnummerntausch die ursprüngliche Leitnummer

TCOuIDChangeDate

Datum/Zeit

Enthält das Datum an dem der Leitnummerntausch durchgeführt wurde

TCOuAssignedProj

Long

enthält den Link auf die ID des zugeordneten Projekts in Tabelle TimeContolProjects. Mit diesem Wert können über die ID die vom Benutzer eingestellten Eigenschaften des Projekts zur Weiterverarbeitung in der Zeiterfassung abgerufen werden. Wenn der Wert 0 ist, ist kein (echter) Projektbezug eingestellt.


TimeControlOutDetails


Die Tabelle enthält über die Beziehung Company und JobID n-Datensätze mit zusätzlichen Details je Auftrag.

Name 

Datentyp

Beschreibung

TODeCompanyID

Long

Mandanten-Nr 

TODeJobID

Long

Auftrags-Nummer

TODeIdentifier

Long

Refferenz-Nummer für interne Verwendung

TODeStaffNr

Char(25)

Mitarbeiter-Nummer

TODeGroup

Char(25)

Mitarbeitergruppe

TODeFunction

Char(25)

Tätigkeitskennung

TODeTime

Float

Arbeitszeit in Stunden dezimal 90 Minuten = 1,5

TODeAmount

Float

Währungsbetrag

Achtung, je nach Konfiguration kann nur die Zeit oder ein Währungsbetrag hier stehen


TimeControlTransformMatrix


Die Tabelle nimmt die notwendigen Werte für die Umsetzung der Werte zwischen den Applikationen auf. Eine Oberfläche zur Erfassung und Pflege der Werte steht in VxS zur Verfügung. Die Nutzung der Tabelle sollte eigentlich für die Zeiterfassung nicht Notwendig sein, sie wird hier der Vollständigkeit halber aber dokumentiert, nicht zuletzt um auch ein besseres Verständnis über den Gesamtvorgang darzulegen.

Name 

Datentyp

Beschreibung

TCTMCompanyID

Long

Mandanten-Nr 

TCTMProdClass

Long

Produktklasse (bestimmt die interne Berechnungsart)

TCTMStaffNr

Char(25)

Externe Mitarbeiter-Nr *)

TCTMGroup

Char(25)

Externe Mitarbeitergruppe (Arbeitsgruppe) *)

TCTMFunction

Char(25)

Externer Tätigkeitsschlüssel *)

TCTMPart

Float

Splittanteil falls Werte zerlegt werden müssen

TCTMDirection

Long

Definition gilt für

0: In beide Richtungen

1: VxS -> Zeiterfassung (TimeControlOut+Detail wird erz.)

2: Zeiterfassung -> VxS (Einträge aus TimeControl in werden weiterverarbeitet)

TCTMOrder

Long

Bestimmt die Reihenfolge der Abarbeitung

TCTMDescription

Char(50)

Bezeichnung 

TCTMCancelFlag

Bit

Falls <> 0 werden nachfolgende Definitionen ignoriert

TCTMUseage

Long

Legt fest, für welchen Auftragstyp die Regel verwendet wird

*) es können auch mehrere Werte enthalten sein (diese sind durch ; getrennt)


Anwendungsbeispiel


Definitionen VxS

Produktklassen

Bezeichnung

ID

Lackierarbeiten

10

Instandsetzung

20

Ersatzteile

30


Definitionen auf Seiten der Zeiterfassung 

Mitarbeitergruppen

Bezeichnung

ID

Lackierung

100

Spengler 1

110

Spengler 2

120


Tätigkeiten

Bezeichnung

ID

Lackierung-Vorbereitung

200

Lackierung

210

Lackierung Finish

220

Diagnose-Arbeiten

230

Verteilzeit

240


Mitarbeiter

Bezeichnung

ID

MA1

1

MA2

2

MA3

3

MA4

4


Beispieleinträge

CompanyID

ProdClass

StaffNr

Group

Function

Part

Direction

1

20

0

110

0

0

2

1

20

0

120

0

0

2

Zuordnung aller Einträge mit Goup 110 oder 120 zu interner Produktklasse 20 bei Übernahme der Daten aus TimeControlIn zu einem Auftrag

CompanyID

ProdClass

StaffNr

Group

Function

Part

Direction

1

10

0

0

200

20

1

1

10

0

0

210

60

1

1

10

0

0

220

20

1

Die obige Definition würde aus der Summe der Produktklasse Lackierung drei Einträge in der Tabelle TimeControlOutDetails erzeugen welche in der Summe zwar wieder die Gesamt-Zeit der Lackierung ergeben jedoch unterteilt nach Funktion sind.


Hinweise: 

Die Splittung wird nur in der Richtung 1 unterstützt (VxS -> Zeiterfassung) da in der anderen Richtung üblicherweise diese Anforderung nicht existiert.


Eine Weitere Möglichkeit zur Steuerung der Verarbeitung ist die Verwendung der Order um eine Reihenfolge für die Verarbeitung zu erzwingen. Über ein Cancel Flag kann weiterhin die Verarbeitung der nachfolgenden Definitionen unterbunden werden. 0-Werte in der Matrix werden grundsätzlich nicht mit zum Vergleich herangezogen.


Sonderbehandlung bei Verwendung von Leitnummern

Bei der Verwendung von Leitnummern statt echten Auftrags-Nummern ist folgende Problematik zu berücksichtigen. In der Zeiterfassung werden die Daten zu den Leitnummern statt den Auftragsnummern erfasst. Nach dem Abschluss eines Auftrages wird die Leitnummer durch eine echte Auftragsnummer ersetzt und die Leitnummer kann wieder verwendet werden. 

In diesem Falle ist folgende Vorgehensweise geplant. Die Zeiterfassung liefert die Daten in die Tabelle TimeControlIn die Leitnummer wird als JobID hinterlegt (identisch zum echten Auftrag) 

Im Auftrag innerhalb von VxS kann der Anwender die gewünschte Leitnummer angeben mit welcher der Auftrag arbeiten soll. Wird der Auftrag nun abgeschlossen findet in diesem Fall ein Leitnummernabgleich wie folgt statt. In der Tabelle TimeControlIn wird die Leitnummer in JobID durch die echte Auftragsnummer ersetzt, der ursprüngliche Wert wird zuvor in das Feld JobIDOrg übertragen. Parallel dazu wird der Vorgang in der Tabelle TimeControlOut in den Feldern TCOuIDChange (enthält danach die ursprüngliche Leitnummer) und TCOuIDChangeDate dokumentiert.


Übernahme von Mitarbeiter-Fehlzeiten


ACHTUNG: DIESE TABELLE WIRD AB 2011 NICHT MEHR VERWENDET, VERBLEIBT AUS KOMPATIBILITÄTSGRÜNDEN IN DER DATENBANK.

Zur Übergabe von Mitarbeiterfehlzeiten von der Zeiterfassung an VxS steht die Tabelle TimeControlMissTime zur Verfügung. Diese ist wie folgt aufgebaut.


Name 

Datentyp

Pflichtfeld

Beschreibung

TCMTCompanyID

Long

 

Mandanten-Nr 

TCMTStaffNr

Char(25)

X

Mitarbeiter-Nummer aus Zeiterfassung

TCMTFrom

DateTime

X

Fehlzeitbeginn

TCMTTo

DateTime

 

Fehlzeitende

TCMTWholeDay

Bit

 

Falls <>0 wird die Zeit in From und To nicht berücksichtigt und der MA für den angegebenen Datumszeitraum als ganztägig fehlend gewertet. 

TCMTReason

Char(50)

 

Fehlgrund

TCMTDate

DateTime

X

Datum der Fehlzeit

TCMTTime

Float

X

Dauer der Fehlzeit

TCMTDescriptionShort

Char(25)

 

Kürzel Fehlgrund

TCMTDescription

Char(50)

 

Fehlgrund Bezeichnung

TCMTState

Long

X

Status des Datensatzes:

0: von KSR noch nicht verarbeitet

1: von KSR verarbeitet

-1: Nach KSR Verarbeitung nochmals geändert

TCMTDeleted

Bit

X

Statt des physischen Löschens soll dieses Flag gesetzt werden

TCMTIndentifier

Long

X

Eindeutiger Indentifier für externes Modul


Die Zuordnung der Mitarbeiter zu einer der VxS Ressourcen erfolgt in einer Transformationstabelle (TimeControlTransMatStaff) die keine weitere Auswirkung auf die Schnittstelle hat.


Hinweis: Datumsangaben in from/to) ohne Zeitangaben (00:00) werden ebenfalls als ganztägige Fehlzeiten gewertet unabhängig davon ob WholeDay gesetzt wurde.



Übernahme von Kommen- und Gehen Stempelungen


Die Übergabe von Kommen- und Gehen-Stempelungen von der Zeiterfassung an VxS erfolgt über die Tabelle TimeControlComingGoing. Aufbau:

Name 

Datentyp

Pflichtfeld

Beschreibung

TCCGCompanyID

Long

X

Mandanten-Nr.

TCCGStaffNr

Char(25)

X

Mitarbeiter-Nummer aus Zeiterfassung

TCCGDate

DateTime

X

Datum für das die Stempelung gilt

TCCGTime

DateTime

X

Uhrzeit der Stempelung

TCCGComing

Bit

X

Flag für Kommen

TCCGState

Long

X

Status des Datensatzes:

0: von KSR noch nicht verarbeitet

1: von KSR verarbeitet

-1: Nach KSR Verarbeitung nochmals geändert

999/-999: JPS2-Stempelung, siehe TCInState

TCCGDeleted

bit

X

Löschflag anstatt physischem Löschen

TCCGIdentifier

Long

X

Eindeutiges Kriterium für externe Module

TCCGODBC_PK

Long

 

Autowert-Spalte, Primärschlüssel, zur Bearbeitung via ODBC-Zugriff nötig)


Projektverwaltung


Die Felder dieser Tabellen werden ausschließlich von VxS befüllt. Die Zeiterfassung liest aus der Tabelle TimeContolProjects festgelegte Eigenschaften zugeordneter Projekte aus. Der Aufbau ist wie folgt:


Name 

Datentyp

Beschreibung

TCPrCompID

Long

Mandanten-Nummer bei dem das Projekt erstellt wurde

TCPrKeyExternProject

Char(50)

Zugriffsinformationen für die Zeiterfassung (Primary-key, beliebig anpassbar).

TCPrExtProjName

Char(50)

Bezeichnung des Projektes in Zeiterfassung

TCPrCreate

bit

Flag, ob Projekt in Zeiterfassung angelegt werden soll, wenn nicht existent

TCPrSync

bit

Flag, ob Projekt in der Zeiterfassung aktualisiert werden soll, wenn nicht existent

TCPrProj4AllComp

bit

Flag, das kennzeichnet, ob das Projekt mandantenübergreifend gültig sein soll

ChangeDate

DateTime

letztes Änderungsdatum des Datensatzes

ChangeBy

Char(50)

Wer die letzte Änderung vorgenommen hat

CreateDate

DateTime

Datum der Anlage des Datensatzes

CreateBy

Char(50)

Wer das Projekt angelegt hat

RecordID

Long

Identifier des Projektes (der link TCOuAssignedPro der Tabelle TimeControlOut verweist auf dieses Feld)

Achtung: Der Datensatz mit der ID 0 ist wegen der Referenz enthalten, enthält aber keine echten Projektinformationen.


Die Tabelle TimeControlProj2Account dient nur der internen automatischen Zuordnung von Jobs zu Projekten. Dort dürfen von der Zeiterfassung weder Datensätze geändert werden, noch macht es Sinn, diese zu verarbeiten.


Name 

Datentyp

Beschreibung

TCPAProject

Long

Zuordnung zur ID in TimeControlProjects (RecordID)

TCPAAccount

Long

Zuordnung zur ID des Kontos

CreateDate

DateTime

Erstellungsdatum

CreateBy

Char(50)

Ersteller

ChangeDate

DateTime

Datum der letzten Änderung

ChangeBy

Char(50)

Letzte Änderung durchgeführt durch

RecordID

Long

Identifier des Datensatzes


Erstellt: 16.01.2004 17:44:11
Author: Ringhut (Zach)
Geändert: 11.07.2011 11:20:23
Geändert von: Zach
ArtikelID: 4803

Artikel ID: 1035949