F48311CalculateAssignedHours

Resource Assigned Hours

Minor Business Rule

Object Name: B4803040

Parent DLL: CMFG

Location: Client/Server

Language: C

Functional Description

Purpose


This business function calculates and returns for a resource the total assigned hours and the total work order assigned hours based on the resources 

capacity and assignments from the F48311 assignment table.


Setup Notes and Prerequisites


Need to setup the following

'b7B3103030 F48307 Get Resource Available Hours needs to be run prior to this business function to retrieve the resources available capacity.

Special Logic


Currently only Daily and Weekly period buckets are available within the resource assignment application.


If processing weekly period buckets, business function calculates the daily amounts internally, then sums up and outputs the weekly amounts.


If a work order or work order labor detail key is passed in, the business function will return the resource work order assigned hours profile as well as 

the total assigned hours for the resource.


Technical Specification


Validate Inputs

'd8Validate Resource Type, Number and project from dates not blank
'd8If periods zero, set to 52
'd8If period type blank, set to days


Open Tables

'd8Open F48311, F4801 and F3112 tables
'd8Call B3400100 (Verify Supply Demand Rules Exists) to open F34004 table

Determine Number Of Periods

'd8If days, number of periods is 1
'd8If weeks, number of periods is 7 (7 calendar days per period)
'd8Calculate the projection days


Add Mode (Action code 1)

'd8Get resource capacity by calling B4803030
'd8Load assignment details passed in from lpDS
'd8Perform load profile level - Flat Distribution (Refer below)

'd8Output W/O Assigned Hours and dates

'd8Close Tables


Update / Inquiry Mode

'd8Load capacity passed in from lpDS
'd8Set Selection / sort for F48311

oSelection RRTY, RSCN, IAVL, SEED, SESD
oSort RRTY, RSCN, IAVL, SESD, SCHSTTIME, LPMD, SEED
'd8Read matching assignments from F48311
oCheck Supply and Demand Inclusion Rules
'a7Fetch work order / routing details
'a7Check if valid WO or Routing Operation status for inclusion
oIf Assignment matches WO passed in
'a7Load assignment details passed in via lpDS
'a7If update mode 2, calculate the assignment percentage
'a7Calculate ASNP % based on dates, hrs and capacity
'a7ASNP%=Assigned hours/(Sum Capacity for date range)
'a7Store current assigned hours for calculating work order assigned hours
'a7mnAssignedWO[i]= mnAssigned[i]
oElse
'a7Load assignment details from dsF48331
oCalculate Remaining hours if in progress.
'a7Delta Days = Project From - Assigned Start
'a7If Delta Days < 0, determine hrs remaining by delta method
'a7Average Assigned hours =  (AHRS / (SEED - SESD + 1))
'a7Completed hours = Delta Days x Average Assigned hours
'a7Else
'a7Complete hours = zero
oPerform load profile level - Flat Distribution (Refer below)
'd8Output W/O Assigned Hours and dates
oMathCopy(&lpDS->mnWOAssignedHours_1 , &mnAssignedWO[0]);
'd8Output total assigned hours for resource
oMathCopy(&lpDS->mnHoursAvailable9_1 , &mnAssigned[i]);
'd8Close Tables


If load profile method 1 - load profile level - Flat Distribution

'd8Initializes increment start date flag and variables
'd8While remaining hours > 0 and Delta Days < Projection Days 
oDetermine capacity for current day
'a7Capacity Hours = mnCapacity[i]/days per period * Assignment %
oIf Capacity Hours > 0
'a7Set increment start date to 0
'a7Reduce remaining hours by capacity available
'a7If remaining hours > 0

'b7Add capacity hours to mnAssigned[i]
'b7Set assigned hours remaining to remaining hours
'a7Else
'b7Add assigned hours remaining to mnAssigned[i]
oElse
'a7Increment date counters
'a7If increment start date 1
'b7Increment start date
'd8End while

'd8If fetched assignment matches WO key passed in
omnAssignedWO[i]= mnAssigned[i]-mnAssignedWO[i]
oIf Remain Hrs > 0,estimate finish date using average available and add to nDeltaDays
oAdd delta days to project from to calculate assigned end date




Data Structure

D4803040A - Resource Assigned Hours

Parameter NameData ItemData TypeReq/OptI/O/Both
cActionCodeACTNcharREQINPUT

A code that specifies the action that is performed. Valid values are: A Add C Change

cUpdateMasterFileEV01charOPTNONE

An option that specifies the type of processing for an event.

cProcessEditEV01charOPTNONE

An option that specifies the type of processing for an event.

cSuppressErrorMessageSUPPScharOPTNONE

A flag indicating whether or not runtime error messaging will occur when an error message is issued from a business function.        0 = allow 
runtime error message handling.        1 = suppress runtime error message handling.

szErrorMessageIDDTAIcharOPTNONE

A code that identifies and defines a unit of information. It is an alphanumeric code up to 8 characters long that does not allow blanks or 
special characters such as %, &, or +. You create new data items using system codes 55-59. You cannot change the alias.

szVersionVERScharOPTNONE

A user-defined set of specifications that control how applications and reports run. You use versions to group and save a set of user-defined 
processing option values and data selection and sequencing options. Interactive versions are associated with applications (usually as a 
menu selection). Batch versions are associated with batch jobs or reports. To run a batch process, you must choose a version.

szResourceTypeRRTYcharREQINPUT

A code that identifies the type of resource for which you are entering competency information. This is a user defined code (05/RT). Valid 
values are: 01 Individual 02 Asset, such as equipment

mnResourceNumberRSCNMATH_NUMERICREQINPUT

