AX7 T&A: Flex time profile setup

Flex time is added before and after the clock in and clock out. Flex within work hours (after clock in and before clock out) is regarded as “Flex -” and flex outside work hours (before clock in and after clock out) is regarded as “Flex +”.

The flex time intervals does not have to be proportional, but it is recommended that it is at least similar for each of the end points of the work day (clock in/out). You can have Flex + at any time before clock in and -1 hour at clock in if you want. Example: “Flex +” 00:00 – 08:00, Clock in at 08:00 and “Flex -” 08:00 – 09:00. However the profile will look at the total hours of work (from clock in to clock out) to determine when to start flex time calculation. So in that case you should have -2 hours and at least +1 hour at clock out.

A standard flex profile might look like this:

Profile type Start End Switch code Secondary Start day End day
Flex+ 00:00:00 08:00:00 OTBCI Overtime Monday Monday
Clock in 08:00:00 08:00:00 Monday Monday
Flex- 08:00:00 09:00:00 Monday Monday
Standard time 09:00:00 11:30:00 Monday Monday
Paid break 11:30:00 12:00:00 CB1 Standard time Monday Monday
Standard time 12:00:00 15:00:00 Monday Monday
Flex- 15:00:00 16:00:00 Monday Monday
Clock out 16:00:00 16:00:00 Monday Monday
Flex+ 16:00:00 00:00:00 OTACO Overtime Monday Tuesday

Notice the switch codes:
OTBCI = “OverTime Before Clock In”
OTACO = “OverTime After Clock Out”
CB1 = “Canceled Break”

Worker want to register overtime instead of building flex, then the switch codes OTBCI and OTACO is registered and this will then swap the Flex + for Overtime profile type at the right intervals. You can register the switch code at any time of the profile day to activate these.

Go to the AX 7 – Time and Attendance guide page


AX7 T&A: Flex time setup

Flex time is often used and is a pretty concrete concept. You have core hours that the worker has to work and hours that vary from the clock in and clock out hours are posted to an balance that you can monitor. But I use this as a tool to monitor minor worker deviations as well. Even for workers who doesn’t have flex time.

My view on the matter: You don’t want to set up the system to be too strict as this makes for a tight regime and a lot of input needed. I use this as a method of monitoring the small deviations that occur daily in all companies and simply letting the employees them selves be in charge of their work times and by the end of the week or month make sure that you have a balance around 0. Hours owed are deducted and hours earned are reset to 0 and lost. Use a small flex window like 30 minutes to handle the smaller deviations, but keep track of the hours. So the employees that are always late will owe and be deducted at month end. I’ve convinced many companies to start using this concept instead of the old ways because this is a win win win concept. Even in old school manufacturing companies where they used to alarm bells to ring in the shift have been converted to a more dynamic environment for the employees. Increasing the productivity, vastly reducing the amount of absence occurrences and manual controls, boosting moral and thus making the recycling of employees lower.


What the flex functionality basically does is to maintain a flex balance. It can also use this as a pay type to keep an overview in an external payroll system.
Workers are a part of a flex group that sets boundaries, but the boundaries can be broken. It can adjust the flex balance to fall back within the boundaries of the flex group by running a job which may or may not create pay transactions (either positive or negative). The adjustment is normally performed right before payment transfer is executed.
You can get reports on people working outside their flex boundaries for manual control as well.


The setup for Flex groups are located at Time and attendance > Setup > Groups > Flex groups


The categories Flex minimum and Flex maximum contains the settings for the boundaries of the flex account.
If Adjust flex max or min is activated the system will increase or reduce the account balance and pay the pay type assigned. You can use a Pay type factor to get more or less for each hour flex.
Setting up Flex balance pay types is used to be able to have an overview of your flex balances in your payroll systems.

User setup

After the flex groups are created you add it to your workers information.
Go to Human Resources > Workers > Workers > Time registration workers | Employment > Time registration > Flextime


When Flex allowed is “Yes” and a Flex Group ID is selected you will be able to use profiles with flex +/- in them for this worker.

Next we’ll look at how to set up a Time profile with flex.

Go to the AX 7 – Time and Attendance guide page

AX7 T&A: Payroll transfer and export

