Understanding Custom Outline Codes and Custom Fields

You must mold the raw functionality provided in Project Server to shape and channel information to your organization’s specific requirements. Although the built-in generic information streams provide useful tracking and statistical data, you accomplish a more meaningful presentation of information by seeding the database with custom attributes. These exist in Project Server as custom fields and custom outline codes, which come in two flavors: enterprise and local. Those of you familiar with field customization will find that the process for customizing enterprise fields is the same as it is for local fields in prior versions of Project. The most striking difference is the lack of enterprise finish and start fields. These remain available as local fields.

You manage enterprise fields and outline code definitions centrally. Only administrators or users specifically granted permission can modify these. Modify local custom fields and outline codes on an individual project basis. Local fields and codes aren’t available across projects except that these may be moved from one project to another through the Organizer, as shown in Figure 8-9. In the figure, I copied the view “new gantt” from the Long Hill Development plan to the Data Recovery Service plan. You accomplish this by opening both plans from Project Server and then launching the Organizer.

Project Server configuration focuses on enterprise custom fields and outline codes. The most important distinction between custom enterprise fields and custom enterprise outline codes is that enterprise outline codes publish to the OLAP cube as dimensions. Thus, your ability to craft Analyzer output to meet specific requirements is supported exclusively by enterprise outline codes. Consequently, outline codes will usually follow reporting vectors and you’ll use them liberally in your configuration design.

Traditionally, Microsoft Project has offered a complement of fields and outline codes definable at the task/assignment and resource levels. Both remain available as local field sets, and now as enterprise fields and outline codes. New with Project Server are project-level fields and outline codes, which facilitate flexible portfolio designs.

Why Enterprise Fields and Outline Codes Are Important to Your Configuration

Project stakeholders and management often have difficulty accessing project facts traditionally buried in charter and scope documents. Project Web Access gives you the opportunity to capture and display this information in convenient views that can bring the metadata associated with a project to the public eye, information as mundane as what stage the project is at in the corporate approval process, stakeholder names, and contact information. Of course, you can also share the charter document through STS, but that might be too much clicking and searching for some. In the Project Center view shown in Figure 8-10, I added the custom outline codes Location and Performer to enrich the view.

click to expand
Figure 8-10. Project Center view displaying custom field data information

The Analyzer view in Figure 8-11 shows the power of outline codes when using OLAP cube data. Because I attributed resources by practice group, you’re able to see the resource loading across these classifications and you’re able to drill down to the individual resource within each group. If you desire, you could expand the time data to quarters. Without the custom attributes, this display wouldn’t be possible. The power of these tools relies heavily on custom data.

click to expand
Figure 8-11. Analyzer view displaying demand and actual work by practice group

Enterprise Field and Outline Code Types

There are six field types and one outline code type available at the task/ assignment, resource, and project levels. At each level are fields of each of the following types and quantities:

  • Enterprise Cost 1 through 10

  • Enterprise Date 1 through 30

  • Enterprise Duration 1 through 10

  • Enterprise Flag 1 through 20

  • Enterprise Number 1 through 40

  • Enterprise Text 1 through 40

  • Enterprise Outline Codes 1 through 30

Defining Enterprise Fields and Outline Codes

To define an enterprise field or outline code, you must first check out the enterprise global. Once you’ve done so, navigate to Tools Customize Enterprise Fields. The Customize Enterprise Fields dialog box opens as shown in Figure 8-12. Open the Custom Fields tab. It’s shown again in Figure 8-13 with the Custom Outline Codes tab exposed.

click to expand
Figure 8-12. The Customize Enterprise Fields dialog box with the Custom Fields tab open

click to expand
Figure 8-13. The Customize Enterprise Fields dialog box with the Custom Outline Codes tab open

Customizing Enterprise Fields

Referring back to Figure 8-12, you can see that each field has it own set of attributes. First make a selection to customize a field for Task, Resource, or Project by clicking the corresponding radio button. Select a field type and click the Rename button. The Rename Field dialog box appears to accept the input of a new name. In the example in Figure 8-14, I rename Enterprise Project Text6. Type the name of your new field and click OK. In the example, I’ve entered the name Project Manager. Next, determine whether the field will be required. If this is a required field, select the “Make this a required field” check box.

