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. |
TCInInvalid |
Long |
X |
Gültigkeitsflag, Werte: -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