Time recording for Employees (Site Manager Function)

In addition to his own times, the technician can record times for his employees in his service reports . The recording of receipt data for other resources relates purely to time recording and not to cash expenses or materials used. The technician can continue to record these for himself. There are two resource types for which the technician can record time:

  • Ordinary Innosoft resources (RessList) that exist in the master data

  • External resources (e.g. temporary workers) that only exist within the scope of the project and not in the master data (no RessList entry)

The allocation of possible resources (both Innosoft resources and external resources) is carried out in the office depending on the project . The technician can create additional external resources (surname, first name, company) for a project in the app if this is necessary for time recording.

Activation and setup

The functionality is switched off by default. An opt-in takes place via a look-up (Nachschlag) switch or optionally also depending on the top group via look-up ID (NachschlagId) switches. The app and the app server in version 2.7 are required for the functionality.

Nachschlag(Id) column

Value

TabId

201

Id

'67'

FeldInt

  • 1 = active

  • other = inactive

Example Sql: Global activation
DECLARE @options TABLE(TabId int, Id nvarchar(20), FeldInt int not null, primary key (TabId, Id));
 
INSERT @options VALUES (201, '67', 1); -- use 0 instead 1 to deactivate the feature
 
MERGE Nachschlag n
USING @options o
ON n.TabId = o.TabId AND n.Id = o.Id AND n.LangIdx = 0
WHEN MATCHED THEN
UPDATE SET FeldInt = o.FeldInt
WHEN NOT MATCHED THEN
INSERT (TabId, Id, LangIdx, FeldInt) VALUES (o.TabId, o.Id, 0, o.FeldInt);
Example Sql: Activation for individual main groups
DECLARE @options TABLE(TabId int, Id nvarchar(20), FeldInt int not null, primary key (TabId, Id));
DECLARE @ogrnrs TABLE(OgrNr int, primary key (OgrNr));
 
INSERT @options VALUES (201, '67', 1);
 
-- when you want to deactivate the feature for all other main groups and globally (nachschlag)
-- set this flag to 1
DECLARE @deactivateForMainGroupsNotListed bit = 0;
 
-- sets options für ogrnr 2 and 3
-- alternatively use a sql to select from option_o
INSERT @ogrnrs VALUES (2), (3);
THROW 51000, N'Not so fast: edit the required ogrnr first (the line above) before you execute this sql and then remove this THROW statement', 12;
 
 
 
MERGE NachschlagId n
USING (select ogr.OgrNr, opt.* from @ogrnrs ogr cross join @options opt) o
ON n.OgrNr = o.OgrNr AND n.TabId = o.TabId AND n.Id = o.Id AND n.LangIdx = 0
WHEN MATCHED THEN
UPDATE SET FeldInt = o.FeldInt
WHEN NOT MATCHED THEN
INSERT (OgrNr, TabId, Id, LangIdx, FeldInt) VALUES (o.OgrNr, o.TabId, o.Id, 0, o.FeldInt);
 
 
IF @deactivateForMainGroupsNotListed = 1
BEGIN
UPDATE Nachschlag SET FeldInt = 0
WHERE
LangIdx = 0
AND EXISTS (SELECT * FROM @options o WHERE o.TabId = Nachschlag.TabId AND o.Id = Nachschlag.Id AND o.FeldInt = 1);
 
UPDATE NachschlagId SET FeldInt = 0
WHERE
LangIdx = 0
AND EXISTS (SELECT * FROM @options o WHERE o.TabId = NachschlagId.TabId AND o.Id = NachschlagId.Id AND o.FeldInt = 1)
AND NachschlagId.OgrNr NOT IN (SELECT OgrNr FROM @ogrnrs);
END

The number range "ER" is also required for the functionality.

Number range Feature

Description

Type

'ER'

Use

When creating external resources, the app and the FSM draw a RessNr from this number range. This RessNr is used to identify the external resources in the project-dependent allocation table KuRess and in the times recorded for this resource (LbzListExt.RessNr). The app draws from the central number range - as with all other number ranges - and not from the number range of the Innosoft Classic mobile field service.

Remark