click to expand
Figure 8-14. Renaming your new custom field

Making a field required forces users to provide a value before writing a record to the database. In other words, if you have required task fields, you can’t save new tasks to a plan without a value provided. Similarly, required resource fields must be completed when saving resource data; likewise for project level fields. You must give required fields careful thought. First, it must be reasonable to expect that users will have values for required fields when they encounter them. Second, you must anticipate exceptions to validated values when you opt to use them.

In the case of required resource fields, you must consider whether you have applicable values for generic resources if your configuration includes them. For instance, a required location field doesn’t make sense for a generic resource unless you’re creating the resource as geographically specific. Typically this isn’t the case, so you must include a value such as “generic” or “any” on your location value list. This caution applies to custom outline codes as well.

Control the contents of your new field by the application of a value list or formula. Once a value list is set for a field, all values entered into the field must adhere to the list values. Without a value list and value list options set, the user is free to enter any text up to 255 characters in the example text field. Click the Value List button to open the Value List dialog box shown in Figure 8-15. Note that the name Project Manager contained in quotes is the new name of the example field.

click to expand
Figure 8-15. Custom field Value List dialog box

Setting a value list enhances your control over the field by optionally forcing validation of all input. Establishing a value list allows you to set a default value for the field. To do this, check the box immediately under the value list grid in the Value List dialog box after you’ve highlighted the selection to use. This turns the display of the value to red. Type in your values and descriptions in the entry grid provided. The descriptions are for administrative purposes and aren’t visible elsewhere, so don’t sweat them.

Don’t let the dialog box fool you; the option to allow additional items to be entered into the field applies only to local fields, not enterprise fields. Use the display order for drop-down list selections to control the ordering of drop-down displays when the user encounters them.


Although you can select a sort order for custom fields, outline codes always observe an alphabetical sort. Therefore, if you’re constructing a value list that you want to display in a specific order, you’ll need to work around this behavior by prefixing your values with numbers in sequence or creating a prefix using alphabetical characters such as “a-,” “b-,” and so on.

Click the Import Value List button at the bottom of the Value List dialog box to activate the Import Value List entry dialog box shown in Figure 8-16. In the first drop-down box, select from one of the open project files. Select the Checked-out Enterprise Global file to import a value list from another global file field. Then, select the field containing the value list you wish to import. Click OK once you’ve made your selection or click Cancel to exit.

click to expand
Figure 8-16. The Import Value List dialog box

After you’ve defined an optional value list, you must choose how the field will behave in views. Here the Customize Enterprise Fields dialog box allows you to choose the calculation behavior. You also determine whether to display the actual data from a field or a graphical indicator representing the data. Selecting a calculation option for your new field allows you to control the way the values roll up to task summary rows and group summary rows in Project views. Rollup options apply to all custom fields except text fields and don’t apply to custom outline codes. When you select the Rollup radio button, you must also choose a type in the corresponding drop-down box. (Refer back to Figure 8-12.)

Understanding Rollup Methods for Enterprise Custom Fields

Once you select the Rollup radio button, the rollup drop-down list becomes available for you to make a selection. Your choices vary by field type. I enumerate the number fields, the selections, and their applicability in Table 8-4.

Table 8-4: Enumeration of Custom Field Rollup Types












Average First Sublevel




Count All


Count First Sublevel




















Now that you know which rollup method applies to each specific field type, the following explanations of the rollup methods will help you choose the appropriate method for your new field. Keep in mind that there’s no particular right or wrong answer here—these choices must follow the function you intended for the field.

  • Average: Causes the rollup to be an average of all nonsummary values beneath the summary row.

  • Average First Sublevel: Causes the rollup to be an average of both the nonsummary and summary values on just the first level of subtasks or grouped tasks.

  • Count All: Causes the rollup to be a count of all summary and nonsummary items beneath the summary row.

  • Count First Sublevel: Causes the rollup to be a count of both the summary and nonsummary tasks on just the first level beneath the summary row.

  • Maximum: The rolled-up value will be the maximum value of values beneath the summary row.

  • Minimum: The rolled-up value will be the minimum value of all values beneath the summary row.

  • Sum: Sets the rolled-up to value to the sum of all nonsummary values beneath the summary row.

  • AND: Is applicable to enterprise flag fields only. When selected, it indicates that the rollup should be a logical AND of all the flag values appearing beneath the summary row. For example, if all flags in the subtasks are set to Yes, then the rollup in the summary task is Yes; if any flags in the subtasks are set to No, then the rollup in the summary task is No.

  • OR: Is applicable to enterprise flag fields only. When selected, it indicates that the rollup should be a logical OR of all flag values appearing beneath the summary row. If any flags in the subtasks are set to Yes, then the rollup is Yes.

  • Use Formula: Applies the same formula to the summary row as it does the subordinate rows when a formula applies to the custom field, rather than rolling up the values in the column.

