Sei sulla pagina 1di 22

1.

Transformation
Use
The transformation process allows you to consolidate, cleanse, and integrate data. You can semantically synchronize data from heterogeneous sources. When you load data from one BI object into a further BI object, the data is passed through a transformation. A transformation converts the fields of the source into the format of the target.

Features
You create a transformation between a source and a target. The BI objects DataSource, InfoSource, DataStore object, InfoCube, InfoObject and InfoSet serve as source objects. The BI objects InfoSource, InfoObject, DataStore object and InfoCube serve as target objects. The following figure illustrates how the transformation is integrated in the dataflow:

A transformation consists of at least one transformation rule. Various rule types, transformation types, and routine types are available. These allow you to create very simple to highly complex transformations: Transformation rules: Transformation rules map any number of source fields to at least one target field. You can use different rules types for this. Rule type: A rule type is a specific operation that is applied to the relevant fields using a transformation rule. For more information, see Rule Type.

Transformation type: The transformation type determines how data is written into the fields of the target. For more information, see Aggregation Type. Rule group: A rule group is a group of transformation rules. Rule groups allow you to combine various rules. For more information, see Rule Group. Routine: You use routines to implement complex transformation rules yourself. Routines are available as a rule type. There are also routine types that you can use to implement additional transformations. For more information, see Routines in the Transformation.

1.1. Rule Type


Use
The rule type determines whether and how a characteristic or key figure, or a data field or key field is updated into the target.

Features
The following options are available: Direct Assignment: The field is filled directly from the selected source InfoObject. If the system does not propose a source InfoObject, you can assign a source InfoObject of the same type (amount, number, integer, quantity, float, time) or you can create a routine. If you assign a source InfoObject to a target InfoObject that has the same type but a different currency, you have to translate the source currency into the target currency using a currency translation, or apply the source currency. If you assign a source InfoObject to a target InfoObject that has the same type but a different unit of measure, you have to convert the source unit of measure into the target unit of measure using a unit of measure conversion, or apply the unit of measure from the source. Constant: The field is not filled by the InfoObject; it is filled directly with the value specified.

Formula: The InfoObject is updated with a value determined using a formula. For more information, see Transformation Library and Formula Builder

1.1.1 The Transformation Library and Formula Builder


Use
A transformation library is available in the maintenance for transformation rules (and in the update rules). You can use this in connection with the formula builder.

Do not use formulas for VirtualProviders because inversion is not allowed for them. Use routines in this case.

Features
The transformation library, in collaboration with the formula builder, enables you to easily create formulas, without using ABAP coding. The transformation library has over 70 pre-defined functions, in the following categories: y y y y y y Functions for character strings Date functions Basic functions Mathematical functions Suitable functions Miscellaneous functions to get a

In the dialog box to select an update method, you can use the information pushbutton list of the available functions with a description of their syntax.

You also have the option to implement self-defined functions in the transformation library of the formula builder. You can integrate existing function modules in these self-defined functions. In doing so, you can also make available special functions to be used frequently that are not

contained in the transformation library. Refer to BAdI: Customer-defined Functions in the Formula Builder. The formula builder has two modes: Standard and expert mode. In the standard mode, you can only enter the formulas using the pushbuttons and by double clicking on functions and fields. In the expert mode, however, you can enter formulas directly. You can also toggle between the tow modes when entering a formula. You can find more detailed operating instructions for the formula builder by means of the information button . You can find a step-by-step guide using an example under Example for Using the Formula Builder.

Read Master Data: The InfoObject is updated by reading the master data table of a characteristic that is included in the source with a key and a value and that contains the corresponding InfoObject as an attribute. The attributes and their values are read using the key and are then returned.

The Financial Management Area characteristic is included in the target but does not exist in the source as a characteristic. However, the source contains a characteristic (cost center, for example) that has the Financial Management Area characteristic as an attribute. You can read the Financial Management Area attribute from the master data table and use it to fill the Financial Management Area characteristic in the target.

It is not possible to read recursively, that is, to read additional attributes for the attribute. To do this, you have to use routines. If you have changed master data, you have to execute the change run. By reading the master data, the active version is read. If this is not available, an error occurs.
If the attribute is time dependent, you also have to define when it should be read: at the current date (sydate), at the beginning or end of a period (defined by a time characteristic in the InfoSource), or at a constant date that you enter directly. Sy-date is used as the default. Routine: The field is filled by the transformation routine you have written.

