APPENDIX B - PROCESSING DETAILS

Custom Tables and Custom Fields in the Template Defined by Deltek

Which fields in MS Project are affected by the interface?

Two MS Project fields are affected by the interface: Actual Work and Actual Cost.  The interface updates the timescale section of the usage views (Resource Usage or Usage by Resource). It places one lump sum for a task/resource combination in this timescale area as the summary for the gathered period, based on the end date of the period. MS Project then summarizes those values and puts them in the Actual Work and Actual Cost fields. If you select multiple periods for the update process, the program summarizes each period and stores it separately. For information about the sources of the costs, refer to the "Where Do Actual Costs/Hours come from?" section.

What happens during the Setup Process?

When you perform the setup process and map your MS Project Resources to Costpoint resources, the mapping information is saved in the custom fields provided by Deltek.  If you are using the Template (or a copy of it), those fields are grouped in the custom table called Costpoint in the Resource side of table collection.

 

If you are not using the Deltek-supplied template (in which case you must have followed the instructions in Appendix A), you do not have this table defined. However, the custom fields to make up this table are defined. Refer to "Create or modify a table" in the MS Project Help facility to create the table so that the fields are visible.

The setup process will create the following custom fields that are required for the mappings if they are not yet created:

Resource.Text1

Costpoint identification of resource

Resource.Text1

Employee ID

Resource.Text2

Vendor ID

Resource.Text3

Vend_Empl ID

Resource.Text4

GLC

Resource.Text5

PLC

Resource.Text6

Account

Resource.Text7

Organization

Resource.Text8

Group By

 

Note that you do not have to have this table in your MS Project file (MPP) to run the interface. However, the existing mappings are preserved in this table so that you do not need to re-map each time you run the interface; instead, simply enter any changes or additions.

What happens during an Update?

The update process imports values from the Costpoint worktables created by the Gather/Prepare step, using the date supplied when you selected the Import data through date in the Import screen. If the As of Date in any row in the worktable is the same as this date, or earlier, that row is selected. The As of Date is the Costpoint Subperiod Ending Date for the data that was gathered. You can select and gather data for multiple periods and process them with one update. 

During the import process, the program makes three passes:

The program skips rows without a matching resource. It examines rows with matching resources if their matching resources have been assigned to a specific task in the MS Project. If not, they are assigned to the task.

After the assignments are done, the program places current period hours and costs in the worktable into the timescale columns in MS Project. It places one lump sum for a task/resource combination in this timescale area as the summary for the gathered period, based on the end date of the period. MS Project then summarizes those values and puts them in the Actual Work and Actual Cost fields. If you select multiple periods for the update process, the program summarizes each period and stores it separately.  

Other fields are customized and added to MS Project by the update process. If you are using the Deltek-supplied template (or a copy), you can find the Costpoint table in the Project side of MS Project as shown:

The following custom fields are updated by the update process:

Fiscal Year

pjCustomTaskNumber1

Period

PjCustomTaskNumber2

As Of

pjCustomTaskDate1

Period Start

PjCustomTaskDate2

Period Days

PjCustomTaskNumber3

Period Hours

PjCustomTaskNumber4

ITD Hours

PjCustomTaskNumber5

Group By

PjCustomTaskNumber6

Period Burden

MSProject.pjCustomTaskCost1

ITD Burden

MSProject.pjCustomTaskCost2

Period Cost Of Money

MSProject.pjCustomTaskCost3

ITD Cost Of Money

MSProject.pjCustomTaskCost4

Period Direct

MSProject.pjCustomTaskCost5

ITD Direct

MSProject.pjCustomTaskCost6

Period Fee

MSProject.pjCustomTaskCost7

ITD Fee

MSProject.pjCustomTaskCost8

Period T&M

MSProject.pjCustomTaskCost9

ITD T&M

MSProject.pjCustomTaskCost10

 

You do not have to have this table in your MS Project file (MPP) to run the interface, but it will allow you to check what constitutes Actual Costs. Depending on your choice of burden type, the program uses different fields to generate Actual Cost. The system creates these fields during the update process (if they are not already present). If the table is not already defined, refer to "Create or modify a table" in the MS Project Help facility.

Where Do Actual Costs/Hours come from?

This topic illustrates:

1.         How actual costs are computed from the work file created by the Gather/Prepare phase of the interface processing.

2.         How the values in the worktables are generated for the View Gathered tab of the interface after the Gather/Prepare phase is done.

MS Project "Actual Cost" Calculation

Actual

Cost (non-labor)

DIR_AMT_CUR_PD + BURD_ACT_CUR_AMT + COM_ACT_CUR_PD + FEE_ACT_CUR_PD

Cost (labor)

DIR_AMT_CUR_PD

MS Project Actual Cost

Non-labor cost + labor cost

 

Target

Cost (non-labor)

DIR_AMT_CUR_PD + BURD_TGT_CUR_AMT + COM_TGT_CUR_PD + FEE_TGT_CUR_PD

Cost (labor)

DIR_AMT_CUR_PD

MS Project Actual Cost

Non-labor cost + labor cost

 

No burden

Cost (non-labor)

DIR_AMT_CUR_PD

Cost (labor)

DIR_AMT_CUR_PD

MS Project Actual Cost

Non-labor cost + labor cost

 

T&M

Cost (non-labor)

TM_REV_CUR_PD

Cost (labor)

TM_REV_CUR_PD

MS Project Actual Cost

Non-labor cost + labor cost

 

Gathering the Data

