Cookbook
Concrete problems and their solutions, one chapter each, grouped by what an app is made of. The Cheat Sheet is the checklist to keep open while working; the groups below are where each rule on it is explained in full. Every word the chapters rely on is defined in the Glossary.
I Want To…
| I want to… | Go to |
|---|---|
| build a first screen | Definition → Sending a View |
| find the right control | Definition → Choosing a Control |
| show a value, or let the user edit it | Binding |
| format a date, a time or an amount | Formatter |
| show an internal table | Tables → Basic Table |
| know which table row was clicked | Tables → Which Row Was Clicked |
| sort or filter a table | Tables → Sorting and Filtering |
| show more than 100 rows | More than 100 Rows |
| react to a button | Backend → Basic |
| send a value with an event | Backend → Sending a Value with the Event |
| do something in the browser without a roundtrip | Frontend Actions |
| understand why my view is blank after a return | App Structure |
| switch between two screens | Inner App → Within One Class |
| call another app and get a result back | Inner App → Handing a Result Back |
| make the browser's Back button work | URL Hash and Routing |
| give the user a link to the current state | App State |
| open and close a popup | Popup |
| ask a yes/no question | Message → the parameters |
| show a toast, an error or a BAPIRET table | Message |
| handle an exception | Errors and Exceptions |
| set the focus | Focus |
| refresh the screen every few seconds | Timer |
| upload or download a file | Upload, Download |
| keep two users from overwriting each other | Lock → Which Strategy? |
| read and change a RAP business object | EML |
| find out why something does not work | Common Failures |
The Groups
| Group | What it covers | Start with |
|---|---|---|
| View | Building the view in ABAP, nested views, XML templating | Building a View |
| Model | Binding, expression binding and formatters, tables, trees, the device model, the size limit | Binding |
| Event, Navigation | The life cycle, backend and frontend actions, navigation inside and between apps, the hash and the app state, exceptions | App Structure |
| Popup, Popover | Dialogs and popovers as fragments of their own | Popup |
| Translation, Messages | Messages, logging, translation with i18n | Message |
| Browser Interaction | The title, focus, scrolling, timers, the clipboard, URL handling, the soft keyboard, keyboard shortcuts | Title |
| Device Capabilities | What the frontend reports about itself, camera, geolocation, barcode scanning, audio and video, upload and download, PDF, spreadsheets | Frontend Info |
| State, Connectivity | Locks, statefulness, WebSocket, OData, smart controls | Lock |
| EML, CDS, SQL | RAP, EML, RAP draft handling, CDS, ABAP SQL | RAP |
| Patterns, Helpers | Snippets, value help, demo output, e-mail, fuzzy search | Snippets |
| Troubleshooting | The failures that come up most, and what each one means | Common Failures |
