You are on page 1of 44

S4H165 - Troubleshoot Your SAP Fiori App with

ABAP Development Tools for Eclipse

EXTERNAL
Speakers 2017

Las Vegas Bangalore Barcelona


September 25 - 29 October 25 - 27 November 14 - 16

Armin Beil Srinivasa GV Ingo Bräuninger


Ingo Bräuninger Sunil Bandameedapalli Stefan Bresch

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 2


Disclaimer

The information in this presentation is confidential and proprietary to SAP and may not be disclosed without the permission of SAP.
Except for your obligation to protect confidential information, this presentation is not subject to your license agreement or any other service
or subscription agreement with SAP. SAP has no obligation to pursue any course of business outlined in this presentation or any related
document, or to develop or release any functionality mentioned therein.
This presentation, or any related document and SAP's strategy and possible future developments, products and or platforms directions and
functionality are all subject to change and may be changed by SAP at any time for any reason without notice. The information in this
presentation is not a commitment, promise or legal obligation to deliver any material, code or functionality. This presentation is provided
without a warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability, fitness for a
particular purpose, or non-infringement. This presentation is for informational purposes and may not be incorporated into a contract. SAP
assumes no responsibility for errors or omissions in this presentation, except if such damages were caused by SAP’s intentional or gross
negligence.
All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ materially from
expectations. Readers are cautioned not to place undue reliance on these forward-looking statements, which speak only as of their dates,
and they should not be relied upon in making purchasing decisions.

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 3


S4H112
ABAP Strategy L1

S4H837 Custom Code Adaptation SVH130 The ABAP Programming S4H140 Extensibility Overview of S4H119
ABAP roadmap
R for SAP S/4HANA L1 Model for SAP S/4HANA L2 SAP S/4HANA L1

Build a Fiori List Report Extensibility Framework in


S4H274 Custom Code Adaptation S4H164 S4H276 SVH139
Modern ABAP with Eclipse App: ABAP Programming SAP S/4HANA: End-to-End
H2 for SAP S/4HANA H2 H2 L2
Model for SAP S/4HANA Scenario

ABAP Channels: Overview S4H106 Build a Transactional Fiori Extensibility Framework of


Optimize your ABAP Code S4H231 S4H279 S4H161
and usage scenarios L1 App: ABAP Programming SAP S/4HANA: Build
for SAP HANA L2 H4 H2
Model for SAP S/4HANA Custom Business Objects

Automated Testing Within How Customers Use the


S4H222 S4H232 SVH221
OData V4 Services the ABAP Programming Extensibility Concept of
L1 L2 L1
Model for SAP S/4HANA SAP S/4HANA

Authorizations Within the


Integration of OData and S4H839 SVH269
ABAP Programming Model
SAP Fiori R H2
for SAP S/4HANA

Troubleshoot Your SAP


S4H165
Fiori App with ABAP Dev.
H2
Tools for Eclipse
Agenda

Motivation & End-to-End Story

SAP Gateway Troubleshooting Tools

ABAP Profiling

Dynamic Logpoints

ABAP Debugger

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 5


Motivation & end-2-end story
Develop SAP HANA optimized SAP Fiori apps
A simple example

SAP
Fiori
Simple ALV like
SAP Fiori app
Use a predefined SAP Fiori Gateway
smart template and
consume
your CDS view [NO CODE]
Core Data
Publish your CDS view as Services
an OData service
Build a CDS view reusing
the SAP data model SAP
HANA

Add annotations for UI and


search

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 7


Develop SAP HANA optimized SAP Fiori apps
The new programming model

Freestyle or templates based UI development SAP Fiori


SAPUI5 / SAP Fiori Elements Transactions | Analytics | Search

Decoupling of UI logic from backend semantics OData


with OData services via SAP Gateway

SAP Gateway
Effective and efficient application development
Modern ABAP language and development tools
ABAP Application Core Data
Development Frameworks Services
Transaction, error and event handling services
Business object processing framework (BOPF)
SAP NetWeaver
One common data modelling technology
Core Data Services (CDS) SQL

Utilization of native SAP HANA features


with AMDP and CDS Table Functions SAP HANA

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 8


ABAP Development Tools in Eclipse
The main benefits

Increase of Developer Efficiency


Flexible User Interface with powerful code editor incl. refactoring support
Troubleshooting tools (ABAP Debugger, ABAP Profiler, Dynamic Logpoints)
New SQL development tools for CDS views and database procedures
Eclipse-based Dictionary editors for structures and data elements
ABAP SQL console and Data preview
Code quality tools (ATC) incl. security and performance checks
New documentation capabilities with ABAP Doc
SDK for Partner and Customer Extensions
Open & Extensible

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 9