After pay types are created and approved there will be payment lines ready for transfer to payroll. The records for payment lines are created and there is a flag on each post showing whether or not the transaction has been exported. When transferring payments from AX we use a periodic grouping by the means of Period types. This is a shared feature between many different modules and situated in the Project module. You can create your own periods and can choose from a set of different types of period intervals. I normally use the ledger type, but have created some weekly or monthly offset types of payment periods. Workers can be grouped to different payment periods. It is then possible to do different exports for different workers, so in some cases you might even have similar period types with different names (for instance if exported to different systems, but in similar periods).

Go to Time and attendance > Setup > Payroll > Period types.


After you have created a period type, make sure to generate the periods.


A period has a from and to date and a nice name to go with it.


Generate payroll file

The path for the exported file is set up at in the general Time and attendance parameters. To execute the export go to: Time and Attendance > Maintain payroll > Transfer to pay


Select a payment period and put in a pay date. The export will do an export for the period which the day resides, so if you select 04.01.2015 and the period is a Monthly type. It will export all transactions within 01.01 to 31.01. You can even retransfer transactions. This will ignore the “Transferred” flag on the payment line. The result of this is a comma separated file. The framework is made so that you can create your own type of exports.

Note: Only the pay types that are checked to be included in the export will be transferred.



Go to the AX 7 – Time and Attendance guide page

AX7 T&A: Switch codes

Switch codes are used for swapping different pay types in pay agreements. Most often used to switch between flex and overtime or no pay (break) and overtime or some pay account build up.

A switch code is set up as an indirect activity in a group marked with the switch code type. This is found at: Time and Attendance > Setup > Indirect activity categories


Switch codes can be used together like overtime before and overtime after profile time. You can also set them up to cancel one or more other switch codes. For instance if the user has decided to apply overtime to his work after regular profile hours, but then decide that he wants to do a flexi or work account build-up. In that case the user register a “build-up switch code” which cancel the earlier registered overtime switch code.


The example above only has a single overtime switch code. You might want to have a separate switch code for “start of day overtime” and “end of day overtime” to be able to differentiate. You also then want a Flex switch code that cancels the overtime switch codes.

Go to the AX 7 – Time and Attendance guide page

AX7 T&A: Planned absence

For long term absence and vacation planning I would recommend doing the absence registration as early as possible.
To create absence for a worker you can click the menu item as shown below:

You can view, delete and create new absence for the user in this form.


Create new and select the from and to date as well as a absence group and/or code.
Ticking the “Interrupt” check box will cancel the absence the next time the worker clocks in canceling the rest of the absence. If the absence is interrupted the Interrupted flag will be tagged making this absence not active anymore.

Bulk creation:
You can also do quick and bulk updates of absence. This is good for doing vacation planning.
Go to Time and Attendance > Review and approve > Create planned absence


Select the from and to date for the intervals and select the absence job. REMEMBER TO SELECT THE WORKERS by applying the filter in “Records to include”.
Ticking the “Interrupt” check box will cancel the absence the next time the worker clocks in canceling the rest of the absence.
Ticking the “Compose” check box will create one line for each day for the duration of the absence.

Messed up?
If you some how create absence for to many users (forget to limit the filter) there aren’t a way to see absence for all users as a menu item. Then you would need to open the JmgAbsenceCalendar table directly in the development environment or create a new form that makes this data accessable.

Image from AX 2012 where accessing the table through the AOT.


Go to the AX 7 – Time and Attendance guide page


AX7 T&A: Approve registrations

After calculation is done the next step is to do an approval. This is found at Time and attendance > Review and approve > Approve. All the T&A activated workers are members of an approval group and this should preferably be grouped at a management or executive level.
The approval process is very much like the calculation process and the approver can also perform the calculation steps on the approval form. Smaller companies might only use this level of control and skip the calculation process all together.


The approval action is:

  • Control if the correct pay agreement is set, change this to another type or override it.
  • Create and approve manual premiums
  • Perform the Transfer of the time registrations to payroll, projects and Production. (This might be a step of its own)


You can click the approve checkbox on the time registration journal line to perform an approval for one single worker or click Update > Approve in the top menu to do it for the entire approval group. If some lines are not calculated the calculation action is automatically performed.

After the Update > Approve action is performed you can also filter out the journals with errors in them to by clicking Display errors in the top menu.

Override of the pay agreements can be done in the same manor that profiles. Check the previous post for more information on how to do this.

The Premium transactions can be created manually or could be generated from a pay agreement.
You want to create as much automation in creating payment lines, but it’s not always possible. So for that rare event that creates some type of special payment this kept track of manualy and then entered in here. You could add it in the payroll system, but I believe that everything should be created from AX Time and attendance. Nothing should be added in the payroll system.