Using Formulas to Display Calculated Data in Custom Fields

Calculated fields provide a very flexible way to influence the output of Project Professional views and reports, and Project Web Access views. Use calculated fields to perform compound financial calculations such as net present value or to build business-specific key performance indices (KPIs). Tap them to make alternative data available conditioned to a specific business interpretation to accommodate nonproject standard displays of duration and effort facts. Keep in mind that enterprise custom fields can reference other enterprise custom fields or any built-in Project field, but they must not reference local fields, which aren’t reliable data sources.

Click the Formula button in the Customize Enterprise Fields dialog box (refer back to Figure 8-12) to open the Formula dialog box. Shown in Figure 8-17, the Formula dialog box provides graphical tools for building formulas, such as the simple one in the figure where one cost field is subtracted from the other. If you prefer, you can type in the formula directly. The system represents operators as buttons for quick clicking, and fields and functions are inserted using pull-down menus. The navigational structure of the pull-down menus is very intuitive and logically categorized.

click to expand
Figure 8-17. Build a formula using the interface tools or type it in directly.

Displaying Graphical Indicators in Custom Fields

Graphical indicators give a powerful, popular, and eye-pleasing impact to both Project Professional and Project Web Access views. You’ll always see these used liberally in sales-pitch demonstrations given by Microsoft staffers and Project Partners. Project and Project Server both display graphical indicators as set through the field customization interface. Click the Graphical Indicators button in the Customize Enterprise Fields dialog box to launch the Graphical Indicators dialog box shown in Figure 8-18. The example shows a Project-level field defined to display a simple red, yellow, and green stoplight-type indicator based on three simple values.

click to expand
Figure 8-18. The Graphical Indicators dialog box

As a project-level field, it’s intended for views that will display project records. Therefore, it makes sense to define this for nonsummary rows as the Project Budget indicator in the sample will apply to projects as a whole. Notice that you can also choose to set this for summary rows or the project summary row. In these cases, you also determine whether the summary rows inherit criteria from the nonsummary rows. Another thing to keep in mind is the effect this inheritance can have on graphical indicators based on the rollup method when a graphical indicator applies to a calculated field.

Along with editing tools, the test grid populates using pull-down menus. You can apply the following tests to the specified values:

  • Equals

  • Does not equal

  • Is greater than

  • Is greater than or equal to

  • Is less than

  • Is less than or equal to

  • Is within

  • Is not within

  • Contains

  • Does not contain

  • Contains exactly

  • Is any value

You may apply these tests to the Value(s) field, which may be a Project standard or enterprise field, or a literal value entered by the user. The “is any value” test yields a positive result in all cases, making it useful as a catchall at the bottom of the list to display an indicator to represent a value not otherwise defined or other. The fact that you would place this at the bottom of the list brings up a very important point about graphical indicator tests. These prosecute from the top down. Not only must you keep this in mind while structuring your test logic, but you can also use it to your advantage.

In the example shown in Figure 8-18, number 1 displays green, number 3 displays red, and number 2 displays yellow. In this case, the order these appear in the list is inconsequential with the exact test. It should be noted in this case that any value occurring in the field that isn’t 1, 2, or 3 exactly would cause no indicator to display. Changing the example to use the “is greater than” test for all of these values would cause all values above 2 to display the yellow indicator and the red indicator to never display. This is because after meeting the test for being greater than 3, the value would then meet the test for being greater than 2, changing it ultimately to yellow.

