LINKTOFILTEREDVIEW() versus Manual Deep Link - whats the difference here?

Based on another post by @Pointer, I was playing with creating a Filtered View using a Manual Deep Link.

I can create an action that navigates to my view like so:

LINKTOFILTEREDVIEW("Inventory", IN([Product Code], LIST(“100001”,“100002”, "100003")) )

And I get the expected filtered view:

2X_f_fff083b45791739647509e53115a931dfdeec890.png

However, when I attempt to create the same Deep Link manually (see below) I get ALL rows, not the filtered view - even though the Expression tester seems to imply the filter is working.

CONCATENATE("#view=Inventory&filter=", ENCODEURL(IN([Product Code], LIST(“100001”,“100002”, "100003"))))

What am i doing wrong?

Solved Solved
1 8 2,023
1 ACCEPTED SOLUTION

Ok, got it! This isn’t really supported for a manual Deep Link.

A Feature Request to auto-open QuickEdit from the “new” view navigation functions is the way to go.

Thanks!!

View solution in original post

8 REPLIES 8

Can you let me know why you’d prefer not to use the LinkToFilteredView function?

The original problem by another user was navigating to a filtered Table View AND automatically enter QuickEdit mode. While playing with the expression he found that the manual Deep Link was not filtering data.

So in attempts to help get the manual Deep Link to solve the original problem, I was trying to understand why it isn’t filtering the rows.

I guess an alternative question: "Is there a way to automatically open QuickEdit when using the LINKTOFILTEREDVIEW() function?


If we try this:

CONCATENATE("#view=Inventory&quickedit=true&filter=", ENCODEURL(IN([Product Code], LIST(“100001”,“100002”, “100003”))))

The Table opens in QuickEdit mode but displays ALL rows, not just the 3 expected rows

Try this:

CONCATENATE(
  "#view=Inventory&quickedit=true&filter=",
  ENCODEURL(
    'IN([Product Code], LIST(“100001”,“100002”, “100003”))'
  )
)

Sorry @Steve. No dice!!

Heh. I got around to looking at a URL generated by AppSheet itself for a filtered view. It’s not at all a trivial thing to reproduce. There’s a good reason LINKTOFILTEREDVIEW() exists!

This is the JSON-formatted URL-decoded filter for a filtered view in my example app:

{
    "ResultType": "Yes\/No",
    "EvalType": "FUNCTION",
    "FunctionName": "IN",
    "Children": [
        {
            "ResultType": "Ref",
            "ResultTypeQualifier": "{\r\n++\"ReferencedTableName\":+\"EXAMPLE\",\r\n++\"ReferencedType\":+\"Text\",\r\n++\"ReferencedTypeQualifier\":+\"{\\r\\n++\\\"MaxLength\\\":+null,\\r\\n++\\\"MinLength\\\":+null,\\r\\n++\\\"IsMulticolumnKey\\\":+false,\\r\\n++\\\"Valid_If\\\":+null,\\r\\n++\\\"Error_Message_If_Invalid\\\":+null,\\r\\n++\\\"Show_If\\\":+null,\\r\\n++\\\"Required_If\\\":+null,\\r\\n++\\\"Editable_If\\\":+\\\"=false\\\",\\r\\n++\\\"Reset_If\\\":+null,\\r\\n++\\\"Suggested_Values\\\":+null\\r\\n}\",\r\n++\"ReferencedKeyColumn\":+null,\r\n++\"IsAPartOf\":+false,\r\n++\"RelationshipName\":+null,\r\n++\"InputMode\":+\"Auto\",\r\n++\"Valid_If\":+null,\r\n++\"Error_Message_If_Invalid\":+null,\r\n++\"Show_If\":+null,\r\n++\"Required_If\":+null,\r\n++\"Editable_If\":+null,\r\n++\"Reset_If\":+null,\r\n++\"Suggested_Values\":+null\r\n}",
            "EvalType": "COLUMN",
            "ColName": "_THISROW",
            "IsPure": true,
            "ColumnsReferenced": []
        },
        {
            "ResultType": "List",
            "ResultTypeQualifier": {
                "ElementType": "Ref",
                "ElementTypeQualifier": "{\r\n++\"ReferencedTableName\":+\"EXAMPLE\",\r\n++\"ReferencedType\":+\"Text\",\r\n++\"ReferencedTypeQualifier\":+\"{\\r\\n++\\\"MaxLength\\\":+null,\\r\\n++\\\"MinLength\\\":+null,\\r\\n++\\\"IsMulticolumnKey\\\":+false,\\r\\n++\\\"Valid_If\\\":+null,\\r\\n++\\\"Error_Message_If_Invalid\\\":+null,\\r\\n++\\\"Show_If\\\":+null,\\r\\n++\\\"Required_If\\\":+null,\\r\\n++\\\"Editable_If\\\":+\\\"=false\\\",\\r\\n++\\\"Reset_If\\\":+null,\\r\\n++\\\"Suggested_Values\\\":+null\\r\\n}\",\r\n++\"ReferencedKeyColumn\":+null,\r\n++\"IsAPartOf\":+false,\r\n++\"RelationshipName\":+null,\r\n++\"InputMode\":+\"Auto\",\r\n++\"Valid_If\":+null,\r\n++\"Error_Message_If_Invalid\":+null,\r\n++\"Show_If\":+null,\r\n++\"Required_If\":+null,\r\n++\"Editable_If\":+null,\r\n++\"Reset_If\":+null,\r\n++\"Suggested_Values\":+null\r\n}",
                "ItemSeparator": "+,+",
                "Valid_If": null,
                "Error_Message_If_Invalid": null,
                "Show_If": null,
                "Required_If": null,
                "Editable_If": null,
                "Reset_If": null,
                "Suggested_Values": null
            },
            "EvalType": "CONSTANT",
            "ConstantValue": "jr0JV7Mc+,+WfrGyCpe+,+c7dffc63+,+B5fTFpqr+,+79c9e1d2+,+2e201d2a+,+JfgBZDel+,+++,+F1iZmmHa+,+0ea0d527+,+8zgFlOgp+,+63e92496+,+3586d94e+,+6321f71a+,+b1e21eba",
            "IsPure": true,
            "ColumnsReferenced": []
        }
    ],
    "IsPure": true,
    "ColumnsReferenced": []
}

Ok, got it! This isn’t really supported for a manual Deep Link.

A Feature Request to auto-open QuickEdit from the “new” view navigation functions is the way to go.

Thanks!!

TDhers
New Member

Hi John, please do make it a feature request…
Thierry

Hey all!!

@Steve came up with a suggestion to solve the original problem of being able to navigate to a Filtered Table View AND be able to open that resulting table in Quickedit mode.

Use a CONCATENATE expression like so:

CONCATENATE(
  LINKTOFILTEREDVIEW(
    "Inventory",
    IN([Product Code], LIST(“100001”,“100002”))
  ),
  "&quickedit=true"
)

The LINKTOFIKTEREDVIEW() will pre-process into its underlying URL with filter logic included and then the QuickEdit parameter will be tacked on.

It still would be nice to be able to add such additional parameters to the function and not have to use CONCATENATE, so I will continue with a Feature Request.

Kudos to @Steve!!

Top Labels in this Space