Quantcast
Channel: SCN : Unanswered Discussions - SAP HANA and In-Memory Computing
Viewing all articles
Browse latest Browse all 4343

How to set filter value for a column in abap transformation

$
0
0

Hi,

 

I have an ABAP transformation of an attribute view.

Using this transformation, I am generating views from abap into Hana.

Now I want to add filters to table columns and for that I have added some more XML tags

 

                <columnFilter>
                    <valueFilter including="true">
                      <tt:namespace name="AccessControl"/>
                      <tt:attribute name="value" value-ref="$ref.filter"/>
                    </valueFilter>
                  </columnFilter>

 

The problem is that when I view this view in Hana studio, I see that filter is getting set but no value has been assigned to this filter.

Then I created a view manually and added the filter and value and exported the xml of this view.

I see there is a slight difference when i compare both the xmls. The difference is:

Manually created filter XML tag value filter looks like this:  <valueFilter xsi:type="AccessControl:SingleValueFilter" including="true" value="GRUN"/>

ABAP generated view XML tag value filter looks like this:  <valueFilter xsi:type="AccessControl:ValueFilter" including="true" value="GRUN"/>

I want to know how do I get "SingleValueFilter" in the namespace instead of "ValueFilter". Adding an extra attribute called type in value filter tag with value "AccessControl:SingleValueFilter" also doesn't work.

The complete XMl simple transformation is given below:

 

 

<?sap.transform simple?>

 

<tt:transform xmlns:tt="http://www.sap.com/transformation-templates" version="0.1">

  <tt:root name="S_DIM"/>
  <tt:root name="S_ATTR_KEY"/>
  <tt:root name="T_ATTR"/>
  <tt:root name="T_TABLE_PROXY"/>
  <tt:root name="T_JOIN"/>
  <tt:template>
    <Dimension:dimension xmlns:Dimension="http://www.sap.com/ndb/BiModelDimension.ecore" xmlns:AccessControl="http://www.sap.com/ndb/SQLCoreModelAccessControl.ecore" defaultClient="$$client$$" defaultLanguage="$$language$$" dimensionType="Standard"
