Presentation is loading. Please wait.

Presentation is loading. Please wait.

Olgierd Waszak Senior Consultant Zurich, 18.05.2006 ABAP for Consultants.

Similar presentations


Presentation on theme: "Olgierd Waszak Senior Consultant Zurich, 18.05.2006 ABAP for Consultants."— Presentation transcript:

1 Olgierd Waszak Senior Consultant Zurich, 18.05.2006 ABAP for Consultants

2 2 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Agenda  ABAP Development Workbench  Debuging  SAP extensions  System modyfications  Errors and protocols  „...” Lunch about 11:30

3 3 | © The Information Management Group. All rights reserved. Proprietary and confidential. || ABAP Workbench – training map

4 4 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Architecture/program flow – user oriented view

5 5 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Sample program

6 6 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Program modularization (report)  ABAP Event blocks  Subroutines

7 7 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Possible elements of the ABAP report  An ABAP program is a collection of processing blocks. A processing block is a passive section of program code that is processed sequentially when called.  Processing blocks are the smallest units in ABAP. They cannot be split, which also means that they cannot be nested.  There are various kinds of ABAP processing blocks: – Event blocks are ABAP processing blocks that are called by the runtime system. Event blocks can logically belong to the executable program, to the selection screen, to the list or to the screen. This unit deals with event blocks that belong to the executable program. You can find information on event blocks that belong to the selection screen, the list or the screen in the units on user dialogs. – Subroutine processing is triggered by an ABAP statement. Parameters can be passed to subroutines using an interface and subroutines can contain local variables.  Modules are special ABAP processing blocks for processing screens. Therefore modules are dealt with in the User Dialogs: Screens unit.

8 8 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Example: program with event blocks and selection screen

9 9 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Subroutines  Form declaration – FORM USING CHANGING.... ENDFORM.  Form call – PERFORM USING CHANGING.

10 10 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Other program elements  Function modules  Local classes – Attributes – methods  Macros  Includes – TOP include xxxTOP – Constant declaration – Common subroutines –...  Screens – Screen modules – Screen events (on Value request, on input,...)

11 11 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Program object hierarchy Packet (old Dev.Class) ProgramsFunction groupsClass LibraryDDICTransactionsothers Function Modules, screens,... Methods, Attributes,... DDIC objects

12 12 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Application hierarchy  Transaction SE81  References to the program from the component point of view

13 13 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Repository

14 14 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Repository – transaction SE84

15 15 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Training system Client: 903 User: xxx or ABAP01, ABAP02 Pass: abc123

16 16 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Demo

17 17 | © The Information Management Group. All rights reserved. Proprietary and confidential. || ABAP Workbench – set of tools for Repository  The ABAP Workbench contains different tools for editing Repository objects. These tools provide you with a wide range of assistance that covers the entire software development cycle

18 18 | © The Information Management Group. All rights reserved. Proprietary and confidential. || ABAP Dictionary (SE11)

19 19 | © The Information Management Group. All rights reserved. Proprietary and confidential. || ABAP Dictionary - objects

20 20 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Screen Painter  Transaction SE51  Used to screen create/change/display  Integrated into the Object Navigator

21 21 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Menu Painter  Transaction SE41  Used to menu create/change/display  Integrated into the Object Navigator

22 22 | © The Information Management Group. All rights reserved. Proprietary and confidential. || ABAP Editor  Transaction SE38  Transaction SE39 – split screen editor – Used to compare two programs  Used to menu create/change/display  Integrated into the Object Navigator

23 23 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Function Builder  Transaction SE37  Used for FM create/change/display  Integrated into the Object Navigator

24 24 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Class Builder  Transaction SE24  Used for ABAP class create/change/display  Integrated into the Object Navigator

25 25 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Demo

26 26 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Demo – how to create a program  Create a new program via SE38 transaction  Report should read fly data and display in on the screen  Select-options  Parameters  Select statment  Write statment  Example – packet SLIS  ALV – funciton modules REUSE_ALV_LIST_DISPLAY, REUSE_ALV_GRID_DISPLAY

27 27 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Object Navigator – transaction SE80

28 28 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Database Browser  Transaction SE16 – old database browser  Transaction SE16N – new database browser

