Adding Columns to the Impact Matrix

Hi all,

Aside from adding the relevant lines to the  Express ECO ImpactMatrixGrid, is there something else I need to edit to add the columns? My new column is appearing as undefined.

  • Hi,

    you mainly have to customize the Method 'Express ECO ImpactMatrixGrid' .

    For addition columns you have to add your properties in block "ImpactMatrixGrid.prototype.initializeGridStructur". 
    You need to specify your own "Cell Classes" as seen in available code.

    You may have also to customize one ui_resources(ex?).xml file in the codetree. Don´t remember which one. Either the one directly in the Client folder, or the one in the PE application folder.

  • Thanks Angela, I've got it configured with these items and I can now view the column and the name however it is not populating the value.

    I am looking to add the has_change_pending property, which I have added to Change Controlled Item for the purpose of populating the impact matrix (this missing on the item type was causing the undefined). 

    Currently, it is always showing blank so that is the next thing I am trying to solve. I am assuming I need to setup my cell class to show a specific value if true so will do that and report back.

  • I got it working. I had to update 'Express ECO GetDataSource' as well to account for the additional property - here specifically, beginning at line 128 -

    String itemQueryAMLTemplate =
    "<AML>" +
    " <Item type='{0}' action='get' select='id, name, item_number, major_rev, state, keyed_name{3}, has_change_pending'>" +
    " <generation condition='is not null'>%</generation>" +
    " <Relationships>" +
    " <Item type='{1}' action='get' select='source_id, related_id(id, name, item_number, major_rev, state, keyed_name{4}), quantity, sort_order{5}'>" +
    " <OR>" +
    " <source_id condition='in'>{2}</source_id>" +
    " <AND>" +
    " <related_id condition='in'>{2}</related_id>";

    I added the has_change_pending property to the aml.

    Now it shows the values - 1 or 0 for the bool, just need to modify the return statements I believe to reflect more user friendly text.

  • Success, however now for some reason there is some odd behavior. My columns are there but values are only populating for Part...

    And when adding a sub-assembly, it only populates for the the item I add, and it's parent...

    When I set an action on an item these populate as well.... unless the item in question is a CAD Document

  • Got this resolved too. Had to edit 'Express ECO GetDataSource' again -

    At line 266, add properties here as well:

    String notRequestedItemsAmlTempalte =
    "<AML>" +
    "  <Item type='{0}' action='get' select='id, name, item_number, major_rev, state, keyed_name{2}, has_change_pending, classification' levels='0' >" +
    "    <id condition='in'>{1}</id>" + 
    "  </Item>" +

    Hope this helps someone else Slight smile

  • So for anyone wondering how to do this, I decided to write up everything I found that needs to be changed. Hope this helps the community out~

    Adding and Removing Columns from the Aras Impact Matrix

    Ensure that the relevant properties are present on the Change Controlled Item Item Type. This may entail updating all item types that are poly sources to the Change Controlled Item.

    Once, that is done we will be editing two methods -

    Express ECO ImpactMatrixGrid

    Express ECO GetDataSource

    We will start with the Express ECO GetDataSource method.

    The highlighted lines in the code below, which starts at line 128, is the AML that determines which properties are pulled into the tables that are referenced in the Express ECO ImpactMatrixGrid method. We will need to add our properties here.

    We will also need to add our property in one more place, where highlighted, beginning at line 266.

    Now, we can update the Express ECO ImpactMatrixGrid to add our columns. Add a new line to the grid initialization to define the new property as seen below. Per the notes here, I added Changes Pending and Classification. 

    To remove an existing column, remove it from the initialization definition. Some columns drive additional functionality, and as such cannot be commented out such as EDR and Grouping without causing the matrix some issues.

    Next, beginning at line 1655, you will see functions that define the data being pulled into the grid. From here, add a function to setup your properties. Once complete, the new columns and relevant data should be displayed on the Impact Matrix. In the example below are the functions for Part Number and Name along with the added function for the new Changes Pending:

  • Thanks for the cool overview! I forgot to mention the GetDataSource method. Happy that you were able to discover this one on your own!

    @Aras: A "highlights from the forums" section would really be helpful! 

  • Thanks Angela, learning a lot during this implementation from the community so I am trying to give back where I can!