Calendar deviations in AX 2012 R3

This week’s question is from Mrs Trellis of north Wales, and goes something like this: “Dear Barry, we have a group of workers, and I’m looking for a simple way to reflect that sometimes one of them is on holiday”.

So let’s explore this – firstly we’re talking about work centre scheduling and production orders here – I’ll look at scheduling workers onto projects in a later post.

Production order scheduling requires work centres (Resources) and Resources require Calendars. A calendar defines the number of working hours for each working day. First create a Working time template. Organisation administration > Common > Calendars > Working time templates:


Then setup the working times for each time. Define one day first, then copy as required:


While I’m on the form – I’m going to setup a Working time template with no working times:


Then I’m going to the Calendars themselves and use those templates to set the working times. Organisation administration > Common > Calendars > Calendars > Working times > Compose working times:


Click OK and you’ll get a default calendar – of course you’ll have to adjust this for Public holidays and shutdowns, and if you have a lot of calendars to maintain you might chose to link them together (by defining that the working times are inherited from another (‘Base’) calendar):


Again while I’m here I’ll define a calendar with no working times on any day:


You can’t avoid this step – this calendar requires a Working time record for each day – working or not.

All resources are defined within a resource group – and a resource group must contain one or more resources. If your work centres are all different – for instance you’re scheduling different physical machines and all of your machines are different, then the resource group isn’t much use – but still has to exist. But if you have a group of identical machines, or interchangeable workers, then you’ll actually schedule to the group, as you will see in a few moments. Organisation administration > Common > Resource groups:


I’ve created a new group – and I’m using the convention that my resource groups start with a G-.

Next I start to create my individual resources. Organisation administration > Common > Resources:


So I’ve flagged the resource as Type = ‘Human resources’ – that’s not strictly required, but it’s tidy. I’m also using an ‘Operations scheduling percentage’ = 97.5%. The Operations scheduling percentage that’s just below 100% is a quick and easy way of creating a schedule with a bit of head-room, and gives you just one field to adjust if you want more or less slack built into your schedule. I have also flagged the resource for Finite capacity scheduling – if you don’t set that flag then you can’t use Finite capacity scheduling for this resource when you come to schedule your production orders (or planned production orders). You can set some defaults for the Operations on the resource – but you can also leave these blank – which simply means that you’ll have to do a little more data entry when you create the actual route operations. However one thing I always set on resources is the Accounts in the Ledger fast tab. If I’m not expecting to post actual values to these accounts I’ll use a dummy account – but I won’t leave these blank. Maybe the system is not validating that these accounts are filled in any more, but it always used to:


And then I’ll add a couple more Resources:


You’ve probably noticed that I haven’t set a calendar on these resources yet – the calendar on a Resource is set when you assign it to a Resource group – for simplicity here I’m back on the Resource group form – but of course I could do this on the Resource form as well:


Actually I don’t need to go on and create route operations to explain the use of calendar deviations – I’ve already got enough data setup. If I view the Capacity load on this resource group now, the system will show me the total capacity of all of the resources in the group (as defined by their calendar):


I have three resource each with 8 hours per day, so 24 hours in total.

Notice back on the Resource group form I have a short-cut to edit the working times for each Resource’s calendar – but I also have an option called Calendar deviations:


And Calendar deviations is an option on the Resource form as well:


If I edit the working times on the calendar I’ll affect all resources that are using the calendar – but the Calendar deviations form lets you assign a different working times calendar to a single resource for a short period of time:


I’m going to make one of my resources unavailable for a couple of weeks – but of course I could also use this technique to represent additional capacity provided by, for instance, over-time:


Now, back on the Resource group I can see that the available capacity of the group has been reduced:


So this is a quick and relatively simple way of adjusting capacity.

Let’s just go a little bit further and look at one other setting on the route operation.

I’ve started to define a new route with a single ‘Packing’ operation:


On the Resource requirements tab I’m going to select my Resource group:


The system’s asking me if I want to use the defaults I set on the resource group – so that’s the potential time saving I mentioned earlier.

Regardless, I draw your attention to the ‘Quantity’ field in the Resources’ field group:


Here, if your Requirement type is ‘Resource group’ you can ask for more than one resource from the group to be scheduled to the operation. The maximum number you can enter here is the number of resources in the group (3 in my case). Again this is a simple way of recording the planned capacity requirements on a group of resources or workers. For example the packing operation for different products may require different numbers of workers at the end of the production line.

Import an inventory journal with automatic numbering in AX 2012 R3

This post is a follow-up to Import an inventory journal in AX 2012 R3

I’m not going through the whole setup again here, but I’m going to pick it up where I left off and concentrate on the option for Automatic generation of a field value.

Here I’ve setup the Journal number and the Line number as automatic.


As I said in the previous post, that works perfectly for the Line number, and Dynamics AX tries to do the right thing for the Journal number by looking up the number sequence – the problem is it gets carried away and generates a new Journal number for each line. Slightly amusing if you import three lines, not so funny if you import 30,000:


So my original work-around for this was to not use automatic for the Journal number but as Javier Sullivan pointed out in a comment on my previous post, there’s a ‘Query criteria’ option that I’d missed.

I’m in my processing group setup, Data import export framework > Common > Processing group > Entities


And I click on Modify source mapping, and Mapping details, and select the Journal number (JournalID):


Now click on the Query criteria button:


Here we can specify any field in our import file, I’m going to choose the warehouse (InventLocationId):


Then just close the form.

I’ve added a couple of extra lines to my input file – now I have 5 rows, across two warehouses:


On the Processing group I perform the ‘Get staging data’:


And ‘Copy data to target’:


And check my journals, Inventory management > Journals > Movement journals:


And:


Just like it says on the tin!