How do parameters passed in Page Includes work

I have a simple test page with a model on the User object…
Model Name: User
Fields: Last_Name and Full_Name
Condition: Last_Name = pageParameter lname
The page has a table displaying both model fields
I run the page with the parameter lname set to my last name, and my data is displayed

I duplicate the page with a new name and name the model user2. The fields and condition are identical, as is the table. I run the page with the parameter lname set to Smith, and the table displays the names of the org’s Smith users.

Back to the first page, I add a Page Include to the second page and leave the Query String blank. I run the (first) page with parameter Dwyer, and both tables display my record.

I change the Query String to lname=Smith, save, run the page with parameter Dwyer, and my record still appears in both tables.

Shouldn’t the Page Include parameter win out in the second page? It does in V1.

All documentation I’ve found says or implies that the “included” parameter will override the original, if they differ. There is also a related Troubleshooting section that refers to the Network tab on Chrome’s developer tools. It refers to an “include” request for debugging the included parameters. I can locate these for a V1 equivalent page, and the “second” parameter is shown to be passed. The “include” request does NOT appear in the Network tab (XHR filter) for the V2 pages. What am I missing?

Any answers? Suggestions?

Hey Mike, are you running this test on the latest Skuid version? If yes, and the issue remains, we could take a look at the two simple test pages if you share the XML here. Thanks!

I think I’ve reproduced the issue. It may be a bug in our product. In the mean time I think you should not repeat use of parameter names. If the include is looking for a different parameter, it won’t get confused…

Rob -

On the first page where I encountered this, use of a variant parameter name is actually a better solution as it clarifies the parameter’s use in the included page. Other use cases may not work as well, but we’ll see. Knowing how skuid is intended to work will be helpful.

Luzie -
Here is my XML.

**Page Name MJD1**
> <skuid__page unsavedchangeswarning="yes" personalizationmode="server" showsidebar="true" showheader="true">
> 	<models>
> 		<model id="User" limit="20" query="true" createrowifnonefound="false" datasource="salesforce" sobject="User">
> 			<fields>
> 				<field id="Name"/>
> 				<field id="LastName"/>
> 			</fields>
> 			<conditions>
> 				<condition type="param" value="lname" field="LastName" operator="=" enclosevalueinquotes="true"/>
> 			</conditions>
> 			<actions/>
> 		</model>
> 	</models>
> 	<components>
> 		<skuid__table allowColumnFreezing="dragDrop" model="User" uniqueid="sk-3InP-14502" mode="read">
> 			<fields>
> 				<field id="Name"/>
> 				<field id="LastName"/>
> 			</fields>
> 			<filtering enableSearch="false"/>
> 			<actions/>
> 			<rowActions/>
> 			<massActions/>
> 			<exportProperties useTableColumns="true"/>
> 			<sorting enable="false"/>
> 		</skuid__table>
> 		<skuid__pageInclude includeType="skuid" uniqueid="sk-3Inj-17086" pageName="MJD2" queryString="lname=Smith"/>
> 	</components>
> 	<resources>
> 		<labels/>
> 		<javascript/>
> 		<css/>
> 		<actionsequences/>
> 	</resources>
> 	<styles>
> 		<styleitem type="background" bgtype="none"/>
> 	</styles>
> </skuid__page>

**Page Name MJD2**
> <skuid__page unsavedchangeswarning="yes" personalizationmode="server" showsidebar="true" showheader="true">
> 	<models>
> 		<model id="user2" limit="20" query="true" createrowifnonefound="false" datasource="salesforce" sobject="User">
> 			<fields>
> 				<field id="Name"/>
> 				<field id="LastName"/>
> 			</fields>
> 			<conditions>
> 				<condition type="param" value="lname" field="LastName" operator="=" enclosevalueinquotes="true"/>
> 			</conditions>
> 			<actions/>
> 		</model>
> 	</models>
> 	<components>
> 		<skuid__table allowColumnFreezing="dragDrop" uniqueid="sk-3Inr-10941" mode="read" model="user2">
> 			<fields>
> 				<field id="Name" uniqueid="fi-3IuY-11353"/>
> 				<field id="LastName" uniqueid="fi-3IuY-11354"/>
> 			</fields>
> 			<filtering enableSearch="false"/>
> 			<actions/>
> 			<rowActions/>
> 			<massActions/>
> 			<exportProperties useTableColumns="true"/>
> 			<sorting enable="false"/>
> 		</skuid__table>
> 	</components>
> 	<resources>
> 		<labels/>
> 		<javascript/>
> 		<css/>
> 		<actionsequences/>
> 	</resources>
> 	<styles>
> 		<styleitem type="background" bgtype="none"/>
> 	</styles>
> </skuid__page>

BTW, I tried analyzing the “parent” and “include” parameters on the chrome console using skuid.runtime.getPage(‘MJD2’).page._parametersByPage
and …page.params. I could see the parameter values but it wasn’t clear what was happening with them. I also use getPage().model.getModel.conditions to look at the effect of the parameter on the model that uses it. Other insights into use of the console here would be helpful.