• No results found

ABAP Erste Schritte

N/A
N/A
Protected

Academic year: 2021

Share "ABAP Erste Schritte"

Copied!
30
0
0

Loading.... (view fulltext now)

Full text

(1)

ABAP erste Schritte

Contents

Begriffe ... 4

Test- und Entwicklungssystem ... 4

Konsolidierungs- Qualitätssysicherungssystem ... 4 Produktivsystem ... 4 Transportauftrag ... 4 lokale Objekte... 4 Report ... 4 Dynpro ... 4 Workprozess ... 4 Dispatcher ... 4 Dynpro-Prozessor ... 5 ABAP-Prozessor ... 5

betriebswirtschaftliche Kernbereiche eines SAP-Systems ... 6

SAP-Module ... 6

Wichtige Transaktionen ... 7

Wichtige Systemtabellen ... 7

Anmelden ... 8

Abmelden (/NEX) ... 8

Version des Abap Application Server anzeigen ... 8

Abap-Dictionary (SE11)... 9 Tabellenarten ... 9 transparente Tabelle ... 9 Pool-Tabelle ... 9 Cluster-Tabelle ... 9 Namespaces ... 9 Auslieferungsklassen ... 9 Datenelement ... 9 Dokumentation... 9 Domäne ... 10 Wertebereiche ... 10 Ablauf ... 10

(2)

Pflege von Tabelleninhalten im Abap-Dictionary (SE11) ... 11

Anzeigen von Tabelleninhalten im Abap-Dictionary (SE11) ... 11

Datentypen anlegen ... 11 Vergleich ... 11 Datentypen ... 11 Boolean-Datentyp in ABAP ... 12 Abap-Editor (SE38) ... 12 Ablauf ... 13

Report als Anwender starten ... 13

Datenbanktabelle ausgeben ... 13 Workarea deklarieren... 13 Report kopieren... 14 Editor-Kommandos ... 14 Quellcode auskommentieren ... 14 Datentypen ... 14

Funktionen auf Zeichenketten ... 14

Abap-Debugger ... 14

Debugger starten ... 14

wichtige Debugger-Befehle ... 14

Debugger beenden ... 15

Debug-Layer konfigurieren ... 15

Versionieren von Abap-Programmen ... 15

Version erzeugen ... 15 Versionen anzeigen ... 15 ABAP-030 Infos ... 15 Technische Einstellungen ... 15 Datenelement ... 15 Domäne ... 15 Erweiterungskategorie ... 15 Eingabehilfen ... 16 Fremdschlüsselbeziehung ... 16

Pflegen von Tabellen ... 16

Append-Struktur ... 17

Views ... 17

(3)

Suchhilfe ... 17

Sammelsuchhilfe ... 17

Nachrichtenklassen ... 17

ABAP-100 Notizen ... 18

Ablauf Erstellung eines Dynpros... 18

Bildelemente ... 18 Auswahlknopf ... 18 Tabstrip ... 18 ALV-Grid ... 19 Table-Control ... 19 Web-Dynpro ... 20 Fehlermeldung ... 22 Ursache ... 22 Lösung... 22 Fehlermeldung ... 22

Fehler bei der Verarbeitung Ihrer Anfrage ... 22

Was ist passiert ? ... 22

Was können Sie tun ? ... 23

Ursache ... 23 Lösung... 23 SAP-Link ... 23 JSON ... 23 Nummernkreisobjekte ... 24 Customizing ... 24

Auslieferungsklassen der Customizing-Tabellen ... 25

Überblick ... 25 Auslieferungsklasse C ... 25 Auslieferungsklasse G ... 25 Auslieferungsklasse E ... 25 Auslieferungsklasse S ... 25 Berechtigungen ... 26 Authority-Check ... 26 Rolle ... 27

Berechtigung Objektklasse anlegen ... 28

(4)

Währungen <> 2 Dezimalstellen ... 29 Beim Speichern ... 29 Beim Laden ... 29

Begriffe

wichtige Begriffe rund um SAP

Test- und Entwicklungssystem

System mit Übungs- und Schulungsdaten

Konsolidierungs- Qualitätssysicherungssystem

Testsystem mit Kopien der Echtdaten

Produktivsystem

das Livesystem

Transportauftrag

Menge von Objekten, die auf ein anderes System übertragen werden mit Transport-Auftrasnummer

lokale Objekte

Objekte auf dem Entwicklungssystem, die niemals transportiert werden.

Report

Batchprogramme ohne Steuermöglichkeit durch den Anwenderung durch Eingabemasken

Dynpro

dynamisches Programm mit Dialogbildschirmen

Workprozess

Ein ABAP-Workprozess führt eine Anwendung aus. Er wird auf dem Dispatcher ausgeführt.

Dispatcher

(5)

Dynpro-Prozessor

Runtime für die Ablauflogik eines ABAP-Programms, reagiert auf Benutzeraktionen in Bildschrimmasken, kann nicht rechnen.

ABAP-Prozessor

Runtime für die Verarbeitungslogik eines ABAP-Programms, erhält Bildschirmeingaben vom Dynpro-Prozessor, erzeugt Bildschirmausgaben.

(6)

betriebswirtschaftliche Kernbereiche eines SAP-Systems

Bereich Abkürzung Bemerkung

Logisitk Materialwirtschaft, Produktion, Vertrieb

Rechnungswesen Finanzen, Controlling

Personal Personaladministration, Lohnabrechnung

SAP-Module

(7)

FI Finanzwesen (Finanzbuchhaltung, Rechnungswesen)

