Clarity
Studio Objects and Attributes

ccppmop1591
Objects define the attributes, linked subpages, page layout, audit trail, and views for your configured version of
Classic PPM
 pages. The studio provides stock objects that are available for your use. For example, you can use the Audit stock object to create pages that manage audit trail information. Use the Audit object as is or create a subobject that has only some of the characteristics of the master Audit object. You can also create your own custom objects.
You can create a hierarchy of up to three levels of objects. Any child objects inherit properties and access rights from their parent objects:
  • Master Object
    : This object is the parent of subobject 1 and grandparent of subobject 2. A user with access rights to this object has the same rights to all its subobjects.
  • Subobject 1
    : This object is the child of the master object and parent of subobject 2.
  • Subobject 2
    : This object is the child of subobject 1 and the grandchild of the master object.
If you add a master object to a partition model, any subobjects you create are automatically assigned to that model. When you change the master object, those changes are automatically made available to the subobject. After you select an object to use, create an instance of the object to use in your application.
As the creator of an object, you automatically have access rights that allow you to view and change the object. For other users to view and change the new object, grant them access rights to it.
The following graphic shows the relationship of partitions, objects, attributes, views, and subpages. A partition contains the object and the other components that make up the pages that a user sees.
Relationship of Partitions Objects Attributes Views Subpages
Relationship of Partitions Objects Attributes Views Subpages
Create a custom object in Studio to define the attributes or fields that make up your configured version of
Classic PPM
 pages. Use the default objects or create custom objects and subobjects to create and manage information for your specific business needs.
For example, a project manager wants to provide a retrospective summary report at the end of a product release. The project manager uses a retrospective form to collect feedback from the project participants. To help the project manager manage the retrospectives, the system administrator sets up the following framework in Studio:
  1. A master object that is named
    Survey
    with the following attributes to capture information about projects:
    • Project Name (lookup attribute)
    • Start Date and End Date (date attribute)
    • Project Manager (lookup attribute)
    • Team Members (lookup attribute)
  2. A subobject that is named
    Retrospective
    with
    Survey
    as its parent object and the following attributes:
    • What Went Well (string attribute)
    • Areas for Improvement (string attribute)
2
Prerequisites for Custom Object Development
Review the applicable prerequisites in this list:
  • Set up partitions if you want to associate the object attributes with a particular partition. You can associate object attributes with partitions and then create different presentations of the same objects for different users.
  • If you plan to use a parameterized lookup, create the NSQL queries ahead of time. You can map the query parameters to the object.
  • Create your OBS hierarchy in advance for the following purposes:
    • To control access and enable organizational reporting, associate an OBS with your object instances.
    • Create fiscal time-scaled values using the time-varying attribute data type.
  • Create the lookup that you want to add to a single value or multi-value lookup data type attribute.
  • Verify that the attributes you create meet the needs of your users. The number of attributes affects the amount of time it takes to display pages. Do not create more attributes than you need.
  • Verify that you do not use the following reserved words for an object name or object ID:
    application asset company contract discussion document glallocation idea incident incidentcategory investmentallocation investmenthierarchy invoice invoiceitem invoicetransaction job other product release releaseplan report requirement requisition resourcecredit service subscription timesheet
The product supports up to 500 total attributes for each object. However, we recommend that you do not assign more than 100 attributes to a single custom object. A high number of attributes can result in performance issues and the potential failure of subsequent upgrades. Consider creating a subobject rather than assigning many custom attributes to a single object.
Create an Object
After you create an object in Studio, users can create instances of the object whenever they need. For example, create an object that is named
Survey
so that users can create multiple surveys.
Follow these steps:
  1. Open
    Administration
    , and from
    Studio
    , click
    Objects
    .
  2. Click
    New
    .
  3. Enter an object name, a unique ID, and a content source.
  4. (Optional) In the
    Description
    field, enter any details that remind you and other developers of the purpose of the object.
  5. Select
    Master
    for a new parent object. In the
    Partition Model
    field, select a partition model or leave empty for the default system partition.
  6. Select
    Subobject
    if the object is the child of another object that you specify in the
    Master Object
    field.
  7. Select the check boxes to enable any of the following features:
    • Event Enabled
      Specifies that the process engine is notified of object instances that are created or updated.
    • Include in the Data Warehouse
      Includes the object instance data in the data warehouse for reporting.
    • Copy Enabled
      Specifies that copies can be made of the object instances.
    • Export Enabled
      Specifies that object instances can be exported to XML.
    • View All Enabled
      Specifies that the object instances can have a view containing all properties, subobject lists, and page portlets that can be personalized on a single page.
  8. Save your changes.
The
Include in the Data Warehouse
check box does not appear until you click
Save
. This expected behavior occurs because this same page creates objects and subobjects. A subobject can only be data warehouse enabled when its parent object is already enabled. The delayed appearance of the check box prevents any potential conflict in your settings.
Create Attributes
Attributes store information that is associated with object views on pages. For example, Start Date and End Date are attributes of the Project object. You can change how a default attribute appears but you cannot change its properties including the name, ID, description, data type, or lookup.
When you specify a default value for an attribute and click Save,
Clarity
creates a new attribute and assigns it the default value. If you have selected the Populate Null Values with the Default checkbox,
Clarity
then reviews all the existing records of the object associated with the attribute. Since the existing records do not have any value associated with the new attribute you created,
Clarity
replaces the NULL value with the default value specified by you.
Example:
The administrator creates a new user-defined attribute on the Project Object and specifies a default value. Since the organization already has many projects, the default value associated with the new attribute will not be automatically attached to those objects. The administrator can use the Populate Null Values with the Default checkbox to update existing projects with the default value for the attribute.
You can create any of the following types of attributes:
Attachment Attribute
Create an attachment attribute to allow users to upload and view files in a field. You can configure the attribute to allow the upload of a single file or multiple files. The following considerations apply to the attachment attributes:
  • The file extensions and file size limits are governed by the global settings. They cannot be set at the attribute-level. For more information on the global settings, see Set Document Management Options.
  • Multiple files cannot be uploaded in one go when uploading files to an attribute that supports multiple documents. Upload one file at-a-time.
  • A maximum of 10 files can be uploaded to an attribute. You can configure this number at the attribute-level.
  • Once the attribute is API enabled, you can view and manage the attachment attributes in
    Clarity
    with the exception of the following:
    • The attachment attribute cannot be made available in
      Clarity
      for objects that do not have the Details panel or Properties page. For example, Roadmap Items and Cross-Project Tasks. Use
      Classic PPM
      to manage the attachment attributes for these objects.
    • The attachment attribute cannot be added to the cards in the Board Layout. Use the Grid, Details panel or the Properties page to view, upload, or delete attachments.
    • When you create an instance (such as a Project or Idea) from the Board layout in
      Clarity
      , the attachment attributes appear disabled until all the mandatory fields are filled out.
    • The attachment attribute cannot be used in filters to search for objects with an attachment name.
    • When you export the grid data to CSV, the corresponding attachment attribute columns in the CSV will display the details of the file name, mime type, and the URL to download the file.  
Follow these steps:
  1. Open
    Administration
    , and from
    Studio
    , click
    Objects
    .
  2. Click the name of an object.
  3. Click
    Attributes
    .
  4. Click
    New
    .
  5. Enter an attribute name and a unique ID.
  6. Set the
    Data Type
    field to
    Attachment
    .
  7. Complete any of the remaining fields.
  8. Click
    Save and Return
    .
Boolean Attribute
Create a Boolean attribute to indicate one of two exclusive conditions. For example, an
Active
check box for a project is true when selected and false when cleared.
Follow these steps:
  1. Open
    Administration
    , and from
    Studio
    , click
    Objects
    .
  2. Click the name of an object.
  3. Click
    Attributes
    .
  4. Click
    New
    .
  5. Enter an attribute name and a unique ID.
  6. Set the
    Data Type
    field to
    Boolean
    .
  7. Complete any of the remaining fields and configure optional display mappings (icons or colors).
  8. Click
    Save and Return
    .
Calculated Attributes
A calculated attribute uses the values of other attributes to calculate its value dynamically. For example, you can create a
Remaining Budget
attribute that calculates its value from the following formula:
Remaining Budget = Planned Cost − Actual Cost
The Remaining Budget value depends on the value of two other attributes (Planned Cost and Actual Cost). The value of a calculated attribute is not stored in the database. The value is determined at runtime by extracting the value from an equation set up for the attribute. The value is not stored in the database. Therefore, you cannot sort, use a power filter, or manually update calculated attributes.
You can use one or more functions for calculating an attribute value. The functions can be compounded to produce complex calculations. For example, you can take the absolute value of the difference in the equation given in the previous example:
Remaining Budget = Absolute (Planned Cost − Actual Cost)
A calculated attribute can include other calculated attributes. The expression that you write determines the order of operations and precedence of the calculated attributes.
The following attribute types cannot be used with calculated attributes:
  • Formula
  • Time-varying
  • Attachment
  • Long String
  • Multi-Value Lookups
  • Virtual
