Top Banner
SAP AG2000 A dvanced dvanced B usiness usiness P rogramming rogramming A pplication pplication / 4 Szkolenie ABAP
61

SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

Dec 11, 2015

Download

Documents

Moriah Searcy
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

A dvanceddvanced B usinessusiness

P rogrammingrogrammingA pplicationpplication

/4

Szkolenie ABAP

Page 2: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Warto odwiedzić

•www.sapgenie.com•http://www.geocities.com/SiliconValley/Grid/4858/sap/ABAPCode/•http://abap4.tripod.com/•http://www.abaptools.com/•http://www.geocities.com/ResearchTriangle/1635/abap.html•http://www.antarcon.de•http://sap.ittoolbox.com/•http://www.henrikfrank.dk/abapexamples/index.html

Page 3: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Architektura R/3

Page 4: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Używanie indeksów bazy danych

Page 5: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Selekcja z użyciem JOIN

SELECT P~CARRID P~CONNID F~FLDATE

INTO TABLE I_FLIGHT

FROM SPFLI AS P INNER JOIN

SFLIGHT AS F

ON P~CARRID = F~CARRID AND

P~CONNID = F~CONNID

WHERE P~CARRID IN S_CARRID.

Page 6: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

INNER JOIN

Page 7: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

OUTER JOIN

Page 8: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

JOIN dla większej ilości tabel

Page 9: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

For All Entries

check not i_check_tab[] is initial.

select pole1 pole2 from tabela

into table i_tab

for all entries in i_check_tab

where pole1 = i_check_tab-pole1.

Page 10: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Tabele wewnętrzne I

SORT i_tabh BY h. SORT i_tabp BY h p.

LOOP AT i_tabh. READ TABLE i_tabp WITH KEY h = i_tabh-h BINARY SEARCH. WHILE ( SY-SUBRC = 0 ) AND ( i_tabp-h = i_tabh-h ). V_IX = SY-TABIX + 1. perform something. READ TABLE i_tabp INDEX V_IX. ENDWHILE. ENDLOOP.

Page 11: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Tabele wewnętrzne II

SORT i_tabh BY h. SORT i_tabp BY h p.

LOOP AT i_tabp. AT NEW H. READ TABLE I_TABH WITH KEY H = I_TABP-H BINARY SEARCH. ENDAT. perform something. ENDLOOP.

Page 12: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Tabele wewnętrzne III

V_IXP = 1. READ TABLE i_tabp INDEX V_IXP. LOOP AT i_tabh. WHILE ( SY-SUBRC = 0 ) AND ( i_tabp-h <= i_tabh-h ). if i_tabp-h = i_tabh-h. perform something. endif. ADD 1 TO V_IXP. READ TABLE i_tabp INDEX V_IXP. ENDWHILE. ENDLOOP.

Page 13: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Nowe typy tabel wewnętrznych

DATA itab {TYPE tabkind OFlinetype|

LIKE tabkind OF lineobj}           

WITH [UNIQUE|NON-UNIQUE] keydef      [INITIAL SIZE n] [WITH HEADER LINE].

TYPES: BEGIN OF STRUC,

NAME(10),

AGE TYPE I,

END OF STRUC,

       HTAB TYPE HASHED TABLE OF STRUC

WITH UNIQUE KEY NAME.

DATA : PERSONS TYPE HTAB.

Page 14: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Operacje na tabelach wewnętrznych

INSERT [wa INTO|INITIAL LINE INTO] TABLE itab.

COLLECT [wa INTO] itab.

MODIFY TABLE itab [FROM wa] [TRANSPORTING f1 ... fn].

MODIFY itab [FROM wa] TRANSPORTING f1 ... fn WHERE cond.

READ TABLE itab FROM wa_x [INTO wa]

READ TABLE itab WITH TABLE KEY k1 = v1 ... kn = vn [INTO wa]

READ TABLE itab WITH KEY k1 = v1 ... kn = vn [INTO wa] [BINARY SEARCH]

LOOP AT itab [INTO wa].

DELETE TABLE itab WITH TABLE KEY k1 = v1 ... kn = vn.

DELETE TABLE itab [FROM wa].

DELETE itab INDEX idx.

DELETE itab WHERE logexp.

DELETE ADJACENT DUPLICATES FROM itab.

Page 15: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Klucz tabeli wewnętrznej