29 29 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Transport Organizer  What is the transport?  Transaction SE09, SE10  You can check the status of the changes – if already are transported ...

30 30 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Others Workbench Tools  SE32 – text elements for programs  SE91 – messages  SE92 – system log messages  SNRO – number ranges  SLG0 – application log  SE93 – transaction definitions  SE63 - translations

31 31 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Demo

32 32 | © The Information Management Group. All rights reserved. Proprietary and confidential. || I want to know more !!!  Something does not work as I expect  I want to know everything !!! I need to be a master !!!  I’d like to see it in the Database ...

33 33 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Which program should I analyze?  How to check which program I need to see in the ABAP Workbench?  Which component needs to be checked?  Where to start?

34 34 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Which program should I analyze? – example VA03 F1 F9 or

35 35 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Debugger  Transaction  Screen (program / screen number)  GUI (Program / Status)  Screen Field/Table Field (structure!!!)

36 36 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Debugger  Immer Mit DebuGger  /h and... – Continue, execute, single step – Set breakpoint – Value show – Internal tables – Change values/internal tables – Set breakpoint at.... – Watchpoint  Transaction SE16: table content edition

37 37 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Debugger  Creation of the shortcut for debugging on the desktop

38 38 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Tips & Tricks in Debugger mode  SE16 – value of data ‘CODE’  How to jump the authorization?( upssss... )  SE16n – how to edit transparent table – Start SE16n – Choose table name for showing – Enter selection parameters – Put the command &sap_edit in the command line – Press ENTER to switch to edit mode – Press F8 to get a result – You are ready to change non-key fields in the table

39 39 | © The Information Management Group. All rights reserved. Proprietary and confidential. || System extensions

40 40 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Change levels

41 41 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Extensions  How in/out to/from the system with additional info: user exity of all types menu exity, screen exity field exity, key word exity Table extension: append, customer include matchcode: new ID workflow Outputs

42 42 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Extensions – User Exits  Old types – still in use: Perform userexit_field_modification.  You have an access to the whole program work area! – A lot of possibility to change (global values) – Be carreful – it is easy to destroy something!!!  Search/View in the Module pool  Example: SAPMV45A i MV45AFZZ etc.  Possibility: depends on the SAP Module – Update of additional tables/fields in the standard tables – Check before document save – Display change on the screen: obligatory fields, only for display etc. – This is not simple!  -> update of additional customer table

43 43 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Extensions – User Exits  Function module call customer-function '001' - tables xmkpf = zmkpf - xmseg = zmseg - xvm07m = zvm07m.  Limited possibility of read/change data (depends on the defined by SAP interface)  Activation of such exists (Projects)  How to find: – transaction SMOD – Debugging

44 44 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Extensions – User Exits (example)  sales order area - include MV45AFZZ – Form userexit_move_field_to_vbak – copy customer fields – Form userexit_pricing_prepare_tkomk – prepare pricing –....  Classification – durring search we can fill characteristics: – EXIT_SAPLCLSC_001  MM – material document posting – you can update customer table: – EXIT_SAPLMBMB_001 – Question: Why we do not have access to all data? What is the reason of this restriction?

45 45 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Extensions – Menu Exits  Business Add-Ins or Customer exits  Possibility to have the own transaction call in the standard menu – only in the special places- this is Menu exit. – How to find it?: SMOD or technical settings of the screen – Example: Transaction S000, VC01

46 46 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Demo

47 47 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Extensions – Screen Exits  Possibility to add the new subscreen to the standard SAP screen  The SAP developer must: – Define the subscreen areas – Specify the corresponding calls in the flow logic – Provide the framework for the data transport – Include the screen exit in an enhancement – Maintain the documentation

48 48 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Extensions – DDIC tables extensions  We can do this only in the case if there is possibility to manage such change in the program process  Append / Customer Include  CI_Includes – multiply use, must be planned by SAP developers  Standard table extension or customer table?

49 49 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Business Transaction Events (BTE)  The SAP application program dynamically calls a function module in the customer namespace

50 50 | © The Information Management Group. All rights reserved. Proprietary and confidential. || BTE  Are enhancement that were developed for Financial Accounting (FI) component of R/3  Have predefined interfaces allowing customer access  Have one of the following types of interfaces – Publish & subscribe - These interfaces inform external software that certain events have taken place in an SAP standard application and provide them with the data produced. The external software cannot return any data to the R/3 System – Process interfaces - These interfaces are used to control a business process differently than the way in which it is handled in the standard R/3 System. They intervene in the standard process, and return data to the SAP application