The result of the calculation can be one of the following data types, depending on the function:
  • Number
    : Use this data type for a calculation that requires a number value such as a sum or an average of other numbers.
  • String
    : Use this data type for a calculation that requires the concatenation of two or more values. For example, the value of the attribute
    created_by
    and the constant
    2018
    . An example of the value that is produced by the concatenation is
    ssmith2018
    .
  • Date
    : Use this data type to calculate dates using basic arithmetic or to provide the current date.
If the value of a parameter (field source) in an expression is null, you can receive a null result. A null result also occurs when the expression cannot be resolved. For example, division by zero produces a null result.
Calculated Attribute Functions
Function
Attribute Parameters
Result
Return Value
Absolute value
Absolute(number)
Absolute(Aggregate Calculated Attribute)
Add(number1, number 2)
Number
Absolute value of the number.
Add
Add(Aggregate Calculated attribute)
Add(number1, number2)
Add(number1, <constant>)
Number
Adds the value of number1 to the value of number2 and returns the sum.
Average
Average(number1, number2 …)
Average(number1, Aggregate Calculated Attribute)
Number
Returns the average of all of the passed parameters.
Concatenate
Concat(string1, string2 … )
Concat(string1, <constant> …)
String
Merges multiple strings into a single string.
Date Add
DateAdd(date attribute, unit, number)
Date attribute: This value can be an attribute name or a sub-expression only. It cannot be a constant.
Unit: Day, Hour, Minute, or Second. This value is case-sensitive.
Number: Number of units to add to the date.
Date
Date value after the number of units is added.
(DateAdd(approvedtime, ”Day”,4) returns a date value that equals approvedtime + 4 days.)
Date Difference
DateDiff(date attribute1, date attribute 2, result unit)
Date attribute1: The date you are subtracting from. This value can only be an attribute name or a sub-expression.
Date attribute2: The date you are subtracting. This value can only be an attribute name or a sub-expression.
Result unit: Day, Hour, Minute, or Second. This value is case-sensitive.
Number
Returns the quantity of time between two dates expressed in units of time.
Divide
Divide(number1, Aggregate Calculated Attribute)
Divide(number1, number2)
Divide(number1, <constant>) for example, Divide (A,50)
Number
Result from attr1 (number) divided by attr2 (divisor).
Maximum
Max(number1, number2 …)
Max(number1, Aggregate Calculated Attribute)
Number
Highest value in the set of values, so if:
A=10, B=20, C=30
Max(A, B, C) will return 30.
Minimum
Min(number1, number2 ... )
Min(number1, Aggregate Calculated Attribute)
Number
Lowest value in a set.
A=10, B=20, C=30
Min(A, B, C) = 10
Multiply
Multiply(number1, Aggregate Calculated attribute)
Multiply(number1, number2)
Multiply(number1, <constant> )
(ex: Multiply (A,50))
Number
Product from the two parameters.
Now
Now()
Date
Returns the current date and time.
Percentage
Percentage(number1, Aggregate Calculated Attribute)
Percentage(number1, number2)
(ex: Percentage (A,B))
Percentage(number1, <constant>)
(ex: Percentage (A,50))
Number
Result after the percentage is taken. If A=1000, A * 60%= 600, the function returns 600.
Power
Power(number, power)
Power(Aggregate Calculated Attribute, power)
Number
Result of the number raised to a power specified.
Round
Round(number, <number of digits>)
Round(Aggregate Calculated Attribute, <number of digits>)
Number
Value after rounding the number to a specific number of digits.
Square Root
Sqrt(number)
Sqrt(Aggregate Calculated Attribute)
Number
Square root of number.
Subtract
Subtract(number1, number2)
Subtract(number1, <constant>)
Subtract(number1, Aggregate Calculated Attribute)
Number
Subtracts the value of number1 from the value of number2 and returns the result of the operation.
Sum
Sum(number1, number2, ...)
Sum(number1, Aggregate Calculated attribute)
Number
Sum from the list of attributes.
A=10, B=20, C=30
Sum(A, B, C) will return 60.
Truncate
Trunc(number, <number of digits>)
Trunc(Aggregate Calculated Attribute, <number of digits>)
Number
Value after removing the decimal or fraction part of the number.
Example: Building Calculations
You want to create an expression for the absolute value of the difference between planned cost and actual cost. The following equation expresses the calculation:
Remaining Cost = Absolute(Planned Cost - Actual Cost)
The absolute value of the difference between two numbers is the desired result. When you select the
Absolute
function, the appropriate fields for defining the function argument appear. The Absolute function has only one argument. Select the sub-expression option to represent the expression for the difference between the numbers. When you click Generate, the expression appears in the Expression text box.
When you include a sub-expression in a generated expression, the Generate Expression for field appears at the top of the dialog box. To define the sub-expression, select its name in the Generate Expression for field and select the function for the sub-expression (Subtract in this example) in the Function field. Select the arguments for the Subtract function (Planned Cost and Actual Cost) from the available list of attribute names for the object using the drop-down list. When you click Generate, the entire expression with the sub-expression defined appears in the Expression text box as follows:
Absolute(Subtract(planned_cst_total-aggr_actual_cost))
Create a Calculated Attribute
Create a calculated attribute to display a field with a read-only value that is calculated dynamically. For example, create a Variance attribute that is calculated as
Planned Cost minus Actual Cost
in the project budget page.
To view the calculated attribute in the product pages, include the attribute in the layout of the object properties view. For example, to display the calculated attribute on project properties, list, and filter pages, configure the project views to include the attribute. See for more information.
Follow these steps:
  1. Open
    Administration
    , and from
    Studio
    , click
    Objects
    .
  2. Click the name of an object.
  3. Click
    Attributes
    .
  4. Click
    New
    .
  5. Enter an attribute name and a unique ID.
  6. Set the
    Data Type
    field to
    Calculated
    .
  7. Set the Result Data Type to one of the following calculated data types:
    • Number
    • String
    • Date
  8. Complete any of the optional fields.
  9. Click
    Save
    .
  10. Click the
    Build Calculated Attribute
    link.
  11. Select a function in the
    Function
    field.
  12. Select the number of arguments in the Argument Number field. Some functions have a specific number of arguments that you cannot change.
  13. Create the arguments for the function expression by selecting one of the following options for each argument listed:
    • Constant:
      Enter a value that remains the same for all calculations.
    • Attribute Name (ID):
      Select a valid field from the drop-down list.
    • Sub-expression:
      Embed another expression in the expression that you are building for the calculated attribute.
  14. Click Generate to build the arguments in the Expression field.
    For example, the average of a constant, a field value, and a sub-expression appears in the following expression:
    [45+my_field+(start_field + 365)]/3
    When the result data type is
    Number
    , you can also manually insert the following operators: +, -, *, and / . For example, you can enter the sum of three numbers in the Expression text box as (num1+num2+num3).
  15. Repeat the following steps to define all sub-expressions for the whole expression:
    1. In the Generate Expression for field, select the name of the sub-expression.
    2. In the Function field, select the function that defines the purpose of the sub-expression.
    3. Define the arguments for the sub-expression.
    4. Click Generate.
      The defined arguments for the sub-expression are included in the whole expression.
  16. Click Validate to verify that the expression syntax is correct and make any necessary adjustments.
    A message appears indicating the expression syntax is valid.
  17. Click Save and Return.
  18. In the Display Mappings section, configure a series of icons or colors to represent specific ranges of numerical values.
  19. Click Save and Return.
Aggregate Calculated Attributes
An aggregate calculated attribute (ACA) rolls up an attribute value from many subobject instances to the master object. For example, you can define an ACA that rolls up the following values from the subobject instances to the master object:
  • Cost values from subobject instances to provide the total cost for the master object.
  • Count the number of high priority risks to report on the count for the master object.
Enable an ACA for the data warehouse to include it in the advanced reporting domains that are used by report builders. See for more information on enabling custom attributes for the data warehouse.
ACA Calculations
To define an ACA calculation, define the subobject, function, and subobject attributes in the calculation. The following rules apply when you define an ACA:
  • The ACA functions are available for both stock and custom attributes and support the following data types:
    • Number
    • Calculated with Result Data Type of
      Number
      (for example, the Business Alignment value for a project)
    • Money
    • Boolean
    • Single Value Numeric Lookups (static and dynamic; for example, the Track Mode options for a project)
  • The rollup supports only one level in the master and subobject relationship. The ACA aggregates values from the subobject to the master object or from the child object to the subobject.
  • You cannot configure virtual attributes in an ACA function.
  • The ACA reads through all the subobject instances of the master object instance that satisfy the ACA filtering criteria. Any display conditions or secured subpage rights for the aggregated attribute that hide the value from users are disregarded. An ACA also disregards user access rights for subobjects.