The following describes how the Gather process gathers data from Costpoint and puts it in the Z_CP_GATHER table (a worktable within Costpoint). You can see the gathered information in the View Gathered Data tab.

Three different types of rows are created from LAB_HS (Labor History), PROJ_SUM (Project Summary), and PSR_PY_SUM (Project Summary Report Prior Year Summary). These are: Labor with no burden, Non-labor with labor burden, and non-labor with non-labor burden. For each type, the application selects data for:

LAB_HS

Labor with no burden is summarized by:

PROJ_ID/ORG_ID/ACCT_ID/BILL_LAB_CAT_CD/GENL_LAB_CAT_CD

This information is selected from all rows in the LAB_HS table and coded as ACCT_FUNC_CD =  "2".  Also, the dollar values in T&M projects are zeroed out (keeping hours intact).

PROJ_SUM AND PSR_PY_SUM

Non-labor with labor burden is summarized by:

PROJ_ID/ORG_ID/ACCT_ID/L1_ACCT_SEG_ID

This information is selected from ACCT_FUNC_CD = ("2" or "11") in PROJ_SUM and PSR_PY_SUM and is coded as ACCT_FUNC_CD = "3."

PROJ_SUM AND PSR_PY_SUM

Non-labor with non-labor burden is summarized by:

PROJ_ID/ORG_ID/ACCT_ID/L1_ACCT_SEG_ID

This information is selected from ACCT_FUNC_CD = ("3" or "12") in PROJ_SUM and PSR_PY_SUM (PY) and is coded as ACCT_FUNC_CD = "3."

Summary of Sources of Values in the Gather Process

#1  = labor with no burden.

#2  = non-labor with labor burden.

#3  = non-labor with non-labor burden.

Note: Account Function codes of gathered data are assigned as follows:

"2" = Direct Labor costs from #1 above

"3" = ODC and Burden from #2 and #3     

 

Type/period

Consolidated

Source Table For Values ($ and hrs)

Lab_HS (#1)

PROJ_SUM (#2, #3)

PSR_PY_SUM (#2, #3) PY

Smallest group unit (summarized)

Vend_empl_id (#1)

Acct_ID (#2, #3)

1 PROJ_ID

PROJ_ID

 2 ORG_ID

ORG_ID

 3 ACCT_ID

ACCT_ID

 4 L1_ACCT_SEG_ID

L1_ACCT_SEG_ID (from ACCT table)

 5 FY_CD

FY_CD

 6 PD_NO

PD_NO

 7 SUB_PD_NO

SUB_PD_NO

 8 ACCT_FUNC_NO

2 (#1) or 3 (#2), (#3)

 9 BILL_LAB_CAT_CD

BILL_LAB_CAT_CD from #1, NULL from #2, #3

10 BURD_ACT_CUR_AMT

SUM (SUB_ACT_BURD_AMT) #2, #3

11 BURD_ACT_ITD_AMT

SUM (SUB_ACT_BURD_AMT)

+ SUM (BURD_AMT) #2, #3

12 BURD_TGT_CUR_AMT

SUM (SUB_TGT_BURD_AMT) #2, #3

13 BURD_TGT_ITD_AMT

SUM (SUB_TGT_BURD_AMT)

+ SUM (BURD_AMT) #2, #3

14 COM_ACT_CUR_PD

SUM (SUB_COM_ACT_AMT)  #2, #3

15 COM_ACT_ITD

SUM (SUB_COM_ACT_AMT) 

+ SUM (COM_AMT)#2, #3

16 COM_TGT_CUR_PD

SUM (SUB_COM_TGT_AMT)  #2, #3

17 COM_TGT_ITD

SUM (SUB_COM_TGT_AMT) 

+ SUM (COM_AMT)#2, #3

18 DIR_AMT_CUR_PD

Direct Labor (Acct Func CD = 2)

SUM (ACT_AMT)#1

ODC (Acct Func CD = 3)

SUM (SUB_DIR_AMT)#2

19 DIR_AMT_ITD

Direct Labor (acct func CD = 2)

SUM (ACT_AMT)#1 (period up to)

ODC (acct func CD = 3)

SUM (SUB_DIR_AMT) +

SUM (DIR_AMT) #2,  #3

20 EMPL_ID

EMPL_ID from #1, NULL #2, #3

21 FEE_ACT_CUR_PD

0

22 FEE_ACT_ITD

0

23 FEE_TGT_CUR_PD

0

24 FEE_TGT_ITD

0

25 GENL_LAB_CAT_CD

GENL_LAB_CAT_CD from #1, NULL from #2, #3

26 HRS_CUR_PD

SUM (ACT_HRS) from #1, 0 from #2, #3

27 HRS_ITD

SUM (ACT_HRS) from #1, 0 from #2, #3

28 TM_REV_CUR_PD

SUM (ACT_HRS* REV_RT_AMT) from #1, 0 from #2, #3

29 TM_REV_ITD

SUM (ACT_HRS* REV_RT_AMT) #1, 0 from #2, #3

30 VEND_EMPL_ID

VEND_EMPL_ID from #1, NULL from #2, #3

31 VEND_ID

VEND_ID from #1, NULL #2, #3

32 PROJ_NAME

From PROJ_EDIT.PROJ_NAME

33 AS_OF_DT

SUB_PD.SUB_PD_END_DT

34 PD_START_DT

Last ACCTING_PD.PD_END_DT Plus 1 (day)

35 PD_DAYS_NO

Diff Between last PD_END_DT And current PD_END_DT