Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

Implementing Earned Value Management (EVM) in RTC

I want to perform EVM in RTC by attaching a charge rate attribute to a work item, then multiplying that rate by the number of estimated work hours and actual work hours to compute planned cost and actual cost, respectively. Planned cost and actual cost will also be attributes on the work item, so after these values are computed, they need to be saved back to the work item somehow. Does anyone have experience with using the RTC SDK to extract attribute values, perform math operations on them, then send the computed values back and save them as work item attributes?

I am just looking for some ideas or guidance as to how this can be implemented in RTC. I welcome any and all ideas.

Thank you,
Murad

0 votes



3 answers

Permanent link
Hi Murad,

this is the best place to get started: https://jazz.net/library/article/784

If all your operations are only affecting one work item and only need access to simple (string, integer) attributes, you could try to use use java scripts to configure default and calculated values. See https://jazz.net/wiki/bin/view/Main/AttributeCustomizationExamples for more information. I am not sure which data you need. I would start with trying to access the estimation attributes. If you can access those and calculate with them, you have a good chance to be able to use this simple technology.

If you can't access all the data you need or if you require to follow parent child relationships and collect data across multiple work items you would have to use the SDK and most likely create a followup action.

2 votes


Permanent link
Ralph,

Thanks very much for the info and it was great meeting you at Innovate this year.

I think I am almost there with what I need.  I have hit another roadblock though ... I am doing attribute customization with script-based calculated values.  I need to access a custom attribute I've created called "Charge Rate" with ID "chargeRate" but I can't figure out how to do so with what I have.  Here's my JavaScript so far:

dojo.provide("org.example.workitems.providers.APIExample");

dojo.require("com.ibm.team.workitem.api.common.WorkItemAttributes");
dojo.require("dojo.number");

(function() {
var WorkItemAttributes= com.ibm.team.workitem.api.common.WorkItemAttributes;

dojo.declare("org.example.workitems.providers.APIExample", null, {
    getValue: function(attributeId, workItem, configuration) {

    var chargeRate= dojo.number.parse(workItem.getValue(WorkItemAttributes.chargeRate));
    console.log(workItem.getValue(WorkItemAttributes.CHARGERATE));
       
        return chargeRate;
    }
});
})();


chargeRate is currently returning null.  Any ideas?  Thanks again.

Best,
Murad

0 votes


Permanent link
Murad, please have a look at the "Spy" script in https://jazz.net/library/article/1093 Lab 5. The code should help you to understand what is returned. As explained in that workshop you have to call workItem.getValue("chargeRate"). The WorkItemAttributes strings are only defined for internal attributes.

0 votes

Your answer

Register or log in to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 10,940

Question asked: May 02 '12, 1:41 p.m.

Question was seen: 5,730 times

Last updated: Aug 08 '13, 6:37 p.m.

Confirmation Cancel Confirm