ACA Functions
The following table describes the available ACA functions:
Function
Attribute Parameter Data Types
Result
Return Value
AGG_Average
AGG_Average(Number)
AGG_Average(Numeric Calculated Attribute)
Number
The average of the attribute parameter across all of the subobject instances.
AGG_Count
AGG_Count(Number)
AGG_Count(Numeric Calculated Attribute)
Number
The count of the number of records across all subobject instances.
Note
: Only counts instances where the parameter is not null.
AGG_Sum
AGG_Sum(Number1)
AGG_Sum(Numeric Calculated Attribute)
Number
The sum of the attribute parameter across all sub object instances.
AGG_Min
AGG_Min(Numeric)
AGG_Min(Numeric Calculated Attribute)
Number
The minimum value from all the subobject instances based on the attribute parameter.
AGG_Max
AGG_Max(Numeric)
AGG_Max(Numeric Calculated Attribute)
Number
The maximum value from all the subobject instances based on the attribute parameter.
Example: Create an ACA to Show Overall Business Value for an Application
The Application object has two subobjects, Business Value and Technology Fit. The subobjects include some calculated attributes. The calculated attributes get their values based on questions that users answer when they create instances of the subobjects.
You can create an ACA that sums the various business value scores for all application instances.
Follow these steps:
  1. Create an attribute that is named Business Value Score for the Application object.
  2. Select
    Aggregated
    for the attribute data type.
  3. Build the ACA by selecting the following values in the Expression Builder:
    • Function=AGG_Sum (aggregating by sum)
    • Subobject= Business Value
    • Subobject attributes= Business Criticality, Market Differentiators, Financial Model, Resources, and Business Value.
  4. Select the attributes in succession.
  5. Click Generate after selecting the first attribute and then Append for the subsequent ones. The function is always AGG_Sum.
  6. Create the following function syntax to aggregate the sum of all business value attribute scores:
AGG_Sum(apm_business_value.apm_market_diff)+AGG_Sum(apm_business_value.apm_bus_criticality) +AGG_Sum(apm_business_value.apm_business_value)+AGG_Sum(apm_business_value.apm_financial_model) +AGG_Sum(apm_business_value.apm_resources)
You can add a filter condition to the ACA to request a score for only
approved
and
final
instances of the business values.
Follow these steps:
  1. Open the ACA attribute properties.
  2. Next to Filter, click Define filter condition.
  3. For the Business Value subobject, define an
    And
    condition. For example, select the following attributes values to filter the subobject instances:
    • Approved=yes
    • Report Status= Final
  4. Verify that the filter expression looks like the following example:
      apm_business_value.apm_approved == 1 && (apm_business_value.apm_report_status == lookup("OBJ_STATUSREPORT_REPORT_STATUS", "FINAL"))
Create an ACA
Follow these steps:
  1. Open
    Administration
    , and from
    Studio
    , click
    Objects
    .
  2. Click the name of the object.
  3. Click
    Attributes
    and then click
    New
    .
  4. Enter an attribute name and a unique ID. For example, to create an ACA that calculates the average task duration for a project, call the attribute Average Task Duration.
  5. Set the
    Data Type
    field to
    Aggregated
    . The Result Data Type is automatically set to Number.
  6. Complete any of the remaining fields and save changes.
  7. Next to Calculation, click the Build Aggregated Calculated Attribute link.
  8. Complete the requested information. The following fields require explanation:
    • Function
      .
      Defines the function that the ACA performs. For example, select AGG_Average if you want your ACA to calculate the average task duration value for projects.
    • Sub Object
      .
      Defines the sub object for the instances of which the ACA returns a value. For example, for the Average Task Duration ACA, select Task as the sub object for the instances of which the ACA returns a value.
    • Attribute
      .
      Defines the sub object attribute for which the ACA returns a value. For example, for the Average Task Duration ACA, select Duration as the task attribute for which the ACA returns an average value. The list of available attributes is based on the function and the sub object that you select. For example, select an Average function for the Task sub object. The available attributes are the ones for which you can provide an average value.
  9. Click Generate to build the arguments in the Expression field. For example, the following expression creates an ACA that calculates the average task duration for project tasks:
    AGG_Average(task.prduration)
  10. Validate your expression syntax and click Save and Return.
  11. Configure the object views (properties, list, and filter) to add and display the ACA on the object pages in the application. For example, to display the Average Task Duration ACA on project properties, list, and filter pages, configure the project views to include the attribute. See for more information.
Limit SubObject Instances Included in an ACA
To limit what subobject instances are included in a roll-up calculation for an ACA, create a condition based on the attribute values of the sub object instances. For example, create a condition for the Average Task Duration ACA to calculate the aggregated average task duration for key tasks only, not all tasks.
To filter the subobject instances in the roll up, you can create compound filter conditions using the And/Or operators. For example, you can create a condition to select the most recent subobject instance and where status of the subobject equals Complete.
You can configure the filter conditions on all sub object attributes except for attributes with the following data types:
  • Formula
  • Time Varying
  • Attachment
  • Long String
  • MVL
You can create an Average Task Duration ACA for key tasks only.
Follow these steps:
  1. Create an ACA named Average Task Duration for Key Tasks.
  2. Build the ACA by selecting the following values:
    • Function= AGG_Average.
    • Sub Object= Task
    • Attribute=Duration
  3. Generate and validate the expression.
  4. Click Save and Return.
  5. Define a filter condition for the sub object instances.
    1. Next to Filter, click Define filter condition.
    2. For the selected sub object, select the field by which to filter the sub object instances. For example, for the Task sub object, select Key Task as the attribute by which to filter all tasks. The ACA now considers only key tasks in the calculation.
    3. Click Add to add the expression in the Expression box.
  6. Evaluate the expression for the filter condition.
  7. Click Save and Return.
  8. Configure the object views to display the ACA on the object pages in the application.
Configure ACA Output as Input for Standard Calculated Attributes
Configure a standard calculated attribute to use an ACA value as an input parameter. For example, create a standard calculated attribute to generate an overall application health score as a sum of the business value score and the technology fit score. In this case, you can use the Business Value Score and the Technology Fit Score ACAs:
Overall Application Health Score (Standard) = Business Value Score (ACA) + Technology Fit Score (ACA)
Follow these steps:
  1. Create a standard calculated attribute at the master object level (for example, Application). See
    Create a Calculated Attribute
    for more information.
  2. Define the attribute name and ID (for example, Overall Health Score (health_scr)).
  3. Build the calculated attribute as follows:
    1. Select Sum for Function.
    2. Select Argument Number 1.
    3. Select the attribute name and ID for argument 1. For example, select the ACA "Business Value Score".
    4. Click Generate to add the sub expression to the Expression box.
    5. Select Argument Number 2.
    6. Select the attribute name and ID for argument 2. For example, select the ACA "Technology Fit Score".
    7. Click Generate to add the final expression to the Expression box.
  4. Verify that the expression specifies the function that the standard calculated attribute performs. For example, the following expression specifies that the function sums the Business Value Score and Technology Fit Score ACAs:
    Sum(bus_val_scr,tech_fit_scr)
  5. Validate the expression and save.
Configure Standard Calculated Attribute Output as ACA Input
Configure an ACA to use a standard calculated attribute value as an input parameter. For example, create an ACA that retrieves a total task cost variance score using the standard Cost Variance% calculation as shown below:
Total Task Cost Variance (ACA) = Sum of all the task Cost Variance% (Standard) subobject instances
Follow these steps:
  1. Create an ACA for the Project object.
  2. Define the attribute name and ID (for example, Total Cost Variance (tl_cst_var)).
  3. Build the ACA by selecting the following values:
    • Function= The function that the ACA performs on the sub object instances (for example, ACG_Sum)
    • Sub Object= The sub object for the ACA (for example, Task)
    • Attribute= The sub object attribute for the ACA. For example, select the standard calculation, Cost Variance %.
  4. Click Generate to add the expression to the Expression box. For example, generate the following expression to retrieve the average task cost variance for the project:
    AGG_Sum(task.obj_ev_cv_pct)
  5. Validate the expression and save.
Display ACAs in a Portfolio
Add an ACA to a portfolio to display summary information that is rolled up from the child investments. For example, to display status information at the portfolio level, use an ACA that rolls up the information from the project and task levels.
Follow these steps:
  1. Create the ACA on the Investment, Project, or a non-project investment object.
  2. Make the ACA available on the attribute registry on the Portfolio Investment object. See
    .
  3. Configure the portfolio pages to display the ACA in the properties, targets, waterline, and data providers. See
    .