For DataStore objects and InfoObjects: you cannot use the return code in the routine for data fields that are updated by being overwritten. If you do not want to update specific records, you can delete these from the start routine.
If, for the same characteristic, you generate different rules for different key figures or data fields, a separate data record can be created for each key figure from a data record of the source. With InfoCubes: You can also select Routine with Unit. The return parameter 'UNIT' is then also added to the routine. You can store the required unit of the key figure, such as 'ST', in this parameter. You can use this option, for example, to convert the unit KG in the source, into tons in the target. If you fill the target key figure from a transformation routine, currency translation has to be performed using the transformation routine. This means that automatic calculation is not possible. Time Update: When performing a time update, automatic time conversion and time distribution are available. Direct Update: the system automatically performs a time conversion. Time Conversion: You can update source time characteristics to target time characteristics using automatic time conversion. This function is not available for DataStore objects, since time characteristics are treated as normal data fields. The system only displays the time characteristics for which an automatic time conversion routine exists. Time Distribution: You can update time characteristics with time distribution. All the key figures that can be added are split into correspondingly smaller units of time. If the source contains a time characteristic (such as 0CALMONTH) that is not as precise as a time characteristic of the target (such as 0CALWEEK), you can combine these characteristics with one another in the rule. The system then performs time distribution in the transformation.

For example, you break down the calendar month 07.2001 into the weeks 26.2001, 27.2001, 28.2001, 29.2001, 30.2001 and 31.2001. Each key figure that can be added receives 1/31 of the

original value for week 26.2001, 7/31 for each of weeks 27, 28, 29, and 30, and exactly 2/31 of it for week 31. The example is clearer if you compare it with the following calendar:

The time distribution is always applied to all key figures. Initial: The field is not filled. It remains empty. No Transformation: The key figures are not written to the InfoProvider. Unit of Measure Conversion and Currency Translation You can convert data records into the unit of measure or currency in the target transformation. For more information, see:

Currency Translation During Transformation Quantity Conversion During the Transformation

Currency Translation During Transformation


Use
Currency translation during the transformation enables you to convert data records from the source currency into a currency of the target of the transformation. Currency translation in the transformation is generally performed using previously defined translation types. For more information, see Currency Translation Types. Where required, you can perform currency translation with user-defined subprograms (formulas and routines). It is not currently possible to execute currency translation for DataStore objects using predefined translation types. You have to use routines instead. Depending on the type of currency, there are two different types of key figures: 1. 1. ...

1. Key figures with a fixed currency (for example, DEM, USD)

With a fixed currency, the currency is fixed for the amount. The key figure refers specifically to the currency (for example DM, US$), so the currency does not have to be entered again in the data record.
2. 2. Key figures with a variable currency (for example, foreign currency).

With a variable currency, the currency is determined by an InfoObject, (ODOC_CURRCY) for example.
For more information, see Creating InfoObjects: Key Figures.

Features
Transformations can be performed for key figures in two ways: 2. 3. 4. ...

1. Every key figure in an InfoCube (target key figure) has a corresponding key figure in the source (source key figure). No currency translation takes place. 2. There is no corresponding source key figure in the InfoSource for the target key figure in the InfoCube. a. You can assign a source key figure of the same type to the target key figure (sales revenue instead of sales quantity revenue, for example).

1.

y y

 If the currencies of both of the key figures are the same, no currency translation can take place.  If the currencies are different, a translation can take place either using a currency translation type or by simply assigning a currency.

The following table provides an overview of possible combinations where the currency is not the same in the source and target key figures: Source key figure currency Target key figure currency Currency translation (CT)

fixed fixed variable variable

variable fixed fixed variable

No CT CT CT CT or assignment possible

2.

b. If there is no corresponding source key figure of the same type, you have to fill the key figure of the target using a routine. y y  If the currency of the target key figure is fixed, currency translation is not performed. This means that if translation is required, you have to execute it in a routine.  If the currency of the target key figure is variable, you also have to assign a variable source currency to the routine. You can use input help to select a currency from the variable currencies that exist for the target. You have two options: y y y You can select a variable currency and assign it. y You can select a currency translation type and a currency into which you wish to translate ( to currency).

By default, the to currency is the target currency if it is included in the target. Creating a routine for currency translation: If you want to translate currencies during the transformation but currency translation is not available for one of the reasons stated above, you can create a routine. In transformation rule definition, choose Routine with Unit. You get an additional return parameter UNIT in the routine editor and the target currency is determined using the value of this parameter. For more information, see Routines in Transformations.

