change request management-charm

Upload: srkrna4u

Post on 06-Jul-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/16/2019 Change Request Management-chaRM

    1/50

    Change Request Management (ChaRM) - How toenhance the standard workflow

    Skip to end of metadata

     Attachments: 26•  Added by Tobias Hauk, last edited by Bret Halford on Jan 3, 2!" #$ie% chan&e'

    • sho% comment

    (o to start of metadata

    • )  *+ample se -ase: H./ T. *0HA0-* TH* STA01AT /.45./

    • )  Step :  Status Profile

    • )2 Step 2:  Actions

    • )3 Step 3:  Conditions

    • )"  Step ":  Create new condition

    • )  Step :  Define Status Attributes

    • )6  .ptional:  ChaRM Actions & Conditions

    ) *+ample se -ase: H./ T. *0HA0-* TH*

    STA01AT /.45./ 

    Use Case: 7ou %ant to enhance the e+istin& %orkflo%8standard process of a standard transaction type #e)&)

    S9H4: r&ent -han&e' and add a ne% status $alue to the status profile) 7ou also %ant to be able to set this

    ne% status $ia a 4 action)

     

    Prerequisite: As described in the confi&uration &uide, the transaction type you %ant to adapt should be

    copied to the customer specific namespace #e)&) ;9H4' first) This applies to the transaction type, and all the

    profiles that are included #status, action, te+t, date, partner, etc)') .nce you ha$e copied the transaction type

    into the customer namespace, the chan&es you are about to make %ill be ) This means they %ill

    not be o$er%ritten %hen implementin& a ser$ice pack or update, %here SA deli$ers updated or chan&ed

    standard customi?in&)

    ) Step : Status Profile

     

    The first customi?in& step is to create an o%n status for a specific transaction type) @n this e+ample %e insert

    an additional appro$al step called

  • 8/16/2019 Change Request Management-chaRM

    2/50

    #ote: Please make sure you also have copied the status-profile, e.g. from S!"!#A$ to %!"!#A$

     

    To insert the ne% status, %e recommend to copy an e+istin& status rather than creatin& a ne% status from

    scratch) This has the ad$anta&e that the correspondin& business transactions, that are included in each

    status, %ill also be copied automatically)

    The $alues and define %here you can &o to, once you ha$e reached a specific status) @n

    our e+ample, %e can &o back to 2! #@n 1e$elopment' but not to ! #-reated' or %e can &o for%ard until !

    #-ompleted', but not to C! #/ithdra%n')

    @n table TJ3! #transaction S*6' it is possible to look at the correspondin& technical status $alue)

     

    )2 Step 2:  Actions

     

    The ne+t step is to assi&n the correspondin& -ha9 Actions D -onditions)

    The ost rocessin& 4rame%ork #4' pro$ides SA applications %ith a uniform interface for the condition=

    dependent &eneration of actions) The actions are &enerated if specific conditions occur for an application

    document = they are processed then either directly or later)

  • 8/16/2019 Change Request Management-chaRM

    3/50

    /e %ill start %ith the action definitionE you can reach it $ia the follo%in& path in transaction S.:

    &' (SAP Solution anager ()apa*ilities +ptional ( )hange anagement ( Standard

    )onfiguration ( Transaction Types ( Action Profile ( $efine Action Profiles and Actions

    (o to the subnode inside the dialo& structure there you can create a ne% 4=Action for

    the transaction type ;9H4) As for the status, %e recommend to copy an already e+istin& action %hich alsosets a status #e)&) ;[email protected]*SS')

    est approach is to check if the source action, /hich shall *e copied, also contains the method

    !"0S#T0STATUS. This can *e checked *y selecting su*node 1Processing Type” for a selected action.

     

     As described, to chan&e the status of the transaction in -han&e eGuest 9ana&ement al%ays the method

    H4FS*TFSTATS< is used therefore %e no% need to confi&ure the input parameters #container $alue' for

    this method)

    Select the ne% action in the and open the subnode you %ill see a

    screen similar as belo%:

  • 8/16/2019 Change Request Management-chaRM

    4/50

     

    -lick on the edit button of the processin& parameters, to be able to chan&e the container $alues) 4urthermore

    as a processin& parameter the e+pression S*FSTATS %ith initial $alue *!! is used this is the $alue

    of our ne%ly created status #see table TJ3! %ith correspondin& status profile'

     

    This %ill enable the action to set the status to #technical status name: *!!'

     

    )3 Step 3: Conditions

     

    @n the ne+t step %e need to define a condition for our ne% action) This %ill also be done in the customi?in&,

    startin& %ith transaction S. follo% this path:

    &' ( SAP Solution anager ()apa*ilities +ptional( )hange anagement (Standard

    )onfiguration (Transaction Types ( Action Profile ( $efine )onditions

    #ote:  Another /ay to reach the configuration Screen for PP"-Actions 2 $efinition is to call transaction

    SPP")A$ and mark application )303$#3.

  • 8/16/2019 Change Request Management-chaRM

    5/50

  • 8/16/2019 Change Request Management-chaRM

    6/50

    this case, because our ne% action %ill replace the standard action )

    Therefore %e %ill later need to create a ne% condition for , %hich is then based on

    our ne% status)

    @n the tab you can assi&n a condition %ith the 4"=$alue help)

     

    -hoose the action

  • 8/16/2019 Change Request Management-chaRM

    7/50

     

    The used condition causes that the 4=

     Action ;9H4FATFT*ST is selectable %hile the status #ser Status: *!!!' is set for

    the chan&e document ;9H4)

    @n the details of the condition, you can see the condition definition:

     

  • 8/16/2019 Change Request Management-chaRM

    8/50

     As mentioned abo$e, the ne+t status after in the process should be the e+istin& standard=status

    ) To enable the action %ithin our ne% status, %e need to create a ne% condition and

    assi&n it to the 4 action ;9H4F(.F5@I* as a schedule condition)

     

    )" Step ": Create new condition

     

    Select the action %here you %ant to create a ne% condition #e)&) ') 7ou %ill notice

    that the same condition, as %e ha$e already assi&ned to our custom action, is assi&ned)

    Before %e can start to define a ne% condition, %e need to uncouple the condition by clickin& on the

    button )

     

     After that, to create a ne% condition you need to click on , %hich %ill lead you to the follo%in&

    screen:

     

    *nter a description te+t for the ne% condition and click on ) @n the

    follo%in& user interface, you need to define the technical details for the condition:

     

  • 8/16/2019 Change Request Management-chaRM

    9/50

  • 8/16/2019 Change Request Management-chaRM

    10/50

     As a ne+t step, %e need to further define our condition to make sure the action can only be performed if the

    document contains no errors) To reali?e that, %e need to add another parameter to the condition %hich checks

    that the transaction is error free: )

    4irst %e need to add a lo&ical link, to combine both parameters in a lo&ical e+pression) Since both checks

    shall be fulfilled, %e click on the button in the 5o&ic area)

     

     After that %e can make a double click on the to add this as a parameter)

     

    0o% %e also need to define a operator and a constant for this parameter) /e use and the constant ,%hich means the *rror4ree4la& needs to be eGual to )

  • 8/16/2019 Change Request Management-chaRM

    11/50

    To finish the condition definition, perform a synta+ check and click on the &reen ok button, if e$erythin& is all

    ri&ht)

    This %ill lead you to the o$er$ie% screen a&ain:

     

    0o% %e are able to assi&n this ne% condition to the action)

     

    The created condition causes that the 4=Action

    ;9H4F(.F5@I* is selectable %hile the status #ser Status: *!!' is set for the chan&e

    document ;9H4)

  • 8/16/2019 Change Request Management-chaRM

    12/50

     

    Because the 4=Action should be selectable %hile the status is

    set for the chan&e document, %e also need to adapt the schedule condition of this action)

    -hoose the action ;9H4FT*ST*1FA01F0.TF. and adapt the -ondition by addin& the status *!! as a parameter #similar as abo$e'

     

    The adapted condition causes that the 4=

     Action ;9H4FT*ST*1FA01F0.TF. is selectable %hile the status #ser Status: *!!' is set

    for the chan&e document ;9H4)

  • 8/16/2019 Change Request Management-chaRM

    13/50

     

    ) Step : Define Status Attributes

     

     After %e ha$e created our status, and the correspondin& actions and conditions %e also need to make sure

    the ne% status is reco&ni?ed by the -han&e eGuest 9ana&ement frame%ork) This is reGuired for the system

    lo&on and the te+t lo&, %hich is %ritten %hen processin& the transaction)

    The customi?in& can be done %ith the acti$ity in the @9( of SA Solution 9ana&er:

    &' ( SAP Solution anager( )apa*ilities +ptional ( )hange anagement( Standard

    )onfiguration ( )hange 3e9uest anagement "rame/ork ( $efine Status Attri*utes

    The field specifies the seGuence of the status $alues, ho% they should be processed in the

    strai&ht for%ard process) @f you use the report -9FS.-9FS*I@-*F*.T to tri&&er the ne+t status

    $alue of a transaction type, the field is necessary for this report to reco&ni?e the correct status

    $alue to set) #e)&) 7ou schedule the report on a daily basis, to close all confirmed r&ent -han&es

    automatically'

     

    )6 .ptional: ChaRM Actions & Conditions

     

    Besides the Actions and -onditions of the ost rocessin& 4rame%ork there are also specific -ha9 actions

    and conditions that can be assi&ned to a specific status $alue #e)&) these actions and conditions can be used

    to tri&&er acti$ities re&ardin& the transport mana&ement system'

    7ou can customi?e them $ia the acti$ity :

    &' (SAP Solution anager ( )apa*ilities +ptional( )hange anagement ( Standard)onfiguration ( )hange 3e9uest anagement "rame/ork ( ake Settings for )hange Transaction Types

  • 8/16/2019 Change Request Management-chaRM

    14/50

    The oint %ithin the 1ialo& Structure allo%s you to assi&n specific -ha9=actions to the ne%

    user status *!!:

     

    /ith the oint %ithin the 1ialo& Structure it is possible to assi&n specific -ha9=

    -onditions to the ne% user status *!!)

     

    4or a list of e+istin& -ha9 actions and conditions please check the tables in the p&rade section of this

    &uide more details about each action8condition and its functionality can be found in the short description of

    the action8condition in the system)

  • 8/16/2019 Change Request Management-chaRM

    15/50

    SAP OSS Note 

    OSS stands for Online Service System and as the name implies, the  service is accessible

    thru internet. SAP notes are part of SAP service portal. In simple terms, it is SAP’s

    Knowledge ase that speci!cally addresses "nown issues in SAP system. It is continually

    updated as SAP customers report issues in SAP system and SAP releases note with detailed

    instructions on how to !# $ address the issue.

     

    %ost issues get !#ed when SAP releases ne#t version of the same component and hence it

    is very necessary to see applicability of a note with respect to the version where an issue is

    being addressed. &ach note applies to a version and mostly all its predecessor version.

     

    When to look for SAP Note  In a typical support environment, notes is the !rst place a consultant heads to

    when faced with an issue with SAP standard behavior. 'irst step, when an issue is raised in

    SAP system, is to loo" for the source where the issue is observed. If one succeeds inlocating the code causing issue, SAP notes come into picture if and only if the code where

    the issue is occurring is SAP code. &ven if it is SAP (ode, consultant should do su)cient

    analysis to ensure that there is no custom code that could be disrupting the info *ow for

    regular SAP code li"e thru some user e#it, A+I etc.

     

    Once all custom code errors and data errors are ruled out, consultant can ta"e a !rst level

    uic" search in SAP OSS notes database by "eying in the symptoms.

     

    -ote To access SAP Service place, SAP S-User ID is required. A certifed consultant usually 

    has own S-user ID. However, when we are checin! issues "or a specifc syste# which is

    associated to a client, it is $etter to use S-User ID $y !ettin! it "ro# %ASIS tea#. 

    %any SAP -otes will be retrieved based on the symptoms sorted by relevance. (onsultant

    has to review notes to see if any of the notes are available for the issue faced. Once found,

    chec" for the release versions that the note applies to and ensure that the system where

    issues are observed are same or predecessors. /ater versions will have the issue !#ed.

     

    If no SAP note is obtained, customer can always log an issue with SAP which will be

    addressed by SAP support but these are sub0ect to SAP support contract etc. and hence

    always advised to be done after consulting ASIS support team and ensuring issues are

    logged with customer’s S12ser for which support is available.

     Understanding an SAP NoteAn SAP note is available on SAP support portal but more often downloaded by consultants

    as P+' !le either from SAP Portal or from SAP 3ransaction S-O3&. 3he -ote has the issue

    details followed by the !# to it. 'urther it has certain header level info provided which,

    though appears trivial, is the !rst info that a consultant should loo" for before getting deep

    into it.

     

    SAP Note No.

     3his is the SAP -ote number that uniuely identi!es the note in SAP OSS notes database.

     

    Processing Status

    http://service.sap.com/supporthttp://service.sap.com/supporthttp://service.sap.com/support

  • 8/16/2019 Change Request Management-chaRM

    16/50

     3his applies when viewing note from S-O3&. 'or a note that can be implemented, this

    gives info whether it is completely implemented or not.

     

    Implementation Status

     3his is a critical info for any note. 3his tells if the note contains any code corrections that

    needs to be implemented in SAP system or 0ust contains info and $ or instructions tocircumvent the issue when observed. 3he note that has status 4&an %e I#ple#ented’ is the

    one that has code corrections in it and applying that will resolve the issue. 5ow to apply

    the corrections is discussed in sections below.

     

     3he note that has status 4&annot $e I#ple#ented’ implies that there are no code level

    corrections that can !# the issue. &ither SAP advises to avoid $ ta"e certain practice $ steps

    to ensure the identi!ed error doesn’t occur or 0ust e#plains the system design and why the

    error occurs. &ither ways, there are no code level changes and hence no action reuired

    per the note. -otes of this category are not discussed further in this document.

     

    Short TextSummary of the issue that is being addressed in the note is mentioned here.

     

    Component

     3his speci!ed SAP component that this note applies to. 3his is useful to rule out note usage

    for certain issues 6 for e#ample if the note is for speci!c area and the observed issue is not

    in that area, this info helps to rule out any help from the note. So a note to !# IS1Oil

    component will not be of use if the system is not IS1Oil.

     

    ong Text

     3his section details out the symptoms, often accompanied by an e#ample scenario,

    followed by the details of the error. 

    !eason and Pre"re#uisites

     3his tells why the error occurs and what the conditions that cause the error are. 7hen

    given an issue and analy8e if the note wor"s for it or not, this helps to see if the conditions

    that cause the error are part of the issue ma"ing it a valid scenario for note.

     

    Solution

     3his outlines and then details out the solution approach. 'or a note that can be applied,

    this is a list of codes that need to be updated followed by the code that has to be

    added$deleted$changed.

     $alid !eleases

     3his is very critical. SAP clearly mentions the component version for which the note is

    applicable. 3he reason 6 SAP will !# "nown issues in future release and hence the issue

    described will only be observed in speci!ed versions or earlier versions. %ore often,

    consultants end up digging up notes that are irrelevant because the notes are for older

    versions. 3his ta"es the issue o9 the focus as we tend to assume it is SAP (ode issue than

    to loo" for real cause. 5ence this has to be carefully chec"ed before wor"ing on the note

    details.

    a. e.g.

     

  • 8/16/2019 Change Request Management-chaRM

    17/50

     

    Implementing NotesIn simple terms, SAP notes are correction instructions from SAP for "nown issues in SAP

    system. 3he corrections can be mainly categori8ed into two categories 6 Implementable

    and -on1Implementable. A note’s header section clearly mentions out if the note can beimplemented or not.

     

    If it is an implementable note, !rst, go to transaction S-O3&.

     

    (lic" search button on top and enter the note number. If the note is already downloaded,

    system will point to it. &lse, there is one additional step to download it.

     

    If note is already available, ensure it is latest by clic"ing on 4+ownload /atest version’ frommenu as shown below.

     

    A. 3o download a note, go to menu option :o 3o ; +ownload SAP -ote.

     

    http://scn.sap.com/servlet/JiveServlet/showImage/102-46480-1-281700/4.pnghttp://scn.sap.com/servlet/JiveServlet/showImage/102-46480-1-281699/3.pnghttp://scn.sap.com/servlet/JiveServlet/showImage/102-46480-1-281695/2.pnghttp://scn.sap.com/servlet/JiveServlet/showImage/102-46480-1-281694/1.png

  • 8/16/2019 Change Request Management-chaRM

    18/50

     

    &nter the note number and e#ecute to download.

     

    Once downloaded, search for note again and then double clic" note number to navigate to

    note details screen.

     

    It is easy to notice various icons ne#t to note numbers. 3hey visually indicate

    implementation status for each note. 3he grey diamond indicates that note cannot be

    implemented. A play button indicates note can be implemented.

     

    -otes that can be implemented, the best way to implement is thru S-O3&.

     

     3hru S-O3&, we can chec" the implementation status of each SAP note. If the note says

    4(an be implemented’, then after ensuring that the note is reuired and can !# the issue,

    clic" e#ecute button on top. System applies the note and updates the status whether the

    note was successfully implemented or not.

     

     3he code correction technical details can be obtained from the info tree on left. Select

    folder 4(orrections’ and e#pand it. It lists the code corrections that will be done to !# the

    http://scn.sap.com/servlet/JiveServlet/showImage/102-46480-1-281703/8.pnghttp://scn.sap.com/servlet/JiveServlet/showImage/102-46480-1-281702/7.pnghttp://scn.sap.com/servlet/JiveServlet/showImage/102-46480-1-281701/6.png

  • 8/16/2019 Change Request Management-chaRM

    19/50

    issue. &ach correction mentions a code section from system followed by code changes in

    terms of insertion of code, commenting everting note changes in this case is to again edit the code and put bac" old version,

    preferable from a system where the code is not altered or from a bac"up system.

     

    Trou)leshooting 3hings can go wrong when implementing SAP -ote. 3here are many ways to trouble shoot.

    Please note that the best way is to uninstall, if allowed, and apply again.

     

    Other way is to perform a code comparison and see which sections of the code were

    changed. -ow pull up the advised code changes from SAP -ote 6 corrections folder and see

    what’s gone wrong and apply the changes manually.

     

    +est practices (hile implementing an SAP NoteAs we all "now SAP clearly identi!es SAP’s own code and customer’s code and treats them

    totally di9erent. 3he SAP code was developed by SAP A: and is hence maintained by only

    http://scn.sap.com/servlet/JiveServlet/showImage/102-46480-1-281705/9.png

  • 8/16/2019 Change Request Management-chaRM

    20/50

    SAP. 7hen a code correction is applied per a note, the code that is a9ected is considered

    as altered.

    Applying is SAP note is an easy tas" but there are certain best practices that can "eep you

    safe and revert system in case the note doesn’t wor" or issues occur.

     

    •&nsure note applies to the current version of system

    • Prefer S-O3& application than manual application

    • (reate a bac"up copy of the code before applying note

    • 7hen applying manual note changes, clearly document the code changes so that it

    can be reverted if issues occur

    • -ever attempt to add any code other than what is in note when applying note

    manually.

    • -ever attempt to alter code $ write code in own naming convention etc. than what

    is mentioned in note.

    • 7hen applying note automatically, ensure that the 3>s euests= are

    ready or the I+ thru which note is being applied has su)cient rights to create 3>s.

     -otes are to !# issues but are still (O+& (5A-:&S. 5ence the functionalities need to be

    thoroughly tested after note application no matter how trivial the change is.

    Sap Route Guide Lines:

    INT!O/UCTION&

    I found a lot of notes and documents when i wanted to con!gure saprouter. 5ere i

    would li"e to collaborate all how1to?s into a single document.

    SAProuter is "ind application level !rewall, allows your SAP servers to be accessed

    globally in a secured way. -owadays it is a basic reuirement for every customer

    who uses Solution manager for getting support from SAP. 'ollowing are the

    situations where you need SAP>outer. 

    @. ou want your users access SAP server out of /A- without having BP- .

    C. ou want to get support from SAP.

    D. ou are planning to implement SAP Solution manager.

    E. ou want to download SAP notes and corrections via snote assistant

     

     3his document is targeted for those who have following environment.

    OS platform 7indows CFFG or higher

  • 8/16/2019 Change Request Management-chaRM

    21/50

     

    E. +ownload latest version of SAP>outer from support portal.

      P3O/I=

     

    . +ownload latest version of SAP(A> to e#tract the above downloaded software.

     

  • 8/16/2019 Change Request Management-chaRM

    22/50

      c. ou would get a certi!cate outer will shutdown.

    7e can avoid this by registering SAProuter as windows service, so that it can run

    on bac"ground

    !egistering SAProuter as Windo(s ser-ice&

    @. open command prompt as administrator, and navigate to LdirJsaprouterM

    C. e#ecute following commands as it is. >eplace the LpathM with your saprouter

    directory path and :*our distinguished nameD

      sc.exe create SAP!outer )inPath9 :pathD;saprouter.exe ser-ice "r "S

    B244 "W 67777 "!:pathD;saproutta) "G Hp&:distinguished nameDH 

    e#ample sc.e#e create SAP>outer binPath

    +QusrQsapQsaprouterQsaprouter.e#e service 1r 1S DC 17 FFFF 1>

    +QusrQsapQsaprouterQsaprouttab 1K Rp(-e#ample, O2FF@CDEN,

    O2SAProuter, OSAP, (+&R

  • 8/16/2019 Change Request Management-chaRM

    23/50

    D. ou would get an output saying service SAP>outer created successfully.

    E. Open regedit.e#e and edit the string ImagePath under following location.5K&J/O(A/J%A(5I-&QSS3&%Q(urrent(ontrolSetQServicesQ saprouter

    N. >eplace H with  and clic" OK. 3he updated value should loo" li"e below

      *pathQsaprouter.e#e service 1r 1S DC 17 FFFF 1>*pathQsaprouttab

    1K p(-e#ample, O2FF@CDEN, O2SAProuter, OSAP, (+&

    . -ow open services right clic" SAP>outer and choose properties. clic" on

    /og On tab and choose 3his account.  3ype the user I+ created for con!guring saprouter untime Analysis

    • Performance Analysis

    • +ump Analysis

    • %emory Inspector

    !untime Anal*sis

    One tool, the AAP >untime Analysis

  • 8/16/2019 Change Request Management-chaRM

    24/50

    AAP 3race to identify performance1intensive sections of your AAP application.3his weblog

    e#plains the basics of the AAP 3race with a focus on performance. After you have read the

    blog, you?ll be ready to !nd the critical performance bottlenec"s in your AAP program.

     3he AAP >untime 3race

  • 8/16/2019 Change Request Management-chaRM

    25/50

    7ou could of course start the ABA 1ebu&&er and try to debu& in sin&le step) And then after hours or

    %eeks of intensi$e debu&&in& you mi&ht be lucky enou&h to find the source code line of the ABA

    statement) But %hy %aste timeM Here is ho% to use the ABA untime Analysis to find this error

    messa&e in a couple of minutes)

     

    @f you press OMO button or click on the status bar near the error messa&e, you %ill see the 4 help on the

    messa&e, in the performance assistant) This tells informs you that the number of the error messa&e is

    1S!P) Therefore you ha$e to look for the Omessa&e 1S!PO:

     

    To find the messa&e, first start the ABA untime Analysis and create a measurement $ariant)

    @. Start the AAP >untime Analysis

  • 8/16/2019 Change Request Management-chaRM

    26/50

    • Switch on Particular units on the Pro!ra#7Parts8 tab

    • Save your variant

    Before %e &o on, some important notes)

    • /onLt use aggregation if *ou (ant to trace A+AP in order to follo( the

    program logic 

  • 8/16/2019 Change Request Management-chaRM

    27/50

     

    Step back to the untime Analysis and analy?e the trace results:

    @. Press the valuate button.

    C. Press the &all Hierarchy  button and you get a list which represents the complete

    path through your program.

    D. Search for message +SF@H in the &all Hierarchy  list.E. +ouble1clic" on the entry in the &all Hierarchy  list to 0ump to the source code line,

    which initiated the error message.

    http://scn.sap.com/servlet/JiveServlet/showImage/38-51785-62590/se30_msgrun.jpg

  • 8/16/2019 Change Request Management-chaRM

    28/50

    % How to trace a long running .atch /o.+ 

    0o% ima&ine the follo%in& situation) 7ou are the administrator of a production system, and you

    encounter in the rocess .$er$ie% #transaction sm!' a batch process, %hich already has been runnin&

    se$eral days and has been selectin& data from a database table) This process is blockin& other

    back&round Nobs and you ha$e to find out %hat this process is actually doin&:

     

    http://scn.sap.com/servlet/JiveServlet/showImage/38-51785-62592/se30_process_overview.jpghttp://scn.sap.com/servlet/JiveServlet/showImage/38-51785-62591/se30_callhierarchy.jpg

  • 8/16/2019 Change Request Management-chaRM

    29/50

     

    7ou can find this out $ery easily %ith the ABA untime Analysis) 7ou can use the ABA untime

     Analysis #S*3!' to trace pro&rams %hich are runnin& in a parallel session)

    @. 0nsure that *ou run S0B7 on the same ser-er as the running processF

    C. ou must create or ad0ust a trace variant for tracing the parallel process. Set

    aggregation to 5one again to get the &all Hierarchy .D. Press the Switch :n0:9  button to trace processes running in a parallel session.

     3he >untime Analysis displays a list of the running processes similar to the Process

    :verview 

  • 8/16/2019 Change Request Management-chaRM

    30/50

     

    0% How to trace H11P2R3C requests or *rocesses of other users+ 

    There are also often situations %here you need to trace HTT or 4- reGuests or processes of other

    users) 5et me &i$e you some e+amples)

    @ma&ine there is an online fli&ht bookin& system) @f a user %ants to reser$e a fli&ht, his HTT reGuestarri$es in your backend system) And you need to trace the reser$ation process %hich is runnin& in your

     ABA backend system) @n such case you donQt kno% %hich ABA backend process handles %hich

    HTT reGuest and ha$e no idea %hen the HTT reGuest %ill reach your ABA backend system)

    Therefore it is difficult to capture such a reGuest for debu&&in& in the appropriate ABA backend

    process)

     

     Another &ood e+ample %ould be freGuent 4- reGuests %hich reach your ABA system and last only

    se$eral hundred milliseconds) @t is Guite hard to trace such short=li$ed reGuests) 9aybe you also ha$e to

    deal %ith a batch Nob that runs under another user, %hich al%ays starts at a different time and aborts

    sporadically %ith a short dump) Ho% can you trace somethin& like thisM

     The ABA untime Analysis #S*3!' pro$ides an ans%er) @t lets you schedule a trace for any user on the

    current ser$er)

    @. Start AAP >untime Analysis

  • 8/16/2019 Change Request Management-chaRM

    31/50

    • 'ternal session 

  • 8/16/2019 Change Request Management-chaRM

    32/50

    The S1 Trace ST7EJ 1uick and 0as*

     Using the 45 1racesin& the SL5 trace is $ery strai&htfor%ard:

    @. (all the SU/ trace in a second mode

    C. %a"e sure that your test program was e#ecuted at least once, or even better, a few

    times, to !ll the bu9ers and caches. Only a repeated e#ecution provides reproducible trace

    results. Initial costs are neglected in our e#amination

    D. Start the trace

    E. ecute your test program in the !rst mode

    N. Switch o9 the trace. Note' that onl* one S1 trace can )e acti-e on an

    application ser-er' so al(a*s s(itch *our trace o immediatel* after *our are

    @nished.

    . +isplay the trace results

    H. Interpretation of the results

    0ote, the trace can also be s%itched on for a different user)

    9D In this section (e sho(ed ho( the S1 trace is executed. The execution is

    -er* straightfor(ard and can )e performed (ithout an* prior kno(ledge. The

    http://scn.sap.com/community/abap/testing-and-troubleshooting/blog/2007/09/05/the-sql-trace-st05-quick-and-easyhttp://scn.sap.com/servlet/JiveServlet/showImage/38-44587-50355/SDN2_Trace_Open.jpghttp://scn.sap.com/community/abap/testing-and-troubleshooting/blog/2007/09/05/the-sql-trace-st05-quick-and-easy

  • 8/16/2019 Change Request Management-chaRM

    33/50

    interpretation of the results' ho(e-er' re#uires some experience. %ore on the

    interpretation (ill come in the next section.

    "% 1race Results 6 1he 7,tended 1race 5ist

     

    /hen the trace result is displayed the e+tended trace list comes up) This list sho%s all e+ecutedstatements in the order of e+ecution #as e+tended list it includes also the time stamp') .ne e+ecution of

    a statement can result in se$eral lines, one *.*0 and one or se$eral 4*T-H*S) 0ote that you also

    ha$e *A* and .*0 lines, but you should not see them, because you only need to analy?e

    traces of repeated e+ecutions) So, if you see a *A* line, then it is better to repeat the

    measurement, because an initial e+ecution has also other effects, %hich make an analysis difficult)

    @f you %ant to take the Guick and easy approach, the e+tended trace list is much too detailed) To &et a

    &ood o$er$ie% you %ant to see all e+ecutions of the same statement a&&re&ated into one line) Such a

    list is a$ailable, and can be called by the menu RTrace ist "D Summar* )* S1 Statements)

    9D The extended trace list is the default result of the S1 Trace. It sho(s a lot of 

    and -er* detailed information. =or an o-er-ie( it is much more con-enient to

    -ie( an aggregated list of the trace results. This is the Summaried S1Statements explained in the next section.

    % 1race Results - ummaried 45 tatementsThis list contains all the information %e need for most performance tunin& tasks)

    The keys of the list are R.bN 0ame #col) 2', i)e) table name, and RSL5 Statement #col) 3') /hen usin&

    the summari?ed list, keep the follo%in& points in mind:

    • Several coding positions can relate to the same statement

    •  3he statement shown can di9er from its Open SU/ formulation in AAP.

    •  3he displayed length of the !eld 4Statement’ is restricted, but sometimes the

    displayed te#t is identical.

    • In this case, the statements di9er in part that is not displayed.

    The important measured $alues are R*+ecutions #col) ', R1uration #col) 3' and Records #col) "') They

    tell you ho% often a statement %as e+ecuted, ho% much time it needed in total and ho% many records

    http://scn.sap.com/servlet/JiveServlet/showImage/38-44587-50357/SDN2_Trace_Summary_s.jpghttp://scn.sap.com/servlet/JiveServlet/showImage/38-44587-50356/SDN2_Trace_List_s.jpg

  • 8/16/2019 Change Request Management-chaRM

    34/50

    %ere selected or chan&ed) 4or these three columns also the totals are interestin&E they are displayed in

    the last line) The other totals are actually a$era&es, %hich make them not that interestin&)

    Three columns are direct problem indicators) These are R@dentical #col) 2', RBfTp #col) !', i)e) buffer

    type, and R9inTime8) #col) ', the minimal time record)

     Additional, but less important information is &i$en in the columns, RTime8e+ec #col) ', Rec8e+ec #col) 6',

    RA$&Time8) #col) P', R5en&th #col) C' and RTabType #col) ') 

    4or each line four functions are possible:

    •  3he magnifying glass shows the statement detailsT these are the actual values that

    were used in the e#ecution. In the summary the values of the last e#ecution are displayed

    as an e#ample.

    •  3he 4++I( information’ provides some useful information about the table and has

    lin"s to further table details and technical settings.

    •  3he 4plain’ shows how the statement was processed by the database,

    particularly which inde# was used. %ore information about 4plain’ can be found in the

    last section.

    •  3he lin" to the source code shows where the statement comes from and how it

    loo"s in OP&- SU/.

    9D The Statement summar*' (hich (as introduced here' (ill turn out to )e a

    po(erful tool for the performance anal*sis. It contains all information (e need in

    a -er* condensed form. The next section explains (hat checks should )e done.

     

    0% Checks on the 45 tatements4or each line the follo%in& columns should be checked, as tunin& potential can be deduced from the

    information they contain) Select statements and chan&in& database statements, i)e) inserts, deletes and

    updates, can beha$e differently, therefore also the conclusions are different)

    4or select statements please check the follo%in&:

    • 0ntr* in M+fT* 9 Wh* is the )uer not used

     3he ta$les which are $u9ered, i.e. with entries 4ful’’ for fully bu9ered, 4gen’ for bu9ered by

    generic region and 4sgl’ for single record bu9er, should not appear in the SU/ 3race,

    because they should use the table bu9er. 3herefore, you must chec" why the bu9er was

    not used. >easons are that the statement bypasses the bu9er or that the table was in the

    bu9er during the e#ecution of the program. 'or the ta$les that are not $u9ered, but could

    be bu9ered, i.e. with entries starting with 4de’ for deactivated

  • 8/16/2019 Change Request Management-chaRM

    35/50

    customi8ing and set1up of the system is not correct. Sometimes 4-o record found’ is

    e#pected and used to determine program logic or to chec" whether "eys are still available,

    etc. In these cases only a few calls should be necessary, and identical e#ecutions should

    absolutely not appear.

    • Qigh entries in M0xecutions or M!ecords 9 !eall* necessar* 

    5igh numbers should be chec"ed. &specially in the case of records, a high number here canmean that too many records are read.

    4or chan&in& statements, errors are fortunately much rarer) Ho%e$er, if they occur then they are often

    more serious:

    • 0ntr* in M+fT* 9 Wh* is a )uered ta)le changed

    If a changing statement is e#ecuted on a bu9ered statement, then it is uestionable

    whether this table is really suitable for bu9ering. In the case of bu9ered tables, i.e entries

    4ful’, 4gen’ or ’sgl’’, it might be better to switch o9 the bu9ering. In the case of bu9erable

    tables, the deactivation seems to be correct.

    • 0ntr* in MIdentical 9 Identical changes must )e a-oided

    Identical e#ecutions of changing statements should de!nitely be avoided.

    •0ntr* in M%inTime,! larger than 27.777 9 Changes can take longer 

    Same argument as above 0ust the limit is higher for changing statements.

    • 0ntr* in M!ecords e#ual ero 9 A change (ith no eect

    (hanges should also have an e9ect on the database, so this is usually a real error which

    should be chec"ed. 5owever, the AAP modify statement is reali8ed on the database as an

    update followed by an insert if the record was not found. In this case one statement out of

    the group should have an e9ect.

    • Qigh entries in M0xecutions and M!ecords 9 !eall* necessar* 

    Same problems as discussed above, but in this case even more serious.

    9D In this section (e explained detailed checks on the statements of the S1

    Statement Summar*. The checks are slightl* dierent for selecting and changing

    statements. The* address #uestions such as (h* a statement does not use theta)le )uer' (h* statements are executed identicall*' (hether the processing is

    slo(' (h* a statement (as executed )ut no record (as selected or changed' and

    (hether a statement is executed too often or selects too man* records.

    8% Understanding the 9ata.ase 7,*lainThe Rdatabase e+plain should sho% the SL5 statement as it &oes to the database, and the e+ecution

    plan on the database) This $ie% has a different layout for the different database platforms supported by

    SA, and it can become Guite complicated if the statement is complicated)

  • 8/16/2019 Change Request Management-chaRM

    36/50

    @n this section %e sho% as an e+ample the R*+plain for a rather simple inde+=supported table access,

    %hich is one of the most common table accesses:

    @. 3he database starts with step @, inde# uniue scan ++FC/VF, where the three

    !elds of the where1condition are used to !nd a record on the inde# ++FC/VF

  • 8/16/2019 Change Request Management-chaRM

    37/50

    that de$elopers often donQt e$en read dumps = not e$en the hi&hly useful rror  analysis = much less

    make use of the dia&nostic resources that short dumps offer)

     

    The lack of attention to short dumps is understandable but re&rettable)

    nderstandable because the report that your pro&ram is dumpin& in a customer system is about the

    %orst ne%s you can &et) @tQs time to drop e$erythin& and s%itch to emer&ency mode)e&rettable, because often de$elopers %ho donQt take a &ood look at the short dump %aste a lot of time

    thrashin& around in the debu&&er, tryin& to understand %hat %ent %ron&) Takin& a &ood look at the short

    dump is usually a better use of your time) And then there are the situations in %hich the dump is the only

    dia&nostic resource that you ha$e = %hen the dump occurred in a production system and is too sensiti$e

    to repeat, %hen the dump occurred se$eral hours after the back&round Nob started, and so on)

    @n this pair of %eblo&s, %e %ill take a Guick tour throu&h the ABA short dump as of 0et/ea$er elease

    P)! *H, pointin& out important analytic aids that it offers and ho% to make the best use of them)

    @n the first %eblo&, %e %ill Nust &et ready to analy?e a dump) The %eblo& looks at the ABA dump lists

    and ho% to &et the most out of them, as %ell as at a couple of related sources of information)

    O to the /ump

    @f you arenQt starin& at a short dump on the screen in front of you, then the %ay to see any ABA shortdumps in your system is by startin& transaction ST22) As standard selections, ST22 lets you list dumps

    from yesterday and today, but also lets you select dumps by user, date and other parameters)

    Adding Information to the ist of Selected !untime 0rrors

    @t is natural to %ant to hurry ri&ht to the display of a dump that you need to in$esti&ate) But hold on =

    ha$e you e$er noticed those three useful little options at the bottom of the ST22 start screenM 7ou

    mi&ht %ant to take a look at them before you rush off into a list of short dumps)

     

    By default, the options are not set) But:

    6ith in"or#ation on 'ception0Short Te't o" unti#e rror  e+tracts the data pro$ided by the

    e+ception obNect, if a class=based e+ception tri&&ered the dump) The display of the e+ception obNect

    may sho% you useful information, such as the e+ceptionQs error messa&e) @f the initial e+ception %as

    cau&ht by another e+ception, then you can see the chain of e+ceptions)

    https$$weblogs.sdn.sap.com$weblogs$images$CN@GCG$blogJstCCJe#ceptionJchainJscale

    d.0pgWheightDCWaltimageWwidthHFFW

    srchttps$$weblogs.sdn.sap.com$weblogs$images$CN@GCG$blogJstCCJe#ceptionJchainJs

    caled.0pgWborderF

    !))

    The pro!ra# a9ected and Pro!ra# and associated application co#ponents 7lon!

    runti#e8 options add information to the Bist o" Selected unti#e rrors) The name of the pro&ram

    in %hich the dump occurred is sho%n) Just as importantly, the list displays the component #B-=--9=

    9.0, or 4@=KKK=777 or %hate$er' in %hich the dump occurred, if it can be found)

    Sometimes the pro&ram and component may be misleadin&, if an application problem tri&&ers a dump

    some%here in infrastructure codin&) But often, you can search for notes %ith the pro&ram and

    component) #The How to correct the error  section in the dump lon& te+t sho%s a more e+tensi$e list

    of possible search terms)'

     

    @f you need to %rite an .SS messa&e to SA, you kno% the component in %hich to file the messa&e)

     

    https://weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cheight=326%7Calt=image%7Cwidth=700%7Csrc=https:/weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cborder=0https://weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cheight=326%7Calt=image%7Cwidth=700%7Csrc=https:/weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cborder=0https://weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cheight=326%7Calt=image%7Cwidth=700%7Csrc=https:/weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cborder=0https://weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cheight=326%7Calt=image%7Cwidth=700%7Csrc=https:/weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cborder=0http://scn.sap.com/servlet/JiveServlet/showImage/38-51421-61968/blog_st22_start_options.jpghttps://weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cheight=326%7Calt=image%7Cwidth=700%7Csrc=https:/weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cborder=0https://weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cheight=326%7Calt=image%7Cwidth=700%7Csrc=https:/weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cborder=0https://weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cheight=326%7Calt=image%7Cwidth=700%7Csrc=https:/weblogs.sdn.sap.com/weblogs/images/251686928/blog_st22_exception_chain_scaled.jpg%7Cborder=0

  • 8/16/2019 Change Request Management-chaRM

    38/50

    @f the component is not sho%n or you think that the component sho%n is misleadin& #the dump %as

    finally tri&&ered in infrastructure code', then you can find the component for an .SS messa&e by

    follo%in& the path from the suspect pro&ram #for e+ample, from the Active &alls0vents section' to the

    packa&e of the pro&ram to the component) @n S*!, &o from the attributes of the pro&ram to the

    packa&e) @n the packa&e, the component is displayed)

     Sur-e*ing the Scene of the /isaster7ouQ$e set those useful dump list options) 0o% you %ant to &et on %ith lookin& at that dump)

    But once a&ain = %ait *specially if you are %orkin& on an ill=defined problem = you donQt ha$e a really

    &ood idea of %hat caused the dump = then it is %ise to take a &ood look around the scene of the disaster 

    before plun&in& into the details) .ther%ise, you may miss $ital clues to e+ternal factors that contributed

    to or e$en caused your dump)

    Start your sur$ey %ith the dump lists that ST22 offers, %hich offer useful information to the keen=eyed

    in$esti&ator)

    The ist of Selected !untime 0rrors

     

    The main dump display is the Bist o" Selected unti#e rrors) Just click on Today  on the ST22 startscreen to take a look at current short dumps)

     

    The list of may look somethin& like the screen shot belo%) #This is from a system that is dumpin& Guite

    busily = a headache for the L9s)'

     

     As you look at the list of dumps, ask yourself these Guestions:

    !)) @s your dump a mass phenomenonM

    !)2) /hen did the trouble %ith the dumps startM

    !)3) 1oes the dump occur on only one ser$erM .r for one userM .r for one pro&ramM

    !)") /hat other dumps occurred around the same time as your dumpM Are there si&ns of system or

    database problems or problems in components %hich your pro&ram usesM

    @f your dump is a mass phenomenon, then you %ant to kno% this as Guickly as possible @f there are

    patterns in the list of short dumps, then you %ant to find these, because they could si&nal that your

    dump is part of some lar&er problem %ith the system or one of its components)

    The /ump O-er-ie(

     

    http://scn.sap.com/servlet/JiveServlet/showImage/38-51421-61969/blog_st22_list_of_dumps_scaled.jpg

  • 8/16/2019 Change Request Management-chaRM

    39/50

     As you look at the Bist o" unti#e rrors abo$e, you may ha$e the feelin& that you canQt see the

    forest for the trees) There are so many dumps) They are clustered by type, but none of the sets of

    dumps seem likely to share causal e+planations or to fit the Nournalistic Guestions posed abo$e) /hatQs

    &oin& onM

     

    @n cases like this, the more orderly $ie% of dump traffic offered by the :verview function may help)

     

    -hoose Coto - :verview from the ST22 start screen) Skip o$er the follo%in& selection screen

    %ith 'ecute) The system sho%s you %hat has been dumpin& in the system, sorted by dump

    cate&ory)

    The foci of dump acti$ity make it clearer %hat is &oin& on in the system) 4irst, the

    5.A1F.(A9F5.ST short dumps tell us that %e are in a de$elopment system, in %hich

    infrastructure source code #in this case' is bein& chan&ed on the fly)

    The 0-A(HTF*K-*[email protected] and .BJ*-TSF.BJ*4F0.TFASS@(0*1F0. may indicate that the

    de$elopers ha$e not cleanly implemented some pro&rams as yet) .r perhaps some particular pro&ram

    or component is not %orkin& Guite ri&ht) The scatterin& of dump acti$ity amon& unrelated pro&rams is in

    this case also e+plained by the fact that the system is apparently a de$elopment system) 4or a closer

    look, a double=click on one of the entries in the list selects the rele$ant short dumps for display)

    The ABA AS defines more than 6!! short dumps, all documented in lo$in& detail by the kernel

    de$elopers %ho are responsible for them) Some of these = the Rusual suspectsQ in the parlance of the

    film R-asablancaQ = already indicate to the sa$$y in$esti&ator that somethin& other than an ABA error is

    at play in the system) A list of the usual suspects mi&ht include these short dump @1s:

    Short +ump I+ (ause and Signi!cance

    SS3&%J(O>&J+2%P&+ 3he operating system sent the wor" process a signal. Perhaps

    the computer was shut down or the process was e#plicitly

    http://scn.sap.com/servlet/JiveServlet/showImage/38-51421-61970/blog_st22_dump_overview.jpg

  • 8/16/2019 Change Request Management-chaRM

    40/50

    "illed, perhaps a serious OS error occurred.

    -o analysis or correction on the AAP side is possible or

    necessary. 3he system core dump is prima facie evidence that

    other dumps occurring around the same time are related either

    directly or indirectly to the core dump.

    +A3AS&3J(A-3J(/OS&

    +A3AS&3J(A-3JOP&-

    +A3AS&3J-O3JOP&-

    A !le system error has occurred. Perhaps the !le system is full,

    perhaps the !le or directory did not e#ist.

    %ost li"ely a !le system or con!guration problem has caused

    the dump. (hec" the !le system with S3F or with OS tools.

    I-(/J-O3J&-O2:5JPA:I-

    :

    I-(/J-O3J&-O2:5JPXA

    I-(/J-O3J&-O2:5J>O//

     

    9*9.7F :,pD:,tdD:td (idth923

  • 8/16/2019 Change Request Management-chaRM

    41/50

    One %ore /etour7ouQ$e looked at the dump lists) erhaps you ha$e taken a look at your dump as %ell) And you still arenQt

    sure %hat has &one %ron&) .ne more detour = to the System 5o& = often pro$ides additional useful

    clues before you finally &et to the dump)

    7ou need to kno% the application ser$er on %hich the dump occurred, %hich you can &et from the dump

    lists) Start the Sys5o& #transaction S92' on the application ser$er on %hich the dump occurred)4ind your dump in the system lo&) As a search term %ith -T5=4, Rshort dumpQ is useful) #Be a%are that

    the system lo& %rites on a circular file, so the report of your dump can be o$er%ritten) Sa$e the file if it

    is useful to you by do%nloadin& it)' Then look for e$ents before = e$en %ell before = your dump and for

    si&nificant e$ents thereafter)

    The /e-eloper Traces@f e$en the System 5o& has not helped you to understand the dump, then you may need to look

    e$en further afield for more clues as to %hat %ent %ron&) @n this situation, the ABA de$eloper traces

    may help you to find the missin& clues)

     

    The de$eloper trace is the lo& that each kernel component #%ork processes, messa&e ser$er, &ate%ay,

    and so on' %rites) *$en in the standard settin&, it offers a detailed trace of the acti$ity of each kernelcomponent, %hereby in the case of an ABA dump in most cases only the %ork process traces are

    useful) A %ork process de$=trace is %ritten by each indi$idual %ork process in an ABA instance) To

    access the de$=trace, you therefore need both the name of the instance and also the number of the

    %ork process in %hich the dump occurred) 4ortunately, the Selected Bist o" unti#e rrors sho%s

    both items of information, in the Application Server  and 6P Inde'  fields, respecti$ely) is the %ork

    process number that you found in field 6P Inde' ) There is a current de$=trace file, %hich %as started

    %hen the instance %as started, as %ell as a de$F%The dump you %ant is older than todayM The ABA

     AS re&ularly reor&ani?es dumps) By default, all dumps are deleted at the latest after se$en days) But

    donQt &i$e up) *nter the start and end dates in %hich you are interested in :wn selection on the ST22

    start screen) .ften, especially if the system has not been dumpin& much, dumps up to a %eek old are

    still accessible)

    The first part of this %eblo& did not Guite mana&e to open a short dump as of elease 0/!"s P)! *H

    for display) @nstead it re$ie%ed %ays to e+tract conte+tual information from the short dump lists and

    else%here)

    @n this second part of the %eb lo& %e, in the %ords of /) -) 4ields, &rab the bull by the tail and face the

    issue) @n a short dump, you %ant to ans%er these primary Guestions:

    • 7hat e#actly happenedY

    • 7here did it happenY

    5ow can the problem be correctedY/e %ill look at the dia&nostic information and aids that the short dump offers for ans%erin& these

    Guestions)

    3rom the 1o*: 1he Conte,t of the 7rror 7ou ha$e finally made it into one of the ABA short dumps) 7ouQll see a display that looks Guite similar to

    this one)

  • 8/16/2019 Change Request Management-chaRM

    42/50

    9aybe the Short te't  , 6hat happened, rror Analysis, and Source &ode 'tract  %ill be enou&h

    to let you dia&nose and correct the problem) ThatQs often the case %hen a dump %as caused by a

    relati$ely stupid pro&rammin& error) But letQs take it from the top and see %hat dia&nostic help the short

    dump offers, Nust in case)

    1he hort 9um* Heading

    .n a bold red back&round at the top of e$ery dump you %ill find the short dump @1 and the date and

    time at %hich the dump occurred) To&ether %ith the Application Server  and the 6P Inde'  from the

    dump list, you ha$e all the information that you need to look for rele$ant messa&es in the ABA System

    5o& or 1e$eloperQs Trace #see art @ of this %eblo&')

    @f an e+ception occurred and the runtime error %as cacheable, the e+ception that caused the dump is

    also sho%n)

    To&ether %ith the pro&ram name #;SF-.95*T*F4L10S' from 6hat happened, you also

    already ha$e enou&h information to search for a rele$ant .SS note) The combination of dump @1 or

    e+ception name and pro&ram name should find the ri&ht note, if it e+ists) 7ouQll also find a more

    e+tensi$e list of search terms for the .SS in the How to correct the error  section in the dump)

    1he 'stem 7nironment: Conte,t ;nformation and &here 9id 1hat R3C ctuall' Come3rom+

    7ou probably skip o$er the conte+t information presented under Syste# nviron#ent ) But there are

    some %orth%hile nu&&ets of information in there)

    @f you plan to search for .SS notes and messa&es, then you %ill need the system release and S

    le$els, kernel patch le$el, and other facts on the Rscene of the crimeQ to see %hether notes or messa&es

    fit your problem) @f you plan to open an .SS messa&e for SA, then you can simply sa$e and attach the

    entire short dump) #4rom the dump display in ST22, choose System =U 5ist =U Sa$e =U 5ocal file)' That

    should help Support to respond Guickly to the problem)

    @f you are analy?in& the problem yourself, then here are three important bits of information:

    • At the bottom of the Syste# environ#ent  list, you?ll !nd a compact overview of the

    memory usage of the program at the time that it dumped. If you see that the program has

    allocated heap memory, then chec" to see in sectionIn"or#ation on where ter#inated to

    see if the program was started in a bac"ground 0ob. If the program was notrunning as a

    bac"ground 0ob, then you might want to ta"e a loo" at the memory consumption of the

    http://scn.sap.com/servlet/JiveServlet/showImage/38-51452-61989/blog_st22_system_environment.jpghttp://scn.sap.com/servlet/JiveServlet/showImage/38-51452-61988/blog_st22_dump_start_scaled.jpg

  • 8/16/2019 Change Request Management-chaRM

    43/50

    program in the +ebugger with the %emory Analy8er or with the AAP >untime

    Analysis '( server, then the Server-Side

    &onnection In"or#ation tells you where the >'( call came from. ou can then !nd the short

    dump on the caller side, which may help you to understand the server1side dump.

     And of course, the opposite is true) 4rom a dump on the client side of an 4- interaction, you can find

    out %here the call %ent)

    &hat Ha**ened 7,actl': hort 1e,t< &hat Ha**ened< 7rror nal'sisThe key Guestion is: %hat happened e+actlyM 7ou need to understand the problem in detail to be able

    to correct it) 4or this understandin&, the Short te't , 6hat happened, and rror analysis sections

    are in$aluable)

    The Short te't  states %hat happened in a sin&le line) @n our 9.I*[email protected]./*1F0.1ATA

    dump #abo$e', the short te+t is this:

    http://scn.sap.com/servlet/JiveServlet/showImage/38-51452-61990/blog_st22_rfc_information.jpg

  • 8/16/2019 Change Request Management-chaRM

    44/50

    @nterestin& = so @Qm tryin& to o$er%rite a constant in my pro&ramM

    The 6hat happened section of this dump adds the name of the pro&ram in %hich the error occurred)

    @n the screen shot abo$e, the identification of the faulty pro&ram is Guite simple, since @ %as too la?y to

    %rite a faulty method that perhaps resided in a separate include) But you may see more complicated

    e+planations of the location of the error like this:

    • The ter#ination occurred in the A%AP pro!ra# /SAPBS4I>/ in

    /4I>+%&+BA5CU+ADD/. The #ain pro!ra# was SAPBS+I>C+T::B+E. The ter#ination

    occurred in line 112 o" the source code o" pro!ra# BS4I>=EF . In this case, SAP/SBI% is the

    current program, in which the dump occurred, and the SAP/ pre!# indicates that we are

    actually tal"ing about the function group SBI%. BI%J(J/A-:2JA++ is the processing bloc"

  • 8/16/2019 Change Request Management-chaRM

    45/50

    4or e+ample, %e learned from the short te+t that my pro&ram dumped because it tried to o$er%rite a

    constant) @ donQt see any constant in the bad code belo%) @ Nust %anted to complete the fully=Gualified

    domain names of a list of hosts) 1o you see the error in the codeM

    @f you donQt see %here @ try to o$er%rite a read=only field, then see the se$enth point in the discussion

    in rror analysis, the one that be&ins OAccesses usin& field symbols)))O *+perience has sho%n that a

    lot of people Nust skip o$er the e+planations in 6hat happened and rror analysis) This may end up

    costin& them more time than it sa$es)

    &here 9id ;t Ha**en: ource Code 7,tractThe SA Short 1ump de$elopers %ere ri&ht to put Source &ode 'tract  in initial caps, because, if you

    are lucky, this is a really nice, helpful section of the dump) 7ouQre sho%n e+actly %here the pro&ram %as

    aborted) A fe% people donQt kno% that from here, you can Nump ri&ht into source code in the ABA

    *ditor %ith a double=click) @n the dump that %e ha$e been follo%in&, it %ould be possible in the editor to

    branch to the definition of the internal table 5TF-S90S1@-, %here you mi&ht notice that the-10S0A9* field has been declared as part of the key of the sorted internal table)))

    http://scn.sap.com/servlet/JiveServlet/showImage/38-51452-61994/blog_st22_code_sample.jpghttp://scn.sap.com/servlet/JiveServlet/showImage/38-51452-61993/blog_st22_error_analysis_section_scaled.jpg

  • 8/16/2019 Change Request Management-chaRM

    46/50

    @f you can reproduce the problem, then you can set a breakpoint ri&ht from the short dump in order to

    stop Nust before the short dump occurs) 7ou can then use all of the tools of the ne% ABA debu&&er to

    in$esti&ate the cause of the dump)

    @f the code line sho%n by the pointer doesnQt seem to make any sense in the conte+t of the dump, then

    take a look at the pre$ious line of code) .ccasionally, the instruction counter may still ad$ance e$en

    after a dump has been tri&&ered, so that the UUUUUU pointer points at the line follo%in& the bad line of

    code)

    &here 9id ;t Ha**en: ctie Calls27ents

    @n pro&ram failures that in$ol$e infrastructure like /eb 1ynpro, or calls bet%een components, or in

    %hich an uncau&ht e+ception has been passed up throu&h the callers, the Active &alls0vents section

    may help you to understand the components in$ol$ed in the crash) This call stack is a usefulsupplement to the point of failure marked in the Source&ode 'tract , because in the stack you can

    see ho% you &ot to the point of failure)

    7ou read the Active &alls0vents list from the bottom up) @t sho%s all of the report e$ents, dynpro

    modules, functions, methods and form routines throu&h %hich the path of e+ecution has come) 7ou can

     Nump into the ABA *ditor at any le$el in the call stack) This means that you can set breakpoints all

    alon& the %ay to the dump if you think that a problem at a hi&her le$el resulted in the dump at the end of 

    the stack)

    There are t%o thin&s to remember about the ABA call stack:

    • It?s a call stac" and not a complete history of calls. If the *ow of e#ecution returns

    from the last callee in the stac", that return from the callee is not shown in the stac". If the

    short dump occurs in the caller, then you might wonder why the stac" shows a di9erentprogram as the end point of e#ecution than the 6hat happened section.

    • If AAP dumped because of an incompatible call to a function module or method

  • 8/16/2019 Change Request Management-chaRM

    47/50

    5o%=le$el as it is, the -.0T does not care %hether statements are in a macro or not = and it sho%s the

    short dump pointer that you kno% from the Source &ode 'tract ) nfortunately, a double=click on the

    --B at the dump pointer still takes you only to point in the source code at %hich the bad macro %as

    called) But the half%ay intelli&ible --B names may be enou&h to sho% you at %hich line of code in the

    macro the problem occurred)

    4irst of all, if the macro is not too lon&, then clickin& on the --Bs to Nump into the ABA *ditor sho%syou %here the macro started) Then, %ith a little Numpin& back and forth bet%een the -.0T table and

    the ABA *ditor, you can start to eGuate the --Bs and the statements in the faulty code)

    @n our case, the SL5S and A --Bs turn out to reference an SL5 S*5*-T %ell before the macro

    call) --B 6, BA4, represents the start of an @4 control structure in %hich the macro is called) The

    -.01 and A --Bs depict the macro statement that actually failed: -.0-AT*0AT* D R)sap)corpQ

    into D)

    @n the case I"ha-e"onl*"a"kernel"dump #S7ST*9F-.*F19*1, ABAFASS*T, etc)',

    the Source &ode 'tract section %ill really be empty) @n this case, the dump section Active &alls in

    SAP @ernel pro$ides clues as to the location of the error) But since no customer or ABA application

    de$eloper should ha$e to read a kernel stack, %e mention this only for the record) @f you ha$e a shortdump that ori&inated in the kernel and it is not simply because somebody pulled the plu& on the ABA

     AS, then all you need to do is pro$ide the short dump %ith the Active &alls in SAP @ernel section to

    SA Support)

    .ther situations %ith no (here"it"happened location: Should you not ha$e any luck in findin&

    out e+actly %here the pro&ram %ent do%n the tubes, then a useful tip is to try to reproduce the problem

    in transaction SAT, the ABA untime Analysis) @n SAT, you can trace the e+ecution of an ABA

    pro&ram at the le$el of ABA processin& blocks) un your pro&ram to its dump #pro$ided that this does

    not take too lon& = a non=a&&re&ated SAT trace can &et lar&e Guickly') Then check the SAT trace) @t

    may help you find out pretty e+actly %here to look for the problem, e$en if the dump occurred in a

    macro)

     Also, you can use ST!, the erformance Analysis, to s%itch on #in a controlled fashion = for your user,for e+ample' a detailed trace of pro&ram acti$ity) Be a%are that the trace %ill also include the %ritin& of

    http://scn.sap.com/servlet/JiveServlet/showImage/38-51452-61996/blog_st22_abap_control_blocks.jpg

  • 8/16/2019 Change Request Management-chaRM

    48/50

    the short dump) The dump processin& starts %here you find acti$ity on 1B table S0A, so search for

    the problem area before that point)

    See help)sap)com for help %ith usin& SAT and ST!)

    1he 1hird Ma/or 4uestion: &hat=s the olution+0aturally, the discussion that you %ill find in the How to correct the error section of a short dump

    tends to be a bit &eneric) 1e$elopers are constantly findin& ne% and in$enti$e %ays to repeat olderrors, like the 9.I*[email protected]./*1F0.1ATA error that %e ha$e been e+aminin&) @tQs

    therefore not possible for How to correct the error  to describe e+actly %hat you should do to fi+ a

    dumpin& pro&ram)

    *$en so, the combination of the discussion in How to correct the error  and takin& a &ood look at the

    faulty code often leads to success in correctin& the problem) @n the case of the

    9.I*[email protected]./*1F/A dump that %e ha$e been e+aminin&, the dump astutely remarks

    that RThe feld to $e overwritten is a para#eter or a feld sy#$ol )Q @f you %ere not a%are that the

    sort keys of a sorted table may not be o$er%ritten in a field symbol, then the tip that a field symbol may

    be in$ol$ed mi&ht help you &et onto the ri&ht analytical track)

    @n the end, ho%e$er, understandin& and correctin& the cause of a short dump rests on your shoulders)

    7ou %ill ha$e to e+tract as much information from the short dump as possible, and use this informationto illuminate %hat %ent %ron& in the code)

    >athering More ;nformation A short dump addresses more or less directly the Nournalistic Guestions of %hat %ent %ron& %here and

    %hat to do) Should these Guestions be addressed RlessQ rather than RmoreQ in a dump, then it is &ood to

    kno% that a dump also includes a lot of additional supportin& information that can help you in your

    analysis)

    'stem ?aria.les

     As an ABA pro&ram e+ecutes, it is accompanied by an entire s%arm of system $ariables, like Jupiter

    %ith its cloud of little moons) Some of these $ariables are %ell=kno%n, like S7=SB-, the return code

    set by many ABA instructions or S7=TAB@K, the counter in 5.. AT and *A1 TAB5* internal table

    instructions)/hen a short dump occurs, ABA preser$es the state of the system $ariables at the time of the crash)

    7ou can see the contents of these $ariables in the &ontents o" syste# felds section) Here are some

    of the system $ariables that are most likely to be useful:

    • S1S2>( usually shows the last return code setting before the program crashed.

    A non18ero S1S2>( from a method or function preceding an instruction that dumped may

    illuminate for you what went wrong.

    • S13AIX. In a short dump raised from within a /OOP A3 table or after a >&A+ 3A/&

    instruction, S13AIX tells you what record from the internal table was being processed

    when the program failed.

    • S1I-+&X provides the same iteration1count information for +O and 75I/& loops.

    • S1/I--O

  • 8/16/2019 Change Request Management-chaRM

    49/50

    Program ?aria.les

    4or the &hosen varia$les section, the short dump infrastructure takes a Guick run throu&h the

    collapsin& pro&ram conte+t &rabbin& any pro&ram and infrastructure $ariables it finds that are currently

    in scope) The situation is a bit like the belated shopper runnin& throu&h a &rocery Nust at closin& time =

    thereQs no &uarantee that the shopper %ill brin& home e$erythin& that he or she %as supposed to buy)

    *$en thou&h the dump infrastructure may not capture e$erythin&, much more often than not you %ill findthe $ariables and $alues that you %ant to see)

    Since SAFBAS@S elease 6)2!, the short dump infrastructure has captured a separate set

    of &hosen varia$les for each le$el in the Active vents0&alls ABA call stack)

    @f you are analy?in& a data=related problem, then a careful look at the &hosen varia$les may clarify the

    problem) @n one recent e+ample, an .SS messa&e reported a short dump because ABA could not

    con$ert the character $alue 22C2 to an inte&er #dump @1 -.0ITF0.F09B*') Since this is one of 

     ABAQs easiest tricks, the dump is at first &lance pretty mystifyin&) A Guick look at the character field

    in &hosen varia$les sho%ed, ho%e$er, that the character field held not R22C2Q but rather R22C2VV

    믆䀾VV   䀾蠤 VVpVVVQ) The fact that the field %as either not correctly initiali?ed or %as filled %ith non=

    character data e+plains the con$ersion failure, at the $ery least)&hosen varia$les sho%s the si?e #here, one record %ith a len&th of 3""! bytes' of an internal table, as

    %ell as useful information such as the type of or&ani?ation of the table #here, a sorted table') The table

    display can be useful in analy?in& the popular dump of type TSIFT0*/FA(*FA55.-F4A@5*1 #no

    more memory a$ailable for an internal table', since you can see ho% much memory has been allocated

    to hold the ro%s of each internal table) #The amount of stora&e allocated for the ro%s may not,

    ho%e$er, be the amount of stora&e used by the ro%s of the table) @f, for e+ample, a table holds only data

    references to obNects, then stora&e for references may not be all the memory actually consumed by the

    table and its contents) The references are relati$ely short) The obNects may occupy much lar&er

    amounts of memory)'

    http://scn.sap.com/servlet/JiveServlet/showImage/38-51452-61997/blog_st22_chosen_vars_level.jpg

  • 8/16/2019 Change Request Management-chaRM

    50/50

    @n an upcomin& release, the table display %ill contain at least the start of the contents of each of the first

    fi$e records of each internal table that is captured)

    4inally, obNect references that ha$e not been initiali?ed #a fa$orite cause of

    .BJ*-TSF.BJ*4F0.TFASS@(0*1F0., and others)))' are easy to pick out in &hosen varia$les)

    Just use -trl = 4 to search for R:initialWQ)

    0ote that a random mouse click in the &hosen varia$les display s%itches the display from the

    relati$ely attracti$e formatted $ie% to an unformatted $ie%) 1onQt be alarmed) Just click on 43 8 Back to

    return to the formatted display)

    n @unce of Preention%%%@s %orth a pound of cure, as the old sayin& &oes)

    1onQt for&et that ABA offers lo&&in& and checkpoints that can be acti$ated %hen needed #see

    help)sap)com') /ith these, you can turn on s%itchable lo&&in&, breakpoints, and assertions to help you

    %ith dia&nosis and trouble=shootin&, should somethin& &o %ron& in your pro&ram after it has reachedyour users)

     And donQt for&et the suite of tools that the ABA /orkbench offers to help you find errors before your

    users do, startin& %ith tools for static checkin& like the -ode @nspector #Transaction S-@', continuin&

    %ith the ABA nit Test facility, %ith %hich you can e$en &o so far as to practice test=dri$er

    de$elopment) The best ABA short dump is the one that you ne$er ha$e to analy?e)

    http://scn.sap.com/servlet/JiveServlet/showImage/38-51452-61999/blog_st22_chosen_vars_nullref.jpghttp://scn.sap.com/servlet/JiveServlet/showImage/38-51452-61998/blog_st22_chosen_vars_table.jpg