The portfolio investment ACA value is a snapshot of the investment ACA value at the time the Synchronize Portfolio Investments job runs. The ACA value in the actual investment can be different from the portfolio investment because the value rolled up from the actual investment subobjects can change. To get the latest ACA value in the portfolio, run the synchronize job to synchronize the portfolio with the actual investments.
Example:  Display a Total Allocations ACA at the Portfolio Level that Sums the Project Team Allocations
Follow these steps:
  1. Create an ACA named Total Allocations on the Project object. Build the ACA by selecting the following values in the Expression Builder:
    • Function= AGG_Sum
    • Subobject= Team
    • Attribute= Allocation (prallocsum)
  2. On the Portfolio Investment object, select Attribute Registry.
  3. In the
    Available Attributes
    list, select
    Total Allocation
    and move it to the
    Selected Attributes
    list.
  4. Synchronize the portfolio so the latest investment attributes become available to the portfolio.
  5. Configure the portfolio views to display the Total Allocation attribute. For example, configure the Waterlines view to display Total Allocation as an extra column heading for the investments.
Date Attributes
Create a date attribute to provide a field where users can enter a date or can select a date by clicking a calendar icon. For example, you can provide fields for the Start Date or End Date attributes on the project schedule page.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the name of the object.
  3. Click Attributes.
  4. Click New.
  5. Enter an attribute name and a unique ID.
  6. Set the Data Type field to Date.
  7. Complete any of the remaining fields:
    • Validation From and To
      Specifies the earliest and latest date to include in the date attribute. Select Rolling Date or Specific Date and the specific values that you want for your selection. If needed, specify the hour and minute.
  8. Save your changes.
Formula Attributes
Create a formula attribute to calculate the weighted average of two or more attributes in the same object. This attribute is similar to a calculated attribute, but you can build a weighted average. For example, the value for the Risk Drivers attribute is based on the Risk Likelihood and Risk Priority attributes with Risk Likelihood weighing twice as much as Risk Priority.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the name of the object.
  3. Click Attributes.
  4. Click New.
  5. Enter an attribute name and a unique ID.
  6. Set the Data Type field to Formula.
  7. Complete any of the remaining fields.
  8. (Optional) To display the field in color or as an icon, complete the following steps in the Display Mapping section:
    1. In the Type field, select Color or Icon.
    2. Select the appropriate color or icon.
    3. Enter a brief description of the color or icon representation in the Description field.
    4. Enter a number for the beginning of the range that the color or icon represents in the From field.
    5. Enter a number for the end of the range that the color or icon represents in the To field.
    6. Repeat these steps to define any other ranges of numbers to color-code or represent by an icon.
  9. Click Save.
  10. In the Formula field, click [Build Weighted Average Formula] to add a weighted average formula.
  11. Complete the following fields:
    • Attribute
      Specifies the attribute that you want to give consideration in the weighted average calculation.
    • Weighting
      Specifies the value to multiply by the value of the attribute you selected to compute the weighted average for a row. The product adds the weighted values from all rows and computes the average. The entries that you make in the Weighting column prioritize the attribute over other attributes when calculating the weighted average. If you leave the Weighting column empty, an ordinary arithmetic average is computed.
      Example: weighted ave=[(Risk * 4) + (Customer Satisfaction * 2) + (Alignment * 1)] /3
  12. To add weights to additional attributes, click New Row for each attribute.
  13. To see if the formula for the weighted average works as expected, click Recalculate.
  14. Save your changes.
    The page displays the formula results in the Test section.
Single-Value Lookup Attributes
Create a single-value lookup attribute to display a drop-down list. Users can select only one value. For example, the Status attribute on a project contains the values Approved, Not Approved, and Rejected.
A single-value lookup attribute can include the following source types:
  • Static List
    . Provides a list of values that do not change (for example, action item status). If you select a static list lookup, you can set up a display mapping to associate a value with a description and a color or icon. These colors or icons can be used in many places throughout the product, such as in stoplight icons, filters, progress bars, Gantt charts, and chart backgrounds.
  • Dynamic Query
    . Provides a list of values that are dynamic based on the NSQL query; for example, a list of active and locked resources.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the name of the object.
  3. Click Attributes.
  4. Click New.
  5. Enter an attribute name and a unique ID.
  6. Set the Data Type field to Lookup.
  7. In the Lookup field, specify the static list or dynamic query lookup that displays a list of options that the user can select.
  8. Complete any of the remaining fields and configure optional display mappings (icons or colors).
    You cannot set up a display mapping for a dynamic query.
  9. Save your changes.
Multi-Value Lookup Attributes
Create a multi-value lookup attribute to display a drop-down list or a browse icon. Users can select one or more items. On a properties page, the multi-value lookup attribute displays as a multiple select browse field. In a filter, the attribute can display as a drop-down list, select box, or a multiple select browse field.
Multi-value lookup attributes are frequently used in filters. For example, the Approvers field on a project where you assign a list of resources as approvers for the project is a multi-value lookup attribute.
You cannot use multi-value lookup attributes in display mappings.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the name of the object.
  3. Click Attributes.
  4. Click New.
  5. Enter an attribute name and a unique ID.
  6. Set the Data Type field to Multi-Valued Lookup.
  7. Save your changes.
Parameterized Lookups
Create a parameterized lookup to map values between NSQL query parameters and the appropriate object attributes. This construct restricts the available values in one field that is based on the selection in another field. For example, the user selects a region from a list of global markets. In a City field, the list of cities is dynamically constrained to include only cities in that market region. Another example of a parameterized lookup is the Location OBS. It is parameterized to show values that are based on the Department OBS. Another example is the PMO attribute Project Type which is dependent on Project Category.
A data type for this type of lookup construct is not available. Instead, you can create one static lookup and a second, dynamic NSQL lookup that refers to the first. The attribute refers to a data type of lookup. The Parameter Mapping section automatically appears on the lookup definition if the NSQL lookup definition contains the parameterized lookup construct.
In this example procedure, you want to track assets by city in the global markets where you do business. Use the Asset object in Studio and create the market and city data. Add a parameterized lookup on the Asset object. When a user selects a market, the list of available cities is reduced to only the cities in that region.
You configure your parameterized lookup with data from static lookups and object instance data and establish a relationship between two attributes in a single record.
Follow these steps:
  1. Open Administration, and from Data Administration, click Lookups.
  2. Click New. Create a static lookup for a list of global markets. Click Save and Continue.
  3. Select LOOKUP_CODE as the Hidden Key.
  4. Set the Display Attribute to NAME.
  5. Click Save and Continue.
  6. On the Values tab, click New and enter each global market in the Lookup Value Name field. For example, Europe, Africa, Asia, North America, South America, and Latin America.
    You can create a user-defined object for global markets and then use object instances instead. Use this option  to add more attributes to the market object or if you want to allow users to add them.
  7. Open Administration, and from Studio, click Objects.
  8. Create a custom object for
    City
    . Update the properties and list views to add this new attribute for data entry.
  9. Add the security access rights to users for creating and maintaining the City instance data.
  10. Click the Attributes tab and click New. Create an attribute that is named cities_by_market in the City object using the static global market lookup.
    1. Set the Data Type field to
      Lookup
      .
    2. In the Lookup field, select the lookup that you created in the first step.
    3. Click Save and Return.
  11. Open Administration, and from Data Administration, click Lookups.
  12. Create a dynamic query lookup to use in an attribute on the asset object for selecting a city that is based on the market.
    1. Set the Lookup Name field to Parameterized City Lookup by Market.
    2. Set the ID field to City_Param_Lookup.
    3. Click the Query tab. Set the definition of this dynamic query to a parameterized lookup NSQL construct such as the following example:
      SELECT DISTINCT @SELECT:CITY.ID:[email protected], @SELECT:CITY.NAME:[email protected] FROM odf_ca_cities CITY WHERE @[email protected] AND (@WHERE:PARAM:USER_DEF:STRING:[email protected] = CITY.cities_by_market)
    4. Click the Parent Window tab and set the Display Attribute field to city_name.
  13. Open Administration, and from Studio, click Objects.
  14. Open the asset object.
    1. Create an attribute for
      Global Market
      (asset_market). The asset market attribute uses the global markets lookup that you created in an earlier step.
    2. Create an attribute for
      City
      (asset_city). The asset city attribute uses Parameterized City Lookup by Market and is constrained by the asset_market attribute.
    3. Update the asset object properties and list views to add these two new attributes for data entry.
  15. Open the Home menu and under Custom Objects click City List. Create the detailed City instance records.
    1. Enter a name and identifier for each city.
    2. Select the global market for each city.
  16. Log out as administrator. Log in as a user with access to create and edit asset investments.
  17. Open Home and under Portfolio Management, click Assets.
  18. Create or update existing asset records. Select a Global Market value and then select a City in that region. The City lookup value list is constrained by the Global Market attribute.