ABAP Development Tools in Eclipse
Various editors, advanced capabilities and high developer productivity

Source Code ABAP Test ABAP


CDS Tooling ABAP Profiling
Editors Cockpit Debugger

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 10


Today‘s Troubleshooting Scenario

Gateway tracing

ABAP profiling

Dynamic
logpoints

ABAP debugger

S4H76 S4H279

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 11


Demo

Today‘s scenario

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 12


SAP Gateway Troubleshooting Tools
SAP Gateway Architecture

SAP Gateway, an integral part of


SAP NetWeaver
OData
Enables you to connect to devices,
environments and to SAP systems efficiently
and securely
Used to develop innovative, SAP Gateway
people-centric solutions with an engaging and
consistent user experience for desktop,
SAP S4HANA / SAP Business Suite
mobile, and tablet devices
Gateway Backend Enablement
Use of the Open Data Protocol (OData) to use
any programming language or model to
SAP BW
connect to SAP and non-SAP applications
CRM SRM SCM PLM ERP

SAP HANA / Any DB

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 14


SAP Gateway Troubleshooting Tools

Error Log
SAP Gateway Hub System: /IWFND/ERROR_LOG
SAP Backend System /IWBEP/ERROR_LOG

Application Log Viewer


SAP Gateway Hub System /IWFND/APPS_LOG
SAP Backend System /IWBEP/VIEW_LOG

SAP Gateway Client


SAP Gateway Hub System /IWFND/GW_CLIENT

SAP Gateway Tracing


SAP Gateway Hub System /IWFND/TRACES
SAP Backend System /IWBEP/TRACES

SAP Performance Statistics


Access to SAP performance statistics without activating any Performance Trace tool
Simply add "sap-statistics=true" at the end of the request URL

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 15


SAP Gateway Performance Trace

Purpose
Enables developers, administrators, support consultants, and end users to monitor system performance at
service call level
Displays detailed service call information that has been recorded by the trace function

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 16


SAP Gateway Performance Tracing

icftotal=606
OData Consumer icfauth=0
icfext=599
HTTP(S) icmtotal=612
icmreqrcv=3
icmext=609
GATEWAY I. Internet Communication Framework total=593
HUB fw=153
SYSTEM II. Gateway Hub Framework gwhub app=439
gwtotal=593
III. RFC gwrfcoh gwfw=136
gwrfcoh=17
gwnongw=1
GATEWAY IV. Gateway Backend Framework gwbe gwtotal gwapp=439
BACKEND gwappfw=56
SYSTEM V. Model & data provider class gwappdb=379
gwappext=0
gwappbusi=4
gwapp gwhub=93
gwbe=43
Data- gwbewait=478
base gwappsum=1148

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 17


SAP Performance statistics for OData requests

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 18


SAP Gateway Payload Trace

Purpose
Enables you to monitor the flow of data sent as part of service requests and responses
Helpful if you want to check the exact content of HTTP header and body data sent and received

Replay Functionality
A replay functionality with the Gateway Client is only available for log entries written with log level full

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 19


Demo

SAP Gateway Troubleshooting

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 20


Exercise

SAP Gateway Troubleshooting

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 21


ABAP Profiling
ABAP Development Tools profiling perspective

ADT offers a new perspective called ABAP Profiling perspective

It is designed for analysing ABAP statements and performance with


the ABAP trace functionality and consists of the following views
ABAP Traces
ABAP Trace Requests
Analysis Tools

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 23


Analysis Tools

Analysis Tool Allows you to …

Condensed Hit List Find top consumers with regard to procedures such as methods, function modules or forms

Hit List Find top consumers in your application by call position

Aggregated Call Tree Analyze trace events that are aggregated by call stacks and displayed within a call tree

Call Sequence Analyze the flow of program execution

Call Timeline Visualize the trace events and time consumed in the form of a diagram

Database Accesses Check which portion of runtime is used by database accesses and identify the top
consumers among database accesses
SQL Trace View SQL trace events and analyze how the system handles database requests.

Call Stack Analyze the call stack of trace events

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 24


Demo

ABAP Profiling

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 25


Exercise

ABAP Profiling

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 26


Dynamic Logpoints
Dynamic Logpoints

Similar to statement LOG-POINT

Created dynamically like breakpoints


No code changes necessary
For example in productive systems

Used to
Count executions
Log variable values
Log call stacks

Support for
Conditions
Aggregation
Built-in functions

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 28


Dynamic Logpoints

Created in the source editor


At any source code line that contains an executable ABAP statement
Logpoint view can be used to refresh and display results

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 29


Demo

Dynamic Logpoints

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 30


Exercise

Dynamic Logpoints

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 31


ABAP Debugger
ABAP Debugger
Overview Debug Perspective