51 51 | © The Information Management Group. All rights reserved. Proprietary and confidential. || How to find BTE?  To find out directly whether an application transaction offers business transaction events, you can search it in the program source text for the character string "OPEN_FI_PERFORM". The number that completes the name of the function module is also the name of the event  In the SAP Customizing Implementation Guide (IMG), you will find the entry "Use business transaction events " under the "Financial Accounting Global Settings" node of the Financial Accounting area. Choosing this entry calls a transaction (FIBF) where you can execute all of the actions necessary for using Business Transaction Events  Under Environment, you will find search functions that you can use to identify appropriate business transaction events. You can view the documentation for the event from the list

52 52 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Business Add-Ins (Badis) – via ABAP OO technique  The application program calls a method of a class or instance of a class. This class lies in the customer namespace

53 53 | © The Information Management Group. All rights reserved. Proprietary and confidential. || How to find Badis?  SE18 – definition, SE19 - implementation  You can search in a relevant application program for the string "CL_EXITHANDLER". If a business add-in is called from the program, the "GET_INSTANCE" method of this class must be called  You can then reach the definition of the business add-in using forward navigation. The definition also contains documentation and a guide for implementing the Business Add-In  However, you can also use the application hierarchy to restrict the components in which you want to search. Start the Repository Information System, then choose Environment -> EXIT techniques -> Business Add-Ins" to start the relevant search program  Alternatively, you can use the relevant entries in the IMG

54 54 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Badis - exercise  Check if program SAPBC425_BOOKING_00 can be enhanced  Check the badi definition name  Implement the badi to change data and output

55 55 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Do we realy need the extension/modification?

56 56 | © The Information Management Group. All rights reserved. Proprietary and confidential. || System modyfications  New field on the screen: this is not only the layout change, but also we need to maintain this in the program – means the modification is needed in a few places  Similar issues: – Standard report copy with adjustment – Standard transaction copy – We can have a problem with Includs: in the case of upgrade very often means to make it once again Did I decide in the right way?

57 57 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Important information for the Developer  identyfikacja tej specyfikacji w ramach projektu (numer, etc.): choćby dla identyfikacji wobec klienta / rozliczenia  osoby odpowiedzialne: specyfikacja funkcjonalna, realizacja techniczna, odbiór ze strony klienta  „jak to działa” lub „do czego to służy”: czyli krótki opis funkcjonalny żądanej zmiany / dodatku – Ważne: pokazanie miejsc w standardzie (zrzuty ekranów) których ta specyfikacja dotyczy. Jest to dużo ważniejsze od wyszczególniania tabel (i tak zwykle dostajemy struktury a nie tabele!)

58 58 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Errors and protocols – what is going on with my system?  Trace request  Dump analysis  Update Records – background processing

59 59 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Trace Request – ST05  Very offten this is not enough to check the technical data on the screen  How to check which objects are used in the background processing?  Which tables are updated durring my process?  The answer is TRACE REQUEST

60 60 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Trace Request – result list

61 61 | © The Information Management Group. All rights reserved. Proprietary and confidential. || ABAP Runtime Analysis  Transaction SE30  This is a tool for consultant, who wants to know more and more...  For a consultant, who want to make a little performance analyze

62 62 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Dump Analysis  Transaction ST22  Sometimes this is a simple reason why something does not work  If you have an ABAP base you can check it in a simply way

63 63 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Update Records  Transaction SM13  Used to check background process ...

64 64 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Demo

65 65 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Questions???

66 66 | © The Information Management Group. All rights reserved. Proprietary and confidential. || Contact Phone:+48 + 71 78 32 100 Fax:+48 + 71 78 32 200 Web: www.img.pl The Information Management Group (IMG) IMG Poland ul. Legnicka 51-53 54-203 Wrocław Olgierd Waszak (OWA), Senior Consultant olgierd.waszak@img.com


Download ppt "Olgierd Waszak Senior Consultant Zurich, 18.05.2006 ABAP for Consultants."

Similar presentations


Ads by Google