BPC Currency Conversion

23
 BPC 10.0 NW Script Logics Disclaimer: This document contains only intended strategies, developments, and functionalities of the SAP product and is not intended to be binding upon SAP to any particular course of business, product strategy, and/or development. SAP and author assume no responsibility for errors or omissions in this document. This preview is provided without a warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. SAP and author have no liability for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. Author: Surya Padhi Mail : [email protected]. SAP Certified Application Associate - Financial Accounting SAP Certified Application Associate - SAP BusinessObjects Planning and Consolidation 10.0

description

BPC Currency Conversion

Transcript of BPC Currency Conversion

  • BPC 10.0 NW Script Logics

    Disclaimer: This document contains only intended strategies, developments, and functionalities of the SAP product and is not intended to be binding upon SAP to any particular course of business, product strategy, and/or development. SAP and author assume no responsibility for errors or omissions in this document. This preview is provided without a warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. SAP and author have no liability for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials.

    Author: Surya Padhi Mail : [email protected].

    SAP Certified Application Associate - Financial Accounting SAP Certified Application Associate - SAP BusinessObjects Planning and Consolidation 10.0

  • Objectives

    www.suryapadhi.com [email protected]

    In SAP BPC, we use script logics to copy, calculate and write data based in selection. On several occasions I have seen, functional consultants find it difficult to understand. In this presentation I will cover following topics relating to BPC 10.0 NW script logic for simplification and easy understanding. 1) Definition; 2) Functionalities 3) Syntax 4) Testing of script logics.

    http://www.suryapadhi.com/

  • Definition

    www.suryapadhi.com [email protected]

    Script Logic enables calculations on base-level cells that result in data stored within an application. The results are aggregated up the dimensional hierarchy, without being re-calculated at upper levels. SAP has provided two types of scrip logics syntax , these are (1) SQL based syntax and (2) MDX based syntax . I will cover in detail above syntax in more details in the next few slides.

    http://www.suryapadhi.com/

  • Functionalities:

    www.suryapadhi.com [email protected]

    The script logic; 1) Reads a specific data selection from the model. 2) Applies to it a set of user-defined formulas (stored in a logic file). 3) Derives the values. 4) Writes those values back to the application. Results are written directly to the model as base data, and are aggregated up the dimensional hierarchy as they are, without being recalculated at upper levels. 1) All dimension logic formulas are applied to these results. 2) This process allows you to perform calculations. Script logic can be run in any of three ways: 1) Automatically after data is sent to the database from BPC for Excel using the Default.LGF

    file. 2) After Journal data send using either Default. LGF, or if present, Journal. LGF files. 3) Through Data Manager as a batch processing event to call Script Logic formulas.

    http://www.suryapadhi.com/

  • Functionalities:

    www.suryapadhi.com [email protected]

    Advantages of BPC script logics 1) Model dependent calculation, not at a member level of the dimensions; 2) BPC scripts can be called from different places, for example default logic, data manager

    package etc. 3) With the help BPC logics, we can perform different type of calculation with or without

    calling business rules; 4) In SAP BPC script logics, we can choose desired dimensions with the help of dimension

    properties. Disadvantages of BPC script logics 1) BPC script cant handle very complex calculation processing or bigger data volume. In

    case of a complex calculation, ABAP-BADI comes into the picture. We can call ABAP-BADI codes within the script logics.

    http://www.suryapadhi.com/

  • Syntax

    www.suryapadhi.com [email protected]

    There are two Syntax options in SAP BPC Script Logic. These are: 1) SQL based syntax: SQL syntax gives better performance. 2) MDX based syntax. MDX syntax is used in record level specific calculations).

    Multidimensional expressions abbreviated as MDX. While choosing script logics, we need to consider following points for performance consideration, 1. Use fewer commits statements; 2. While developing complex calculation, choose ABAP-BADI. 3. Scoping uses memory, hence scoping should be precise. 4. MDX syntax causes performance issues, so use SQL logics as far as possible. 5. Use limited looping to improve performance.

    http://www.suryapadhi.com/

  • Syntax

    www.suryapadhi.com [email protected]

    STRUCTURE OF SCRIPT LOGIC: Script logic structure is divided in three parts. 1) SCOPING In this section we define the scope of data to which calculation will be

    applied. 2) BODY In this section, we tell to the system what to be done I.e. perform calculation,

    Transformation, Aggregation etc. 3) COMMIT In this section we tell to section to save the calculated result to the

    database. *XDIM_MEMBERSET Category = PLAN *XDIM_MEMBERSET Entity = C3000 *XDIM_MEMBERSET P_DataSrc = MANUAL *XDIM_MEMBERSET RptCurrency = LC SCOPING *XDIM_MEMBERSET P_Activity = EMPL1 *XDIM_MEMBERSET P_ACCT = CE0004220 *XDIM_MEMBERSET TIME = 2007.JAN *WHEN P_ACCT *IS CE0004220 *REC (EXPRESSION = 901) BODY *ENDWHEN *COMMIT COMMIT

    http://www.suryapadhi.com/

  • Syntax

    www.suryapadhi.com [email protected]

    Script Logic can be broken down into 3 components: Scoping- What am I running the data on?

    Data manager scoping Input schedule scoping Scope control

    Body / Code - What do I want to do with the scoped record? *IIf Statements *REC [#] based MDX statements *WHEN / *IS / *ENDWHEN Allocation Logic

    Writing the records *COMMIT

    http://www.suryapadhi.com/

  • Syntax

    www.suryapadhi.com [email protected]

    Due to performance issue MDX syntaxes are less favorite among BPC developers. In this section l will cover commonly used SQL based syntax; 1. *ADD / *ENDADD = Add set of values members (i.e. accounts) to another set of values ( i.e. account). 2. *INCLUDE = With this syntax, you can include multiple Script Logic files in a script. Included scripts carry different calculation once you execute the main script. During LGX generation, all codes are combined into one big piece of code and executed during runtime. 3. *REC = This statement generates a record / modifies a record that to be posted in the database. Even if it is for the same destination cell, a source record can generate as many destination cell records. Multiple REC statements possible between *END/*ENDWHEN statement. Example: -*REC (FACTOR = 0.9,ACCOUNT="DISCOUNT_EXTSALES"). Which means multiply by 0.9 to current scoped record and replace account with DISCOUNT_EXTSALES write values to DISCOUNT_EXTSALES.

    4. *XDIM_MEMBERSET = It restricts the data, filters the source dataset to the required dataset for specific calculation, intended in the script logic. For each restriction using a dimension, there can be a separate XDIM statement. Generally it is followed by the Dimension name & Member value/value set.

    http://www.suryapadhi.com/

  • Syntax

    www.suryapadhi.com [email protected]

    5. *XDIM_ADDMEMEBERSET = This statement is used to add more member values to the scope of member value already defined with the XDIM statement for conditional calculations. 6. *XDIM_FILTER = Filters the members of the scope of that dimension. It does not filter the scope of data, rather filters from available scope. Example - *XDIM_FILTER ACCOUNT = [account].properties(ACCTYPE='AST'). In this case system will select account members which contains ACCTTYPE property value as AST

    7. XDIM_MAXMEMBERS = Specifies the maximum number of members that should be included in one query. 8. XDIM_PACKAGEBY = This syntax is used for parallel processing. However, configuration needs to be done in SPRO need to be done before using this. 9. *SELECT / *ENDSELECT = Like any other SQL statement, this syntax helps to retrieve a list of values from the master data table (Dimension) and store them in a defined variable. Can be written in any part of the logic and the resultant value can be used in any part of the logic as well. Generally better to write in the beginning of the logic structure. 10. *WHEN / *ENDWHEN = *WHEN/*ENDWHEN can be used with property values of the dimension; to further create conditions for data processing / transformation / modification / manipulation, for the REC statement. Ex: *WHEN ACCOUNT *IS XY00001234. Same as SELECT/ENDSELECT statement, but this it used when different transformation is needed for different type of field values in a record. Hence multiple *WHEN/*ENDWHEN statements possible within a script logic. It works as a loop statement.

    http://www.suryapadhi.com/

  • Syntax

    www.suryapadhi.com [email protected]

    11. *DESTINATION_APP = Use to make the datasets of one model available for other. It transfers the data from one model to another. Between Dimension Category values. 12. *LOOKUP / *ENDLOOKUP = Similar to *DESTINATION_APP but this does not transfer the data between the model, rather looks up for the required calculation. It is acts like a READ statement in traditional ABAP. Example: While doing currency translation of a value, it will be required to look into the EXCHANGERATES model. 13. *TMVL = This is used to retrieve a time value after taking into consideration an offset value from a given time period. REC(FACTOR=1.1, TIME=TMVL(12,2006.APR)). In this case the time value is 2006, Apr + 12 months = 2007,Apr. 14. *COMMIT = Saves/stores the calculated values in the database. In case of two dependent calculations, resulting value of the first calculation must be saved into the database with a *COMMIT statement, before its value is used in another calculation formula within the script logic.

    http://www.suryapadhi.com/

  • Syntax

    www.suryapadhi.com [email protected]

    15. *ADD_DIM = While copying data between two models, if source model does not contain all the dimensions as the destination model, missing dimensions in the source model can be created/added using this syntax before data copy. Possible to use this for multiple dimensions in one statement. 16. *RENAME_DIM = While copying data between two models, if dimension names between the models do not match; then mismatching dimension names can be renamed to be the same before copy process. Possible to use this for multiple dimensions in one statement. 17. *SKIP_DIM = While copying data between two models, if the destination model does not contain all the dimensions as the source model, some of the destination models can be skipped from copying process using this syntax. Possible to use this for multiple dimensions in one statement. 18. *SELECTCASE / *ENDSELETC = This is a select statement with a CASE together to encourage conditions within. Works as IF, ELSEIF & ENDIF statement in traditional ABAP. 19. *START_BADI / *ENDBADI = This script helps in calling BAdIs within the script logic to perform an endless variety of functions. 20. *RUNALLOCATION = This syntax help execute SAP delivered allocation logic.

    http://www.suryapadhi.com/

  • Syntax

    www.suryapadhi.com [email protected]

    21. *BEGIN / *END = These syntaxes are used with Boolean Expressions (YES / NO). Similar concept, as may have seen in BW-BEX formulas. The individual conditions will be enclosed in parenthesis. If the condition is true, the return value will be 1, else 0. 22. *IIF = These syntaxes work, just as IF, ELSEIF, ENDIF statements in traditional ABAP. If the condition satisfies, then it directs the record to undergo a calculation. 23. *FOR / *NEXT = This syntax is used with a variable, which returns/contains multiple values. This syntax then helps to process individual variable values, one by one. It works like FOR EACH statement in FOX formula. 24. *GET = Retrieves the value from the memory 25. *FUNCTION / *ENDFUNCTION = This syntax is very often used in MDX. Function is used in BPC to enhance readability. 26. *WHEN _REF_DATA = It sets the focus to either master data or transactional data. When is set to master data, it loops through all the master data values of the dimension. And when set to transactional data, it loops through all transactional data, which uses the dimension/values in its scope. Without an explicit definition, the transactional data mode is selected by default.

    http://www.suryapadhi.com/

  • Variables

    www.suryapadhi.com [email protected]

    Variable allows to enter values in runtime. In BPC we use two types of variables (1) user defined variables and (2) system variables. In case of user defined variables; We will have variables in script, for example $PERCENT$ Then we define variable for prompt in the data manager package, for example

    %PERCENT%. In run time system will replace $PERCENT$ with values we are passing via %PERCENT%. For example *XDIM_MEMBERSET TIME = $DIM_INP$ in script logic and a prompt %DIM_INP% in DM package will prompt the user to enter a time dimension member while running that script logic. If the user enters 2009.JAN, the package will run only for January 2009. If he/she enters BAS(2009.Q1), the package will run for Jan, Feb, Mar of 2009

    System defined variables are; 1. %USER% - Returns current Planning and Consolidation User 2. %APPSET% - Returns current Planning and Consolidation AppSet 3. %APPLICATION% - Returns current Planning and Consolidation Application 4. %YEAR% - Returns current calendar year.

    http://www.suryapadhi.com/

  • SAP Delivered Logics

    www.suryapadhi.com [email protected]

    Allocation.lgf - Allocation executes a distribution of values based upon a defined basis. This functionality does not require any additional business rules to function. There are two methods to call the allocation engine:

    *RUNALLOCATION - The *RUNALLOCATION format is commonly used when an allocation is to be performed once in the script logic file *RUN_ALLOCATION - The *RUN_ALLOCATION format can be used when an allocation is to be performed multiple times in the same script logic file. In the following example, the allocation called DIST2 is first defined, and then the allocation is called multiple times later in the code by the RUN_ALLOCATION command

    Calcaccount.lgf - Calcaccount is used to prepare Cash Flow and must be executed along with appropriately defined Account Calculation Business Rules. Consolidation.lgf - Consolidation is used to perform legal consolidation and must be executed along with appropriately defined Legal Consolidation Business Rules. Copy_Opening.lgf - COPYOPENING is used to transfer ending balances from one time period to starting periods in a subsequent time period. COPYOPENING must be executed with the appropriate Balance Carry Forward business rules. FX_Trans.lgf - Currency Conversion is used to translate existing records into alternative currency views. Currency Conversion must be executed with the appropriate Currency Conversion business rules.

    http://www.suryapadhi.com/

  • SAP Delivered Logics

    www.suryapadhi.com [email protected]

    ICDATA.LGF - ICDATA is used to perform intercompany reconciliation activities. ICDATA must be executed with the appropriate ICBOOKING business rules. ICBooking.lgf - ICBooking is used to perform intercompany reconciliation activities with difference postings. ICBooking must be executed with the appropriate ICBOOKING business rules. ICElim.lgf - ICElim is used to perform intercompany reconciliation. ICElim must be executed with the appropriate ICElim business rules. Validation.lgf - Validation is used to perform validation activities define within the validation business rules. MDXlib.lgf - The MDXlib file provides examples of pre-delivered MDX financial functions. System_Constants.lgf - The system constants file is the logic file that maps your dimension names for an application to the standard (delivered) BPC logic. For example, the file maps the name of the category dimension to the dimension to be used as the category. System_Library.lgf - The System Library includes basic examples of delivered keywords and functions.

    http://www.suryapadhi.com/

  • Testing and Debugging

    www.suryapadhi.com [email protected]

    To test and debug script , we can use program UJK_SCRIPT_LOGIC_TESTER or Transaction Code: UJKT

    1

    2

    3

    4

    http://www.suryapadhi.com/

  • Testing and Debugging

    www.suryapadhi.com [email protected]

    1

    2

    3

    4

    The SETTING region for the definition of the environment, model and user

    http://www.suryapadhi.com/

  • Testing and Debugging

    www.suryapadhi.com [email protected]

    1

    2

    3 4

    The DATA REGION section allows definition of the initial scope. Use the format dimension=dimension_member, for example: CATEGORY=ACTUAL.

    http://www.suryapadhi.com/

  • Testing and Debugging

    www.suryapadhi.com [email protected]

    1

    2

    3 4

    The prototyped script logic code is entered into the lower left hand section.

    http://www.suryapadhi.com/

  • Testing and Debugging

    www.suryapadhi.com [email protected]

    1

    2

    3 4

    Any errors that are discovered will be presented on the lower right hand screen.

    http://www.suryapadhi.com/

  • Testing and Debugging

    www.suryapadhi.com [email protected]

    The script can be executed, and all results saved to the database, by clicking on the EXECUTE button. The resulting system log will display the compiled code, the number of records processed and the time to execute.

    http://www.suryapadhi.com/

  • Few of My Contributions.

    www.suryapadhi.com [email protected]

    Contact information: www.SuryaPadhi.Com Mail: [email protected].

    My Publications

    Other White Papers Lock Box Credit Card functionality in SAP

    SAP Press Publications Explore the Payment Currency Option in Accounts Payable

    http://www.suryapadhi.com/http://www.suryapadhi.com/http://www.amazon.com/SAP-ERP-Financials-Quick-Reference/dp/1936420317/ref=sr_1_1?ie=UTF8&qid=1381077556&sr=8-1&keywords=surya+padhihttp://www.amazon.com/SAP-Financials-FICO-Handbook-Books/dp/0763780804/ref=sr_1_1?ie=UTF8&qid=1381077635&sr=8-1&keywords=fico+padhihttp://www.linkedin.com/pub/s-n-padhi/6/b52/9ba/