The list you select from is configured by going to the Manual premiums form at Time and attendance > Setup > Payroll > Manual premiums.


When the time registration journals are approved the next step is to transfer. This action transfers the changes in time journal lines to the perspective production orders and create the Project time journals as well as create the payroll pay type transactions.

You can click the transfer check box on the time journal header for one worker or click Update > Transfer in the top menu to perform the action for all the workers in the approval group. If journals are not calculated or approved yet, these actions will be performed as well. Clicking the transfer check box (or any of the calculate or approval check box) after it has been checked will reverse the previous actions.

When transfer is performed the lines of the journal dissapear from the form. No worries. You can view them by clicking Inquiry > Transferred registrations in the top menu.


You can also check the pay types generated by clicking Inquiry > Pay items.
The Pay items are created, but not yet transfered to the Payroll system. This is done in a separate action. When transferred the pay items are checked with the “transferred to pay” flag.



It would be tedious to run though all the approval groups with date and time to control if the  calculation, approval and transfer is done.  In the “Calculation and approval status” form you can easily get an overview of this. Go to Time and attendance > Inquiries and reports > Calculation and approval status and enter your criteria for the selection.


The grid will show the status of all records grouped by the combinations of calculation groups and approval groups.


In the example above you can see that 21.02 is only calculated and 22.02 is completely transferred while the rest of the days has to be handled. Now you can quickly go to the approval or calculate window by clicking the Approve or Calculate in the action menu on top of the form to do so.

Go to the AX 7 – Time and Attendance guide page

AX7 T&A: Calculating

Time registration workers are grouped to calculation groups. These should (in my opinion) be grouped as low as forman or team leder level. Offcause every user has to have this (also formen and team leaders), so I normally illustrate this as a hierarchy even though it is a flat table.

The calculation action is:

  • Define the work profile
  • Approve switch codes (for instance Overtime)
  • Define missing or redefine absence reasons

You can configure the group with a password which the user is prompted at opening the form with a specific group if you need to restrict access.

Start the Calculation form by going to Time and Attendance > Review and approve > Calculate.

This slideshow requires JavaScript.

You can do this week by week for a single user or day by day for the entire calculation group. Select the week or the day when you open. I like doing this on a day by day for entire group. Probably since this is the way it has been done before and old habits die hard. Click the day field to go into the day mode or keep the week setting to go to week mode.

This slideshow requires JavaScript.

Once the form is opened AX looks through all the the raw registrations and create these time journals.

You can look through the lines and do amendments to them if you want. You can go back to the original raw registrations data. If all fails. Delete the journal header. Go to the next day and go back.

You can run calculation for everyone in the list by clicking “Calculate” from the menu. The menu item changes to “Undo Calculation” when the line is calculated.

If you run the calculation for everyone (by clicking “Update > Calculate all”) you can click the “Display errors” in the main menu to only display the records that didn’t go through.

If the line goes in to an error you can view the error message by clicking the error pane in the header.


If absence is missing you can go to the absence tab and define the absence. You have to go there. You can not to this direcly on the line below.


Another common error I’ve run in to is if you’ve edited the lines you might have chronological issues. Especially if you have transactions going on till the next day. Profile day has to be the same day as you calculate and not the next day even if the job starts the next day. Check the times and dates on the lines to get the right. You can not be on different types of jobs (Indirect, Project, Production) at the same time.

When the calculation is completed you can go and check the times that are calculated.


Override profile:

You can change the profile for any worker before you calculate and you can even override the profile for a unique day if there is a “once-in-a-blue-moon” event.

By clicking Override and Profile you can change the profile for that particular user for that day.

This slideshow requires JavaScript.

You can load the existing profile as a template by clicking “Retrieve profile” and start changing that one or create each line from scratch. You create this the same way you would a standard profile.

After the override is done the line will have the “Override profile” flag activated.

Remove the ovverride by clicking Delete override in the Profile override window.

Overtime allocation:

You can allocate the overtime for each of the jobs that has been worked on durring the day. Select the percentage of overtime hours to each job. This can be automatically allocated by the overtime allocations principle that is done in the general parameter settings under costing.


This is great, because it might not be the final job of the day that rightfully should carry the overtime cost. It might be that you had issues with the first job of the day and required to complete your work load for that day. Then the unfortunate last job had to be done on overtime, but the first job was the one that really should carry the cost.