Currency Translation in the Update

Use
Currency translation in the update allows you to translate data records from the source currency of the InfoSource into a target currency in the data target. This function is only available if key figures with currency fields exist in the source system in various currencies. Currency translation is not available if the currency of the data records to be transferred is the same as the currency of the target key figure in the InfoCube. Currency translation in the update is normally performed using previously defined translation types. See also Currency Translation Types It can take place using user-defined subprograms (formulas and routines), if necessary. For ODS objects it is currently not possible to execute the currency translation by using predefined translation types. You have to use routines instead. Depending on the type of currency, there are two different types of key figures: 3. 5. ...

1. Key figures with a fixed currency (for example, DEM, USD)

With a fixed currency, the currency is fixed for the amount. The key figure refers specifically to the currency (for example DM, US$), so the currency does not have to be entered again in the data record.
6. 2. Key figures with a variable currency (for example, foreign currency).

A variable currency refers to an InfoObject (for example, ODOC_CURRCY).


See also: Creating InfoObjects: Key Figures

Features
With the update of key figures, there are two basic different cases: 4. 7. 8. ...

1. For every key figure of an InfoCube (target key figure) there is a corresponding key figure in the InfoSource (source key figure). No currency translation takes place. 2. There is no corresponding source key figure in the InfoSource for the target key figure of the InfoCube.

1. 3.

...

a. A source key figure of the same type can be assigned to the target key figure (for example, sales revenue instead of sales quantity revenue). y y  If the currencies of both of the key figures are the same, no currency translation can take place.  If the currencies are different, a translation can take place either using a currency translation type or by simply assigning a currency.

The following table provides an overview of possible combinations with different currencies in the source and target key figures:

Source key figure currency fixed fixed variable variable

Target key figure currency variable fixed fixed variable

Currency translation (CT) No CT CT CT CT or assignment possible

4.

b. If there is no corresponding source key figure of the same type, then you have to fill the key figure for the data target from a routine. y y  If the target key figure has a fixed currency, no currency translation is carried out. This means that if translation is required, you have to execute it in the routine.  If the target key figure has a variable currency, you also have to assign a variable source currency to the routine. Using the F4 help you can select a currency from the variable currencies in the communication structure. You have two options: You can select a variable currency and assign it. You select a currency translation type and a currency into which you wish to translate ( To currency). The To currency is, by default, the target currency if it is included in the communication structure. Creating a Routine for Currency Translation:

If you want to translate currencies in the update even though the currency translation is not available for one of the above reasons, you can create a routine. Choose Routine, set the

Unit Calculation in the Routine and choose Create Routine. In the routine editor you get the additional return parameter UNIT, the value of which is used to determine the target currency. Currency Translation Type
Definition
A translation type is a combination of different parameters that establish how the exchange rate for the translation is determined.

Structure
The parameters that determine the exchange rate are the source and target currencies, exchange rate type and the time reference for the translation.

To define a translation type you have to define the exchange rate type, the time reference, and how and when the inverse exchange rate is used. Entering the target currency is optional.

Exchange rate type: The exchange rate type distinguishes between exchange rates that are valid in the same time frame, for example, the bid rate, ask rate or middle rate. The exchange rate types are stored in a central table (TCURV) and can by maintained in Customizing using BI

Customizing Implementation Guide p General Settings p Currencies p Check Currency Types. Alternatively you can specify any variable that exists for InfoObject 0RTYPE. Inverse exchange rate: You can choose whether the inverse exchange rate is to be used for the translation type. If you choose translation with the inverse exchange rate, then the reverse exchange rate is used in the relevant translation from one currency to another. Translation using the inverse exchange rate is useful, for example, when values from the original documents have been translated before being saved in the data targets and you want to restore the original values.

You have maintained the following exchange rates: EUR p USD 0.940 USD p EUR 1.070 When translating from USD to EUR using the inverse exchange rate, a rate of 1/0.940 = 1.064 is used and not a rate of 1.070. Source currency: The source currency is the currency that is to be translated. You have the following options:
y y The source currency is determined dynamically using the data record. This is always the case when you perform currency translation in the Business Explorer. The source currency is determined dynamically using a specified InfoObject (characteristic). During the data load process, the source currency can be determined either using the data record or a specified characteristic bearing master data (see example: Defining Target Currencies Using InfoObjects. Determining the source currency using an InfoObject is performed in the same way). You can use a fixed source currency in planning functions. Data records with the same currency key as the source currency are translated. You can specify any variable that exists for InfoObject 0CURRENCY. You can also use these options in planning functions.