Must not overlap with the normal resource number range ‘BN’. We recommend configuring the number range with a prefix (e.g. ‘ER-’) to highlight the generated RessNrs for external resources and to avoid conflicts with the generated RessNrs from number range BN.

If the number range does not yet exist, you can create it with the following Sql:

Example Sql: Create number range ER
DECLARE @minNr int = 3500000;
DECLARE @maxNr int = 3599999;
DECLARE @prefix nvarchar(20) = N'ER-';
 
INSERT NUKREIS (ART, AKTUELLNR, MINNR, MAXNR, PREFIX, BESCHREIBUNG)
VALUES (N'ER', @minNr, @minNr, @maxNr, @prefix, N'External resources');

Technical details on implementation in the Mobile App

Notes on fields in the time recording form

Depending on the resource for which the technician is recording the time, the following points apply, which affect the fields:

Customizing option

Remarks

Time type dependent fields


  • The customizing options for the technician's main group/time type schemas apply to technician times and external resources.

  • For Innosoft resources, the customizing options for the main group/time type schemas of the Innosoft resource for which the technician records the time apply.

Free of charge key

The configuration of the technician for LbzList applies to all resource types (also applies to LbzListExt).

Machine detection (profile capability)

Corresponds to the technician's setting for all resource types

Main group-dependent individual data fields in the admin console

Individual data fields for times on other resources (external and Innosoft resources) must be configured separately in the Admin Console. To do this, the target type "LBZLISTEXTIND (service report external work log)" must be selected in the Admin Console.

The admin console allows configuration depending on the technician's main group. Since we do not yet have a concrete use case and in order to keep complexity low, the technician's configuration applies to all resources. This means that if the main group of an Innosoft resource for which the technician records a time has a different individual field configuration, the technician's configuration is still used.

Copy times action

The copy times action is intended to simplify the recording of times considerably. It is possible to copy the recorded times of a day within a resource to another day. If time recording for employees on assignment is active, individual times and all times for a day can also be copied to another resource. The technician can copy times recorded for himself to other employees, copy times between different employees and copy an employee's times to his own times. There are a few points to note here. Sometimes the time recording form for employees has different individual data fields (LbzListExtInd) than the time recording form for regular times (LbzListInd). The main group of the employee and/or technician may also differ, which can result in differences, e.g. the selectable time types are assigned to the main group. The following table lists fields with special features during the copying process. Fields that are not listed, such as LbzList(Ext).MaschNr or Remark, are copied 1to1.

Column

Remarks

LbzList/Ext.TimeTypeIsGuid

Is copied. If the time type cannot be selected in the main group of the target resource, a time recording form opens with the copied data, in which the time type must be corrected by the technician in order to continue.

The time types of the technician's main group are available for external resources.

LbzList/Ext.TravelDistance

Only copied if the working day is copied within the same resource

LbzList/Ext.Fahrer

Only copied if the working day is copied within the same resource

LbzList/Ext.Tag

Public holiday or high public holiday is only copied if the target date corresponds to the date from which the working day is copied. Otherwise, the entered values are replaced by the "regular weekday" during the copy.

LbzListInd/LbzListExtInd.*

If within LbzListInd (technician copies his own times to another day) or within LbzListExtInd (technician copies times recorded for an employee to another employee or to another day for the same employee), the values of all individual data fields are copied as long as the copy function for the field is not deactivated in the "Custom Data" administration page within the admin console.

If you copy a time from LbzList(Ind) to LbzListExt(Ind) or vice versa, i.e. from a technician to an employee or vice versa, the corresponding individual data fields must be transferred. The Mobile App and the FSM transfer the fields between LbzListInd and LbzListExtInd according to the following rules; fields that cannot be transferred are not copied:

LbzListExtInd-Field

LbzListInd-Field

LbzListExtInd_<Field>

LbzListInd_<Field>

LbzListExt_<Field>

LbzList_<Field>

For example, the field LbzListExtInd.LbzListExtInd_Remark is transferred to LbzListInd.LbzListInd_Remark and vice versa. The field LbzListExtInd.LbzListExt_Remark is also transferred to LbzListInd.LbzList_Remark and vice versa.

