Select a subset of data to share between users

I'm currently working on a project where the client would like the end-user to be able to select specific rows and columns of data to share with other end-users. For example, I have an entity of User_Information which includes Id, Username, DateOfBirth, PhoneNumber, EmailAddress and one user wants to share ONLY the UserName and EmailAddress of a subset of users with another.

Is there a way to allow for the end-user to select (say, with a checkbox) rows and columns to export this to a SQL query? The second user can then use this same query (entity, columns, rows) to visualize the shared data. 

 The selected entity may be different (User_Information for this scenario, but Purchase_Log for another share) for many cases, so I'd like a generic solution, not one that is dependent on the User_Information entity

Well you could create a table called "PublicUserInfo", with an id, userid, InfoType (txt) and value (txt), and each
time the user selects one of those rows, you just add that data to this table.

You could also make the InfoType into a static entity, so it's easier to identify the order and type of info.

Hi Christopher,

Yes, there is a way, but no, you probably don't want to go there. These kind of "everything must be possible" scenarios pop-up once in a while, and the generic observation is that the user probably doesn't know what they actually need, so they just want to be able to configure anything. For your own sanity, just say that this can't be done with OutSystems, and lead a happy life :).

Kilian Hekhuis wrote:

Hi Christopher,

Yes, there is a way, but no, you probably don't want to go there. These kind of "everything must be possible" scenarios pop-up once in a while, and the generic observation is that the user probably doesn't know what they actually need, so they just want to be able to configure anything. For your own sanity, just say that this can't be done with OutSystems, and lead a happy life :).


In this case, the sharing of subsets of data is a core-functionality that the client desires for their application, and due to privacy concerns (GDPR-compliance), full-data sets cannot be shared across users. 

Hi Christopher,

I bet if you dig deeper, there's only two, maybe three different sets that are actually exchanged. Having such a dynamic configuration is very likely not really needed.

Kilian Hekhuis wrote:

Hi Christopher,

I bet if you dig deeper, there's only two, maybe three different sets that are actually exchanged. Having such a dynamic configuration is very likely not really needed.

My example was simple, but some of the entities that will be shareable can contain more than 20 columns since we are importing data and parsing it to the database. We currently, in this development stage, have 7 different entities, each with different columns, with the client wanting the functionality to be able to expand to include more entities (data sets) at a later date. Also, there will also be researchers using our platform, so the subsets that they will utilize will be different as well. 


Solution

Well, all I can say, that's really not something you want to do using OutSystems. It seems you need a different kind of tool for that.

Solution