<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Question Re: Transformation Routine:Using Attribute Value from Characteristic in Technology Q&amp;A</title>
    <link>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470410#M639983</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI Jvb,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try this....lemme know it worked or not.&lt;/P&gt;&lt;P&gt;******************************************************&lt;/P&gt;&lt;P&gt;METHOD end_routine.&lt;/P&gt;&lt;P&gt;*=== Segments ===&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS:&lt;/P&gt;&lt;P&gt;&amp;lt;RESULT_FIELDS&amp;gt; TYPE &lt;U&gt;ty&lt;/U&gt;s_TG_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;MONITOR_REC TYPE rstmonitor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ begin of routine - insert your code only below this line &lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;... "insert your code here&lt;/P&gt;&lt;P&gt;*-- fill table "MONITOR" with values of structure "MONITOR_REC"&lt;/P&gt;&lt;P&gt;*- to make monitor entries&lt;/P&gt;&lt;P&gt;... "to cancel the update process&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;raise exception type CX_RSROUT_ABORT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF type3.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE /BIC/0IZCHPROMOT.&lt;/P&gt;&lt;P&gt;TYPES END OF type3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;ITAB3 TYPE STANDARD TABLE OF TYPE3&lt;/P&gt;&lt;P&gt;WITH HEADER LINE&lt;/P&gt;&lt;P&gt;WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM /BI0/PZCHRPROMOT INTO CORRESPONDING FIELDS OF TABLE ITAB3 WHERE OBJVERS = 'A'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT RESULT_PACKAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE ITAB3 WITH KEY /BIC/ZCHRPROMOT = RESULT_PACKAGE-/BIC/ZCHPROMOT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RESULT_PACKAGE-/BIC/ZKFDISPCT = ITAB3-/BIC/ZKFDISPCT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODIFY RESULT_PACKAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;*************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try this code.... it just bring value of attribute of ZCHRPROMOT (ZKFDISPCT) and put in the to ZKFDISPCT in the infocube.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if there are some Sytnax error ..contact your abap team. or me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Needless to say..if helped..assign points dude.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;San!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 31 Aug 2006 06:25:08 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-08-31T06:25:08Z</dc:date>
    <item>
      <title>Transformation Routine:Using Attribute Value from Characteristic</title>
      <link>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaq-p/1470401</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Xperts,&lt;/P&gt;&lt;P&gt;I have the following issue for which I'm looking for some help.&lt;/P&gt;&lt;P&gt;I have an infoobject PROMOTION. One of the attributes is DISCOUNT.&lt;/P&gt;&lt;P&gt;Transactional data passes through the promotionID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now when updating to the InfoCube I need to have access to the DISCOUNT (Master Data from PROMOTION) attribute in my transformation. I need this to compute NETPROFIT for example. It should be possible because I have the PROMOTIONID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Question: how can I access this attribute value in the transformation? &lt;/P&gt;&lt;P&gt;I need it in the startroutine, since I need to do calculations to compute other characteristics.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thx for the input!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ps I've read the SDN pdf about routines &amp;amp; transformations&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Aug 2006 09:26:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaq-p/1470401</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-30T09:26:09Z</dc:date>
    </item>
    <item>
      <title>Re: Transformation Routine:Using Attribute Value from Characteristic</title>
      <link>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470402#M639975</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;  you can access this from the P table of the InfoObject. You neeed to write an ABAP routine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Else if all others to calculate are available for reporting, then you can calculate netprofit in the reporting itself. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have some How to guide to calculate from key figures which are attributes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this gives you some clues.....&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Aug 2006 10:11:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470402#M639975</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-30T10:11:19Z</dc:date>
    </item>
    <item>
      <title>Re: Transformation Routine:Using Attribute Value from Characteristic</title>
      <link>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470403#M639976</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In characteristic definition, look the name of the table in wich master data is stored, then in infocube update rules read the table with ID to get discount attribute&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Aug 2006 10:12:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470403#M639976</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-30T10:12:57Z</dc:date>
    </item>
    <item>
      <title>Re: Transformation Routine:Using Attribute Value from Characteristic</title>
      <link>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470404#M639977</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sample code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES:  BEGIN OF type3.&lt;/P&gt;&lt;P&gt;      INCLUDE STRUCTURE /BI0/PPROMOTION.&lt;/P&gt;&lt;P&gt;TYPES END OF type3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  ITAB3 TYPE STANDARD TABLE OF TYPE3&lt;/P&gt;&lt;P&gt;       WITH HEADER LINE&lt;/P&gt;&lt;P&gt;              WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM /BI0/PPROMOTION INTO CORRESPONDING FIELDS OF TABLE ITAB3 WHERE OBJVERS = 'A'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT DATA_PACKAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          READ TABLE ITAB3 WITH KEY PROMOTION = DATA_PACKAGE-PROMOTION.&lt;/P&gt;&lt;P&gt;              IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                DATA_PACKAGE-NETPROFIT = DATA_PACKAGE-SALES-ITAB3-DISCOUNT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODIFY DATA_PACKAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With rgds,&lt;/P&gt;&lt;P&gt;Anil Kumar Sharma .P&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Aug 2006 10:18:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470404#M639977</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-30T10:18:08Z</dc:date>
    </item>
    <item>
      <title>Re: Transformation Routine:Using Attribute Value from Characteristic</title>
      <link>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470405#M639978</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think your reply is pretty usefull. However it is 3.5 oriented. In 7.0 the code should nbe somehow different.&lt;/P&gt;&lt;P&gt;Any ideas?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROGRAM trans_routine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS routine DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS routine DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPES:&lt;/P&gt;&lt;P&gt;      BEGIN OF &lt;U&gt;ty&lt;/U&gt;s_SC_1,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Field: /BIC/ZCHCUSTMR Customer.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZCHCUSTMR           TYPE C LENGTH 10,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Field: /BIC/ZCHPRODCT Product.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZCHPRODCT           TYPE C LENGTH 18,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Field: /BIC/ZCHSHOP Shop.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZCHSHOP           TYPE C LENGTH 10,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Field: /BIC/ZCHPROMOT Promotion.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZCHPROMOT           TYPE C LENGTH 4,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Field: /BIC/ZCHPAYMTH Payment Method.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZCHPAYMTH           TYPE C LENGTH 4,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Field: CALDAY Calendar Day.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALDAY           TYPE D,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Field: /BIC/ZKFQUANT Sales Quantity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZKFQUANT           TYPE P LENGTH 9 DECIMALS 3,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Field: UNIT Unit of Measure.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        UNIT           TYPE C LENGTH 3,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Field: CURRENCY Currency.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CURRENCY           TYPE C LENGTH 5,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Field: /BIC/ZKFPURPRC Purchase Price.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZKFPURPRC           TYPE P LENGTH 9 DECIMALS 2,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Field: /BIC/ZKFSALPRC Sales Price.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZKFSALPRC           TYPE P LENGTH 9 DECIMALS 2,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Field: RECORD Record Number.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        RECORD           TYPE RSARECORD,&lt;/P&gt;&lt;P&gt;      END   OF &lt;U&gt;ty&lt;/U&gt;s_SC_1.&lt;/P&gt;&lt;P&gt;    TYPES:&lt;/P&gt;&lt;P&gt;      &lt;U&gt;ty&lt;/U&gt;t_SC_1        TYPE STANDARD TABLE OF &lt;U&gt;ty&lt;/U&gt;s_SC_1&lt;/P&gt;&lt;P&gt;                        WITH NON-UNIQUE DEFAULT KEY.&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPE-POOLS: rsd, rstr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ begin of global - insert your declaration only below this line  &lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;... "insert your code here&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ end of global - insert your declaration only before this line   &lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;    METHODS&lt;/P&gt;&lt;P&gt;      start_routine&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          request                  type rsrequest&lt;/P&gt;&lt;P&gt;          datapackid               type rsdatapid&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          monitor                  type rstr_ty_t_monitors&lt;/P&gt;&lt;P&gt;        CHANGING&lt;/P&gt;&lt;P&gt;          SOURCE_PACKAGE              type &lt;U&gt;ty&lt;/U&gt;t_SC_1&lt;/P&gt;&lt;P&gt;        RAISING&lt;/P&gt;&lt;P&gt;          cx_rsrout_abort.&lt;/P&gt;&lt;P&gt;    METHODS&lt;/P&gt;&lt;P&gt;      inverse_start_routine&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          I_R_SELSET_OUTBOUND          TYPE REF TO CL_RSMDS_SET&lt;/P&gt;&lt;P&gt;          i_th_fields_outbound         type hashed table&lt;/P&gt;&lt;P&gt;          i_r_universe_inbound         TYPE REF TO CL_RSMDS_UNIVERSE&lt;/P&gt;&lt;P&gt;        CHANGING&lt;/P&gt;&lt;P&gt;          c_r_selset_inbound           TYPE REF TO CL_RSMDS_SET&lt;/P&gt;&lt;P&gt;          c_th_fields_inbound          type hashed table&lt;/P&gt;&lt;P&gt;          c_exact                      type rs_bool.&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "routine DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS routine IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS routine IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Method start_routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Calculation of source package via start routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  &amp;lt;-&amp;gt; source package&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD start_routine.&lt;/P&gt;&lt;P&gt;*=== Segments ===&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    FIELD-SYMBOLS:&lt;/P&gt;&lt;P&gt;      &amp;lt;SOURCE_FIELDS&amp;gt;    TYPE &lt;U&gt;ty&lt;/U&gt;s_SC_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DATA:&lt;/P&gt;&lt;P&gt;      MONITOR_REC     TYPE rstmonitor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*$*$ begin of routine - insert your code only below this line        *-*&lt;/P&gt;&lt;P&gt;... "insert your code here&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--  fill table "MONITOR" with values of structure "MONITOR_REC"&lt;/P&gt;&lt;P&gt;*-   to make monitor entries&lt;/P&gt;&lt;P&gt;... "to cancel the update process&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   raise exception type CX_RSROUT_ABORT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ end of routine - insert your code only before this line         &lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "start_routine&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Method inverse_start_routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      This subroutine needs to be implemented only for direct access&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      (for better performance) and for the Report/Report Interface&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      (drill through).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      The inverse routine should transform a projection and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      a selection for the target to a projection and a selection&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      for the source, respectively.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If the implementation remains empty all fields are filled and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      all values are selected.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD inverse_start_routine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ begin of inverse routine - insert your code only below this line&lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;... "insert your code here&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ end of inverse routine - insert your code only before this line &lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "inverse_start_routine&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "routine IMPLEMENTATION&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Aug 2006 10:30:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470405#M639978</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-30T10:30:02Z</dc:date>
    </item>
    <item>
      <title>Re: Transformation Routine:Using Attribute Value from Characteristic</title>
      <link>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470406#M639979</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I had never have worked with version 7.0, but i think method start_routine will be equevalent to start routine in 3.5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;With methods you can´t use internal tables with header line then, define a internal table without header line to store result of your select and define aone structure like your table to use it as header line in table operation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think you should read datapackid into the field symbols but i'm not sure at all.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Aug 2006 11:03:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470406#M639979</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-30T11:03:57Z</dc:date>
    </item>
    <item>
      <title>Re: Transformation Routine:Using Attribute Value from Characteristic</title>
      <link>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470407#M639980</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jvb,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Start routine is not gonna sovle your problem.&lt;/P&gt;&lt;P&gt;Check this code ...( can try)&lt;/P&gt;&lt;P&gt;**********************************************&lt;/P&gt;&lt;P&gt;METHOD start_routine.&lt;/P&gt;&lt;P&gt;*=== Segments ===&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS:&lt;/P&gt;&lt;P&gt;&amp;lt;SOURCE_FIELDS&amp;gt; TYPE &lt;U&gt;ty&lt;/U&gt;s_SC_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;MONITOR_REC TYPE rstmonitor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ begin of routine - insert your code only below this line &lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;... "insert your code here&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF type3.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE /BI0/ZCHPROMOT.&lt;/P&gt;&lt;P&gt;TYPES END OF type3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;ITAB3 TYPE STANDARD TABLE OF TYPE3&lt;/P&gt;&lt;P&gt;WITH HEADER LINE&lt;/P&gt;&lt;P&gt;WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM /BI0/ZCHPROMOT INTO CORRESPONDING FIELDS OF TABLE ITAB3 WHERE OBJVERS = 'A'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT SOURCE_PACKAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE ITAB3 WITH KEY PROMOTION = SOURCE_PACKAGE-/BI0/ZCHPROMOT.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;SOURCE_PACKAGE-NETPROFIT&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt; = SOURCE_PACKAGE-SALES-ITAB3-DISCOUNT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODIFY SOURCE_PACKAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***************************************&lt;/P&gt;&lt;P&gt;Y? bcoz SOURCE_PACKAGE contain field coming from Datasource..which doesnot contain...NETPROFIT.&lt;/P&gt;&lt;P&gt;See the bold code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Solution is ..wat i think...You have to write in END Routine.&lt;/P&gt;&lt;P&gt;Why? First reason you have NETPROFIT infooject in Standard Group(right panel in transformation) which is not mapped to anyone.&lt;/P&gt;&lt;P&gt;I am assuming that you have /BIC/ZCHPROMOT Promotion fromm datasource which is mapped to some 0pormotion in Standard group(right panel in transformation)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try this code in END routine.&lt;/P&gt;&lt;P&gt;****************************************&lt;/P&gt;&lt;P&gt;  METHOD end_routine.&lt;/P&gt;&lt;P&gt;*=== Segments ===&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    FIELD-SYMBOLS:&lt;/P&gt;&lt;P&gt;      &amp;lt;RESULT_FIELDS&amp;gt;    TYPE &lt;U&gt;ty&lt;/U&gt;s_TG_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DATA:&lt;/P&gt;&lt;P&gt;      MONITOR_REC     TYPE rstmonitor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ begin of routine - insert your code only below this line        &lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;... "insert your code here&lt;/P&gt;&lt;P&gt;*--  fill table "MONITOR" with values of structure "MONITOR_REC"&lt;/P&gt;&lt;P&gt;*-   to make monitor entries&lt;/P&gt;&lt;P&gt;... "to cancel the update process&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   raise exception type CX_RSROUT_ABORT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: BEGIN OF type3.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE &amp;lt;b&amp;gt;/BI0/oi0PORMOTION. ''see my assumption&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;TYPES END OF type3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;ITAB3 TYPE STANDARD TABLE OF TYPE3&lt;/P&gt;&lt;P&gt;WITH HEADER LINE&lt;/P&gt;&lt;P&gt;WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM /BI0/P0PROMOTION INTO CORRESPONDING FIELDS OF TABLE ITAB3 WHERE OBJVERS = 'A'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT RESULT_PACKAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE ITAB3 WITH KEY PROMOTION = RESULT_PACKAGE-/BI0/opromotion.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RESULT_PACKAGE-NETPROFIT = RESULT_PACKAGE-ITAB3-DISCOUNT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODIFY RESULT_PACKAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ end of routine - insert your code only before this line         &lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "end_routine&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "routine IMPLEMENTATION&lt;/P&gt;&lt;P&gt;************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope i m Clear.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;San!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: San!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Aug 2006 11:31:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470407#M639980</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-30T11:31:39Z</dc:date>
    </item>
    <item>
      <title>Re: Transformation Routine:Using Attribute Value from Characteristic</title>
      <link>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470408#M639981</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Why are you guys using a start routine, new concept in NW 04s is that the start routine is used for filtering.  Use an end routine to manipulate the table, i.e think of it like modifying the data_package 3.x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Works so much more better and using a DTP is quicker rather than taking the hit on the start routine in NW 04s.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Works for us.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers, &lt;/P&gt;&lt;P&gt;Sarah&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Aug 2006 11:38:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470408#M639981</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-30T11:38:52Z</dc:date>
    </item>
    <item>
      <title>Re: Transformation Routine:Using Attribute Value from Characteristic</title>
      <link>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470409#M639982</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;End Routine is the deal yeah.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What do I put in? I'm not a coding junkie (with all do respect &lt;SPAN __jive_emoticon_name="wink"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So all I need is the value of attribute of ZCHRPROMOT,ZKFDISPCT put in the IO ZKFDISPCT in the infocube.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For reference: the IO ZCHPROMOT:&lt;/P&gt;&lt;P&gt;/BIC/ZCHPROMOT	CHAR	4	Promotion&lt;/P&gt;&lt;P&gt;OBJVERS	CHAR	1	Object version&lt;/P&gt;&lt;P&gt;CHANGED	CHAR	1	Change flag ( I inserted / D deleted )&lt;/P&gt;&lt;P&gt;VALIDFROM	DATS	8	Valid From&lt;/P&gt;&lt;P&gt;VALIDTO	DATS	8	Valid To&lt;/P&gt;&lt;P&gt;/BIC/ZKFDISPCT	DEC	17	Discount Rate&lt;/P&gt;&lt;P&gt;/BIC/ZCHPROMTP	CHAR	4	Promotion Type&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROGRAM trans_routine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS routine DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS routine DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPES:&lt;/P&gt;&lt;P&gt;      BEGIN OF &lt;U&gt;ty&lt;/U&gt;s_TG_1,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: 0CHNGID Change Run ID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CHNGID           TYPE /BI0/OICHNGID,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: 0RECORDTP Record type.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        RECORDTP           TYPE /BI0/OIRECORDTP,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: 0REQUID Request ID.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        REQUID           TYPE /BI0/OIREQUID,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: ZKFPURPRC Purchase Price.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZKFPURPRC           TYPE /BIC/OIZKFPURPRC,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: ZKFSALPRC Sales Price.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZKFSALPRC           TYPE /BIC/OIZKFSALPRC,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: ZCHCUSTMR Customer.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZCHCUSTMR           TYPE /BIC/OIZCHCUSTMR,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: ZCHPRODCT Product.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZCHPRODCT           TYPE /BIC/OIZCHPRODCT,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: ZCHPROMOT Promotion.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZCHPROMOT           TYPE /BIC/OIZCHPROMOT,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: ZCHSHOP Shop.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZCHSHOP           TYPE /BIC/OIZCHSHOP,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: ZCHPAYMTH Payment Method.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZCHPAYMTH           TYPE /BIC/OIZCHPAYMTH,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: 0CALDAY Calendar Day.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALDAY           TYPE /BI0/OICALDAY,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: 0CALYEAR Calendar Year.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALYEAR           TYPE /BI0/OICALYEAR,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: 0CALMONTH Calendar Year/Month.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALMONTH           TYPE /BI0/OICALMONTH,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: ZKFQUANT Sales Quantity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZKFQUANT           TYPE /BIC/OIZKFQUANT,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: 0CALWEEK Calendar Year/Week.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CALWEEK           TYPE /BI0/OICALWEEK,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: 0CURRENCY Currency Key.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CURRENCY           TYPE /BI0/OICURRENCY,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: 0UNIT Unit of Measure.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        UNIT           TYPE /BI0/OIUNIT,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: ZKFGRSPRF Gross Profit.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZKFGRSPRF           TYPE /BIC/OIZKFGRSPRF,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: ZKFDISPCT Discount Rate.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZKFDISPCT           TYPE /BIC/OIZKFDISPCT,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: ZKFGRSSAL Gross Sales.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZKFGRSSAL           TYPE /BIC/OIZKFGRSSAL,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: ZKFNETPRF Net Profit.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZKFNETPRF           TYPE /BIC/OIZKFNETPRF,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     InfoObject: ZKFNETSAL Net Sales.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        /BIC/ZKFNETSAL           TYPE /BIC/OIZKFNETSAL,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Field: RECORD.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        RECORD           TYPE RSARECORD,&lt;/P&gt;&lt;P&gt;      END   OF &lt;U&gt;ty&lt;/U&gt;s_TG_1.&lt;/P&gt;&lt;P&gt;    TYPES:&lt;/P&gt;&lt;P&gt;      &lt;U&gt;ty&lt;/U&gt;t_TG_1        TYPE STANDARD TABLE OF &lt;U&gt;ty&lt;/U&gt;s_TG_1&lt;/P&gt;&lt;P&gt;                        WITH NON-UNIQUE DEFAULT KEY.&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    TYPE-POOLS: rsd, rstr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ begin of global - insert your declaration only below this line  &lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;... "insert your code here&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ end of global - insert your declaration only before this line   &lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;    METHODS&lt;/P&gt;&lt;P&gt;      end_routine&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          request                  type rsrequest&lt;/P&gt;&lt;P&gt;          datapackid               type rsdatapid&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          monitor                  type rstr_ty_t_monitors&lt;/P&gt;&lt;P&gt;        CHANGING&lt;/P&gt;&lt;P&gt;          RESULT_PACKAGE              type &lt;U&gt;ty&lt;/U&gt;t_TG_1&lt;/P&gt;&lt;P&gt;        RAISING&lt;/P&gt;&lt;P&gt;          cx_rsrout_abort.&lt;/P&gt;&lt;P&gt;    METHODS&lt;/P&gt;&lt;P&gt;      inverse_end_routine&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          I_R_SELSET_OUTBOUND          TYPE REF TO CL_RSMDS_SET&lt;/P&gt;&lt;P&gt;          i_th_fields_outbound         type hashed table&lt;/P&gt;&lt;P&gt;          i_r_universe_inbound         TYPE REF TO CL_RSMDS_UNIVERSE&lt;/P&gt;&lt;P&gt;        CHANGING&lt;/P&gt;&lt;P&gt;          c_r_selset_inbound           TYPE REF TO CL_RSMDS_SET&lt;/P&gt;&lt;P&gt;          c_th_fields_inbound          type hashed table&lt;/P&gt;&lt;P&gt;          c_exact                      type rs_bool.&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "routine DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS routine IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS routine IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Method end_routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Calculation of result package via end routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  &amp;lt;-&amp;gt; result package&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD end_routine.&lt;/P&gt;&lt;P&gt;*=== Segments ===&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    FIELD-SYMBOLS:&lt;/P&gt;&lt;P&gt;      &amp;lt;RESULT_FIELDS&amp;gt;    TYPE &lt;U&gt;ty&lt;/U&gt;s_TG_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DATA:&lt;/P&gt;&lt;P&gt;      MONITOR_REC     TYPE rstmonitor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*$*$ begin of routine - insert your code only below this line        *-*&lt;/P&gt;&lt;P&gt;... "insert your code here&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--  fill table "MONITOR" with values of structure "MONITOR_REC"&lt;/P&gt;&lt;P&gt;*-   to make monitor entries&lt;/P&gt;&lt;P&gt;... "to cancel the update process&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   raise exception type CX_RSROUT_ABORT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ end of routine - insert your code only before this line         &lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "end_routine&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Method inverse_end_routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      This subroutine needs to be implemented only for direct access&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      (for better performance) and for the Report/Report Interface&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      (drill through).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      The inverse routine should transform a projection and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      a selection for the target to a projection and a selection&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      for the source, respectively.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If the implementation remains empty all fields are filled and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      all values are selected.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD inverse_end_routine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ begin of inverse routine - insert your code only below this line&lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;... "insert your code here&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ end of inverse routine - insert your code only before this line &lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "inverse_end_routine&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "routine IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: JvB&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Aug 2006 12:00:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470409#M639982</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-30T12:00:31Z</dc:date>
    </item>
    <item>
      <title>Re: Transformation Routine:Using Attribute Value from Characteristic</title>
      <link>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470410#M639983</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI Jvb,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try this....lemme know it worked or not.&lt;/P&gt;&lt;P&gt;******************************************************&lt;/P&gt;&lt;P&gt;METHOD end_routine.&lt;/P&gt;&lt;P&gt;*=== Segments ===&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS:&lt;/P&gt;&lt;P&gt;&amp;lt;RESULT_FIELDS&amp;gt; TYPE &lt;U&gt;ty&lt;/U&gt;s_TG_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;MONITOR_REC TYPE rstmonitor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;$&lt;/STRONG&gt;$ begin of routine - insert your code only below this line &lt;STRONG&gt;-&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;... "insert your code here&lt;/P&gt;&lt;P&gt;*-- fill table "MONITOR" with values of structure "MONITOR_REC"&lt;/P&gt;&lt;P&gt;*- to make monitor entries&lt;/P&gt;&lt;P&gt;... "to cancel the update process&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;raise exception type CX_RSROUT_ABORT.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF type3.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE /BIC/0IZCHPROMOT.&lt;/P&gt;&lt;P&gt;TYPES END OF type3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;ITAB3 TYPE STANDARD TABLE OF TYPE3&lt;/P&gt;&lt;P&gt;WITH HEADER LINE&lt;/P&gt;&lt;P&gt;WITH NON-UNIQUE DEFAULT KEY INITIAL SIZE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT * FROM /BI0/PZCHRPROMOT INTO CORRESPONDING FIELDS OF TABLE ITAB3 WHERE OBJVERS = 'A'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT RESULT_PACKAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE ITAB3 WITH KEY /BIC/ZCHRPROMOT = RESULT_PACKAGE-/BIC/ZCHPROMOT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RESULT_PACKAGE-/BIC/ZKFDISPCT = ITAB3-/BIC/ZKFDISPCT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODIFY RESULT_PACKAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;*************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try this code.... it just bring value of attribute of ZCHRPROMOT (ZKFDISPCT) and put in the to ZKFDISPCT in the infocube.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if there are some Sytnax error ..contact your abap team. or me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Needless to say..if helped..assign points dude.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;San!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Aug 2006 06:25:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/technology-q-a/transformation-routine-using-attribute-value-from-characteristic/qaa-p/1470410#M639983</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-08-31T06:25:08Z</dc:date>
    </item>
  </channel>
</rss>

