Confiforms - Flatten entries - 3 fields limits
Asked by Sopaboba:

Hello again

I have several Confiforms that contains one or more multioption field, of several types. They can be multiuser, multiselect, checkbox groups, dropdowns, smart or dumb, ... It doesn't matter the type, but the number matters.

In some of them, I have less than three, and I can Copy Confiforms Data to a child form without any problems. But, when having three or more, that returns an error and you're not allowed to copy with flatten entries.

I use a trick that consists in Copy Confiforms Data in an intermediate temporary child form that contains only one multiple field, and then from this one I triggered another Copy Confiform data, now flattening entries to a third permanent form. That works perfectly, and now, having learnt how to use IFTTT to trigger action in cascades, I can do that in one step.

My question is for the Atlassian staff: is there any other more simple way to do that? If the answer is NO, are you considering to implement in the Copy Confiforms Data a box to select the field to flatten entries by, so that you can choose one, two, three or more multifields without this "trick"?

Thanks again in advance.


Answers:
author: Alex Medved _ConfiForms_
body: Hi

This limitation is set intentionally in ConfiForms to avoid possible issues with flattening datasets with multi-select fields that explode (flatten) into millions of records.

This can be disabled in the ConfiForms (admin) settings, but the limit there is for a reason

As flattening datasets could be dangerous. As yourself how many records will be in flattened view when you have 1st multi-select with 3 choices selected, 2nd multi-select with another 2 options selected and the 3rd one with yet another 2 options selected...

3x2x2... so, from just one 1 record you will get 12. Now, let's say you have 1000 records initially. And get 12000 flattened. Now, imagine you have yet another multi-select field to flattend, and each record has 5 options selected... now, how many will you have in the output to render?

Alex

comments: author: Sopaboba
body: Totally agree with you, but ... imagine another situation. 3 fields are allowed to be flattened. And you only have 3 multifields, each of then with 81 different option to choose. All of them are chosen by the user, and you can flatten entries. That makes half a million records.

What I am proposing is implementing the restrictions not on the admin site level, but inside the own macro, letting the developer choose the fields to flatten by, with the limit of ... let's say 3 multifields. The entries would be flatten only by those 1, 2 or 3 fields.

For example:

multiuserfield1: 3 options A B C

multiuserfield2: 5 options D E F G H

multiuserfield3: 3 options I J K

plus some other not multi fields (texts, checkboxes, text areas, etc.)

In this supposed macro, I could choose Flatten entries: yes and Fields to be flatten by: multiuserfield1

The result, with all the options chosen A B C would be only three records.

If I chose flatten by multiuserfield1,multiuserfield2, with all the options chosen, the result would be 3 times 5, that makes 15 records.

If I chose flatten by multiuserfield1,multiuserfield2,multiuserfield3, with all the options chosen, the result would be 3 times 5 times 3, that makes 45 records.

The restriction could be double, i.e., max number of fields to be flatten by 3 and max number of flatten result records equals 100.

The posibilities would be endless.

In any case, I solved my problem in the way I told you in the former comment: by passing only one multifield with another field not multi to an intermediate form, by Copy Confiforms Data, and then triggering another IFTTT with another Copy Confiforms Data flattening by that only multifield with the event onCreated and then another onCreated that deletes the record created. You can do the same with up to three multifields in the intermediate form.

It's just a solution, but I think that if you could implement as I proposed you, that would be more elegant.

Thank you for your patience and support.

Kind regards.


author: Alex Medved _ConfiForms_
body: You can disable this limit on ConfiForms app settings, but you know the outcomes and issues you may have. Limiting this on a dev/user level does not work - as even today we have one open case where administrators have disabled the limits and the users started to abuse the option... without really thinking what are they doing

The outcome? Busy admins trying to put off the fire with huge indexing queues and hight CPU load

Alex


author: Sopaboba
body: That is why I don't want the admins to disable the limit. Anyway ... I will keep on doing it with the intermediate forms. That works really fine and solves my problem.

Thank you, Alex


Tags: cloud

confiforms

confluence-cloud