I am running into some problems while trying to implement push actions and I am
not sure that they are the appropriate way to accomplish my end goal so let me
describe what I'm trying to do first.
I have a dimension table that holds database cross references for various
databases. Each row in this table has the accession number and the database
name as columns. The main table is in a 1:M relationship with the dbxref_dm
table.
What I would like to do is setup a simple text field filter that queries a
subset of this data e.g. only GenBank accessions. What I'm trying not to do is
have a drop down list of database names and a text field for the accession.
I started out by making two filters, one a drop down list of database names and
the other a simple text input box that filters on the accession column of the
dbxref table. Then I tried to place a push action on the text input filter so
that when it is enabled, the database filter is automatically set to whatever
database name I want for the input box. For example, if I have a text box for
UniProt accessions it would set the database filter to UniProt when enabled. I
tried this both via the Mart Editor gui and straight XML (see below) and both
failed. Once this was working I was going to try to hide the database name
filter so end users only saw the UniProt input box in the MartView.
Any help is greatly appreciated.
Thanks,
Josh
<FilterGroup displayName="dbxref" internalName="dbxref">
<FilterCollection displayName="Database" internalName="db">
<FilterDescription displayName="Database" displayType="list"
field="db"
internalName="db_filter" key="id_key" legal_qualifiers="="
qualifier="=" style="menu"
tableConstraint="dbxref__dm" type="list">
<Option displayName="GenBank" internalName="GB"
isSelectable="true" value="GB" />
<Option displayName="UniProt" internalName="uniprot"
isSelectable="true" value="UniProt" />
</FilterDescription>
</FilterCollection>
<FilterCollection displayName="UniProt" internalName="uniprot_acc">
<FilterDescription displayName="UniProt" displayType="text"
field="accession"
internalName="accession_filter" key="id_key"
legal_qualifiers="=,like" qualifier="like"
tableConstraint="dbxref__dm" type="text">
<PushAction internalName="dbxref_db_push" ref="db_filter">
<Option displayName="UniProt" internalName="uniprot"
isSelectable="true" value="uniprot" />
</PushAction>
</FilterDescription>
</FilterCollection>
</FilterGroup>