how to customizing

Upload: nmsap

Post on 06-Apr-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/2/2019 How to Customizing

    1/28

    How - to Gu ideSAP EPM

    How To

    Cu st om ize SAP

    St ra tegy

    M anagem en tSSM 7 .0Ver s ion 1.0 0 Octobe r , 20 08

    Appl icable Releases:SAP Bus inessObject s St r ategy M anageme nt 7 .0

  • 8/2/2019 How to Customizing

    2/28

    Copyright 2009 SAPAG. All rights reserved.

    No part of this publication may be reproduced or

    transmitted in any form or for any purpose without theexpress permission of SAPAG. The informationcontained herein may be changed without prior notice.

    Some software products marketed by SAPAG and itsdistributors contain proprietary software components ofother software vendors.

    Microsoft, Windows, Outlook,and PowerPointareregistered trademarks of Microsoft Corporation.

    IBM, DB2, DB2 Universal Database, OS/2, ParallelSysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400,iSeries, pSeries, xSeries, zSeries, z/OS, AFP, IntelligentMiner, WebSphere, Netfinity, Tivoli, and Informix aretrademarks or registered trademarks of IBM Corporationin the United States and/or other countries.

    Oracle is a registered trademark of Oracle Corporation.

    UNIX, X/Open, OSF/1, and Motif are registeredtrademarks of the Open Group.

    Citrix, ICA, Program Neighborhood, MetaFrame,WinFrame, VideoFrame, and MultiWinare trademarks

    or registered trademarks of Citrix Systems, Inc.

    HTML, XML, XHTML and W3C are trademarks orregistered trademarks of W3C, World Wide WebConsortium, Massachusetts Institute of Technology.

    Java is a registered trademark of Sun Microsystems, Inc.

    JavaScript is a registered trademark of Sun Microsystems,Inc., used under license for technology invented andimplemented by Netscape.

    MaxDB is a trademark of MySQL AB, Sweden.

    SAP, R/3, mySAP, mySAP.com, xApps, xApp, and otherSAPproducts and services ment ioned herein as well astheir respective logos are trademarks or registeredtrademarks of SAPAG in Germany and in several othercountries all over the world. All other product andservice names mentioned are the trademarks of theirrespective companies. Data

    contained in this document serves informationalpurposes only. National product specifications may vary.

    These materials are subject to change without notice.These materials are provided by SAPAG and its affiliatedcompanies ("SAPGroup") for informational purposesonly, without representation or warranty of anykind, and SAPGroup shall not be liable for errors oromissions with respect to the materials. The onlywarranties for SAPGroup products and services are thosethat are set forth in the express warranty statementsaccompanying such products and services, if any.Nothing herein should be construed as constituting anadditional warranty.

    These materials are provided as is without a warrantyof any kind, either express or implied, including but notlimited to, the implied warranties of merchantabil ity,fitness for a particular purpose, or non-infringement.SAPshall not be liable for damages of any kind includingwithout limitation direct, special, indirect, orconsequential damages that may result from the use ofthese materials.SAPdoes not warrant the accuracy or completeness ofthe information, text, graphics, links or other itemscontained within these materials. SAPhas no controlover the information that you may access through theuse of hot links contained in these materials and does not

    endorse your use of third party web pages nor provideany warranty whatsoever relating to third party webpages.SAPCPM How-to Guides are intended to simplify theproduct implementation. While specific product featuresand procedures typically are explained in a practicalbusiness context, it is not implied that those features andprocedures are the only approach in solving a specificbusiness problem using SAP. Should you wish to receiveadditional information, clarification or support, pleaserefer to SAPConsulting.Any software coding and/or code lines / strings (Code)

    included in this documentation are only examples andare not intended to be used in a productive systemenvironment. The Code is only intended better explainand visualize the syntax and phrasing rules of certaincoding. SAPdoes not warrant the correctness andcompleteness of the Code given herein, and SAPshallnot be liable for errors or damages caused by the usage ofthe Code, except if such damages were caused by SAPintentionally or grossly negligent.

  • 8/2/2019 How to Customizing

    3/28

    Table of Contents

    1 Introduction ..............................................................................................1

    2 Required Environment to Make Modifications ..........................................1

    3 Types of Customizations Available ...........................................................2

    3.1 Data Dictionary..................................................................................23.2 Strings (modify existing string, create custom strings)......................3

    3.3 Application Icons and Logos..............................................................53.4 Named Queries .................................................................................7

    3.5 Web Services Web Services..............................................................7

    3.6 Source Code (create or modify *.htm, *.js, *.css, *.jsp, *. files) ..........7

    3.7 Hot Deployment.................................................................................8

    4 Object Transport .......................................................................................8

    5 Example Customizations Done in SSM.....................................................95.1 KPI Notes Column Added to Scorecard ............................................9

    5.2 Data for KPI Details ......................................................................... 10

    5.3 Additional fields for KPI ...................................................................105.4 Comment page on Operational Reviews .........................................13

    6 Summary of Customization Types ..........................................................15

    7 Appendix A Strategy Management JSP Tags.......................................... 168 Appendix B Sample Modification...........................................................18

  • 8/2/2019 How to Customizing

    4/28

    1 Introduction

    SAP Strategy Management (SSM) is a comprehensive software solution designed to alloworganizations to close the gap that commonly exists between the creation of strategy and the

    execution of strategy. SSM helps foster organizational alignment and empowers organizations to:

    Collaborate in the creation of strategic objectives Create and manage the strategic initiatives used to drive execution of strategic objectives Establish and monitor key performance indicators

    While SAP Strategy Management is a comprehensive solution out of the box, often users find itis not completely aligned with their specific business processes, thus must be customized.Customizations to SSM range from very simple configuration changes such as changing theterminology used in the application,(for example replacing the term Objectives with Goals), tovery complex modifications such as creating entirely new scorecard visualizations.

    This document discusses modifications a consultant may make to SAP Strategy Managementand how to transport these modifications from a development environment to an SSM QA and/or

    an SSM Production environment. As well, this document reviews examples of customizationsmade to SSM.

    This document does notdiscuss application data modifications (e.g. creation of objectives, KPIs,etc.). SSM application data modifications are addressed in the application Help.

    NOTE:For SSM 7.0, modifications and the process of transporting these modifications areconsidered consulting options. The utilities provided for consulting modifications have not beenfully qualified and are considered a convenience for consultants.

    2 Required Environment to Make Modifications

    The recommended development environment for a consultant customizing SSM is as follows:

    - NetWeaver CE 7.1 (Developer environment of NetWeaver application server)

    - NetWeaver Developer Studio (Required for custom data dictionary)

    - SSM File Manager plug-in (Consultant tool for applicable source code modifications)

  • 8/2/2019 How to Customizing

    5/28

    3 Types of Customizations Available

    SSM is a multi-tier solution consisting of data, application and client tiers as illustrated in thediagram below.

    Customizations can be done in SSM that affect any of the solutions tiers. The types ofcustomizations possible are outlined below.

    3.1 Data Dictionary

    The data dictionary is a database schema for NetWeaver applications. NetWeaver OpenSQL andthe data dictionary are SAPs interface for portable relational database operations. Once the datadictionary is deployed into the NetWeaver application server, the schema is fixed and cannotchange, therefore, the SSM data dictionary is fixed. In order to make modifications to the SSMschema, you have to create a new dictionary and deploy it into the NetWeaver application server.Once deployed, you can create named queries which join tables from the SSM dictionary and the

    consultant created dictionary.

    NetWeaver Developer Studio is required to create a dictionary project.Every table in SSM shall have the following requirements:

    i) Table name should start with cpms_ii) ID longiii) Created_date - timestampiv) Lastupdated_date timestampv) Cpms_dbname_id - long

  • 8/2/2019 How to Customizing

    6/28

    3.2 Strings (modify existing string, create custom strings)

    All user interface text (strings) for SSM is external from the application and is stored in the SSM

    relational database. By storing these strings outside the application, it is possible modify these

    strings or to create new strings. Strings may be modified to change content. For example, the

    term objective is often changed to be goal. In SSM, this text has been translated into many

    languages. The language translations are also stored the relational database and the text ofthese strings can be modified.

    The jsp tag pilot:strings is used to retrieve strings. Below is an example jsp page which uses

    JavaScript to produce an alert of a string. This tag is explained in Appendix A.

    alert()

    Where code is a string code, for example COMMENTS_01

    There are two methods to modify strings in SSM. The first is the UI Strings Administrator in

    /strategy/tools. This utility allows the consultant to modify the content of existing strings.

  • 8/2/2019 How to Customizing

    7/28

    SSM Strings Administrator

    To use the string Administrator1. In a browser window, go to

    http://:/strategy/tools/admin_strings.jsp2. From the Application Namesdrop-down list, select the component whose strings

    you want to change3. From the Languagedrop-down list, select the language of your user interface.

    4. In the Searchbox, type the string you want to change. All instances of that stringappear in the String list.

    5. Edit each instance of the string as appropriate.6. Click Save.

    The utility http://[server]:50000/strategy/tools/stringeditor.jsp has similar functionality to the strings

    administrator as well as allowing you to add new strings. The stringeditor.jsp program also

    displays the string code.

  • 8/2/2019 How to Customizing

    8/28

    3.3 Application Icons and Logos

    Icon and logo image files are used throughout the application for application branding and topictorially represent application functions. For example the buttons shown in the screenshot beloware based on application image files.

    Application image files can be modified or replaced using the application File Manager located onwithin the SSM Application Tools Page.

  • 8/2/2019 How to Customizing

    9/28

    To update an image:1. Browse for the file that you wish to replace. Note that most application image files can be

    found within the /Strategy/files directory.2. Save the file that you wish to replace, as a backup, by clicking the link containing the file

    name, then clicking Save.3. In the search results window, click the Delete Row icon next to the file that you wish to

    replace

    4. Upload the new file. Note that the new file must have the exact same name as the filebeing replaced and must be loaded into the same database and virtual file path

    File Store Upload

  • 8/2/2019 How to Customizing

    10/28

    3.4 Named Queries

    SSM business logic requests data from the relational database using named queries. A named

    query is a predefined query (static) which accepts parameters. SSM also allows for the creation

    of dynamic queries, where parts of the SQL expression are stored in a relational table as well.

    The following is an example to create two named queries,

    customquery1 insert values in the cpms_cc_list custom tableINSERT INTOCPMS_CC_LIST(ID,DESCRIPTION,COMMENTS,CPMS_DBNAME_ID,CREATED_DATE,LASTUPDATED_DATE) values(?,?,?,?,?,?)customquery2 join custom table cpms_cc_list and existing SSM table cpms_commentSelect a.comments, a.description as adesc, b.description as bdesc from cpms_cc_list as a,cpms_comment as b where a.cpms_dbname_id=b.cpms_dbname_idThe named query editor is a utility for validating, editing, and adding named queries to SSM. Thisutility is accessed at http://serverhostname:50000/strategy/tools/namedqueryeditor.jsp .Appendix B contains an example which uses the named query editor.

    3.5 Web Services Web Services

    Web services can be used to expose SSM data any application capable of consuming web

    services. SSMs web service exposes all SSM data, relational and OLAP, to the application

    consuming the web service. Using SSMs web service one could, for example, build a Crystal

    Xcelsius dashboard displaying all underperforming strategic objectives, their associated initiatives

    and KPIs, and underlying metrics driving the KPIs. In this example, the data relating to the

    objectives, initiatives and KPIs would come from the relational database, while the underlying

    metrics supporting the KPIs would be sourced from SSMs underlying OLAP engine.

    Additional information on how to implement SSMs web service will be provided in a separate

    document.

    3.6 Source Code (create or modify *.htm, *.js, *.css, *.jsp, *. files)

    In a deployed NetWeaver project, all html source code is contained in the enterprise archive and

    is not accessible from the operating system file system. Html source code is considered to be

    html (htm, html), style sheets (css), javascript (js), java server pages (jsp), and image (gif, jpg,

    png) files.

    Many customers require modifications to this source code in order to change the look and feel in

    an SSM installation.

    There are two utilities available to assist a consultant with source code modifications. The first

    utility is ./strategy/tools/filemanager.jsp. The filemanager.jsp allows you to retrieve and update

    files in the internal SSM file store. The second utility is an Eclipse plug-in. This file managerplug-in has the features as the filemanager.jsp as well as allowing you to use many of the

    features of Eclipse. For example, the editors such as html or jsp and the file compare utility.

    When a file is added to the file store via the file manager, there is a checkbox for versioning. With

    versioning, every file that is updated saves the previous file. The previous files are denoted with a

    # suffix. For example; mycustomtable.jsp#1, mycustomtable.jsp#2 represents two

    modifications have been made to the mycustomtable.jsp file. You can file compare these file

    versions as well as restore the previous file.

  • 8/2/2019 How to Customizing

    11/28

    3.7 Hot Deployment

    Since modifications made to source files above are changes in the SSM file store, these changes

    need to be distributed to a file location in NetWeaver so that they are callable in an application.

    The hot deploy utility distributes these files from the file store to NetWeaver. Hot deployed files

    from SSM are NetWeaver cluster safe. Hot deployed files must be put into the

    /strategy/customized/* folders. The folders in ./customized are administration, bi, classes,cubebuilder, entryandapproval, files, metricsmanager, pilotworks, pipadmin,

    strategymanagement, stratplan, tools, and webservices.

    The hot deploy utility is activated when SSM is deployed in NetWeaver and when the

    ./strategy/tools/hotdeploy.jsp utility is called.

    Files in /strategy/* folders may be modified and hot deployed as well, however, this is not

    recommended. This is because, separation of SSM delivered code and consultant modifications

    are easier to support and maintain. For example, if you are having a problem with a modification

    in what appears to be SSM code, this consultant is able to execute the SSM code directly from

    the delivered SSM application. If the code works in the delivered SSM application and not the

    modification, it is likely that there is an error in the modification. If the code fails in both locations,

    it is likely the error is in SSM. Another benefit of this methodology is SSM upgrades. You can

    monitor the SSM upgrades and update their modifications if necessary.

    4 Object Transport

    The object transport utility differs from the existing transport utility in that SSM objects are

    transported instead of record oriented relational tables. In SSM 7.0SP4, the following objects

    may be transported: named queries, strings, and SSM file store files. The object transport willtransport files modified within a specified date range. The output of the object transport is a

    transport file. This transport file is loaded into the target system using the current transport utility.

    The object transport is referenced as ./strategy/tools/objecttransport.jsp

    Additional information on using the Object Transport utility will be provided in a separatedocument.

  • 8/2/2019 How to Customizing

    12/28

    5 Example Customizations Done in SSM

    This section contains examples of customizations that customers have made to SSM. Each of

    these customization examples were implemented via a combination of modified HTML andJavascript source code files and enhancements to the SSM data dictionary

    5.1 KPI Notes Column Added to Scorecard

    In this customization example the SSM user wanted to be able to add more contextual detail toindividual KPIs, in addition to the KPI description.

    To accomplish this the SSM consultant developed a KPI Notes field that can, for example, beused to explain the performance of a specific KPI. The new Notes field is displayed on the KPIdetails page and can be displayed within the KPI table view if desired.

    To simplify the process of creating Notes the consultant extended SSMs existing Commentsfunctionality to allow the creation of a comment of type Note. To create a Note the user opensthe screen from which new comments are created, clicks the newly added Note check box, then

    adds the note they wish to link to the KPI.

  • 8/2/2019 How to Customizing

    13/28

    5.2 Data for KPI Details

    In the standard SSM solution the KPI details page includes a chart that visualizes the target vsactual performance of the selected KPI. The standard KPI details chart includes a graph (line /bar) but does not include a data table. In this example the consultant updated the KPIs details

    chart to include a data table.

    5.3 Additional fields for KPI

    In this example the SSM consultant has added the ability to associate additional text fields withKPIs that allow users to denote, for example, the formulas used to calculate the KPI score,

    associated KPIs, related business units, etc. The additional fields are displayed on the KPI detailspage on screen and on KPI details pages contained in operational reviews.

    KPI Details Page with Additional Comments onScreen

  • 8/2/2019 How to Customizing

    14/28

    KPI Details Pages with Additional Comments within an Operational Review

  • 8/2/2019 How to Customizing

    15/28

    Users configure which additional KPI details fields are to be displayed within the SSM adminpage. In the Set KPI details page a new option (Edit Custom Data) was added to select and

    configure the new fields to be displayed.

  • 8/2/2019 How to Customizing

    16/28

    5.4 Comment page on Operational Reviews

    With SSM operational reviews users can create packaged reports containing information captureddirectly from within the application. For each page captured, the user is allowed to enter textannotations elaborating on information contained in the page.

    In the current release, SSM 7.0, users can not create full text pages within operational reviews.

    Full text pages might be used, for example, to summarize all information contained in a specificsection of the operational review.

    The modification shown below allows users to include text pages, with Rich-Text capability, inoperational reviews.

    Operational Review Text Page

  • 8/2/2019 How to Customizing

    17/28

    Operational Review Text Page Creation

  • 8/2/2019 How to Customizing

    18/28

    6 Summary of Customization Types

    In summary, a wide variety of customizations can be made to SSM, ranging from basicapplication configuration changes such as terminology used in the application UI to moreextensive customizations such as creation of new scorecard visualizations.

    SSM Customizations can be categorized as:

    CustomizationCategory

    ChangesEffect/Leverage

    Examples

    Application Configuration No impact tosource code ordatabase schema

    UI Strings (application terminology)

    Scorecard status icons

    Medium Customization Application imagefiles, located in theapplication filestore

    Change images used within theapplication

    Extensive Customization Source code Database schema

    Named Queries Web Service

    Application data fieldsadded/removed

    Application logic modified New application tabs created

  • 8/2/2019 How to Customizing

    19/28

    7 Appendix A Strategy Management JSP Tags

    Several JSP tags have been developed to retrieve output from SSM Application Server, SSMstrings, and SSM named queries. Please note, any HTML file containing the old PIP tags (SSM2007) will need to be converted to JSP pages and utilize the new JSP tags.To use the tags please add an include directive at the top of the jsp file:

    The following is a list of all the new JSP PIP tags:pipThis tag executes a pip command passed in via the command attribute and returns the result as astream or optionally delimited by a delimiter specified by the delim attribute.

    Example:

    arrayThis tag executes a pip command and constructs a javascript array (of strings) from the itemsreturned by the command. The output is wrapped in the HTML element. An optional name attribute can be specified for the

    javascript variable name. If a name is not specified it's defaulted to pasOutputExample:

    generateThis tag replaces the old @(type=generate) tag, and generates the same javascript output as theexisting one.

    Example: Note that PipMeasureBasis is not included by default. To include the PipMeasureBasis in the

    generated output set the includeMeasureBasis attribute to trueExample:

    cgiThis tag retrieves and displays the value of an http request cgi variable (request header) specifiedby the name attribute.

    Example:

    propertyThis tag retrieves and displays the value of an application property from the properties file

    Example:

    stringsThis tag retrieves a string from the strings table. Languages are supported automatically via SSM

    language support. The language used will come from the Accept-Language http requestheader or from the HTTP request parameter language.

    Example:

  • 8/2/2019 How to Customizing

    20/28

    namedqueryNamedqueries are called using this tag. This tag return a javascript variable with query result asvalue. The attributes are the tag parameters.

    Attribute Note Required attribute?queryName name of query requiredparameterValues tab delimited parameter values requiredvarName JavaScript variable name optional

    fragmentNames named query fragment names optionalresultType "JAVASCRIPT" or "DELIMITED" optionaldebugMode "yes", "true" or "1" turn on debug optionalauditType audit type, for example "1" or "2" optional

    Example:function AppNameOptions(){

    var OptionArray = new Array()OptionArray = SQLOutput_1.split("\r\n")...for (x = 1; x < OptionArray.length - 1; x++){

    option = OptionArray[x]value = option.substr(0,4)TempStr += "" + option + ""

    }...

    }

    Example:

  • 8/2/2019 How to Customizing

    21/28

    8 Appendix B Sample Modification

    This example outlines the procedure to create a custom table in Netweaver CE 7.1 dictionary and

    deploy it. It also shows how to add new named queries, create a jsp page and hot deploy it usingthe hot deploy mechanism. NetWeaver Developer Studio is required for this example.1) Create custom table in dictionary:

    Create a new workspace in local file system. Open the new workspace in NetweaverDeveloper Studio.Change the perspective to Dictionary perspective. File-> New to create new Dictionary

    Project.Every table in SSM should have the following:

    vi) Table name should start with cpms_vii) ID longviii) Created_date - timestampix) Lastupdated_date timestampx) Cpms_dbname_id - long

    In this example, we create a table called cpms_cc_list as shown below:

    After creating the table, we build the dictionary project, create archive and deploy it.First configure the server that you wish to deploy the dictionary to.

    In NWDS, select Window-> Preferences-> SAP AS Java and register the server.

  • 8/2/2019 How to Customizing

    22/28

  • 8/2/2019 How to Customizing

    23/28

    Right click on CustomDictionary in DictionaryExplorer view (Left hand side in above screen).Select Build Project and then build archive. Then select Deploy to deploy it.To verify that the dictionary is deployed, select Window-> Show View-> Undeploy View.

    2) Add Named Query:

    The SSM application provides an interface to add new named queries.For this example we create 2 named queries,

    Customquery1 to insert values in the cpms_cc_list custom tableINSERT INTOCPMS_CC_LIST(ID,DESCRIPTION,COMMENTS,CPMS_DBNAME_ID,CREATED_DATE,LASTUPDATED_DATE) values(?,?,?,?,?,?)

    Customquery2 which is join of custom table cpms_cc_list and existing SSM tablecpms_comment

    select a.comments, a.description as adesc, b.description as bdesc from cpms_cc_list as a,cpms_comment as b where a.cpms_dbname_id=b.cpms_dbname_id

    Access the Add Named Query page at:

    http://serverhostname:50000/strategy/tools/namedqueryeditor.jsp

  • 8/2/2019 How to Customizing

    24/28

    Enter the named query name and the query statement. Select Validate SQL to validate thequery and after the query is validated Add to Database.

    Similarly, create customquery2.

    3) Create jsp page

    In Netweaver Developer Studio create a jsp page that inserts values in the custom cpms_cc_listtable using named query customquery2 and displays the output from a join of cpms_cc_list,cpms_comment using customquery4.

    In this example, we create customtable.jsp page.

  • 8/2/2019 How to Customizing

    25/28

    4) Hot Deploy the above jsp

    Hot deployment occurs :1) each time the SSM application is deployed2) when the hot deploy servlet is invoked, e.g., by the Hot Deploy jsp page.

    In order to hot deploy, the custom jsp files must be in SSM file store in the customized folder.Access FileManager at http://serverhostname:50000/strategy/tools/filemanager.jsp

    Use Upload File into FileStore option. Select dbname, virtual path enter:/strategy/customized/tools/customtable.jsp and browse to the file location.Select Upload.

    For custom jsp pages, it is important to upload in the /strategy/customized directory and selectappropriate subfolder in that directory.

  • 8/2/2019 How to Customizing

    26/28

    Verify that the file is uploaded in file store by View Files in File Store search option.Access the hot deploy interface at:

    http://serverhostname:50000/strategy/tools/hotdeploy.jsp

  • 8/2/2019 How to Customizing

    27/28

    The customtable.jsp page should be hotdeployed. In the operating system file system, browse tofilelocation to see the customtable.jsp page

  • 8/2/2019 How to Customizing

    28/28

    w w w .s d n.s ap .c o m / i r j / s d n/ b px - c p m

    http://www.sdn.sap.com/irj/sdn/bpx-cpmhttp://www.sdn.sap.com/irj/sdn/bpx-cpm