DataPower 2 Searching
I searched for some records within my database, and now I can't get
my other records back.
The 'Subset' button hasn't appeared on the toolbox, so I can't seem
to turn it off.
What's happened here is that you've performed a search while in Edit
If you do this, DataPower creates a permanent query called "Join
for layoutname", and attaches the layout to that query.
This means that the layout shows the records that are returned by the
query, rather than those from the underlying table. The other records are
still there, but you won't be able to see them using that layout.
This behaviour is in contrast to what happens if you perform a search
in browse mode, where DataPower will normally just create a temporary query
on top of the table or query that the layout is attached to, and you can
toggle between this query and the base query by clicking on the "Subset"
If you've performed the search while in Edit Layout mode, however, the
subset button will not come on unless you perform another search while
in browse mode, and this search will only return records from within the
original search, as the base query will already have your original search
applied to it.
Why is this behaviour useful?
Well, it allows you to create layouts that only show certain records:
for example, you could have a layout showing overdue library books.
In a similar way, it also allows you to have different sort orders in
different layouts, since the sort order is just another aspect of a query.
OK, I see what you're saying. Now how do I get my records back?
If you want to revert to showing all the records from the underlying
table, you need to edit the layout, and then either choose Query/Table=>Attach
to=>TableName, or, if you don't want to keep your query, choose
Query/Table=>Search, then click on Delete in the toolbar to delete the
query, and click Cancel in the toolbox to return to edit layout mode. At
this point DataPower will realise that the underlying query has been deleted,
and will automatically re-attach the layout to the main table within that