Information and Business purpose
We have the feature “User Changes”, which is accessed from Tools - Exports - User Changes. The way it works is that templates are set up here. Each template represents a potential line in the user changes file, and are only triggered if one of the fields in the given template has been changed. Beside the fields in the templates, it’s also possible to define whether it’s triggered from a “creation” event or an “update” event.
The end result is one to many different templates that all take part in shaping the files that will be generated every time a user is created or updated.
There’s also an approval process, so when a user is created/updated, a manager (or someone with full access to export and “allow user to approve user”) must approve it here, before it appears in the list, or have automatic approval enabled in the General Settings - Auto approve user changes and creations.
Manual download
Every time there’s new create or update record there’s an accrual in the #column in the User Changes export of those records. After an export or download there will start a new accrual process. The file containing the these records will then be imported by the client to another system where the information is needed.
FTP Server integration
We have the feature where the system automatically uploads the file to a FTP Server folder on a daily basis. This will have to be setup from Tools - Exports - User Changes - FTP Settings. This is the setting for “Automatic FTP delivery of user data” that contains a field for FTP address so the feature works for all salary systems that uses FTP servers.
If you enable this setting you will in the template get a “Use in FTP integration” check box that determines whether or not the file should be automatically uploaded to the pre-defined FTPS folder. This is relevant since you can also have templates that are used for defining API calls.
The way this works can be tested with the program FileZilla:
Host - User name - Password - Port
ftpes://10.99.0.101 - test1 - test1 - 21
ftps://10.99.0.102 - test1 - test1 - 990
API v1 calls
Fetching user-related data has a direct connection with the export templates in SameSystem. When using "Get users data", you can choose to define a specific export template. If none [type] is defined in your GET call, SameSystem will automatically return the data equivalent to the configuration in the first template in the SameSystem export template list.
The way this works can be tested in Insomnia.
Known issues and limitations
The FTP configuration has some known limitations.
It will only work if the server is certified. We do not see this as a concern since this feature is for updating salary systems and the server in use should therefore be certified in all cases.
It has been made to work for FTP and FTPS. At the moment we do not support SFTP.
Logics in the templates
Inside the templates there has been added an advanced start date logic and also a way of working with triggers.
Configuration
It is worth noting that if you configure a CREATED template meant for the General tab and select titles you’ll need to have at least one column that relates to the Contract tab. The system will trigger an empty template if contract column is not selected since it is not able to recognize the title on basis of the General tab information. Note that this is not necessary for an UPDATED template.
Advanced start date logic
For some export files, we need to change the value for Start date. E.g. if it’s the 20th or more of any given month, it means that we need to do a check on the Start date, before creating the file. If the Start date day is more than the defined value, we need to change the value to the first of the upcoming month. This only happens in the template / export layer.
This can be useful for pension, union fee or insurance that is being paid by the employee.
Triggers & All present triggers
We usually trigger a template whenever a column (in the template) has been created / updated. We have now made a logic where we are able to define which columns should be the trigger for the template instead of all columns. Thereby we’ll only trigger the template when the selected column has had a change in value.
All present triggers is a feature that will make sure that we will only trigger a template if the selected columns have a value. If just one of the columns is without a value the template will not be triggered.