A number that represents either the address number or the asset number,depending on whether the resource that you are working with is a 
person or a piece of equipment. The system uses the resource number in conjunction with the resource type for unique identification.

jdDateFromDTFRJDEDATEOPTINPUT

The beginning date for which the transaction or code is applicable.

nNumberOfPeriodsINT01integerOPTINPUT

Number of Days in Future to Query for Responses Due. 

cPeriodTypeEV01charOPTINPUT

An option that specifies the type of processing for an event.

szSDInclusionRule_MVERMVERcharOPTINPUT

A user defined code (40/RV) that identifies an inclusion rule that you want the system to use for this branch/plant. The Manufacturing and 
Warehouse Management systems use inclusion rules as follows:     o For Manufacturing:        Allows multiple versions of resource rules for 
running MPS, MRP, or DRP.     o For Warehouse Management:        Allows multiple versions of inclusion rules for running putaway and picking. The 
system processes only those order lines that match the inclusion rule for a specified branch/plant.

mnDocumentOrderInvoiceEDOCOMATH_NUMERICOPTINPUT

A number that identifies an original document. This document can be a voucher, a sales order, an invoice, unapplied cash, a journal entry, 
and so on.

mnSequenceNoOperationsOPSQMATH_NUMERICOPTINPUT

A number used to indicate an order of succession. In routing instructions, a number that sequences the fabrication or assembly steps in the 
manufacture of an item. You can track costs and charge time by operation. In bills of material, a number that designates the routing step in the 
fabrication or assembly process that requires a specified component part. You define the operation sequence after you create the routing 
instructions for the item. The Shop Floor Management system uses this number in the backflush/preflush by operation process. In engineering 
change orders, a number that sequences the assembly steps for the engineering change. For repetitive manufacturing, a number that 
identifies the sequence in which an item is scheduled to be produced. Skip To fields allow you to enter an operation sequence that you want to begin 
the display of information. You can use decimals to add steps between existing steps. For example, use 12.5 to add a step between steps 
12 and 13.

szTypeOperationCodeOPSCcharOPTINPUT

A user defined code (30/OT) that indicates the type of operation. Valid values include: A Alternate routing   TT Travel time   IT Idle time   T Text

szCostCenterMCUcharOPTINPUT

An alphanumeric code that identifies a separate entity within a business for which you want to track costs. For example, a business unit 
might be a warehouse location, job, project, work center, branch, or plant. You can assign a business unit to a document, entity, or person for 
purposes of responsibility reporting. For example, the system provides reports of open accounts payable and accounts receivable by 
business unit to track equipment by responsible department. Business unit security might prevent you from viewing information about business units 
for which you have no authority.

mnHoursOriginalHRSOMATH_NUMERICOPTINPUT

The estimated hours that are budgeted for this work order.

cLoadProfileMethodLPMDcharOPTINPUT

A code that specifies the load profile method that the system uses to distribute the work across the duration of an assignment. For example, 
when using the flat load profile, the system spreads the work for an assignment evenly over the duration. Currently, the system uses only the 
flat load profile (1), which is also the default value. The code is based on UDC 48/LP.

mnPercentCompletePCMATH_NUMERICOPTINPUT

A measurement that identifies the progress being made on an item such as an account, work order, and so on. It is not always a calculated 
field and may need to be updated manually.

mnAssignmentPercentageASNPMATH_NUMERICOPTBOTH

A percentage that indicates the proportion of a resource's time that will be allocated to the task.

jdDateScheduledStartJulianSESDJDEDATEOPTBOTH

The calendar date that an operation or rate is scheduled to begin.

jdDateScheduledEndJulianSEEDJDEDATEOPTBOTH

The calendar date that an activity or rate is scheduled to end. This date is calculated by the constraints-based planning system.

mnTimeScheduledStartHHMMSSSESTMATH_NUMERICOPTNONE

The time of day that an activity is scheduled to begin. The start time is calculated by the constraints based planning system.

mnTimeScheduledEndHHMMSSSEETMATH_NUMERICOPTNONE

The time of day that an activity is scheduled to end. The end time is calculated by the constraints-based planning system.

mnHoursAvailable9_1DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_2DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_3DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_4DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_5DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_6DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_7DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_8DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_9DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_10DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_11DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_12DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_13DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_14DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_15DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_16DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_17DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_18DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_19DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_20DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_21DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_22DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_23DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_24DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_25DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_26DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_27DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_28DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_29DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_30DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_31DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_32DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_33DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_34DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_35DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_36DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_37DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_38DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_39DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_40DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_41DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_42DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_43DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_44DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_45DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_46DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_47DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_48DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_49DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_50DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_51DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnHoursAvailable9_52DAVLMATH_NUMERICOPTBOTH

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_1DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_2DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_3DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_4DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_5DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_6DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_7DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_8DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_9DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_10DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_11DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_12DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_13DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_14DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_15DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_16DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_17DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_18DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_19DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_20DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_21DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_22DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_23DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_24DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_25DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_26DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_27DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_28DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_29DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_30DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_31DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_32DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_33DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_34DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_35DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_36DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_37DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_38DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_39DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_40DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_41DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_42DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_43DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_44DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_45DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_46DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_47DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_48DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_49DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_50DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_51DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

mnWOAssignedHours_52DAVLMATH_NUMERICOPTOUTPUT

The number of hours a resource is available for scheduling on a single day.

Related Functions

B3400100 Verify Supply and Demand Rule Exists
B4803030 Resource Available Hours

Related Tables

F3112 Work Order Routing
F4801 Work Order Master File
F48311 Resource Assignments