Fields with the same name are not transferred, e.g. LbzListExtInd.LbzListInd_Remark to LbzListInd.LbzListInd_Remark does not work. You should therefore follow the <table>_<field> rule when creating the individual data fields and not copy the fields 1-to-1 from LbzListInd to LbzListExtInd!

If a field can be transferred according to these naming rules, the Mobile App checks the following points:

  • The field types must be compatible, e.g. no copy of a string edit field to a field with selection values.

  • The copy function of the field to be copied from is not deactivated in the Custom Data administration page within the admin console (copy function of the target field is irrelevant).

As with the time types, if an individual data field with selection values contains a selection value that cannot be selected for the target resource, the time recording form appears in which the technician must correct the error.

Database tables

Only relevant columns for the individual tables are included here. You can obtain a complete picture via the Innosoft table description.

Planung

Spalte

Hinweis

EnableTimeTrackingForResourcesAssignedToProject

Nullable bit. Pre-assignment for activating the recording of times for employees at receipts at this assignment.

If = 0, the functionality for receipts that the technician records at this assignment is deactivated by default. This greatly simplifies the time recording tab within the app. If required, the technician can activate the functionality in the document overview tab for the linking assignment.

For zero or other values, the recording of times for employees on receipts is active by default for this assignment. If required, the technician can switch off the functionality in the receipt overview tab for the linking assignment in order to simplify the time recording tab.


Kuress

Column

Note

ProjNr

Allocation to the project. The resources assigned to the project of the assignment are available in the app.

RessNr

Points to an Innosoft resource if Intern = 1, otherwise it is an external resource (RessNr was drawn via number range ER).

IsGuid

Unique Id. This is used to identify external resources in the app. Plays a subordinate role for Innosoft resources, as these are identified via the RessNr.

Intern

Intern = 1 → Innosoft resource

Other → external resource

Vorname (First name),

Name (Surname),

Firma (Company)

Characteristics of the external resource. The technician can enter these characteristics when adding further external resources.

Does not play a role for Innosoft resources, as the data is taken from the master data record (RessList).

Deleted

Marks the mapping as deleted/deactivated. Mappings may not be deleted, but must be flagged.

Effect in the app: the technician cannot enter any times for the Innosoft resource in receipts for the project. They can still view recorded times for the resource, but cannot edit them. The same applies to external resources. However, the technician can "reactivate" the resources again. We have made this decision so that the technician does not have to create another external resource with the same characteristics.

LbzListExt

Column

Note

BelegNr

The technician records the times for his employees on the same receipt as his own times with the difference that "external times" are saved in LbzListExt.

RessNr

Contains the RessNr for which the time was recorded. Does not have to be an Innosoft resource in RessList. In the case of external resources, loading takes place via KuRess.

Moved_To_BelegNr

Contains the BelegNr for the receipt to which the external time was rebooked. The FSM offers an action that transfers times for Innosoft resources to independent receipts per resource. The external times are not deleted, but receive the BelegNr to which they were rebooked. Rebooked times (Moved_To_BelegNr <> NULL) can no longer be edited in the app.

Traveldistance

The length unit depends on the resource entered. If it is an Innosoft resource, the unit is drawn over the main group of the external Innosoft resource. For external resources, the unit of length defined for the main group of the recording technician applies (LbKopf.RessNr).

TimetypeIsGuid

The available time types are based on the TimetypeSchemaContents for the main group of the recorded resource if it is an Innosoft resource. The time types of the recording technician are available for external resources (LbKopf.RessNr).

Other columns

Analog to LbzList

LbzListExtInd

Column

Note

LbzListExtInd_<Field>

It is recommended to transfer the required individual data fields from LbzListInd with the prefix LbzListExtInd_ to LbzListExtInd, i.e. for the field LbzListInd_Remark, create the field LbzListExtInd_Remark in LbzListExtInd. Do NOT use the same name in both tables, as it may be problematic later that the fields in the configuration table PlSteuer cannot be distinguished. With the naming convention described above, the FSM can transfer the values of the related individual fields from LbzListExtInd to LbzListInd (and vice versa for copy times) in the rebooking function and the Mobile App in its "Copy times" function.