Money Attributes
Create a money attribute that lets users enter a currency value in a field. For example, the Planned Cost field for a project allows users to enter a planned cost amount in dollars. The application associates money attributes with a currency code so that you can convert the value to another unit of currency.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the name of the object.
  3. Click Attributes.
  4. Click New.
  5. Enter an attribute name and a unique ID.
  6. Set the Data Type field to Money.
  7. In the Currency Code Location field, specify whether the attribute has its own currency code field. Select the default currency code in the Default Currency Code field.
  8. In the Validation Range field, define the range of values that is permitted for the attribute. Enter the lowest value in the first box and the highest value in the second box.
  9. Complete any of the remaining fields and configure optional display mappings (icons or colors).
  10. Save your changes.
Number Attributes
Create a number attribute that lets users enter a numeric value in a field. For example, the Priority field lets users prioritize a project using a numeric value where a higher number indicates a higher priority.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the name of the object.
  3. Click Attributes.
  4. Click New.
  5. Enter an attribute name and a unique ID.
  6. Set the Data Type field to Number.
  7. To constrain the values that are permitted, enter the lowest value in the first box and the highest value in the second box of the Validation Range fields.
  8. Complete any of the remaining fields and configure optional display mappings (icons or colors).
  9. Save your changes.
String Attributes
Create a string attribute to permit users to enter text. For example, the Description field allows users to describe the purpose of a project or include any additional details.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the name of the object.
  3. Click Attributes.
  4. Click New.
  5. Enter an attribute name and a unique ID.
  6. Set the Data Type field to String. If you need more than 2,000 characters, set the Data Type field to Large String.
    You cannot display the large string attributes in list filter views. You cannot sort large string attributes.
  7. Complete any of the remaining fields.
  8. Save your changes.
Large String – Rich Text attributes
Create a Large String – Rich Text attribute to permit users to enter large text in rich text format.
Follow these steps:
  1. From Classic PPM, go to
    Administration
    .
  2. Go to
    Studio
    and click
    Objects
    .
  3. Click the name of the object.
  4. Click
    Attributes
    .
  5. Click
    New
    .
  6. Enter an attribute name and a unique ID.
  7. Set the
    Data Type
    field to
    Large String – Rich Text
    .
  8. Complete the remaining fields.
  9. Save your changes.
Auto-Numbered Attributes
You can use the auto-numbering feature to automatically name and number object attributes that have a data type of string. For example, you can auto-number the string attribute Project ID. When you create a new project, the Project ID field is automatically populated with a unique sequential identifier. You can also name and number attributes for subobjects and their children.
You can use auto-numbering with or without partitions. If you do not use a partition, the System Partition is the default. When an object is associated with a partition model, you can create different auto-numbering schemes in each partition for attributes that are associated with different aspects of your business.
For example, create a partition model that has partitions that are named Sales, Marketing, and Engineering. Configure an auto-numbering scheme that assigns a unique number for attributes that are created in the partition such as SAL-00001, MKT-00001, or ENG-00001. When a user creates an object instance, designated attributes are automatically numbered using the auto-numbering scheme that is created for the appropriate partition.
The following questions and answers explain the rules that apply when using auto-numbering with partitions:
  • What happens if an attribute is set to auto-numbered but there is no auto-numbering scheme defined?
    When the application creates an object instance, it applies the auto-numbering scheme of the closest ancestor partition.
  • What happens if a deactivated partition has active descendant partitions that have no auto-numbering scheme in place?
    When descendant partitions of the application create an object instance, the application applies the closest ancestor auto-numbering scheme.
  • What happens if an attribute belongs to a subobject that has multiple master objects (potentially in different partition models) and the attribute is created in the context of a specific master object?
    The auto-numbering schemes are only applied when an instance of the subobject is created under an instance of the specific master object.
Configure an Auto-Numbering Scheme
You can configure an auto-numbering scheme for a string attribute that consists of one or more segments. For example, the scheme for a project number such as PROJ001 consists of two segments. One segment is for the prefix PROJ. A second segment is for the three-digit number 001.
If you use auto-numbering with two or more object types, verify that generated numbers for different object types are not the same. The application does not verify that numbers are unique for different types of objects. You can avoid duplications by using an alphanumeric numbering scheme so that object types have a unique prefix such as PRJ for project followed by a numeric counter.
Follow these steps:
  1. Verify that you have the
    Object Administration
    or the
    Attribute Create
    access right.
  2. Open an object and click the Attributes tab.
  3. Click the name of a string data type attribute.
  4. Click the Auto-numbering tab.
  5. In the Schemes section, click the New link. To edit an existing scheme, click the Edit link.
  6. In the Scheme Name field, enter a 30-character descriptive title for this scheme.
  7. Click Save.
    The scheme is created and a section appears for adding segments. The numeric counter is a default segment.
  8. Click New to create another segment for the autonumbering scheme.
  9. In the Type of Segment field, choose one of the following values:
    • Text
      : Creates a segment that contains the same string of letters.
    • Numeric Counter
      : Creates a segment that contains a starting number of varying lengths to be incremented.
    • Alphanumeric Counter:
      Creates a segment that contains letters and numbers.
    • Instance Creation Date
      : Creates a segment that is a time stamp for the instance being auto-numbered. For example, an object that is created on September 29, 2018 is stamped 20180929.
    • Parent Object Attribute Reference:
      (Subobject string attributes only) Creates a segment that has the value of a unique attribute of the parent object. This segment is a constant that cannot be incremented.
  10. Complete any of the following fields. The fields that appear depend on the segment type you select.
    • Auto-extended
      Specifies the counted length is to be extended when the limit of the counter length is reached.
    • Counter Length
      Specifies the number of digits to use for the segment. The maximum is 22 digits.
    • Counter Starting Number
      Defines the starting number for a numeric or alphanumeric segment.
    • Referenced Attribute
      Specifies the attribute to be referenced in the parent object. The value of the referenced attribute is included in the numbering segment.
      For example, if the referenced attribute is Name and the referenced object is Project, when an instance of the specific sub-object attribute (for example, a new task) is created in the application, the name of the Project (up to 8 characters) is part of the numbering scheme. For example, NewNet00000001.
    • Referenced Object
      Specifies the parent object from which the referenced attribute is selected. By selecting a parent object, you set the attributes that appear for selection in the Referenced Attribute lookup.
    • Segment Max Length
      Specifies the length that you want the segment to be. The maximum length is 30 characters. The replacement value (the referenced attribute) is truncated if it is longer than the length selected.
    • Value
      Defines the text value to be included in the segment. For example, PRJ.
  11. Click Save and Return.
  12. Create as many segments as necessary.
  13. Preview the next assignment of the scheme in the Next Number field.
  14. (Optional) Click Reorder to arrange the segments in the appropriate order.
  15. Click Save and Return.
  16. In the Schemes section, in the Partition field, select a partition for the numbering scheme.
    When an attribute  object is not associated with a partition, only the system partition is available.
  17. To activate a scheme, select the Auto-numbered check box in the General section. When active, this setting applies IDs as you have configured them and users cannot enter their own values.
  18. To deactivate a scheme, clear the Auto-numbered check box.
  19. Click Save and Return.
  20. (Optional) Verify the auto-numbering segments in the scheme are working as required. Confirm that each time a user creates an instance of an object, the object ID automatically displays the next value in your active auto-numbering scheme.
Time-Varying Attributes
To show a value for a specific calendar or fiscal time period, use a time-scaled value field. A time-scaled value is based on a time-varying attribute. Users can enter values for the attribute. You can create two kinds of time-varying attributes:
  • Calendar:
    This time-varying attribute is tied to a resource calendar that represents work or availability. The calendar displays time away, vacation time, and holiday exceptions. The calendar and its exceptions determine the values of the time-varying attribute. You can design calendar time-scaled values on list column views or grid portlets.
  • Fiscal:
    This time-varying attribute is tied to a fiscal time period and is typically associated with changing costs or values in units of currency. The fiscal time-periods are associated with an instance of an entity. Fiscal time periods have no relationship to a standard calendar. A fiscal time-scaled value can appear only on the list view of a subobject.
When you create a custom time-varying attribute, the daily time-slices span across the entire calendar. Clarity does not honor the non-working days specified in the calendar because every customer has the flexibility to design custom time-varying attributes based on their requirements.
A time-slice job calculates the value that appears for each time period in the virtual column on a list page or portlet.
A custom fiscal time-scaled value is always created on a subobject. When the time-scaled value is created, attributes are automatically created and populated on the master object. (Or, these attributes could already exist.) These attributes control the span of time-scaled values. The attribute values must be modified with the correct information about the master object for fiscal time-scaled values to work.
The attributes that get populated on the master object include:
  • Entity Code:
    This value indicates the associated entity for the fiscal period. This value is automatically populated when an instance of the master object is associated with a Department OBS unit.
  • Fiscal Period Type:
    This value defines the time period duration such as monthly, quarterly, or annually.
  • Fiscal Period Start Date:
    This value defines the beginning of the time-scaled value range. Users cannot scroll to periods before this date.
  • Fiscal Period End Date:
    This value defines the end of the time-scaled value range. Users cannot scroll to periods after this date.