y y

Target currency: To determine the target currency, you have the following options:
2. y ...

You can establish that the target currency be determined upon translation. In the Query Designer under the properties for the relevant key figure, you specify either a fixed target currency or a variable to determine the target currency. You can enter a fixed target currency (for example, EUR ).

y y

You can specify any variable that exists for InfoObject 0CURRENCY. In the currency translation type, you can specify an InfoObject which is used to determine the target currency upon translation. In characteristic maintenance on the Tab Page: Business Explorer, you have to determine a currency attribute. For more information, see the example under Defining Target Currencies Using InfoObjects. If the Only Use in Transformation indicator is set, you can also enter InfoObjects that do not have a currency attribute set in InfoObject maintenance. InfoObjects that are entered here have to be available in the source and contain a currency as an attribute. You can specify an InfoSet: This is only necessary if you are determining the target currency using an InfoObject that exists in the InfoSet more than once. You enter the field alias so that the InfoObject can be specified uniquely.

Time reference: The time reference for the currency translation can be either fixed or variable. If the time reference is fixed, the time at which the exchange rate is determined is independent of the data. You have the following options:
y y y y y You can establish that the time reference be determined upon translation. You can select the current date. You can specify a fixed date as the key date. You can specify any variable that exists for InfoObject 0DATE. You can establish that the query key date be used. This is determined in the query settings.

If the time reference is variable, the time at which the exchange rate is determined is decided by a time characteristic value.
y A variable time reference can, for example, be determined using the end or start of a fiscal year or calendar year, a period and a month or even to the exact day. The following standard time characteristics are available: 0FISCYEAR, 0FISCPER, 0CALYEAR, 0CALQUARTER, 0CALMONTH, 0CALWEEK and 0CALDAY. The time reference can also be determined using a customer-specific InfoObject of type date (for example, trading day). Note that this InfoObject has to have the same properties as the standard InfoObject selected in the variable time reference or must reference it. You can specify an InfoSet: This is only necessary if you are determining the target currency using an InfoObject that exists in the InfoSet more than once. You enter the field alias so that the InfoObject can be specified uniquely.

In the Business Explorer, you can only set time variable currency translations in query definition, and not for an executed query. See also Setting Variable Target Currency in the Query Designer.

y y

In the Time Adjustment field of type INT4, you can specify whole numbers with a +/- sign. In the Time Adjustment from Variable field, you can specify formula variables (1FORMULA). As these values of the variables may have to be whole numbers, they are rounded to whole numbers (integers) where necessary. The time adjustment (regardless of whether it is fixed or variable) is always related to the InfoObject specified under Variable Time Reference.

Example of a time adjustment of -3: The variable time reference is To the exact day and the InfoObject under Variable Time Reference is 0CALDAY. Instead of 07.11.2006, after the time adjustment, 04.11.2006 is used for the translation. The variable time reference is End of Week and the InfoObject under Variable Time Reference is 0CALWEEK. Instead of 52.2004, the week 49.2004 is calculated and the end date is calculated from this.

Defining Target Currencies Using InfoObjects


If you want to determine the target currency for currency translation using an InfoObject, proceed as follows: 5. 9. ...

10. 11. 12.

1. You need a characteristic that can be defined as an attribute for this InfoObject. This characteristic, for example 0CURRENCY, must contain valid currency units and the corresponding exchange rates have to be maintained. 2. In characteristic maintenance, set the currency attribute for the InfoObject which you are using to determine the target currency. 3. Define a currency translation type in which the target currency will be determined using this InfoObject. 4. In the transformation rules for your InfoCube, specify that the values for the corresponding key figures are to be translated in the transformation and enter the previously defined translation type.

or Use the currency translation type for currency translation in BEx.

Example
You want to load data from a CSV file and update it into an InfoCube. The InfoCube has two key figures (kyf1 and kyf2) of type Amount with different unit InfoObjects. CSV file extract:

Z_COUNTRY
D CH

kyf1 1 2

kyf_unit1 USD USD

