# RTC Calculated Script Clarification

 0 RTC User Prime (17●3) | asked Mar 28, 4:09 a.m. edited Mar 28, 9:46 a.m.  Is it possible to have RTC Calculated Script for the below using enumerations. where Factor A to Factor H are having specific values, where in the below calculation is done and the result would be a Read-only Enumeration on a specific state. Factors Enumeration Attribute for Factor A Yes (25) No (0) Enumeration Attribute for Factor B Yes (25) No (0) Enumeration Attribute for Factor C Yes (25) No (0) Enumeration Attribute for Factor D Yes (5) No (0) Enumeration Attribute for Factor E Yes (5) No (0) Enumeration Attribute for Factor F Yes (5) No (0) Enumeration Attribute for Factor G Yes (5) No (0) Enumeration Attribute for Factor H Yes (5) No (0) Enumeration Attribute for Calculating Total = A B If the evaluation result is higher than 50 , the result is A.  If the evaluation result is less than 50 , the result is B.

 0 Ralph Schoon (62.0k●3●36●43) | answered Mar 28, 4:53 a.m. FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER  The question is barely readable and does not make any sense to me.  It should be easy enough to create a presentation and a pseudo algorithm that explains what you want.  Regardless, it is possible to create a calculated value for an enumeration attribute. The editor presentation for that attribute can be read only. The calculated value can access other attributes and operate on their values.  Comments RTC User Prime commented Mar 28, 9:47 a.m. Updated the clarification by having them aligned. Ralph Schoon commented Mar 28, 10:28 a.m. FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER I stand by my answer. You can compare enumeration values for multiple attributes, do the calculation above and return the enumeration value based on the comparison from the choice A and B. RTC User Prime commented Mar 29, 6:34 a.m.

 0 RTC User Prime (17●3) | answered Mar 29, 6:34 a.m.  The below script is not working. Please let me know if anything is wrong ```dojo.provide("com.ibm.alinma.rtc.calculatedScript.evaluationresult");dojo.require("com.ibm.team.workitem.api.common.WorkItemAttributes");(function () { dojo.declare("com.ibm.alinma.rtc.calculatedScript.evaluationresult", null,  { getValue: function (attribute, workItem, configuration)  { var WorkItemAttributes = com.ibm.team.workitem.api.common.WorkItemAttributes; var A = workItem.getLabel("com.ibm.team.workitem.initiative.customattribute.samplePA.A"); var B = workItem.getLabel("com.ibm.team.workitem.initiative.customattribute.samplePA.B"); var C = workItem.getLabel("com.ibm.team.workitem.initiative.customattribute.samplePA.C"); var D = workItem.getLabel("com.ibm.team.workitem.initiative.customattribute.samplePA.D"); var E = workItem.getLabel("com.ibm.team.workitem.initiative.customattribute.samplePA.E"); var F = workItem.getLabel("com.ibm.team.workitem.initiative.customattribute.samplePA.F"); var G = workItem.getLabel("com.ibm.team.workitem.initiative.customattribute.samplePA.G"); var H = workItem.getLabel("com.ibm.team.workitem.initiative.customattribute.samplePA.H"); var Result = workItem.getLabel("com.ibm.team.workitem.initiative.customattribute.samplePA.EvaluationResult") var total = 0; if (A === "Yes" )  { A_Value = 25; }  else if (A === "No" || A === "Unassigned")  { A_Value = 0; } if (B === "Yes" )  { B_Value = 25; }  else if (B === "No" || B === "Unassigned")  { B_Value = 0; } if (C === "Yes" )  { C_Value = 25; }  else if (C === "No" || C === "Unassigned")  { C_Value = 0; } if (D === "Yes" )  { D_Value = 25; }  else if (D === "No" || D === "Unassigned")  { D_Value = 0; } if (E === "Yes" )  { E_Value = 5; }  else if (E === "No" || E === "Unassigned")  { E_Value = 0; } if (F === "Yes" )  { F_Value = 5; }  else if (F === "No" || F === "Unassigned")  { F_Value = 0; } if (G === "Yes" )  { G_Value = 5; }  else if (G === "No" || G === "Unassigned")  { G_Value = 0; } if (H === "Yes" )  { H_Value = 5; }  else if (H === "No" || H === "Unassigned")  { H_Value = 0; } // Criteria Contribution Weights: // 1.       A            25% // 2.       B  25% // 3.       C  25% // 4.       D 5% // 5.       E  5% // 6.       F 5% // 7.      G  5% // 8.     H   5% // TOTAL               100% var totalPriority = (A_Value + B_Value + C_Value + D_Value  + E_Value + F_Value + G_Value + H_Value); if (totalPriority >= 50 )  { EvaluationResult = "DropeDown1"; }  else if (totalPriority < 50)  { EvaluationResult = "DropeDown2"; } } });})();  ```

 0 Ralph Schoon (62.0k●3●36●43) | answered Mar 29, 6:39 a.m. FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER edited Mar 30, 3:41 a.m.   I would suggest you carefully read https://rsjazz.wordpress.com/2022/11/25/ewm-attribute-customization-introduction/ and maybe look into the documentation, workshop(s) and examples. In addition to that, I would like to suggest to you that if a function was to return a value, you should probably return a value in one of the last statements at the end of your function. I would suggest you consider debugging your script ( https://rsjazz.wordpress.com/2022/11/17/debugging-ewm-work-item-attribute-customization-javascript/ ) link to be found in the post mentioned above.

 0 RTC User Prime (17●3) | answered Apr 03, 3:27 a.m.  Thanks Ralph  With the links provided, I was able to crack the script by using the debugging method as the ready only enumerated field is getting updated based on the selection. The only issue is that the logic seem to be missing as I suspect the way the addition and updation is not correct. Can you help me on that part alone ? Written Logic ```var total = A + B + C + D + E + F + G + H; if (total >= 50 )  { EvaluationResult = "AA"; }  else if (totalPriority < 50)  { EvaluationResult = "BB"; } return EvaluationResult; } ``` When I select A B C D E F G H as Yes Yes No No No No No No in Sequence its working When I select C D E H A G F B as No No No Yes No No No Yes in Random its not working. Anything to be added to the logic to have the calculation done irrespective of the sequence of selection ? Comments Ralph Schoon commented Apr 03, 5:13 a.m. | edited Apr 03, 5:24 a.m. FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER  There is not enough information to do a lot. Issue:  You use total and totalPriority to compare. The latter variable does not exist. Make sure that the value of the attribute you calculate here has all other attributes as dependency. I would write the code like this var result = "BB"; if(total>= 50){    result = "AA"; } return result;

 0 RTC User Prime (17●3) | answered Apr 03, 6:17 a.m. There is a small mistake as "total" and "totalPriority" are the only comparison criteria Below is the sample code ```var A = 0; ``` ```. ``` ```var H = 0; ``` ```var total = 0;var EvaluationResult = 0;  ``` ```if (Req1 === "Yes" ) { A = 25; } else if (Req1 === "No" || Req1 === "Unassigned") { A = 0; } ``` ```. ``` ```. ``` ```. ``` ```. ``` ```if (Req8 === "Yes" ) { H = 5; } else if (Req8 === "No" || Req8 === "Unassigned") { H = 0; } ``` ```var total = A + B + C + D + E + F + G + H; if (total >= 50 )  { EvaluationResult = "AA"; }  else if (total < 50)  { EvaluationResult = "BB"; } return EvaluationResult; ```