CO Controlling

HR Human Resource

Logistik:

MM Materialwirtschaft (Materials Management)

PP Produktionsplanung und Steuerung (Production Planning and Control)

PM Instandhaltung (Plant Maintenance)

SD Vertrieb (Sales and Distribution)

Wichtige Transaktionen

SE80 Object Navigator (wichtigste Transaktion)

SE84 Repository Infosystem

SE11 Abap Dictionary (Anzeigen, Ändern, Anlegen, Löschen) Werkzeuge  ABAP Workbench  Entwicklung  SE11

SE14 Abap Datenbank Utility (Tabellen umsetzen nach destruktiven Änderungen) (oder Hilfsmittel  Datenbankobjekt  Datenbank-Utility

SE38 Abap-Editor (Programme Starten)

SE24 Class Builder (Klasseneditor)

SE41 Menu Painter

SE37 Function Builder

SE54 Generierung Tabellen-Pflegedialog (oder Werkzeuge  weitere Werkzeuge  Gen.Tab-Pflegedialog

SHI3 Strukturpflege (Customizing)

SPRO Customizing: Projektbearbeitung

SU01 Benutzerverwaltung

SM30 Pflegedialog zu Tabelle suchen

SNRO Nummernkreis-Objekte pflegen

/n<Transaktion> laufende Transaktion beenden und neue Transaktion starten /nex alle Transaktionen schließen und alle Sessions beenden /o<Transaktion> neue Transaktion in neuem Modus (Fenster) starten

/h Debugger in der laufenden Transaktion starten

/hx Debugger von der laufenden Transaktion trennen

AbapDocu Abap-Hilfe starten

SE91 Nachrichtenpflege (Nachrichtenklassen pflegen)

SE09 Transport Organizer (Transporte verwalten)

SCWB Korrekturworkbench (Hinweise von anderen SAP-Systemen herunterladen)

SM36 Scheduling Manager

Z_ABAP_UNIT_TESTER Abap Unit-Test Runner

SM93 Transaktionspflege (Transaktionen verwalten, alle Transaktionen auflisten)

SM01 Transaktionen sperren

ST01 Systemtrace

SU21 Berechtigungsobjekte verwalten

Wichtige Systemtabellen

Anschauen mit SE16 (Data Browser) oder SE11 und dann "Inhalt anzeigen"

(8)

TSTC Transaktionen (TCODE = Transaktionscode)

Anmelden

Zur Programmentwicklung einloggen mit SAPGui als User BCUSER und Passwort DemoTest1

Abmelden (/NEX)

Fenster schließen System Abmelden

Version des Abap Application Server anzeigen

System  Status

(9)

Beispiel: SAP EHP 2 for SAP NetWeaver 7.0

Abap-Dictionary (SE11)

Anlegen von Tabellen, Datenelement und Domänen Menüpfad: Werkzeuge Enwicklung SE11 - Dictionary

Tabellenarten

transparente Tabelle

Datenbanktabelle für eine Entität Pool-Tabelle

eine einzige physikaltische DB-Tabelle für alle Tabellen mit gleicher Struktur z.B. für Settings PK: Pool-Tabellenname + Schlüsselfelder

Cluster-Tabelle

verteilt einen Datensatz auf mehrere Tabellen. Die Teildatensätze haben denselben PK. Namespaces

kundenspezifisches Präfix: Z oder Y

alternativ: Namespace z.B. /PRIVATENAMESPACE/ Auslieferungsklassen

Verhalten der Tabelle bei Mandantenkopie, Neuinstallation oder Upgrade. Übersicht in Feld Auslieferungsklasse mit "F1"

A: Anwendungtabelle (Stamm- und Bewegungsdaten)

Datenelement

die betriebswirtschaftlichen Attribute eines Felds

 Feldhilfe

 Caption in Eingabemasken

Namespace beachten, Lasche "Datentyp" verknüpft die Domäne Dokumentation

mit dem Button "Dokumentation" wird Word gestartet und es kann ein Hilfetext für das Datenelement erfasst werden (vorher hineinzoomen).

(10)

Domäne

die technischen Attribute eines Felds

 Datentyp

 Länge

 Dezimalstellen

 Wertebereiche

Alle möglichen Datentypen anzeigen mit F4.

Wertebereiche

Einzelwerte, Intervalle, Wertetabellen Ablauf

 speichern (Ctrl-S)

 prüfen (Ctrl-F2)

Menüpfad: Domäne  prüfen  prüfen

 aktivieren (Ctrl-F3) Button: "Aktivieren"

 Zurück (F3)

(11)

technische Einstellungen für Tabelle

Button "technische Eistellungen" drücken. Datenart (Stammdaten) und geschätzte Größe der Tabelle angeben, Pufferungsverhalten der Tabelle festlegen (Caching, z.B. alle DS vorladen)

Pflege von Tabelleninhalten im Abap-Dictionary (SE11)

Menüpfad: Hilfsmittel  Tabelleninhalt  Einträge erfassen

Anzeigen von Tabelleninhalten im Abap-Dictionary (SE11)

Menüpfad: Hilfsmittel  Tabelleninhalt  Anzeigen

Datentypen anlegen

Mit dem Feld Datentyp können Datenselemente, Strukturen und Tabellentypen (für interne Tabellen angelegt werden).

Vergleich

Tabellentyp, Struktur, transparente Tabelle ???

Datentypen

Dictionary type Meaning Maximum length n ABAP type

DEC Calculation/amount

field

1-31, 1-17 in tables P((n+1)/2)

INT1 Single-byte integer 3 Internal only

INT2 Two-byte integer 5 Internal only

INT4 Four-byte integer 10 I

CURR Currency field Jan 17 P((n+1)/2)

CUKY Currency key 5 C(5)

QUAN Amount Jan 17 P((n+1)/2)

UNIT Unit 02. Mrz C(n)

PREC Accuracy 16 Internal only

FLTP Floating point number 16 F(8)

(12)

CHAR Character 1-255 C(n)

LCHR Long character 256-max C(n)

STRING. String of variable length

1-max STRING.

RAWSTRING Byte sequence of variable length

1-max XSTRING

DATS Date 8 D

ACCP Accounting period YYYYMM

6 N(6)

TIMS Time HHMMSS 6 T

RAW Byte sequence 1-255 X(n)

LRAW Long byte sequence 256-max X(n)

CLNT Client 3 C(3)

LANG Language internal 1, external 2 C(1)

Boolean-Datentyp in ABAP

Datentyp Konstante Wirklichkeit

abap_bool c(1) abap_true 'X' abap_false ' ' abap_undefined '-' siehe http://help.sap.com/abapdocu_731/en/abendataobjects_true_value_guidl.htm Beispiel:

DATA is_found TYPE abap_bool. ... is_found = abap_true. ... IF is_found = abap_true. ... ENDIF.

Abap-Editor (SE38)

Menüpfad: Werkzeuge  Entwicklung  SE38 - Abap Editor

Programmname: max. 40 Zeichen, Namespace beachten, Nur Unterstrich (_) als Sonderzeichen erlaubt.

Variablen: max. 30 Zeichen, keine reservierten ABAP-Schlüsselwörter, Nur Unterstrich (_) als Sonderzeichen erlaubt.

Pretty-Printer Einstellungen: Hilfsmittel  Einstellungen  Abap-Editor  Pretty Printer  Groß-/Kleinkonvertierung durchführen  Schlüsselwort groß

Editor Einstellungen: Hilfsmittel  Einstellungen  Abap-Editor Editor  alle Syntaxfehler anzeigen.

(13)

Ablauf

 speichern (Ctrl-S)

 prüfen (Ctrl-F2)

Programm  prüfen  Syntax

 aktivieren (Ctrl-F3) Button: "Aktivieren"

 ausführen (F8)

Programm  testen  direkt

 zurück zum Editor (F3)

Report als Anwender starten

 zweites Fenster öffnen (Ctrl-n) (Button "neuen Modus erzeugen") System  Erzeugen Modus

 System  Dienste  Reporting

 Programmname eingeben , F8

Datenbanktabelle ausgeben

Workarea deklarieren

DATA wa_zteilnehmer TYPE zteilnehmer.

Die Felder in der Workarea-Struktur entsprechen den Feldnamen in der Tabelle mit Bindestrich vom WA-Namen getrennt.

(14)

Beispiel: wa_zteilnehmer-tname

Report kopieren

 SE38 Programm-Name eingeben

 Programm  kopieren, Button "kopieren, Ctrl-F5

 neuen Programm-Namen eingeben

Editor-Kommandos

Quellcode auskommentieren

 Block im Quellcode markieren

 Hilfsmittel  Block/Ablage  Kommentar-* einfügen

Datentypen

Name Bedeutung Beispiel

i integer DATA zahl01 TYPE i.

p decimal DATA zahl01 TYPE p DECIMALS 2. VALUE '-5.67'

c string mit fixer Länge DATA geschlecht TYPE c LENGTH 1 VALUE 'W'.

n numerischer string mit

fixer Länge (nur Ziffern), rechtsbündig mit führenden Nullen

DATA telefon TYPE n LENGTH 8 VALUE '887766'.

string string mit variabler Länge

Funktionen auf Zeichenketten

SHIFT telefon LEFT DELETING LEADING '0'. SHIFT telefon BY 2 PLACES RIGHT.

* Stringliterale mit Hochkommas verwerfen trailing whitespaces * Stringliterale mit Backticks behalten trailing whitespaces REPLACE ` ` IN telefon_international WITH national_vorwahl. * mehrfache Leerzeichen verdichten

CONDENSE telefon_international. * alle Leerzeichen entfernen

CONDENSE telefon_internation NO-GAPS.

CONCATENATE international_vorwahl national_vorwahl telefon INTO telefon_lang.

CONCATENATE international_vorwahl national_vorwahl telefon INTO telefon_lang SEPARATED BY '-'. telefon_internation = internation_vorwahl && '-' && national_vorwahl && '-' && telefon.

Abap-Debugger

Debugger starten

Aufruf aus dem Abap-Editor durch Setzen eines Breakpoints in die aktuelle Editorzeile mit Button "Session-Breakpoint setzen/löschen" Ctrl+Shift-F12 oder auf dem linken Rand rechte Maustaste  Session Breakpoint setzen . Vor dem Debuggen muß ein Programm aktiviert werden. Programmstart mit F8.

wichtige Debugger-Befehle

F5 Step-In

(15)

F7 Return bis zum nächsten Funktionsende

F8 Weiter (bis zum nächsten Breakpoint)

Ctrl+Shift+F3 Breakpoints sichern für spätere Sessions

Debugger beenden

Debugger  Debugger beenden Debug-Layer konfigurieren

Komponenten, die man nicht debuggen will, werden mit dem Button "Debug-Layer konfigurieren" Ctrl+Shift-F4 ausgeblendet.

Versionieren von Abap-Programmen

Im Abap-Editor (SE38) können Versionen von Abap-Programmen angelegt werden. Version erzeugen

Hilfmittel  Versionen  Version ziehen Versionen anzeigen

Hilfsmittel  Versionen  Versionsverwaltung

Mit dem Button "Zurückholen" wird eine alte Version des Programms wiederhergestellt. Die zurückgeholte Version ist noch inaktiv.

ABAP-030 Infos

Technische Einstellungen

Datenart (APPL0 = Stammdaten, APPL1 = Bewegungsdaten) Größenkategorie (0-4)

Pufferung

Tabellen puffern, ein/aus, Einzelsätze gepuffert, generischer Bereich gepuffert, vollständig gepuffert Tabellenänderungen protokollieren

Auslieferungsklassen (A = Stamm- Bewegungsdaten, C = Customizingtabellen) bestimmen ob Tabelleninhalt transportiert wird.

Datenelement

(Namensraum beachten ZS_GEHALT) Feldbezeichner, Dokumentation, F1-Hilfe

Domäne

(Namensraum beachten ZS_PERSNR)

Erweiterungskategorie

Zusätze  Erweiterungskategorie (beliebig erweiterbar) auch für Strukturen angeben.

(16)

.INCLUDE Unterstruktur

Index anlegen, zusammengesetzte Indices

Eingabehilfen

 Suchhilfe

(in SE11 Lasche Eingabehilfe/-prüfung Spalte Suchhilfe)

Festwerte für Suchhilfe in Domäne angeben (Lasche Wertebereich)

 Prüftabelle

(durch Fremdschlüsselbeziehung, Button "Fremdschlüssel")

 Festwerte

(in Domäne angeben)

Fremdschlüsselbeziehung

Zuordnung der Vorschläge für Fremdschlüsselbeziehungen über dieselbe Domäne (Domänengleichheit).

Art der Fremdschlüsselfelder:

 nicht spezifiziert

 keine Schlüsselfelder/-kandidaten

 Schlüsselfelder/-kandidaten

 Schlüsselfelder einer Texttabelle (Für mehrsprachige Texte) Kardinalität:

1 (Eintrag im Prüffeld muß vorhanden sein)

:

CN (Jeder Satz der Prüftabelle hat beliebig viele abhängige Sätze)

C (Eintrag im Prüffeld kann vorhanden sein) C (Jeder Satz der Prüftabelle hat höchstens einen abhängigen Satz) N (Jeder Satz der Prüftabelle hat mindestens einen abhängigen Satz) 1 (Jeder Satz der Prüftabelle hat genau einen abhängigen Satz)

Tipp: "C" = kann = "can" Meistens ist es 1: CN

Bemerkung: Fremdschlüssel sind nur auf Dynpros wirksam. Mittels eines ABAP-Programms können Datesätze ohne Verprobung in die Tabelle geshrieben werden.

Pflegen von Tabellen

(17)

Append-Struktur

Views

 Datenbankview

Inner Join, Pflegestatus definiert lesen/schreiben

 Pflegeview

Outer Join mit Eventmodell, Join nur über hinterlegte Fremdschlüsselbeziehungen möglich, Button „Beziehungen“ , wichtig: Button „Tabellenfelder“ Grundelement des Customizing

 Help-View

ist ein Selektionsview der einen Outer-Join definiert, wird für Suchhilfe verwendet

 Projektionsview

blendet Felder aus, wird selten verwendet, für Schnittstellen gedacht

Join, Selektion, Projektion, Performance. Alle Key-Felder an den Anfang des Views stellen, View-Cluster sind Verschachtelungen von Views in Baumstruktur. Daten pflegen mit System  Dienste  Tabellenpflege  erweiterte Tabellenpflege

Pflegeview generieren: SE11  View auswählen  Hilfsmittel  Tabellenpflegegenerator  ausfüllen  wichtig: Menü  generierte Objekte  Anlegen (oder F6)

Eingabehilfe (F4-Hilfe)

Einheitlicher Mechanismus zur Unterstützung des Anwenders bei der Datenerfassung. Ähnlich Prüftabelle, aber detaillierter, mit Einbeziehung der bisher gemachten Eingaben (Context). Bei vielen Treffern kann innerhalb der Suchhilfe weiter eingeschränkt werden.

Suchhilfe

Definiert durch Tabelle oder View, LPos (= Liste der Treffer), SPos (= Suchmaske für weitere Einschränkung der Trefferliste) Import-/Export-Parameter definieren (IMP/EXP)

Sammelsuchhilfe

Kombination mehrerer Suchhilfen zu einer Suchhilfe mit Tab-Reitern.

Nachrichtenklassen

siehe http://www.saphub.com/abap-tutorial/messages-in-abap/

1. MESSAGE xnnn WITH p1 p2 p3.

2. MESSAGE ID id TYPE mtype NUMBER n WITH p1 p2 p3. 3. MESSAGE xnnn(mid) WITH p1 p2 p3.

Message-TYPE Bedeutung Ausgabe

A Abandon Pop mit Fehlermeldung und

Programmende

E Error Fehlermeldung in Statusleiste

und Programmende

I Information PopUp mit Messagetext

S Status message Messagetext in Statusleiste

W Warning PopUp mit Messagetext

(18)

ABAP-100 Notizen

Ablauf Erstellung eines Dynpros

1. Ok_code_save sy-ucomm 2. TABLES 3. Dynpro anlegen 4. PBO bauen a. Titel => b. Status => i. Funktionstastenleise ii. Symbolleiste iii. Drucktastenleiste iv. Menüleiste 5. Layout malen 6. PAI bauen

a. Module exit at exit-command b. Feldvalidierung bauen

FIELD feld MODULE check_feld on input/request

CHAIN FIELD feld1. FIELD feld2 MODULE check_felder on chain-input/chain-request c. Ok_code_save, dann CASE ok_code_save ENDCASE

7. Transaktion anlegen  SAP-Gui für Windows

Bildelemente

Drucktaste, Ankreuzfeld, Ein-/Ausgabefeld, Auswahlknopf, Auswahlknopfgruppe

Auswahlknopf

begin of rb1,

feld1 type c value ‚X‘, feld2 type c

end of rb1.

Tabstrip

CONTROLS: tabstrip1 TYPE tabstrip

wie Drucktaste, Referenzfeld = Subscreenbereich SUBSCREEN1. Tabstrip-Name = tabstrip1 dynnr TYPE sy-dynnr.

PROCESS BEFORE OUTPUT. MODULE STATUS_0100.

module initSubscreen_0100.

"" Subscreenbereich einbinden im PBO

Call subscreen subscreen1 INCLUDING sy-cprog dynnr. *

PROCESS AFTER INPUT.

(19)

"" PAI des Subscreens aufrufen

call subscreen subscreen1. MODULE USER_COMMAND_0100.

Im PAI: Tabstrip1-activetab = ok_code_save setzen. im Subscreen-Dynpro kein Status, kein ok_code

ALV-Grid

Repository-Infosystem cl_gui*

cl_gui_custom_container, constructor-Methode anschauen => Parameter container_name cl_gui_alv_grid, constructor-Methode anschauen => Parameter parent,

my_alv_grid->set_table_for_first_display( exporting i_structure_name = 'SPFLI'

changing it_outtab = itab_spfli ). cl_gui_cwf

Feldkatalog: data fcat type LVC_T_FCAT (Tipp: In cl_gui_alv_grid nach fcat suchen) Tabelle mit Spalteneigenschaften (fcat-fieldname = ‚Spaltenname‘ )

Vor set_table_for_first_display sollte der Feldkatalog geholt warden.

* Feldkatalog holen

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

EXPORTING

i_structure_name = 'SPFLI'

CHANGING

ct_fieldcat = gs_fcat. Spalten ausblenden: wa_fcat-TECH wa_fcat-NO_OUT my_alv_grid->refresh_table_display( ).

Event Toolbar: e_object->mt_toolbar (im Repository nachschauen Icon @44@, einen Tabelleneintrag ergänzen, append)

Event User_Command: e_ucomm (mit dem ok_code) clc_gui_cfw->set_new_ok_code( e_ucomm ) aufrufen.

Table-Control

Control TableView, TABLES, interne Tabelle, Arbeitsbereich auf interne Tabelle. Layoutbereich-Name wie TableView-Control.

PROCESS BEFORE OUTPUT. MODULE STATUS_0100.

module init_tablecontrol.

loop at itab_zauto into wa_zauto WITH CONTROL my_tableview. module to_tableview.

endloop. *

(20)

PROCESS AFTER INPUT.

module exit1 at exit-command. loop at itab_zauto.

chain.

field ZAUTOSCHUL2-KENNZEICHEN. field ZAUTOSCHUL2-HERSTELLER. field ZAUTOSCHUL2-TYP.

field ZAUTOSCHUL2-PREIS.

module from_tableview on chain-request. endchain.

endloop. PBO:

module TO_TABLEVIEW output.

move-CORRESPONDING wa_zauto to zautoschul2. endmodule.

PAI:

module FROM_TABLEVIEW input.

move-CORRESPONDING zautoschul2 to wa_zauto. modify itab_zauto

from wa_zauto

index my_tableview-current_line. endmodule.

Im PBO wird mit dem LOOP über die interne Tabelle iteriert und in jeder Iteration jeweils eine Zeile in die TABLES-Struktur gefüllt. Über Namensgleichheit der Felder der Tables-Struktur und der Dynpro-Elemente des Tablecontrols werden die Felder in das Dynpro, und damit in die TableView transportiert.

Im PBO wird über die gesamte interne Tabelle iteriert, im PAI nur über die angezeigten Zeilen des TableControls.

Web-Dynpro

1. Web-Dynpro-Komponente anlegen 2. Component-Controller bauen

Mit Context beginnen!

Context  Knoten anlegen über Wizard  Namen vergeben (AUTOS bzw. AUTO)  Attribute aus Struktur hinzufügen transparente Tabelle auswählen  gewünschte Attribute auswählen

3. Kardinalität festlegen (1:n für Liste)

4. View bauen

Wieder mit Context beginnen!

Context  gewünschten Knoten mit D&D herüberziehen falls es die Liste ist, Kardinalität 1:n Context  für Detailview Knoten anlegen, Kardinalität 1:1  Anlegen über Wizard  Attribute aus Komponenten einer Struktur  Struktur des Details angeben

(21)

5. Kardinaltität festlegen

Wichtiger Trick zu Context: Alle Contexte, die man für die Bearbeitungen im View braucht bindet man sich in diesen View ein. z.B. im Detailview die Struktur UND die Liste, weil man hier die Struktur in die Liste einfügen will.

6. Layout des View erstellen mit Zauberstab

Unter dem Button Context sieht man jetzt die Struktur, wenn man den Schritt 4 richtig gemacht hat. Häkchen "Form in neuem Container erzeugen.

7. WebDynpro Application anlegen

8. Component: Name der Komponente, Interface-View: Name des Windows Plug-Name: Default

9. Button einfügen

onAction  Abkürzung "Aktion anlegen" + Outbound-Plug anlegen 10. Window editieren

Wichtig: alle neu gebauten Views mit D&D zu WINDOWS hinzufügen und Outbound-Plug mit Inbound-Plug per D&D verbinden. Erst wenn diese Verbindung gemacht wurde, funktioniert die Navigation.

Der View, der als Default angezeigt werden soll: rechte Maustaste 'Als Default setzen' 11. Codieren der Listenoperationen im Outbound-Plug der Detailansicht, Zauberstab benutzen

(MOVE-CORRESPONDING ls_todo to ls_todos). ls_todos ist eine Struktur und keine interne Tabelle!

(22)

Fehlermeldung

ACC: Label für MeltingGroup-artigen Container "FORM_CONTAINER" nicht gesetzt. Ursache

Barrierefreiheit Lösung

Für einen Form-Container muss daneben ein zusätzliches Label eingefügt werden wg. (Attribut Label_For: FORM_CONTAINER setzen)

Fehlermeldung

Die URL enthält keine vollständige Domainangabe (sapvhd statt sapvhd.<domain>.<ext>).

Fehler bei der Verarbeitung Ihrer Anfrage

Was ist passiert ?

Der Aufruf der URL http://sapvhd:8000/sap/bc/webdynpro/sap/ztodolist wurde aufgrund eines Fehlers abgebrochen. Hinweis

Folgender Fehlertext wurde im System NSP prozessiert: Die URL enthält keine vollständige Domainangabe (sapvhd statt sapvhd.<domain>.<ext>).

 Der Fehler trat auf dem Applikationsserver sapvhd_NSP_00 und im Workprozess 4 auf.  Die Abbruchart war: RABAX_STATE

 Die ABAP-Aufrufhierarchie war:

Method: CHECK of program CX_FQDN=======================CP Method: STARTUP_CHECKS of program CL_WDR_CLIENT_ABSTRACT_HTTP===CP Method: HANDLE_REQUEST of program CL_WDR_CLIENT_ABSTRACT_HTTP===CP Method: IF_HTTP_EXTENSION~HANDLE_REQUEST of program

CL_WDR_MAIN_TASK==============CP

Method: EXECUTE_REQUEST of program CL_HTTP_SERVER================CP Function: HTTP_DISPATCH_REQUEST of program SAPLHTTP_RUNTIME

(23)

Was können Sie tun ?

 Im Falle der Abbruchart RABAX_STATE finden Sie im System NSP in der Transaktion ST22 weitere Informationen bzgl. der Abbruchursache.

 Im Falle der Abbruchart ABORT_MESSAGE_STATE finden Sie auf dem Applikationsserver sapvhd_NSP_00 in der Transaktion SM21 weitere Informationen bzgl. der Abbruchursache.

 Im Falle der Abbruchart ERROR_MESSAGE_STATE können Sie nach weiteren Informationen in der Tracedatei zum Workprozess 4 in der Transaktion ST11 auf dem Applikationsserver sapvhd_NSP_00 suchen. Unter Umständen ist die Analyse von Tracedateien zu anderen Workprozessen notwendig.

 Fall Sie noch über keine Benutzerkennung verfügen, so wenden Sie sich an Ihren Systemadministrator.

Fehlercode: ICF-IE-http-c:001-u:BCSERVICE-l:D-s:NSP-i:sapvhd_NSP_00-w:4-d:20121007-t:165800-v:RABAX_STATE- e:UNCAUGHT_EXCEPTION-X:080027D9EDFF1ED28491EBBC1532F7A2_080027D9EDFF1ED28491EBCD11F237A2_1-x:5D8F10E2A9E0F19D97A2080027D9EDFF

HTTP 500 - Internal Server Error

Ihr SAP Internet Communication Framework Team

Ursache

Falsche URL angegeben Lösung

Statt der in der WebDynpro angegebenen Url http://sapvhd:8000/sap/bc/webdynpro/sap/ztodolist die Url http://sapvhd.local:8000/sap/bc/webdynpro/sap/ztodolist einfach in den Browser eintippen und verwenden (mit dem User BCService).

SAP-Link

Nuget für SAP How-To: http://sdnabaper.blogspot.de/2010/11/how-to-install-saplink.html

Nach Installation von SAP-Link das Paket NUGG_SAPLINE_DDIC-0.1.nugg installieren (SE38 ZSAPLINK, F8 Nugget importieren, ...) Alle importieren Klassen müssen wieder mit SE24 aktiviert werden.

JSON

Nugg-Paket zum Verarbeiten von JSON-Daten: NUGG_ZJSON.nugg. Voraussetzung ist, dass das DDIC-Paket und das FunctionGroup-DDIC-Paket (FUGR) NUGG_FUNCTIONGROUP_PLUGIN-0.1.2.nugg installiert wurde und die Klassen mit SE24 aktiviert wurden.

Sonst bekommt man die Fehlermeldung:

There is no installed SAPlink plugin for object type DTEL There is no installed SAPlink plugin for object type TABL There is no installed SAPlink plugin for object type TTYP There is no installed SAPlink plugin for object type TABL There is no installed SAPlink plugin for object type VIEW

(24)

Start import of nugget C:/Projects/NUGG_ZJSON.nugg There is no installed SAPlink plugin for object type FUGR Ausgabe nach erfolgreicher Installation:

Start import of nugget C:/Projects/NUGG_ZJSON.nugg Installed: DTEL - ZSTRING

Installed: TABL - ZGS_0004 Installed: TTYP - ZGY_0004 Installed: FUGR - ZJSON

Die importierten Datenelemente müssen mit SE11 aktiviert werden (ZSTRING, ZGS_0004 ZGY_0004) alle Funktionsbausteine der Funktionsgruppe ZJSON mit SE80 (Funktionsgruppen anklicken  rechte Maustaste "Aktivieren").

In der Funktionsgruppe ZJSON müssen noch die ENDFUNCTION. Befehle hochgezogen werden, sonst compilieren die Funktionsbausteine nicht.

Nummernkreisobjekte

http://help.sap.com/saphelp_46c/helpdata/de/2a/fa02e3493111d182b70000e829fbfe/frameset.ht m

Nummernkreise anlegen: Werkzeuge ABAP/4 Workbench Entwicklung Weitere Werkzeuge Nummernkreise

wichtigste Funktionsgruppe: SNR3

Customizing

spro Einführungsleitfaden starten

shi3 Strukturpflege (structure hierarchy)

sm30 Pflegeviews starten (structure maintenance)

sm31

Einführungsleitfaden engl. Implementation Guide (IMG).

SAP-Referenz-IMG: alle Customizing-Aktivitäten, die im SAP-System möglich sind, hierarchisch gegliedert nach Anwendungsbereichen.

Customizing-Aktivitäten:

 muss (keine SAP-Voreinstellung möglich)

 kann (die SAP-Voreinstellung ist zu prüfen)

 nicht erforderlich

(25)

Auslieferungsklassen der Customizing-Tabellen

Beschreibung der Auslieferungsklassen, dem Verhalten bei Mandatenkopie, Verhalten bei Upgrade.

http://help.sap.com/saphelp_nwpi71/helpdata/de/43/45860774b711d2959700a0c929b3c3/content .htm

Überblick

Auslieferungsklasse C

Typ: Kundentabelle

Pflege nur durch den Kunden, kein SAP-Import, d.h. keine Vorschlagswerte werden ausgeliefert. Beispiel:

Unternehmensstruktur des Kunden (= Stammdaten)

Auslieferungsklasse G

Typ: Kundentabelle

SAP darf neue Datensätze einfügen, aber keine vorhanden überschreiben oder löschen. Pflege durch Kunden und SAP in getrennten Namensräumen, d.h. SAP liefert Vorschläge aus.

Der Kundenamensraum muß mit dem Report RDDKOR54 in der Tabelle TRESC definiert werden. Bei der Pflege des Customizing mit SM30 wird der Namensraum überprüft.

In neuen Versionen kann sich Vorschlagsliste ändern. Sinnvoll ist in neuen Versionen nur Vorschagswerte zu ergänzen, weil der Kunden die Vorschlagswerte aus vorherigen Versionen benutzt hat. Kunde kann eigene Werte eintragen (in eigenem Namensraum!). Nur bei Verwendung getrennter Namensräume werden die Kundeneinträge nicht von SAP-Vorschlagswerten

überschrieben. Namensräume pflegen! Fachliche Unterfälle:

1. Die kundenspezifische Ergänzung ist die Ausnahme

z.B. Währungseinheiten, Länderschlüssel. Maßeinheiten. Ergänzung von kundenspezifischen Maßeinheiten.

2. Die kundenspezifische Ergänzung ist die Regel

Hier liefert SAP die Vorschlagswerte, sie können auch übernommen werden. Kundenspezifische Ergänzungen sind jedoch häufig. Oftmals basieren sie auf den

Vorschlagswerten von SAP, die kopiert werden und an einigen Stellen abgeändert werden.

Auslieferungsklasse E

Typ: Systemtabelle (SAP-Tabelle)

Kunde darf neue Datensätze einfügen. Analog zur Auslieferungsklasse G nur anders herum (Kunde <-> SAP).

Der Kundenamensraum muß mit dem Report RDDKOR54 in der Tabelle TRESC definiert werden.

Auslieferungsklasse S

Typ: Systemtabelle

(26)

Berechtigungen

su01 Benutzer verwalten

pfcg Rollen verwalten

su02 Berechtigungsprofile verwalten

su03 Objektklasse für Berechtigunsobjekte verwalten

su21 Berechtigungsobjekte verwalten

su24 Berechtigungsobjekte den Transaktionen zuordnen

su53 Historie der Berechtigungsprüfungen, (welche haben letztes Mal gefehlt, nach einem Authorization-Check Fehler)

su56 eigene Berechtigungen anzeigen

st01 Systemtrace (u.a. Berechtigungsprüfung tracen)

Geschäftsparter (Businesspartner) order Organsisationsmanagement (pdorg)

Benutzer haben Berechtigungen. Eine Berechtigung bezieht sich auf ein Berechtigungsobjekt

(=Datenstruktur mit mehreren Feldern). Berechtigung = Instanziierung des Berechtigungsobjekt, d.h. für jedes Feld wird ein Wert angegeben.

Beispiel: Benutzer hat zum Berechtigungsobjekt M_BEST_BSA ("Belegart in Bestellung") eine Berechtigung "YM_BEST_NB" mit den Feldwerten

 BSART ("Einkaufsbelegart") = NB ("Normalbestellung")

 ACTVT ("Aktivität") = * (numerisch Anlegen, Ändern, Löschen, Preisanzeige, ... oder Wildcard)

Authority-Check

lv_bsart = 'NB'. "Normalbestellung anlegen AUTHORITY-CHECK OBJECT ’M_BEST_BSA’

ID ’BSART’ FIELD lv_bsart ID ’ACTVT’ FIELD ’02’.

IF sy-subrc <> 0.

(27)

prüft: Hat der Benutzer eine Berechtigung, die das Berechtigungobjekt "abdeckt" (matched), wenn im Berechtigungsobjekt die Variablen entsprechend dem Authority-Check gefüllt sind?

Abdecken: beinhalten, im Intervall (bei numerisch), durch Wildcard erfüllt (*) Forderung des Authority-Check:

Feld des

Berechtigungsobjekts

Forderung des Authority-Check von Berechtigung des Benutzers erfüllt?

BSART NB ok

ACTVT 02 ok, weil Wildcard * jede Zahl matched

Berechtigungen werden zu Berechtigungsprofilen ("Einzelprofile") zusammengefasst. Berechtigungsprofile werden zu Sammelprofilen zusammengefasst

Rolle

Menge von Transaktionen, die eine Gruppen von Benutzern i.d.R. ausführt (z.B. Einkäufer) + rollenspezifisches Menü. Für jede Transaktion ist vom Softwarehersteller hinterlegt, welche Berechtigungsobjekte abgefragt werden  automatisches Generieren von Berechtigungsprofilen. Bearbeiten: In su01 auf die Rolle doppelklicken, dann "Berechtigungsdaten pflegen" auswählen, oder SU53.

(28)

Berechtigung Objektklasse anlegen

http://books.google.de/books?id=s5NWPIBiT6cC&pg=PA356&lpg=PA356&dq=sap+berechtigungsobj ekt+objektklasse+anlegen&source=bl&ots=T6j2PfotNb&sig=wfSVMQMvZT_A7btNGZtHjb3hSXQ&hl= en&sa=X&ei=NIIqUbfBC-et4ASnmIDADw&ved=0CGMQ6AEwBg#v=onepage&q=sap%20berechtigungsobjekt%20objektklasse %20anlegen&f=false

TC SU21  Anlegen Button auswählen  Im Dropdown "Objektklasse" auswählen

Berechtigungsobjekt anlegen

http://help.sap.com/saphelp_erp60_sp/helpdata/de/9e/74ba3bd14a6a6ae10000000a114084/conte nt.htm

(29)

TC SU21  Anlegen Button auswählen  Objektklasse auswählen, in der das Berechtigungsobjekt angelegt werden soll  Im Dropdown "Berechtigungsobjekt" auswählen

Währungen <> 2 Dezimalstellen

SAP hat zur Speicherung von Währungsbeträgen als internes Format DEC(17.2) gewählt. Bei Währungen <> 2 Dezimalstellen muss das folgende Verfahren angewendet werden.

Beim Speichern

Konvertierung des Betrags in das interne Format durch Multiplikation mit 10 ^ "Anzahl Dezimalstellen" anschließend Division durch 10^2

Das entspricht der Speicherung des Währungsbetrags "ohne die Dezimalstellen" Beispiel 123456 JPY  als DEC(17.2) = 1234,56

Beim Laden

Konvertieren des Betrags in das externe Format durch Multiplikation mit 10^2 anschließend Division mit 10 ^Anzahl der Dezimalstellen aus der Währung

Beispiel DEC(17.2) = 1234,56  123456 JPY

Die Anzahl der Dezimalstellen einer Währung steht in der Tabelle TCURX (Dezimalstellen der Währungen)

Diese Konvertierungen werden beim Feldtransport gemacht, wenn das Währungsfeld vor dem Betragsfeld transportiert wird. Bei einem BAPI oder bei einer selbstprogrammierten API müssen diese Konvertierungen selbst durchgeführt werden. Dazu gibt es zwei SAP-Funktionsbausteine: CURRENCY_AMOUNT_BAPI_TO_SAP: converts the data to two decimal before saving

CURRENCY_AMOUNT_SAP_TO_BAPI: conversion to correct decimals for end user viewing.

Bemerkung: SE11 stellt den Währungsbetrag im Dezimalfeld FALSCH dar. Den richtigen Wert erhält man nur, wenn man einen eigenen ZReport mit write "Dezimalfeld" erstellt.

(30)

Hintergrundverarbeitung

SM37 Jobs verwalten SM36 Jobs einplanen http://help.sap.com/saphelp_nw70ehp2/helpdata/de/c4/3a7ed1505211d189550000e829fbbd/fram eset.htm

ABAP-Unittests

References

Related documents

Where in the study of Palestinian security market (PSE) the ADF, PP and run test is used to test the weak-form efficiency and it is concluded from the both parametric

Application developed by android are easily available on Google play store basically Google play store contain all the applications and games.. This paper will contain detailed

also, there are numerous sites just like the parts store site, Hitachi eub 405 manual and others that guide while repairing the product.. additionally they help in identifying

&#34;Validity of the Hospital Anxiety and Depression Scale to assess depression and anxiety following traumatic brain injury as compared with the Structured Clinical Interview for

Jamila Johnson, Employee Internet Misuse: How Failing to Investigate Pornography May Lead to Tort Liability, 4 Shidler J.. How Failing to Investigate Pornography May Lead To

According to interview result, the students wanted the learning materials which helped them to learn all of component of writing skills including content, grammar,

The inherent parallelism within real-time periodic tasks are exploited by CMP in this paper by scheduling the tasks in set EX by using the FT-RT-CMP algorithm

The quality-adjusted rent was computed using the estimated coefficients and characteris- tics of a typical flat. Namely, it was calculated for a flat having an area of 70 square