In the update rules, specify that kyf1 be updated to the InfoCube without changes. kyf2 is filled from the source key figure kyf1 and currency translation is performed with currency translation type WUA01. In WUA01 you have specified that the source currency be determined from the data record and that InfoObject Z_COUNTRY be used to determine the target currency. In InfoObject maintenance on the Business Explorer tab page you have determined a currency attribute for InfoObject Z_COUNTRY 0CURRENCY, for example. See also Tab Page: Business Explorer For the kyf2 key figure of the InfoCube to be updated with a currency translation, Z_COUNTRY has to contain the attributes D and CH . Furthermore, 0CURRENCY has to contain valid currency units and corresponding exchange rates have to have been maintained. Result: Characteristic bearing master data, Z_COUNTRY: y Characteristic: Z_COUNTRY D CH ... y Currency Attribute: 0CURRENCY EUR CHF ... y

y y y

y y y

y y y

... ... ...

In the transformation rules, 1 USD was translated into EUR and 2 USD into CHF.

Routines in Transformations
Use

You use routines to define complex transformation rules. Routines are local ABAP classes that consist of a predefined definition area and an implementation area. The TYPES for the inbound and outbound parameters and the signature of the routine (ABAP method) are stored in the definition area. The actual routine is created in the implementation area. ABAP object statements are available in the coding of the routine. Upon generation, the coding is embedded in the local class of the transformation program as the method. The following graphic shows the position of these routines in the data flow:

Features
The routine has a global part and a local part. In the global part you define global data declarations 'CLASS DATA'. These are available in all routines. You can create function modules, methods or external subprograms in the ABAP Workbench if you want to reuse source code in routines. You can call these in the local part of the routine. If you want to transport a routine that includes calls of this type, the routine and the object called should be included in the same transport request. Transformations include different types of routine: Start routines, routines for key figures or characteristics, end routines and expert routines. The following figure shows the structure of the transformation program with transformation rules, start routine and end routine:

The following figure shows the structure of the transformation program with expert routine:

Start Routine The start routine is run for each data package at the start of the transformation. The start routine has a table in the format of the source structure as input and output parameters. It is used to perform preliminary calculations and store these in a global data structure or in a table. This structure or table can be accessed from other routines. You can modify or delete data in the data package.

Routine for Key Figures or Characteristics This routine is available as a rule type; you can define the routine as a transformation rule for a key figure or a characteristic. The input and output values depend on the selected field in the transformation rule. More information: the Routine section under Rule Type. End Routine An end routine is a routine with a table in the target structure format as input and output parameters. You can use an end routine to postprocess data after transformation on a package-by-package basis. For example, you can delete records that are not to be updated, or perform data checks.

If the target of the transformation is a DataStore object, key figures are updated by default with the aggregation behavior Overwrite (MOVE). You have to use a dummy rule to override this.
Expert Routine This type of routine is only intended for use in special cases. You can use the expert routine if there are not sufficient functions to perform a transformation. The expert routine should be used as an interim solution until the necessary functions are available in the standard routine. You can use this to program the transformation yourself without using the available rule types. You must implement the message transfer to the monitor yourself. If you have already created transformation rules, the system deletes them once you have created an expert routine.

If the target of the transformation is a DataStore object, key figures are updated by default with the aggregation behavior Overwrite (MOVE).
More Information: Example: Start Routine Example: Characteristic Routines Example: End Routine

Example: Start Routine

In the SAP ERP system, you are loading data using the General Ledger: Transaction Figures DataSource (FI_GL_1) into the DataStore object FIGL: Transaction Figures (0FIGL_O06). You want to create a start routine that deletes all the records from a data package that have debit and credit postings that are equal to zero. 6. 13. ...

14. 15.

1. Create a transformation. The source of the transformation has the Total Debit Postings (UMSOL) and Total Credit Postings (UMHAB) fields. They are assigned to the InfoObjects Total Debit Postings (0DEBIT) and Total Credit Postings (0CREDIT). 2. Choose Create Start Routine. The routine editor opens. 3. You go to the local part of the routine. You enter the following lines of code:

*----------------------------------------------------------------------* METHOD start_routine. *=== Segments === FIELD-SYMBOLS: <SOURCE_FIELDS>

TYPE _ty_s_SC_1. *-*

*$*$ begin of routine - insert your code only below this line

DELETE SOURCE_PACKAGE where UMHAB = 0 and UMSOL = 0 *$*$ end of routine - insert your code only before this line ENDMETHOD. "start_routine *----------------------------------------------------------------------* *-*