schemaVersion="1.2" tt:ref=".S_DIM" visibility="internal">
      <tt:attribute name="id" value-ref="id"/>
      <descriptions>
        <tt:attribute name="defaultDescription" value-ref="description"/>
      </descriptions>
      <metadata tt:ref=".S_DIM">
        <tt:attribute name="activatedAt" value-ref="activatedAt"/>
        <tt:attribute name="changedAt" value-ref="changedAt"/>
        <tt:attribute name="createdAt" value-ref="createdAt"/>
      </metadata>
      <defaultSchmema/>
      <attributes>
        <attribute tt:ref=".S_ATTR_KEY">
          <tt:attribute name="id" value-ref="id"/>
          <tt:attribute name="key" value-ref="is_key"/>
          <descriptions>
            <tt:attribute name="defaultDescription" value-ref="text"/>
            <description>
              <tt:attribute name="language" value-ref="langu"/>
              <tt:attribute name="description" value-ref="text"/>
            </description>
          </descriptions>
          <searchProperties>
            <rankingWeight>
              <tt:value ref="rank"/>
            </rankingWeight>
            <freestyleSearch>
              <tt:value ref="freestyle"/>
            </freestyleSearch>
            <fuzzySearch>
              <tt:value ref="fuzzy"/>
            </fuzzySearch>
            <fuzzinessThreshold>
              <tt:value ref="fthresh"/>
            </fuzzinessThreshold>
          </searchProperties>
          <keyMapping>
            <tt:attribute name="schemaName" value-ref=".S_DIM.schema"/>
            <tt:attribute name="columnObjectName" value-ref="table"/>
            <tt:s-cond check="not-initial(table_alias)">
              <tt:attribute name="alias" value-ref="table_alias"/>
            </tt:s-cond>
            <tt:attribute name="columnName" value-ref="field"/>
          </keyMapping>
        </attribute>
        <tt:loop ref=".T_ATTR">
          <attribute tt:ref="$ref">
            <tt:attribute name="id" value-ref="id"/>
            <tt:attribute name="key" value-ref="is_key"/>
            <descriptions>
              <tt:attribute name="defaultDescription" value-ref="text"/>
              <description>
                <tt:attribute name="language" value-ref="langu"/>
                <tt:attribute name="description" value-ref="text"/>
              </description>
            </descriptions>
            <searchProperties>
              <rankingWeight>
                <tt:value ref="rank"/>
              </rankingWeight>
              <freestyleSearch>
                <tt:value ref="freestyle"/>
              </freestyleSearch>
              <fuzzySearch>
                <tt:value ref="fuzzy"/>
              </fuzzySearch>
              <fuzzinessThreshold>
                <tt:value ref="fthresh"/>
              </fuzzinessThreshold>
            </searchProperties>
            <keyMapping>
              <tt:attribute name="schemaName" value-ref=".S_DIM.schema"/>
              <tt:attribute name="columnObjectName" value-ref="table"/>
              <tt:s-cond check="not-initial(table_alias)">
                <tt:attribute name="alias" value-ref="table_alias"/>
              </tt:s-cond>
              <tt:attribute name="columnName" value-ref="field"/>
            </keyMapping>
          </attribute>
        </tt:loop>
      </attributes>
      <calculatedAttributes/>
      <privateDataFoundation>
        <tableProxies>
          <tt:loop ref=".T_TABLE_PROXY">
            <tableProxy>
              <table>
                <tt:attribute name="schemaName" value-ref=".S_DIM.schema"/>
                <tt:attribute name="columnObjectName" value-ref="$ref.table"/>
                <tt:s-cond check="not-initial($ref.alias)">
                  <tt:attribute name="alias" value-ref="$ref.alias"/>
                </tt:s-cond>
              </table>
              <tt:loop ref="$ref.T_FILTER">
                <tt:s-cond check="not-initial($ref.filter)">
                  <columnFilter>
                    <tt:attribute name="columnName" value-ref="$ref.field"/>
                    <tt:s-cond check="not-initial($ref.operator)">
                      <valueFilter including="false" value="X">
                        <tt:namespace name="AccessControl"/>
                      </valueFilter>
                    </tt:s-cond>
                    <valueFilter including="true">
                      <tt:namespace name="AccessControl"/>
                      <tt:attribute name="value" value-ref="$ref.filter"/>
                    </valueFilter>
                  </columnFilter>
                </tt:s-cond>
              </tt:loop>
            </tableProxy>
          </tt:loop>
        </tableProxies>
        <joins>
          <tt:loop ref=".T_JOIN">
            <join>
              <leftTable>
                <tt:attribute name="schemaName" value-ref=".S_DIM.schema"/>
                <tt:attribute name="columnObjectName" value-ref="$ref.left_table"/>
                <tt:s-cond check="not-initial($ref.left_table_alias)">
                  <tt:attribute name="alias" value-ref="$ref.left_table_alias"/>
                </tt:s-cond>
              </leftTable>
              <rightTable>
                <tt:attribute name="schemaName" value-ref=".S_DIM.schema"/>
                <tt:attribute name="columnObjectName" value-ref="$ref.right_table"/>
                <tt:s-cond check="not-initial($ref.right_table_alias)">
                  <tt:attribute name="alias" value-ref="$ref.right_table_alias"/>
                </tt:s-cond>
              </rightTable>
              <leftColumns>
                <tt:loop ref="$ref.T_COL">
                  <columnName>
                    <tt:value ref="left_field"/>
                  </columnName>
                </tt:loop>
              </leftColumns>
              <rightColumns>
                <tt:loop ref="$ref.T_COL">
                  <columnName>
                    <tt:value ref="right_field"/>
                  </columnName>
                </tt:loop>
              </rightColumns>
              <properties>
                <tt:attribute name="cardinality" value-ref="$ref.cardinality"/>
                <tt:attribute name="joinOperator" value-ref="$ref.joinOperator"/>
                <tt:attribute name="joinType" value-ref="$ref.joinType"/>
              </properties>
            </join>
          </tt:loop>
        </joins>
      </privateDataFoundation>
      <hierarchies/>
    </Dimension:dimension>
  </tt:template>
</tt:transform>

 

Has anybody come across this issue?

Could you please guide.

 

Kind Regards,

Priyanka


Viewing all articles
Browse latest Browse all 4343

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>