Debug Variables /
toolbar breakpoints
view
Debug view

Outline
Editor

Hover menu
Internal table
view

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 33


ABAP Debugger
Debug Exercise

Create a breakpoint and start a debug session

Basic stepping

Inspect & change variables

Inspect & change internal tables

Use the call stack

Advanced breakpoint types


Conditional breakpoints
Watchpoints
Statement breakpoints

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 34


ABAP Debugger
Feature Scope

Breakpoints
Supported: Line BPs, statement BPs, exception BPs, conditional BPs, (conditional) watchpoints
ADT breakpoints work by default for external requests (HTTP, RFC)
Breakpoints remain (No auto-deletion after debug session ends or after 2h. Delete all BPs with one click)
Breakpoints view offers grouping, easy enable/disable, temporary disabling of all BPs, navigation and more

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 35


ABAP Debugger
Feature Scope

Debug View
Shows all debug sessions and the current call stack for every
debug session
No need for one window per debug session anymore. The
currently selected session is the active one
Other tools like editor, variables view, etc. show the values for the
currently selected debug session

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 36


ABAP Debugger
Feature Scope

Variable inspection & change


The variables view shows variable details and can be used to change variable values
Supports favorites, value presentation in hex, lists of globals / locals and more
For internal tables there is an additional view for better
presentation and with further functionality, e.g. export
Further functionality for the table view is planned to be
provided soon, e.g. filter, sort and column configuration

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 37


ABAP Debugger
Feature Scope

Other already supported features


Debug settings (includes debugging for other users)
Debugger actions (commit work, rollback work, start garbage collector)
Update debugging
Debugging simple transformations
Debugging AMDPs (ABAP Managed Database Procedures)
Post mortem debugger
Start & stop ABAP traces
Exceptions view
And more…

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 38


Demo

ABAP Debugger

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 39


Exercise

ABAP Debugger

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 40


SAP TechEd Online / Community

Access replays of
 Keynotes
 SAP TechEd live interviews
 Select lecture sessions

http://sapteched.com/online

Continue your SAP TechEd discussion after the


event within the SAP TechEd Community!
 Read and reply to blogposts
 Ask your questions
 Join conversations

sap.com/community
See all SAP TechEd Blogposts

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 41


Thanks for attending this session.

Feedback Contact information:


Armin Beil
Please complete your session Senior Developer

evaluation for S4H165. Ingo Braeuninger


Product Expert

Stefan Bresch
Product Expert

© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 42


Further information
Related SAP TechEd sessions
S4H106 ABAP Channels: Overview and Usage Scenarios
S4H112 ABAP Strategy
S4H130 Custom Code Adaptation for SAP S/4HANA (Lecture)
S4H164 Custom Code Adaptation for SAP S/4HANA (Handson)
S4H165 Troubleshoot Your SAP Fiori App with ABAP Development Tools for Eclipse
S4H222 OData V4 Services
S4H231 Optimize your ABAP Code for SAP HANA
S4H232 Automated Testing Within the ABAP Programming Model for SAP S/4HANA
S4H269 Authorizations Within the ABAP Programming Model for SAP S/4HANA
S4H274 Modern ABAP with Eclipse
S4H276 Build a Fiori List Report App: ABAP Programming Model for SAP S/4HANA
S4H279 Build a Transactional Fiori App: ABAP Programming Model for SAP S/4HANA
S4H630 SAP Fiori: Development on Core Data Services
S4H836 SAP NetWeaver: Road Map and Transition to SAP S/4HANA
S4H837 Road Map Q&A: ABAP Platform
S4H839 Integration of OData and SAP Fiori

SAP Public Web


scn.sap.com
www.sap.com

SAP Education and Certification Opportunities


www.sap.com/education
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ EXTERNAL 43
© 2017 SAP SE or an SAP affiliate company. All rights reserved.

No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE or an SAP affiliate company.

The information contained herein may be changed without prior notice. Some software products marketed by SAP SE and its distributors contain proprietary software components
of other software vendors. National product specifications may vary.

These materials are provided by SAP SE or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP or its affiliated
companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP or SAP affiliate company products and services are those that are
set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.

In particular, SAP SE or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or release
any functionality mentioned therein. This document, or any related presentation, and SAP SE’s or its affiliated companies’ strategy and possible future developments, products,
and/or platform directions and functionality are all subject to change and may be changed by SAP SE or its affiliated companies at any time for any reason without notice. The
information in this document is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. All forward-looking statements are subject to various
risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements,
and they should not be relied upon in making purchasing decisions.

SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE (or an SAP affiliate company)
in Germany and other countries. All other product and service names mentioned are the trademarks of their respective companies.
See http://global.sap.com/corporate-en/legal/copyright/index.epx for additional trademark information and notices.