The delete statement is the only line you require in order to filter debit and credit postings without values out of the data package.
16. 17. 4. You exit the routine editor. 5. You save the transformation. An edit icon routine is available.

next to the Start Routine indicates that a start

Example: Characteristic Routine


In the SAP ERP system, you are loading data using the General Ledger: Transaction Figures DataSource (0FI_GL_1) into the DataStore object FIGL: Transaction Figures(0FIGL_O06).

You want to create a routine for the characteristic Debit/Credit Indicator (0FI_DBCRIND) in the target that assigns the value D to debit postings and the value C to credit postings. 18. 19. 20. 21. 1. You are in transformation maintenance. In the rule group, you double click on InfoObject Debit/Credit Indicator (0FI_DBCRIND). The rule details screen appears. 2. You choose Add Source Fields and add the Total Debit Postings (UMSOL) and Total Credit Postings (UMHAB) fields so that they are available in the routine. 3. You choose Routine as the rule type. The routine editor opens. 4. You enter the following lines of code. They return either D or a C as the result value:

*---------------------------------------------------------------------* METHOD compute_0FI_DBCRIND. DATA: MONITOR_REC TYPE rsmonitor. *$*$ begin of routine - insert your code only below this line *-*

* result value of the routine if SOURCE_FIELDS-umhab ne 0 and SOURCE_FIELDS-umsol eq 0. RESULT = 'D'. elseif SOURCE_FIELDS-umhab eq 0 and SOURCE_FIELDS-umsol ne 0. RESULT = 'C'. else. monitor_rec-msgid = 'ZMESSAGE'. monitor_rec-msgty = 'E'. monitor_rec-msgno = '001'. monitor_rec-msgv1 = 'ERROR, D/C Indicator'. monitor_rec-msgv2 = SOURCE_FIELDS-umhab. monitor_rec-msgv3 = SOURCE_FIELDS-umsol. append monitor_rec to monitor. RAISE EXCEPTION TYPE CX_RSROUT_ABORT. endif. *$*$ end of routine - insert your code only before this line *-*

ENDMETHOD. "compute_0FI_DBCRIND *---------------------------------------------------------------------*

The system checks if the debit and credit postings contain values:
y y y If the debit posting has values that are not equal to zero and the credit posting is equal to zero, the system assigns the value D. If the credit posting has values that are not equal to zero and the debit posting is equal to zero, the system assigns the value C. If both the debit and credit postings contain values, the system outputs an error in the monitor and terminates the loading process.

5. You exit the routine editor. 6. In the Rule Details dialog box, you choose Transfer Values. 7. You save the transformation.

Example: End Routine


In the SAP ERP system, you are loading data using the General Ledger: Transaction Figures DataSource (0FI_GL_1) into the DataStore object FIGL: Transaction Figures (0FIGL_O06). You want to create an end routine to fill the additional InfoObject Plan/Actual Indicator (ZPLACTUAL). You also want the routine to read field Value Type. If the value is 10 (actual), value A is written to the Plan/Actual Indicator InfoObject; if the value is 20 (plan), value P is written to the Plan/Actual Indicator InfoObject. 7. 22. 23. ... Create End Routine. The routine editor

1. You are in transformation maintenance. Choose opens. 2. You enter the following lines of code:

*----------------------------------------------------------------------* METHOD end_routine. *=== Segments === FIELD-SYMBOLS: <RESULT_FIELDS>

TYPE _ty_s_TG_1. *-*

*$*$ begin of routine - insert your code only below this line loop at RESULT_PACKAGE assigning <RESULT_FIELDS> where vtype eq '010' or vtype eq '020'.

case <RESULT_FIELDS>-vtype. when '010'. <RESULT_FIELDS>-/bic/zplactual = 'A'. "Actual when '020'. <RESULT_FIELDS>-/bic/zplactual = 'P'. "Plan endcase. endloop. *$*$ end of routine - insert your code only before this line ENDMETHOD. "end_routine *----------------------------------------------------------------------*

*-*

The code loops through result_package searching for values that have the value type 10 or 20. For these values, the appropriate value is passed on to InfoObject Plan/Actual Indicator (ZPLACTUAL).
24. 25. 3. You exit the routine editor. 4. You save the transformation. An edit icon routine is available.

next to the End Routine indicates that an end

Potrebbero piacerti anche