u/LarryWinters69

Update a Table() collection with values from another collection?

Problem:
I have a collection that is a table with values:

ClearCollect(
    colFieldTemplate,
    Table(
        {FIELD_ID: 1, FIELD_SLOT:"REF_STR1", FIELD_TYPE:"STRING", FIELD_LABEL:"", ENABLE:false, MANDATORY_FLG: false},
        {FIELD_ID: 2, FIELD_SLOT:"REF_STR2", FIELD_TYPE:"STRING", FIELD_LABEL:"", ENABLE:false, MANDATORY_FLG: false},
        {FIELD_ID: 3, FIELD_SLOT:"REF_STR3", FIELD_TYPE:"STRING", FIELD_LABEL:"", ENABLE:false, MANDATORY_FLG: false},
        {FIELD_ID: 4, FIELD_SLOT:"REF_STR4", FIELD_TYPE:"STRING", FIELD_LABEL:"", ENABLE:false, MANDATORY_FLG: false}
    )
);

I then have a SQL table with some data:

INPUT_ID FIELD_ID FIELD_SLOT FIELD_TYPE FIELD_LABEL
1 1 REF_STR1 STRING TEST
1 2 REF_STR2 STRING TEST2
1 3 REF_STR3 STRING TEST3

Now, on a button press, I want to update my colFieldTemplate with data from my SQL table - especially "FIELD_LABEL".

ClearCollect(
    colInputSetup,
    Filter(
        MyTable,
        INPUT_ID = Value(drp_setup_input.Selected.INPUT_ID)
    )
);

ForAll(
    colInputSetup,
    Patch(
        colFieldTemplate,
        LookUp(
            colFieldTemplate,
            FIELD_SLOT = ThisRecord.FIELD_SLOT
        ),
        {
            ENABLE: true,
            FIELD_LABEL: ThisRecord.FIELD_LABEL
        }
    )
)

When doing this, the LAST SQL record (FIELD_ID = 3, TEST3) is set as FIELD_ID = 1 in my gallery. It always seems to grab the last record and put that in FIELD_ID = 1, regardless. Nothing else is updated. Why is only one template record (the first one) being updated (with the last SQL item) - but not the rest?

How can I, in the most efficient way possible, update an existing table() collection with some new values from a SQL query?

reddit.com
u/LarryWinters69 — 4 days ago