If you do not provide a start or end date, the time-scaled values are not limited. Users can scroll in the past or future except where fiscal time periods do not exist.
Example 1: Fiscal Time-Scaled Values in the Subobject:
The master object Cost Plan has a subobject named Cost Plan Detail. A designer creates a time-scaled value field and then places the field on the list column view of the subobject Cost Plan Detail. The master object attributes that are required for the time-scaled value appear on the Cost Plan properties view. When an instance of the Cost Plan object is created, the period type value is
quarterly
and the period start date is defined as
September 1, 2019
. When the user opens the Cost Plan Detail for the new instance for the first time, the timescale period shows:
  • a start date of September 1, 2019
  • quarterly periods.
Example 2: Custom Fiscal Time-varying Attribute:
A financial manager wants to use a custom fiscal time-varying attribute to enter financial information for a project cost plan. The manager creates a cost plan for the project for the year 2015. The Development group indicates that the total cost for this project for the first three months of the year is $60,000. The financial manager uses two custom fiscal time-varying attributes, Committed and Actual in the Cost Details column. The manager enters the following monthly breakdown of the total cost:
  • The amount that was originally assigned (committed)
  • The amount that was spent (actual)
This information allows the finance manager to monitor the variance between actual costs and committed costs.
Example 3: Multiple Time-Scaled Values:
You can display multiple time-scaled values in the same list column view. The attributes are stacked on the page with the information for each time-scaled value appearing in the same virtual column. The data can appear in units of currency, as numbers, or as percentages. If you export to Microsoft Excel, each time-varying value that is stacked in a virtual column appears in its own column. For example, you have time slices A, B, C, and D with three time-varying attributes that are configured in a virtual list view column. An export produces 12 spreadsheet columns: A1, A2, A3, B1, B2, B3, C1, C2, C3, D1, D2, and D3.
Create a Time-Varying Attribute
Time-varying attributes allow users to enter information that changes over time. For example, use a time-varying attribute to track resource allocation as a percentage over the lifecycle of a project task.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Open an object and click Attributes.
  3. Click New.
  4. Enter an attribute name, a unique ID, and a description. Use only alphanumeric and underscore (_) characters when entering a unique ID for a time-varying attribute. Also, avoid SQL reserved words such as SELECT or STRING.
  5. Set the Data Type field to Time-varying. After you save, you cannot change the data type.
  6. (Optional) To associate this attribute with a particular partition, complete the following fields:
    • Partition:
      Specifies the partition to associate with the attribute.
    • Partition Association Mode:
      Specifies which partitions can include the attribute, in addition to the selected partition.
  7. Complete any of the remaining fields.
    • Time-varying Data Units
      Specifies the unit that the time-scaled value represents, such as a number value, a monetary value, or a percentage.
      A fiscal time-scaled value that is created with a time-varying data unit set to Money has its currency code set to the system currency.
      When you create an instance of this fiscal time-scaled value, the currency code is set to the home currency of the associated financial entity.
    • Time-varying Unit Conversion
      Specifies whether the time-varying data units are for each hour or for each second.
    • Time-varying Date Constraints
      Defines time constraints to limit the range of data that is received for the attribute and improve processing performance. You can enter dates that override these dates. If you do not select a value, the default values include the widest available range.
  8. This step applies to multi-currency systems. If you select Money as the time-varying data unit, to provide a currency code for the attribute, do one of the following:
    • Select the Attribute has its Own Currency Code Field check box. Then select the default currency code.
    • If the currency code is held in an existing attribute of the same object, select the Reference Another Attribute of this Object check box. Then in the Which Field field, select the attribute that contains the currency code.
  9. Save your changes.
Investment Parents and Investment Rollup objects do not support custom time-scaled value (TSV) attributes. For example, the investment hierarchy does not support custom TSVs. In Studio, the Investment (Project) Hierarchy Financial Rollup page does not display valid values for custom TSVs. The values appear as zero (0), instead of showing their correct data. The stock time-varying attributes (for example, Actuals for Labor Resources or ETC for Labor Resources) do display their correct values.
Two or more attributes could have the same name or label in the user interface but represent different data types. For example, in Release 15.6.1 the Assignment object shows
Actual Cost
as a
Money
data type and
Actual Cost
as a
time-varying
attribute for the actual cost curve data that appears in per-period metrics. Other examples include
Actuals
,
ETC
, and
ETC Cost
.
Create a Calendar Time-Scaled Value Field
As a developer in Studio, you can set up a calendar time-scaled value field in a list column view or a grid portlet.
Follow these steps:
  1. Create the time-varying attribute that you want to associate with a time-scaled value.
  2. Add Attributes to the Object Properties View. The time-varying attribute must appear in the properties view for the user to enter values for the attribute.
  3. Create a Virtual Column for a Time-Scaled Value.
  4. Set up a time slice request for each time-varying attribute.
  5. Run or schedule the Time Slicing job.
  6. Test a New Time-Scaled Value Field.
Create a Virtual Column for a Time-Scaled Value
Create a virtual column and add the time-scaled value fields to the column for both the list column view and for a grid portlet. If you are configuring the list view for a subobject, you see additional fields not available for a master object. The fields allow you to select an attribute from the master object whose value sets the start time or the time scale for the subobject.
Follow these steps:
  1. Complete one of the following actions:
    • For an object list view, open the object, click Views, and click Fields in the object's list view.
    • For a grid portlet, open the portlet, open the List Column Section menu, and click Fields.
  2. Click New.
  3. Select Time Scaled Value and click Save and Continue.
  4. In the General section, complete the following fields:
    • Value Attributes
      Specifies the time-scaled values that are to display in the virtual column. In the Available list box, select the attributes you want to list in the column and use the arrow buttons to move the attributes to the Selected list box.
    • Column Label
      Defines the name of the virtual column in which the time-scaled value appears.
    • Display Type
      Specifies how the time-scaled value is to display, as a number, a column, or a bar chart.
    • Secondary Value
      Specifies the secondary value that you want to display in the virtual column. (Optional)
    • Link
      Specifies the page that appears when the user clicks the link.
    • Open as Pop-up
      Specifies whether the page opens as a pop-up. Select the check box to open the page as a pop-up.
    • Allow Editing
      Specifies whether a user can edit fields. Select the check box to allow editing.
    • Show Legend Column
      Indicates whether the field label appears next to the time-scaled value in the virtual column. Select the check box to display the field label.
    • Show Column Label
      Indicates whether the column label displays at the top of the virtual column. Select the check box to display the column label.
  5. In the Time Scale section, complete the following fields:
    • Start Date
      Indicates the start date for the time period for the virtual-scaled value.
      The Other Date option appears only if you select a start date for a time-scaled value for a subobject. This field lets you select a field from the master object on which to base the start date. This option only appears when a subobject has time-scaled value attributes.
    • Time Scale
      Specifies the length of time the time-scaled value covers.
      Values
      :
      • Specific Time Scale. Specifies the period (length of time) for the time-scaled value.
      • Other Time Scale. This option appears only if you select a time scale for a time-scaled value. Select a field from the master object on which to base the time scale.
    • Number of Time Periods
      Defines the number of time periods to be reported in the virtual column.
    • Time Period Offset
      Defines the number of time periods you want to offset what displays from the start date. For example, if you want to start the display two time periods from the indicated start date, enter 2.
    • Show Group Row Header
      Specifies a timescale to be displayed above the virtual column. Select the check box to display a timescale and select the period type.
  6. In the Display Options sections, select the appropriate settings for displaying the time-scaled value in
    Classic PPM
    .
  7. Save your changes.
  8. Continue to add the virtual column to the layout by completing one of the following actions:
    • For a list column view, open the object, then open the Views menu and click Layout.
    • For a grid portlet, open the portlet, then open the List Column Section menu and click Layout.
    The layout page appears.
  9. In the Column Layout section, use the arrow buttons to move the name of the virtual column to the Selected Columns list box.
  10. Set any other options on the page that apply.
  11. Click Save.
  12. Click Publish to replace personalized changes users have made to this view.
Test a New Time-Scaled Value Field
Test a new time-scaled value field after adding it to a list column view for an object.
Follow these steps:
  1. Create an instance of the object that is associated with the time-scaled value.
    For example, if the time-scaled value is associated with the
    project
    object, create a project in
    Classic PPM
    .
  2. Include the values in the new instance for the time-scaled value field you want to test.
    For example, if the time-scaled value field is
    Actual Cost
    , enter a value in the field.
  3. View the list page or the grid portlet page and examine the virtual column for the time-scaled value.
