Microsoft Dynamics AX 2012 ® Allocating resources based on resource requirements Concept Paper In AX 2012 the traditional hard binding between an operation and a work center has been removed and replaced with the concept of resource requirements. This document explains the new concepts introduced and provides an overview of the design. Date: 7/19/2011 CCAX2012DI0009 Table of Contents Overview..................................................................................................... 3 Architecture of the resource model in Microsoft Dynamics AX .................... 3 Resource, resource group and calendar ................................................................................... 3 Capability ............................................................................................................................ 3 Activity requirements ............................................................................................................ 4 Determining applicable resources ............................................................... 5 From the UI ......................................................................................................................... 5 From code............................................................................................................................ 6 Route design recommendations .................................................................. 7 Maintaining resource requirements ............................................................ 7 Glossary of terms ........................................................................................ 8 2 ALLOCATING RESOURCES BASED ON RESOURCE REQUIREMENTS Overview In AX 2012 the traditional hard binding between an operation and a work center has been removed and replaced with the new concept of resource requirements. The new model enables the process designer to describe production processes without having to make references to specific machines, tools, or workers in the routes. As a result, the process designer can avoid making scheduling decisions at design time and it becomes easier to handle changes over time. Architecture of the resource model in Microsoft Dynamics AX Resource, resource group and calendar The primary entity of the operations resource model is the resource. There are multiple types of resources: Tool, Machine, Human Resource, Location, or Vendor. A resource can be a member of a resource group and the resource group membership can change over time. A resource group should be considered the as a vehicle for organizing the resources and it is located at a certain Site. A resource can only be a member of a single resource group at any point in time. It is also allowed that a resource is not a member of any resource group however the resource will only be considered for scheduling during those period(s) where it is connected to a resource group. Membership4 Resource 1 Resource group membership * * Member-of4 1 Resource group +Valid from +Valid to * Available-according-to4 1 Calendar A resource has an associated calendar when part of a resource group. This calendar defines the availability of the resource for the period where the resource is associated with the resource group, which means that for the periods where the resource is not member of a group it cannot have a calendar and therefore cannot be available for scheduling. Capability A capability is the ability for a resource to perform a given activity e.g. TIG Welding, Pressing or Floor sweeping. A resource can be assigned one or more capabilities for a given period of time and can have multiple capabilities at the same time. For each assignment it is possible to set a priority and level at which the capability can be performed (e.g. stamping with 4 tons pressure). The priority determines which resource is allocated first by the scheduling engine whereas the level is used for quantifying the capability. 3 ALLOCATING RESOURCES BASED ON RESOURCE REQUIREMENTS Has-capability Resource 1 Described-by4 Resource capability +ValidFrom +ValidTo * * Capability 1 Activity requirements In Microsoft Dynamics AX 2012, an entity named Operations Activity has been introduced to create a common abstraction of the unit of work to be performed by one or more resources. The Operations Activity entity will not be directly visible to the end user but is used internally for a common representation of the following business entities: Hour forecast (project), Production route, Operation relation, Product model operation relation and Product builder operation relation. Operations Activity Hour forecast activity Operation relation activity Production route activity 1 1 1 1 Prodution route Product builder operation relation activity 1 1 1 Hour forecast Product model operation relation activity 1 1 Operation relation 1 Product model operation relation Product builder operation relation Each activity can have a set of activity requirements that specifies how many resources are needed for the activity and what abilities the resources are required to possess in order for them to take part in the activity. There can be multiple activity requirements for each activity requirement set and in order for a resource to be applicable for an activity the resource must meet all the requirements in the set. For each activity requirement it can be defined if the requirement should be considered when performing operations scheduling and/or job scheduling. Operations Activity Has4 Activity requirement set 1 * -Quantity 1 * Activity requirement Title requirement Skil requirement * 1 Skill Course requirement * * 1 Person title Certificate requirement RatingLevel 1 Certificate * 1 Course Resource type requirement * 1 Resource type 4 ALLOCATING RESOURCES BASED ON RESOURCE REQUIREMENTS Capability requirement * 1 Capability Resource group requirement * 1 Resource group Resource requirement * 1 Resource Determining applicable resources A resource is said to be applicable for a given activity if it fulfills all of the resource requirements for the activity. A list of applicable resource can be generated when you know: - The date as of which to perform the search. Since much of the resource and membership information can vary over time an as-of date must be provided. - The site context Site will in most cases be a limiting factor as the resources must be a member of a resource group on the site where the production takes place. - The scheduling method An activity requirement can be applicable for either operations scheduling, job scheduling or both so the scheduling method must be chosen to find out which activity requirements to include. From a conceptual point of view determining the applicable resources is quite easy; it is simply a matter of traversing through all the resources and check if the skills, capabilities, resource type etc. of the individual resource matches the ones stated in the requirements and that the resource is not associated to a resource group that is marked as being a lean work cell. From the UI In many of the forms that represent activity related entities, e.g. the Route form, an Applicable Resources button can be used to display the list of resources that could potentially be used for performing the activity. The Applicable resources form does not take into account capacity reservations or working times but is very useful for a quick validation of the route. 5 ALLOCATING RESOURCES BASED ON RESOURCE REQUIREMENTS Figur 1 Using the Applicable Resources button on the Route form From code To find the resources that are applicable for an activity, the activity requirement set must first be found. Depending on the need, the activity requirement set then offers two main APIs for finding the applicable resources: applicableResourcesList will return the IDs of all applicable resources in a simple list. applicableResourcesQuery will create a query object with the WrkCtrTable as the primary data source. For both APIs, you must decide whether the output should be the resources that satisfy job scheduling requirements or operation scheduling requirements (do not use both options because that would result in too restrictive a search). An example of the method’s usage can be seen below: query = wrkCtrActivityRequirementSet.applicableResourcesQuery(searchFromDate, searchToDate, inventSiteId, schedMethod == SchedMethod::Detail, schedMethod == SchedMethod::Rough); 6 ALLOCATING RESOURCES BASED ON RESOURCE REQUIREMENTS Route design recommendations When the process engineer of a company is creating a route it has been common practice to directly associate a specific resource or resource group to the operation. Doing this “hard binding” can have a lot of drawbacks some of them being: - In larger organizations it is very often that the process engineer does not have knowledge of the specific people or machines on the shop floor so finding the resource to assign can be difficult. - When people move around between resource groups and/or facilities the routes must be constantly updated to reflect the changes. - Many resources are capable of performing different tasks and can step in when there is a shortage of capacity, however if this fact is not recorded in the system scheduling becomes more of a manual task and the automatic calculated lead times cannot be trusted. - If many resources can perform the same task a separate route must be maintained for each resource. - The decision on which resources that must perform the operations on the route is made when the route is created not when the production is scheduled. In order to avoid these issues it is recommended that routes are created as generic as possible and that capabilities, skills etc. are used to decouple the design process from the resource selection process. By not stating a resource or resource group directly on the operation a lot more flexibility is given to the scheduling process allowing it to create a better plan that more accurately reflect the real world situation and that typically has a higher resource utilization.. Note that for performance reasons it is not possible to use the HR information (Skills, Courses, Certificates and Person titles) for operations scheduling, only for job scheduling. If a Skill or other HR requirement is created as the only resource requirement and operations scheduling is also used by the organization, it is recommended to insert an additional requirement for either a Capability, a Resource type or a Resource Group as a random resource group in the system otherwise could be allocated by the scheduling engine (all resources in the organization will match an empty resource requirement set). Maintaining resource requirements A Maintain Resource Requirements wizard has been introduced to ease the process of changing the requirements on multiple activities at the same time. Scenarios that the wizard supports include: Adding an additional resource requirement. This will typically be used when adding new types of resources to an existing resource group; for example, to make sure that existing operations still can use only resources of type machine even though the group now also contains workers. Replacing only the resource requirements that match the search criteria. This can be used when reorganizing capabilities after upgrade. Replacing all resource requirements. This can be used if all operations of a certain type have a completely new set of requirements that must be fulfilled, or when switching from using capabilities or specific resource groups. The Maintain Resource Requirements wizard also can be used when replacing resource requirements of type Capability or Resource group with resource requirements of type Skill, Course, Certificate, or Title. The wizard can update requirements for one or more activities at the same time (Routes, Production routes, Product builder routes, Product configuration routes, Hour forecasts). Before the task is executed, it is possible to get a count of how many activities will be affected. 7 ALLOCATING RESOURCES BASED ON RESOURCE REQUIREMENTS Glossary of terms Term Definition Capability The ability for a resource to perform a given activity at a specified level (where applicable). Resource Anything that is used for the creation, production, or delivery of a good or service beyond the materials consumed in the process. These can be of type Tool, Machine, Human Resource, Location, or Vendor. Resource group A group of resources that may or may not have similar capabilities. A resource group typically corresponds to a project team or a physical area on the production floor and must be based on one (and only one) Site. 8 ALLOCATING RESOURCES BASED ON RESOURCE REQUIREMENTS Microsoft Dynamics is a line of integrated, adaptable business management solutions that enables you and your people to make business decisions with greater confidence. Microsoft Dynamics works like and with familiar Microsoft software, automating and streamlining financial, customer relationship and supply chain processes in a way that helps you drive business success. U.S. and Canada Toll Free 1-888-477-7989 Worldwide +1-701-281-6500 www.microsoft.com/dynamics This document is provided “as-is.” Information and views expressed in this document, including URL and other Internet Web site references, may change without notice. You bear the risk of using it. Some examples depicted herein are provided for illustration only and are fictitious. No real association or connection is intended or should be inferred. This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes. You may modify this document for your internal, reference purposes. © 2011 Microsoft Corporation. All rights reserved. Microsoft <list other MS trademarks used alphabetically> are trademarks of the Microsoft group of companies. <This is where mention of specific, contractually obligated to, third party trademarks should be listed.> All other trademarks are property of their respective owners. 9 ALLOCATING RESOURCES BASED ON RESOURCE REQUIREMENTS