Switch code:
Switch codes can be reviewed, changed and/or approved by the person doing the calculation.

Clock in/out:
You can also do clock out workers from the calculation form. You can do a selection of the users that are not yet clocked out and do a clock out for each user.
The clock out time that the user get is the one sat in the profile, even if the clock out happen at a earlier time.

Restore lines:
As you can do amendments on the lines you might do errors or for some other reason want to go back to what was generated based on the terminal registrations. Trigging this will delete amendments to the lines and pull the terminal registrations again.

Quantity reports:
On the action pane menu on the lines of production jobs you can now also quickly access the quantity feedbacks given by the operator and even change these. Be aware of the consequences of changing them though… Well at least they are available.


Go to the AX 7 – Time and Attendance guide page

AX7 T&A: Job card terminal

In the Job card terminal you can register time on any job (Indirect activities, Project and Manufacturing). It is a highly configurable form with an option for both fields and menu items to be specified by the user doing the setup.

You find the configuration on Time and attendance > Setup > Configure job card > Configure job card terminals or Production Control > Setup > Manufacturing Execution > Configure job card terminals.

Terminal configuration

You can personalize any form in AX, but the job registration form is one of the most configurable interfaces except for the retail POS terminals. You can configure the buttons and fields by using the terminal configuration (Production Control > Setup > Terminals > Configure registration forms). The configuration wizard create some default terminal settings as shown here. Feel free to make you own.


The Action pane parameter defines the configuration of the buttons and panes. You can configure these as you wish. More info on that below.

The Start page parameter defines the first page you are taken to when logging on. There are six options to choose from here.

  • None
    Returns to the logon screen. Used for punch in/out terminals
  • My jobs
    If the employee is connected to a resource, the terminal filters project activities and production jobs that are planned on this resource.
  • Indirect activities
    Displays the available indirect activities
  • Project
    Display projects and project activities
  • Current Activities
    Shows a list of jobs the user has activly selected.
  • Production
    Shows production jobs

Report qty at clock out gives the user a dialogue for feedback when clocking out. Even on the punch clocks.

Job list check checks if the job fed in to the barcode field is available on the list displayed. This way the user can not start another job then is on the filtered list.

Lock employee means that the user can authenticate once and start and report on the terminal without being presented the login screen again. They have to manually click the switch user icon. Then the terminal is brought back to the login screen.

Prompt for production area gives a dialogue at start up to select the Production area, Resource group or resource and filters the production jobs accordingly.

Barcode scanner puts a generic job input field named “scanning”, that can be used to read the Job ID in to. This field is always first to be in focused (cursor active) when the form loads.


Use actual login time defines if you want to use the time the worker clocked in or the actual time where he selected the job and approved/started.

You can show, minimize or totaly hide Messages, Status, Clock and Preview pane.


You can select the grid setup for the Indirect activities, Production orders and Projects. You can configure these and choose what fields to be shown in the grid collumns and the preview pane. More on this below.

Setting up grids:

Click “Setup  of grids” in the menu to access this form and simply add the fields, their order and whether or not they are going to be displayed in the grid or in the preview pane.


If you want to do add new fields to the forms, you should add it as a selectable field in this list and not fool around with the form directly.

Setup of action panes

The action panes are the menus you see on top of the form. They are also configurable within the limits of what is available.

The setup is built on a four level hierarchy


Level 1 = Root
Level 2 = Top menu item
Level 3 = Menu group
Level 4 = Action/Button

In the form it looks like this:


So build your menu tree and add the button functionality from the “Key configuration” list as the function of the menu item you’ve created.

If you want to do add new functions/buttons your self, you should add it as a selectable item in the “Key configuration” list and never to the Job card Terminal form directly.

Assigning users

The terminal configuration setup was in AX 2012 authenticated by the machine name that the AX client was running on. In AX7 this is related to the user that is logged on. A user can be associated with a single Device or Terminal configuration. A user that is not allocated a Device or Terminal will require to select a terminal type when launching the Job card Terminal form and will not be able to open the Job card Device form.


Adding a new user launches a dialogue that filters on the security roles assigned to the user and removes any user that has already been assigned to a job card terminal or device already.


When a user which is not assigned a terminal and launches the Job card terminal time, the system prompts the user for a configuration.


The user will be prompted for this every time unless assigned a Job card terminal.