Create a Fiscal Time-Scaled Value Field
You can create custom fiscal timescale values. Instead of operating on the standard annual calendar, fiscal time-scale values are based on the fiscal calendar. You can configure time-scale values that begin on a specific Start Date. These values are tied to fiscal time-periods and represent data that changes over time. For example, you can track the year-to-date units and revenue of a project as this data changes over time. The fiscal time-periods are associated with a financial entity and have no relationship to a standard calendar.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click New and create a master object.
  3. Verify that the master object is associated with a Department OBS and a financial entity:
    1. Click Administration, and under Organization and Access, click OBS.
    2. Open a financial OBS (a Department OBS that is linked to an entity).
    3. Scroll to the bottom of the Associated Objects section and click Add.
    4. Select your master object and click Add.
  4. Create a subobject for your master object.
    You can only add a time-varying attribute to a subobject.
  5. Complete the following tasks for the subobject:
    1. Create one or more time-varying fiscal attributes for the subobject. For example, create a number attribute for Units_Shipped and create a money attribute for Revenue.
      Use the same partition and partition association mode as the master object.
    2. Add the time-varying attribute to the subobject properties view.
    3. Create a virtual column for the time-scaled value and add the time-varying attributes to the column.
    4. Add the virtual column to the subobject list column view.
  6. Add one or more attributes to the master object properties view.
The last step is not required for the Cost Plan and Benefit Plan objects because they already include the following attributes:
  • Fiscal Period Type
  • Fiscal Period Start Date
  • Fiscal Period End Date
When your users create an object instance, the values for these attributes determine the timescale for the fiscal time-scaled values on the subobject. For the objects other than the Cost Plan or Benefit Plan, the addition of a time-varying attribute to the subobject also adds the required attributes. When you create a fiscal time-varying attribute on one of the subobjects, the application automatically adds the attributes for the object. In this step, add the three listed attributes to the object properties view.
Display Fiscal Time-Scaled Values
After users enter data that extends over time, you can create portlets or reports that display the fiscal data by period. As a developer, use this procedure to identify the time-varying fiscal attributes. Fiscal time-scale attributes are not available to users so they cannot define time slices. An internal
insta-slice
request table stores the data for the Fiscal Period Type used in the configuration. The table stores the slice data as a daily amount. When you create a query to retrieve the full amount for the Fiscal Period, use the number of days to multiply the daily slice amount.
Follow these steps:
  1. Locate the name of the slice table for the fiscal time-scale value attribute that you created on your subobject.
  2. Enter the following NSQL code:
    SELECT ID, REQUEST_NAME, TABLE_NAME FROM PRJ_BLB_SLICEREQUESTS WHERE REQUEST_NAME LIKE '<subobject>::<subobject_tsv_attribute_id>%'
  3. Replace with the name of your
    subobject::attribute
    designation.
    This query return 2 rows.
  4. Locate the internal
    insta-slice
    request name.
    <subobject>::<subobject_tsv_attribute_id>::segment
  5. Locate the table name for the request. For example, the TABLE_NAME column shows:
    ODF_SSL_5007002
  6. Create a query similar to the following example to view the data using this table.
    SELECT PRJ_OBJECT_ID subobject_pkid, START_DATE, FINISH_DATE, ROUND((TRUNC(FINISH_DATE) - TRUNC(START_DATE)) * SLICE,2) CALC_SLICE FROM ODF_SSL_500702 WHERE PRJ_OBJECT_ID = 5002000
    Replace the example insta-slice table name (ODF_SSL_500702) with the one that you created in your system. Replace the 5002000 with your SUBOBJECT_PKID.
  7. The calculated slice (CALC_SLICE) values from your internal query match the values that a user sees for the subobject record in a portlet.
Display Multiple Time-Scaled Values in a List Column
You can display multiple time-scaled values in the same list column view. The data for the attributes is stacked on the page, with the information for each time-scaled value appearing in the same virtual column. The data appears in units of currency, numbers, or percentages.
If you export data to Microsoft Excel, each time-varying value that is stacked in a
Classic PPM
 virtual column is given an Excel column of its own. For example, if you have time slices A, B, C, and D with 3 time-varying attributes configured in a virtual list view column, an export produces 12 Excel columns: A1, A2, A3, B1, B2, B3, C1, C2, C3, D1, D2, and D3.
Edit a Time-Scaled Value
When you edit a time scaled value using Studio, the setting applies to all users. All users include users for all sessions subject to any partitioning of the object views.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the name of the object.
  3. Click Views.
  4. In the Category column, locate the Properties view, and click the [Fields] link in that row.
  5. Click the Properties icon of the Time Scaled Value and edit the values.
  6. Save the changes.
You can also edit a time-scaled value using the Home menu. Two options are available in the Options menu on the portlet toolbar.
Edit a Time-Scaled Value: Configure Option
When you edit a time scaled value using this option, the setting applies to all the sessions for only that user that are subject to any partitioning of the object views.
Follow these steps:
  1. Open Home, and from Resource Management, click Resources.
  2. Click the name of a resource.
  3. Click Allocations, Detail.
  4. Open the Options menu that appears on the portlet toolbar, and click Configure.
  5. Open the List Column Section menu, and click Fields.
  6. Click the Properties icon of the Time Scaled Value and edit the values.
  7. Save the changes.
Edit a Time-Scaled Value: Time-scaled Value Option
When you edit a time-scaled value using this option, the setting applies to that user and only for that session, subject to any partitioning of the object views. This setting supersedes the values set using the previous method.
Follow these steps:
  1. Open Home, and from Resource Management, click Resources.
  2. Click the name of a resource.
  3. Click Allocations, Detail.
  4. Open the Options menu that appears on the portlet toolbar, and click Time-scaled Value.
  5. Edit the values and save the changes.
URL Link Attributes
Create a URL Link attribute to provide links to web pages or virtual attributes.
  • A link attribute provides a link to a web page that is outside of the product.
  • A virtual attribute references data attributes of items that exist outside of the
    Classic PPM
     database. Examples of virtual attributes include progress bars, Gantt charts, or attributes that display the calculated results for other attributes.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the name of the object.
  3. Click Attributes.
  4. Click New.
  5. Enter an attribute name and a unique ID.
  6. Set the Data Type field to URL.
  7. Complete any of the remaining fields.
  8. Save your changes.
API Enable Custom Attributes to Display them in
Clarity
Quando si crea un attributo personalizzato, è necessario abilitarlo per le API per renderlo disponibile in
Clarity
. Questa impostazione consente inoltre di accedere all'attributo tramite le chiamate API.
Procedere come descritto di seguito:
  1. Accedere a
    Classic PPM
    .
  2. Accedere ad
    Amministrazione
    ,
    Studio
    ,
    Oggetti
    .
  3. Cercare l'oggetto (ad esempio, Progetto) con l'attributo personalizzato.
  4. Aprire l'oggetto e accedere alla scheda
    Attributi
    .
  5. Cercare l'attributo personalizzato e fare clic sull'oggetto per aprirlo.
  6. Specificare un ID univoco nel campo
    ID attributo API
    . Il valore deve iniziare con una lettera minuscola e un carattere di sottolineatura. Ad esempio, p_uploadImage.
    L'ID dell'attributo API costituisce la chiave di riferimento quando l'attributo viene visualizzato nel set di risultati di una chiamata API. Per identificare gli attributi personalizzati e convalidarne l'univocità, si consiglia di aggiungere un prefisso breve e coerente a tali ID dell'attributo API. La creazione di ID dell'attributo API univoci evita eventuali conflitti nel caso in cui vengano introdotti nuovi attributi durante gli aggiornamenti successivi. Ad esempio, l'azienda ACME Corporation potrebbe assegnare il seguente ID univoco dell'attributo API ai suoi attributi di conformità: p_acmeCompliance. Si consiglia inoltre di utilizzare la notazione Camel per denominare gli attributi personalizzati.
  7. Salvare le modifiche.
L'attributo è ora abilitato per l'accesso API e disponibile in
Clarity
. È possibile configurare l'attributo per la sua visualizzazione nel riquadro Dettagli e nei layout Bacheca e Griglia. Per visualizzare l'attributo nella pagina Proprietà, configurare il blueprint dell'oggetto. Per ulteriori informazioni, consultare la sezione Modifica di un blueprint.
Configure Display Mappings for Attributes
You can use a series of icons or colors to represent a value range for an attribute. Colors and icons appear in stoplight icons, filters, progress bars, Gantt charts, and graph backgrounds. You can create display mappings for the following attribute types: number, money, static lookup, and Boolean.
When you define ranges that are adjacent to one another, verify that the ranges do not overlap. For example, the following ranges are correctly defined to avoid number overlap: 0-100, 101-200, 201-300. You can define up to ten ranges in a mapping plus an optional Default Bucket for all values that do not fall into defined ranges.
Follow these steps:
  1. Open your object attribute and navigate to the Display Mapping section.
  2. In the Type field, select Color or Icon.
  3. Select the first color or icon in the first range or Boolean value.
  4. Enter a brief description of the color or icon representation in the Description field.
  5. Enter a number for the beginning of the range that the color or icon represents in the From field.
  6. Enter a number for the end of the range that the color or icon represents in the To field.
  7. Repeat these steps to define any other ranges of numbers to color-code or represent by an icon.
    Once you select a display-mapping type and begin defining a display mapping, you cannot switch display-mapping types. You can clear your existing mapping, click Save, and then define a new mapping.