You can choose from 17 distinct graphics. Some are available in only one color, whereas others are available in many colors. Use the check box at the bottom of the Graphical Indicator dialog box to determine whether the data value underlying the graphical display will show in a pop-up display when the user hovers a mouse over the indicator in a view.

Customizing Enterprise Outline Codes

Renaming an enterprise outline code is done in exactly the same way as renaming a field. Outline codes are different from other fields, as they can accommodate a flat value list or hierarchical structure. Like custom fields, outline codes may be set as required. Unlike custom fields, outline codes may not be defined using calculations and graphical indicators, and outline codes require that you define a code mask before defining a value list. The code mask determines the allowable structure of an outline code value by setting a sequence of code segments and determining their allowable length. You select which character separates the code segments. An option also allows you to set an outline code to accept only selections on the tree with no subordinate values.

Click the Define Code Mask button on the Custom Outline Codes tab of the Custom Enterprise Fields dialog box to launch the Outline Code Definition dialog box shown in Figure 8-19. In the sequence box, you may select Numbers, Uppercase letters, Lowercase letters, or Characters. By selecting any of these, your values must adhere to the type specified. Selecting Characters gives you the most flexibility, as you may use any character in defining your values. You select the length for the code segment using the pull-down menu. This gives you the choice of limiting the segment to a number value on the list or a number you type into the field, or you may choose to set the segment to any, which allows any number of defined characters in the definition.

click to expand
Figure 8-19. Use the Outline Code Definition dialog box to construct a code mask.

Separators for code segments may be the dot, dash, plus sign, or forward slash. Choose these from the pull-down menu. The system also accepts other special characters, such as those found above the number keys on a keyboard. Once you define the code mask, click the Edit Lookup Table button in the Outline Code Definition dialog box to activate the Edit Lookup Table dialog box shown in Figure 8-20. Note the indenting controls in the upper toolbar. Use the indenting tools to create subordinate values. Indenting in pick-list displays is turned on or off by checking or unchecking the “Display indenting in lookup table” check box.

click to expand
Figure 8-20. The Edit Lookup Table dialog box

One of the most useful features of outline codes is their sharing nature. The option to share another code’s lookup table on the Customize Enterprise Fields dialog box (refer back to Figure 8-13) allows you to share another code’s structure. You’ll likely find a number of occasions when this will come in handy. For instance, many companies will want to slice their portfolio of projects based on department. It’s possible to want to slice this in more than one way. Let’s say a company wants to define a project-level attribute to define a project by which department it primarily benefited and again by which department was doing most of the work. One outline code representing producer and another representing the consumer will share one lookup table.

Deleting a Custom Field or Outline Code

There are two ways to approach this. The first is to open the enterprise global and open the field to modify and then clear all the custom attributes, including the new name. The other approach is to open the enterprise global, then launch the Organizer (covered earlier in this chapter) and delete the custom field using the Organizer.

The Publishing Process and Enterprise Custom Fields

An unexpected quirk that comes along with Project Server’s data publishing process is that custom fields aren’t immediately available in Project Web Access. If after a new field is defined, an administrator then checks in the enterprise global and proceeds directly to Project Web Access Admin interface and modifies a view to display the new field, chances are the new field won’t immediately show in the view at all or won’t show valid data. New graphical indicators, for example, will show default or null value data rather than an indicator until you republish an existing project. Similarly, fields may not appear in a freshly modified Project Center or Resource Center view until you publish a project to the server, causing the new field customization to appear as well.

The RBS and Reserved Enterprise Resource Outline Code 30

Enterprise Resource Outline Code 30 is reserved for the Resource Breakdown Structure (RBS). Although the RBS provides the same useful functionality as other outline codes, this one is unique among all others because of its interplay with security. The RBS is used to define a resource manager’s relationship to a resource. A resource manager’s ability to see project and resource data is determined by subordination in the code values. These constructs are very powerful in controlling some Project Server security relationships. I’m calling it out here to make you aware of its special role. I cover this extensively in Chapter 10.

Implementing Enterprise Portfolio Management with Microsoft Project Server 2002
Implementing Enterprise Portfolio Management with Microsoft Project Server 2002
ISBN: 1590591186
EAN: 2147483647
Year: 2005
Pages: 185

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net