DATA itab {TYPE tabkind OFlinetype|

LIKE tabkind OF lineobj}           

WITH [UNIQUE|NON-UNIQUE] keydef      [INITIAL SIZE n] [WITH HEADER LINE].

•KEY key1 ... keyn

•KEY TABLE_LINE

•DEFAULT KEY

Page 16: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Definiowanie tabeli standardowej

DATA itab {TYPE TABLE OF linetype|

LIKE TABLE OF lineobj}.

DATA itab {TYPE STANDARD TABLE OF linetype|            LIKE STANDARD TABLE OF lineobj}

WITH DEFAULT KEY.

DATA itab TYPE RANGE OF type.

DATA itab LIKE RANGE OF f.

Page 17: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Efektywność kodu II

•SE30 – ABAP Runtime Analysis

•ST05 – SQL Trace

Page 18: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Koncepcja LUW (database logical unit of work)

Konto – 100 Konto + 100

Page 19: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Koncepcja LUW II

Page 20: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Moduły funkcyjne typu UPDATE

Page 21: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Moduły funkcyjne typu UPDATE II

Page 22: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Transakcja SM13

Page 23: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Obiekty numeracji

Page 24: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Obiekty numeracji II

Page 25: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Obiekty blokowania

Page 26: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Append structures

Page 27: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Struktura pamięci ABAP

SET PARAMETER ID ‘AUN’ FIELD ‘ZKD’.

GET PARAMETER ID ‘AUN’ FIELD v_a.

EXPORT v_a TO MEMORY ID ‘Z_ID’.

IMPORT v_a FROM MEMORY ID ‘Z_ID’.

............. SHARED BUFFER .................

Page 28: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Część wspólna dla zmiennych programów

PROGRAM Call function

Perform x(y)Submit, Call transaction

TABLES: VBAK, ... Data: begin of common part x.Data: end of common part x.

Page 29: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Permamentne przechowywanie danych

tables: indx.

EXPORT F1 F2 TO DATABASE INDX(ST) ID 'Z_ID'.

IMPORT F1 F2 FROM DATABASE INDX(ST) ID 'Z_ID'.

SQL

Pliki na serwerze aplikacji:

TRANSFER f TO dsn. READ DATASET dsn INTO f.

Pliki na serwerze prezentacji:

Call function ‘WS_UPLOAD’ Call function ‘WS_DOWNLOAD’

Page 30: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Uruchamianie kodu równolegle

PROGRAM

Call function .... Starting new task

Page 31: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Wykonywanie kodu w tle

CALL FUNCTION 'Z_BANF_MSGS_GENER'

STARTING NEW TASK 'Z_TASK'

EXPORTING

F_TYPEID = F_TYPEID

TABLES

FI_BANFN = I_BANFMSG_ERR

EXCEPTIONS

OTHERS = 1.

Page 32: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Raporty a programy dialogowe

RaportTransakcja(Program dialogowy)

Ekran selekcji

Ekran listy

Ekran 0100

Ekran 0200

ABAP/4 Open SQL

Page 33: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Przepływ sterowania

Page 34: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Definiowanie transakcji

Lokalne obiektyużytkownika

Programs

SAPMZXXX

Transaction codeTransaction type

Dialog transaction...

ZXXX

...

Transactions

...

Transaction codeTransaction textProgramScreen number

ZXXXTESTSAPMZXXX100

$TMP

Page 35: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Elementy składowe definicji ekranu

Page 36: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Logika przepływu - przykład

PROCESS BEFORE OUTPUT.

MODULE TRANSAKTION_INIT.

* Aufruf der Funktionsbausteine zur Feldauswahl

MODULE FELDAUSWAHL.

MODULE CUA_SETZEN.

PROCESS AFTER INPUT.

* Funktion mit richtigem Typ sofort ausführen

MODULE FUNKTION_AUSFUEHREN AT EXIT-COMMAND.

CHAIN.

FIELD: VBAK-VBELN,

RV45S-PSPID.

MODULE VBAK-VBELN_ERM.

* Vertriebsbeleg lesen

MODULE BELEG_LESEN.

ENDCHAIN.

* Idoc öffnen

FIELD : RV45A-DOCNUM.

MODULE IDOC_INPUT_OPEN.

* Folgebildsteuerung aufrufen

MODULE FCODE_BEARBEITEN.

