Expand my Community achievements bar.

SOLVED

Use Fusion to identify objects with the same custom value?

Avatar

Level 3

Hello

 

I have a Portfolio which has a number of projects in it. 

On the Project level, I have a custom field called Rank. This field is present in every project in this portfolio.

There are occasions whereby multiple projects could potentially share the same value in the Rank field.

Now I want to use a Fusion scenario to iterate all these projects and be able to identify any projects that share the same Rank value (i.e. duplicate values).

 

Is there a way to achieve this?

Any ideas would be appreciated!

 

Thanks in advance.

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

If I am understanding correctly, in Fusion, you want to generate a list of projects that have the same "rank" value and that are in the same "portfolio", and I am assuming that all projects you are concerned about will be in a portfolio, and have some value in the "rank" property, correct?

 

If so, here's how I would tackle this.

1. Use the Workfront Search module, and search for all projects with a value in the "rank" property, and that are in a portfolio. Pull in the portfolioID the project is in, as well as the value for the "rank" property, as well as any other information you want.

2. Set an array aggregator next, and group it by the portfolioID, passing thru whatever information you need.

2b. Set an iterator that will iterate thru the resulting array from 2

3. Set an array aggregator next, fed by the iterator from 2a, and group it by the "rank" number, passing thru whatever information you need.

4. Set a final array aggregator next without a grouping, passing thru whatever information you need.

5. In between steps 3 and 4, put a filter that will only allow thru if the resulting array from 3 is longer than 1.

 

Edit: forgot a step

View solution in original post

4 Replies

Avatar

Level 7

Hi,

maybe I'm too optimistic, but I either don't get it what you are after or it should be doable even with a simple report (if you are fine with updating values manually).

My understanding is:

1. you want to identify projects which have some specific values in specified fields.

2. once identified, all projects should have the same value in field "rank"

If my understanding is correct, than identification can be done simply with a report and once you run it you can update the rank as needed.

 

Having said that, yes this can also be done with Fusion if you want to automate that. Search module (to find relevant projects) and updated record should be enough. If search is more complex, custom API call may be required

Hey @Rafal_Bainie , first of all thanks for taking your time to respond to my question. Really appreciate it.

Yes this will have to be done in a Fusion flow because I will then need to use Fusion to do some further data manipulation in an automated manner. 

 

I have now used a Workfront Custom API Call to retrieve the portfolio and then Read Related Records to retrieve all the Rank values from the projects that sit within this portfolio. 

The thing I am struggling with is to be able to tell Fusion I was looking for a duplicate in this Rank field.... Not sure what module that could achieve that?

 

If you could shed some more lights on this that'd be hugely appreciated.

Thanks

Avatar

Correct answer by
Community Advisor

If I am understanding correctly, in Fusion, you want to generate a list of projects that have the same "rank" value and that are in the same "portfolio", and I am assuming that all projects you are concerned about will be in a portfolio, and have some value in the "rank" property, correct?

 

If so, here's how I would tackle this.

1. Use the Workfront Search module, and search for all projects with a value in the "rank" property, and that are in a portfolio. Pull in the portfolioID the project is in, as well as the value for the "rank" property, as well as any other information you want.

2. Set an array aggregator next, and group it by the portfolioID, passing thru whatever information you need.

2b. Set an iterator that will iterate thru the resulting array from 2

3. Set an array aggregator next, fed by the iterator from 2a, and group it by the "rank" number, passing thru whatever information you need.

4. Set a final array aggregator next without a grouping, passing thru whatever information you need.

5. In between steps 3 and 4, put a filter that will only allow thru if the resulting array from 3 is longer than 1.

 

Edit: forgot a step

This is brilliant! Thanks so much Chris for taking your time to share this.

I also use a Iterator as the step 6 to be able to output bundles so that I can do further manipulation on a non-aggregated level.

Thanks again!