To launch the Job card terminal go to: Production Control > Manufacturing execution > Job card terminal.


Go to the AX 7 – Time and Attendance guide page

AX7 T&A: Job registration

The job registration form (Terminal) is the heart of the time and attendance functionality in my opinion.

If you’re running earlier AX versions there are a couple of things you must be aware of. There are major changes to the UI in AX7 and a lot of the design elements that where used in previous versions are now not available any more. Some forms where specially made to perform certain tasks and where fine tuned over the years. The Job registration form was one of these. These posts are based on the AX7 CTP8 which is a preview and will be subject for change before release and there are both good and bad news, but I believe the bad news are being worked out of the system in the final release.

In general

In AX7 there are two different type of terminals:

Job card Terminal


The Job card Terminal is the good old interface that we know from previous versions, though it is slightly down graded as functionality goes.

This interface is now meant for using on a desktop computer with mouse and keyboard. Though it is fairly usable for the touch screen as well, the buttons / menu actions are a bit small and will require a stirdy hand.

You can access the Job card terminal from Production Control > Manufacturing Execution > Job card Terminal or Common > Common > Time and attendance > Clock in/out (Punch clock)

More on how to set this up in another post.

Job card Device

The Job card Device is a new interface for manufacturing execution. This is basically the same interface concept that Microsoft made in the Modern UI Windows Companion App for AX called “Production Control”. It is a much more touch friendly and is made for the shop floor worker.

This interface is built for the the manufacturing shop floor and is a touch-first interface. It can do almost anything the Job card Terminal can do, but is not as configurable. It will not work with project and project activity jobs.

You can access the Job card Device from Production Control > Manufacturing Execution > Job card Device

More on how to set this up in another post.

Limited Navigation

A cool feature to know about is the general navigation interface can be simplified when though a URL attribute. Open the job card terminal or device and add &limitednav=true to the end of your URL. This will reduce the possibility to navigate to other places in the system (unless someone changes the URL of cause).

This slideshow requires JavaScript.


Go to the AX 7 – Time and Attendance guide page


AX7 T&A: Worker setup

Once your base parameters are set, you can activate your workers (employees and contractors). This is done by going to the workers and selecting “Activate on registration terminals” under the “time registration” pane.


This brings up the dialogue for entering the basic parameters for your time registration worker.


Fill out at least the required fields (preferably as much as you can) and click OK.

Now let’s take a look at the user parameters on the worker card. I’ve marked the fields with green for the ones I normally set up.

Go to: Human Resources > Workers > Workers | Employment > Time Registration


Password has to be turned on in the T&A parameters to prompt the user. Can also be blank for some users. Great if you have issues of users typing the wrong user ID or pick the wrong ID card. This is to bring an extra level of accuracy, but is also used from a Security perspective. I always suggest to have this active on the supervisor users.

Pay ID overrides the employee ID in the case of exporting payroll transactions.

Badge ID is used as an alternative authentication method than Employee ID. You can only choose to use the one or the other. This is done in the T&A parameters.

Badge version is just an internal note for keeping up with the card version if applicable.

Activate the user by enabling the active checkbox and an Activation date. You can also deactivate users from time registration by unchecking this box.

Calculation groupApproval group, Standard profile, Profile group and Default calculation Group are required fields and must be entered.

New bundle is to set the default mode of working to either sequencial or task aggregated work. More on bundling later in the Manufacturing Execution part.

Category is the category that is standard for reporting i Projects.

Use Timecard is an option to activate the user to utalize the built in manual time sheet solution. More on this later.

Configuration is used to prompt the user with a specific desired job card terminal layout overriding the terminal standard.

Supervisor options gives the user the supervisor options menu at the time of authentication on a terminal.

Pay agreement should be sat for each employee. PS: The setting for pay agreement on the profile settings override this setting.

Seniority date is used by the pay agreements delimitation to calculate seniority. This is often confused with the seniority on the employee card.

Period code is the grouping on how often the user gets paid calculated.

Flex allowed needs to be activated if the user is to use a flex profile. You can also set rules and limitations for the flexi profile pr. user by entering a Flex Group ID.

Bulk update your employees:
Activating employees can be a tiresome task if you have a large organization that should be activated at once.
Use the Excel add-in and filter out the desired worker IDs in the hcmWorker table. Copy this to enter data into the jmgEmployee table.


Go to the AX 7 – Time and Attendance guide page