Register Portfolio Investment Object Attributes
The required Portfolio Investment attributes are displayed by default. Register any other Portfolio Investment attributes (stock or custom) that you want to display in your portfolio investment pages and views. You can change the display setting for any attributes that you register, but you cannot change the display setting of the required attributes. When you save attribute registry changes, the Portfolio Investment object is updated to include the latest registered attributes.
When you change the attribute registry, run the Synchronize portfolio investments job. The job refreshes the investments in the portfolio pages with information from actual investments. For example, you remove Charge Code from the Selected Attributes in the attribute registry. This changes the portfolio pages after the next sync or refresh of the Portfolio Investment object from the actual investments.
The number of attributes that can be registered for a portfolio is limited to 700. The limit helps to ensure better performance when you work with a portfolio. A counter on the attribute registry indicates the current number of attributes that are registered for the Portfolio Investment object.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the Portfolio Investment object.
  3. Click Attribute Registry.
    The attribute registry page appears.
  4. Select the attributes from the Available Attributes list and move them to the Selected Attributes list.
  5. Click Save.
    The attribute registry page refreshes to show the current number of attributes available for display in portfolio investments.
Add Attributes to the Object Properties View
Add the attributes to the properties view of the new object so users can complete the following tasks from the object properties page:
  • Create an initial instance of the object.
  • Modify an instance of the object.
You can configure attribute visibility, location on the page, and layout.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the name of the object.
  3. Click Views.
    The list of views appears.
  4. In the Category column, locate the Properties view and click the [Layout:Create] link from the Setup column in that row.
  5. In the property layout, select a section, and click the Properties and Layout icon next to the item.
    List boxes of available and selected attributes appear.
  6. In the Available list, select the attributes that you want to add and use the arrows to move the attributes into the correct Selected list.
  7. Click Save and Return.
  8. Click Return.
    The list of views appears.
  9. In the Category column, locate the Properties view and click the [Layout:Edit] link from the Setup column in that row.
  10. Repeat these steps as often as required.
  11. Save your changes.
Add Attributes to the Object List Filter View
Add attributes to the list filter view of the object so that users can complete the following tasks:
  • Search for information that is based on object attributes.
  • Use a filter to limit the information that they want to view. For example, users can filter the project team staff page to view only unfilled roles.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the name of the object.
  3. Click Views.
  4. In the Category column, locate the List Filter view and click the [Layout] link from the Setup column in that row.
    The list filter layout page appears.
  5. In the Available list, select the attributes that you want to add to the list filter, and use the arrows to move the attributes to the appropriate columns.
  6. Complete the following fields in the Settings section:
    • Section Title
      Defines the text that appears at the top of the section for the filter.
    • Default Filter State
      Specifies whether the initial display of the filter is expanded or collapsed.
    • Allow Power Filter
      Specifies whether the filter provides advanced search features.
  7. Save your changes.
Add Attributes to the Object List Column View
Add attributes to the list column view of the object to define the sorting of the attributes that are displayed as columns on list pages. For example, you can sort the list of projects primarily by the Project Name attribute in ascending order.
You can add up to four attributes that sort a List Column view. The attributes can be user-defined, default, or both.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the name of the object.
  3. Click Views.
    The list of views appears.
  4. Next to the List Column view, click the Layout link.
    The list column layout page appears.
  5. Specify the primary sort column in the Column Sorting section by selecting an attribute in the First Field row.
  6. To indicate the direction of the sort, select Ascending or Descending.
  7. To indicate more sort columns, select attributes for the remaining fields in the Column Sorting section.
  8. Save your changes.
Grant Access to the Object
Configure the access rights of users, OBS units, or groups for the object.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Click the name of the object, click Access to this Object, and select one of the following options:
    • Resource
      : Grants access to individual resources.
    • Group
      : Grants access to defined groups of resources.
    • OBS Unit
      :  Grants access to defined OBS units containing resources.
  3. Click Add.
    A list of access rights appears.
  4. Select the check boxes next to the access rights you want to grant, and click Add and Continue.
    A list appears with a list of resources, groups, or OBS units.
  5. Select the check boxes next to each resource, group, or OBS unit to which you want to grant access.
  6. Click Add.
Edit the default menu link for the object so that users can access it under the Home (Application Menu) or Administration Menu. For example, rename the link and move it to the most appropriate section of the menu.
Follow these steps:
  1. Open Administration, and from Studio, click Menu Manager.
  2. Click the name of the menu you want to edit. Click Application Menu.
    The menu hierarchy appears. The application displays all new custom object list entries under the Custom Objects section by default.
  3. Scroll down and click your custom object list.
  4. Edit the menu item properties:
    • Link Name
      Defines the label for the page link that appears in the menu.
    • Page Name
      Specifies the target destination page that appears when users click the link from the menu.
    • Parent Menu Item
      Specifies the source menu section for the new menu link.
  5. Click Save and Return.
  6. To update the menu click Home or Administration and then click Refresh.
Audit an Object
You can configure the application to audit and preserve a record of operations that are performed on an object. When an object is configured for auditing, instances of the object display an Audit Trail tab. Use the audit trail to perform any of the following tasks:
  • Track operations
    : Select the operations and attributes that you want audited. Operations include inserts, deletes, and changes. For example, you might track changes for a specific risk named
    High Defect Count
    that you create and might add to a project. You can also configure auditing operations for a subobject like a task. Instance security is also enforced on the Audit Trail tab. The user must have the right to view the subobject or it is not visible on the Audit Trail tab for the master object.
  • Track time varying attributes
    : Budgeting and resource planning use time varying attributes. You can configure these attributes to track the history of changes.
  • View and Maintain a Global Audit Trail
    : As an administrator, you can view a log of all insert, delete, and change records across all objects. You can purge unneeded audit records by running the Purge Audit Trail job.
Follow these steps:
  1. Open your object and click Audit Trail.
  2. In the Attribute Audit section, select the attributes that you want to audit and move them to the Audited Attributes list.
  3. In the Object Audit section, do the following:
    1. Select the attributes that you want audited for insertions and move them to the Logged Attributes for Insert Operation list.
    2. Select the attributes that you want audited for deletions and move them to the Logged Attributes for Delete Operation list.
  4. In the Purge Audit Trail section, enter a number to indicate how many days a record for this object is to be kept before being purged when the Purge Audit Trail job is run.
    Leave the field blank to keep records indefinitely.
  5. Save your changes.
Delete an Object
You can delete user-defined objects or attributes. You can delete any object that you create. When you delete an object, the database also deletes its views, tables, page sets, and any portlets that used the object through an object data provider. When you delete an attribute, the attribute is removed from the object view and the database. Any attributes that are derived from the deleted attribute are deleted. Calculated and formula attributes that use the attribute prompt a warning message.
You cannot delete the following object and attribute information:
  • Objects or attributes in reports.
  • References to the object or attribute in custom database code
  • Object or attribute instances in NSQL queries.
Although audit trail records for the object are deleted, a record of the object or attribute deletion itself is stored in the Audit Trail log. Queries that use the database table that is created for the object are identified so that they can be removed manually. Queries that use the database table column that is created for the attribute are also identified so that they can be removed manually.
To delete an object that is created by another user, you must have the appropriate access rights to the object. You cannot delete stock objects and attributes.
As a precaution, remove any use of the object or attribute in a query, portlet, or calculation before you delete. Deleting an object that is used to provide information to other parts of
Classic PPM
 can produce unintended results. The same is true if you delete an attribute that is used by a query or is included in a calculation. Once the deletion occurs, the only way to retrieve the data is through a database backup restoration.
Follow these steps:
  1. Open Administration, and from Studio, click Objects.
  2. Select the check box next to an object and click Delete. Or, open the object and click the Attributes tab. In the list of attributes, select the check box for an attribute and click Delete.
    The confirmation page appears listing the dependent items for the object that will also be deleted.
  3. Review the list of associated items and verify that none have dependencies such as portlets, queries, or other attributes that use the attribute you are deleting.
  4. Complete one of the following actions:
    • If you find dependencies, click No to exit the page, then remove the dependencies and repeat the procedure to delete the object or attribute.
    • If no dependencies are listed, click Yes to delete the object or attribute.
Update Translation Strings for Custom Objects and Attributes
When you update the translated text string for a custom object or attribute, you can push the new captions to instances of those objects and attributes in your views. You cannot change the names of stock objects.
  1. Create a custom object.
  2. Create one or more custom attributes.
  3. Create and configure the object views. For example, you decide to put the custom object in a list view.
  4. On the custom object or attribute properties page, click Translate. Enter the translation text and click Save and Return.
  5. Click
    Push Object Captions
    for objects and
    Push Captions to Views
    for attributes.
    The new translated strings appear in all instances of those custom objects and attributes.