Part Changes Tab: Add affected Part revision

Hi,

How can I show the part revisions (old rev , new rev) on Part changes tab on each ECO

Today Part Changes tab shows

Change Type, Number, Title, State 
ECO, ECO-100001, "Eco about blabla", Released

I would like to see the Part revision that was affected by each ECO

something like  for Part XX change tab

Change Type, Number, Title, State, Old rev, New rev
ECO, ECO-100001, "Eco about blabla", Released, A, B
ECO, ECO-100002, "Eco about blabla", Released, B, C
ECO, ECO-100003, "Eco about blabla", Released, C, D

I know this must be done in 

C:\Program Files (x86)\Aras\Innovator\Innovator\Client\Solutions\PLM\xml\ChangesGrid.xml and
C:\Program Files (x86)\Aras\Innovator\Innovator\Client\Solutions\PLM\scripts\Changes\Changes.html 

But can't figure out how to point (get the relation) to the affected part revisions on each ECO since Changes.html refers to relation to the change type and not part info. 

thanks for any help

Regards//Mikael

Parents
  • Hi Mikael

    Yes, your guess is right and we need to do changes in ChangesGrid.xml and Changes.html.

    In ChangesGrid.xml

    Include the column you want to add. In this case, Previous Revision and Current Revision

    <th align="c">Previous Revision</th>

    <th align="c">Current Revision</th>

    <column width="100" edit="" align="l" order="4"/>

    <column width="100" edit="" align="l" order="5"/>

    In  Changes.html

    var itms = tracker.GetResult();

    for (var j = 0; j < itms.getItemCount(); j++) {
    var itm = itms.getItemByIndex(j);
    var id = itm.getAttribute("id"); // After this line, add below code
    var part_rev_new = "";
    var part_rev_old = "";
    if ((tracker.GetLabel() === "ECO")) {
    if (itm.getPropertyItem("related_id").getPropertyItem("new_item_id") !== null) {
    part_rev_new = itm.getPropertyItem("related_id").getPropertyItem("new_item_id").getProperty("major_rev");
    }
    if (itm.getPropertyItem("related_id").getPropertyItem("affected_id") !== null) {
    part_rev_old = itm.getPropertyItem("related_id").getPropertyItem("affected_id").getProperty("major_rev");
    }
    }
    valsArr = [tracker.GetLabel(), itm.getProperty("item_number"), itm.getProperty("title"), itm.getProperty("state"), part_rev_new, part_rev_old];
    for (var k = 0; k < valsArr.length; k++) {
    if (!valsArr[k]) valsArr[k] = "";
    }
    tmpDom.loadXML("<tr><td/><td/><td/><td/><td/><td/></tr>");

    Let me know if it helps.

    Regards,

    Gopikrishnan R

Reply
  • Hi Mikael

    Yes, your guess is right and we need to do changes in ChangesGrid.xml and Changes.html.

    In ChangesGrid.xml

    Include the column you want to add. In this case, Previous Revision and Current Revision

    <th align="c">Previous Revision</th>

    <th align="c">Current Revision</th>

    <column width="100" edit="" align="l" order="4"/>

    <column width="100" edit="" align="l" order="5"/>

    In  Changes.html

    var itms = tracker.GetResult();

    for (var j = 0; j < itms.getItemCount(); j++) {
    var itm = itms.getItemByIndex(j);
    var id = itm.getAttribute("id"); // After this line, add below code
    var part_rev_new = "";
    var part_rev_old = "";
    if ((tracker.GetLabel() === "ECO")) {
    if (itm.getPropertyItem("related_id").getPropertyItem("new_item_id") !== null) {
    part_rev_new = itm.getPropertyItem("related_id").getPropertyItem("new_item_id").getProperty("major_rev");
    }
    if (itm.getPropertyItem("related_id").getPropertyItem("affected_id") !== null) {
    part_rev_old = itm.getPropertyItem("related_id").getPropertyItem("affected_id").getProperty("major_rev");
    }
    }
    valsArr = [tracker.GetLabel(), itm.getProperty("item_number"), itm.getProperty("title"), itm.getProperty("state"), part_rev_new, part_rev_old];
    for (var k = 0; k < valsArr.length; k++) {
    if (!valsArr[k]) valsArr[k] = "";
    }
    tmpDom.loadXML("<tr><td/><td/><td/><td/><td/><td/></tr>");

    Let me know if it helps.

    Regards,

    Gopikrishnan R

Children
  • Thanks Gopikrishnan,

    But did not work, nothing appears in my change table, all ECOs are missing if I add this code.

    If I remove (//) the if statements, then my ECOs and columns get visible, but with no values in the rev columns.

    //---------------------------
    var part_rev_new = "";
    var part_rev_old = "";
    if ((tracker.GetLabel() == "ECO")) {
    //if (itm.getPropertyItem("related_id").getPropertyItem("new_item_id") !== null) {
    //part_rev_new = itm.getPropertyItem("related_id").getPropertyItem("new_item_id").getProperty("major_rev");
    //}
    //if (itm.getPropertyItem("related_id").getPropertyItem("affected_id") !== null) {
    //part_rev_old = itm.getPropertyItem("related_id").getPropertyItem("affected_id").getProperty("major_rev");
    //}
    }

    valsArr = [tracker.GetLabel(), itm.getProperty("item_number"), itm.getProperty("title"), itm.getProperty("state"), part_rev_new, part_rev_old];
    //---------------------------

    So something does not work in the "itm.getPropertyItem("related_id")..."

    And in my case I only want to show the revisions for the actual Part, so if an ECO has several affected parts, I guess we need a match something like  "where.... objID = Affected_ID...."

    //Mikael