Page 37: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Przekazywanie wartości pól ekran <-> ABAP

Page 38: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Podstawowe Komponenty Programowania Dialogowego

Page 39: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Malarz Ekranu – ABAP/4

Page 40: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Komunikacja: Ekran - ABAP/4 Modulpool

Sterowanie przekazywane od procesora dialogu do procesora ABAP/4

Starowanie przekazywane od procesora ABAP/4 do procesora dialogu

PROCESS BEFORE OUTPUT.MODULE INITIALIZE.

PROCESS AFTER INPUT. MODULE READ_SPFLI. MODULE ... . .

PROCESS BEFORE OUTPUT.MODULE INITIALIZE.

PROCESS AFTER INPUT. MODULE READ_SPFLI. MODULE ... . .

MalarzEkranu PROGRAM SAPMTALA MESSAGE-ID AT.

TABLES SPFLI.MODULE INITIALIZE OUTPUT. CLEAR SPFLI.ENDMODULE.MODULE READ_SPFLI INPUT. SELECT SINGLE * FROM SPFLI WHERE ... . . .ENDMODULE.

PROGRAM SAPMTALA MESSAGE-ID AT.TABLES SPFLI.MODULE INITIALIZE OUTPUT. CLEAR SPFLI.ENDMODULE.MODULE READ_SPFLI INPUT. SELECT SINGLE * FROM SPFLI WHERE ... . . .ENDMODULE.

ABAP/4 ABAP/4

I D E N T I C A L N A M E SI D E N T Y C Z N E N A Z W Y

Obszar roboczy ekranuSPFLI-CARRID

SPFLI-CONNID

OK-CODE

LHLH

04000400

Obszar roboczy programuTABLES: SPFLI.

CARRID CONNID

DATA: OK-CODE (4).

LH LH 04000400

MalarzEkranu ABAP/4 ABAP/4

2

2

2

2

1

1

2

1

2

PBO

PAI

Page 41: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Elementy ekranu

Page 42: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Struktura programu dialogowego

R

INCLUDE MZXXX TOP .

INCLUDE MZXXX O01.

INCLUDE MZXXX I01.

INCLUDE MZXXX F01. INCLUDE MZXXX E01.

Program główny

SAPMZXXXSAPMZXXX

TOP-OF-PAGE. PERFORM SUB1 USING A1 A2.AT LINE-SELECTION. SELECT ... FROM ...

MODULE INITIALIZE OUTPUT. ...ENDMODULE.MODULE SET_STATUS OUTPUT. ...

MODULE USER_COMMAND INPUT. ...ENDMODULE.

FORM SUB1 USING F1 F2. ...ENDFORM.

PROGRAM SAPMZXXX ...TABLES: ...DATA: ...

Global data

PBO modules

PAI modules

Subroutines(FORM routines)

Events

Dane globalne

Moduły PBO

Moduły PAI

Procedury(FORM)

Zdarzenia

Page 43: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Obsługa akcji użytkownika I

Page 44: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Obsługa akcji użytkownika II

data: ok_code like sy-ucomm,

fcode like ok_code.

module user_command input.

fcode = ok_code.

clear fcode.

case fcode.

when 'OK'.

perform save_doc.

when 'COPY'.

perform copy_doc.

endcase.

endmodule.

Page 45: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Statyczne ustalanie kolejności ekranów

Page 46: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Dynamiczne ustalanie kolejności ekranów

Page 47: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Dynamiczne ustalanie kolejności ekranów II

Page 48: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Dynamiczne ustalanie kolejności ekranów III

Page 49: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Dynamiczne ustawianie wyglądu pola

Page 50: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Dynamiczne ustawianie wyglądu pola II

Page 51: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

SET/GET PARAMETER

Page 52: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Dynamiczna kontrola poprawności I

Page 53: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Dynamiczna kontrola poprawności II

Page 54: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Dynamiczna kontrola poprawności III

Page 55: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Dynamiczna kontrola – transferer pól

Page 56: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Table control - przykład

Page 57: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Table control - parametry

Page 58: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Table control – elementy programu

Page 59: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Table control – pola struktury

Page 60: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000

Table control – przetwarzanie danych

Page 61: SAP AG2000 dvanced Advanced usiness Business rogramming Programming pplication Application / 4 Szkolenie ABAP.

SAP AG2000