sap ag2000 dvanced advanced usiness business rogramming programming pplication application / 4...

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

Upload: moriah-searcy

Post on 11-Dec-2015

220 views

Category:

Documents


1 download

TRANSCRIPT

SAP AG2000

A dvanceddvanced B usinessusiness

P rogrammingrogrammingA pplicationpplication

/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

SAP AG2000

Architektura R/3

SAP AG2000

Używanie indeksów bazy danych

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.

SAP AG2000

INNER JOIN

SAP AG2000

OUTER JOIN

SAP AG2000

JOIN dla większej ilości tabel

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.

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.

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.

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.

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.

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.

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

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.

SAP AG2000

Efektywność kodu II

•SE30 – ABAP Runtime Analysis

•ST05 – SQL Trace

SAP AG2000

Koncepcja LUW (database logical unit of work)

Konto – 100 Konto + 100

SAP AG2000

Koncepcja LUW II

SAP AG2000

Moduły funkcyjne typu UPDATE

SAP AG2000

Moduły funkcyjne typu UPDATE II

SAP AG2000

Transakcja SM13

SAP AG2000

Obiekty numeracji

SAP AG2000

Obiekty numeracji II

SAP AG2000

Obiekty blokowania

SAP AG2000

Append structures

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 .................

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.

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’

SAP AG2000

Uruchamianie kodu równolegle

PROGRAM

Call function .... Starting new task

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.

SAP AG2000

Raporty a programy dialogowe

RaportTransakcja(Program dialogowy)

Ekran selekcji

Ekran listy

Ekran 0100

Ekran 0200

ABAP/4 Open SQL

SAP AG2000

Przepływ sterowania

SAP AG2000

Definiowanie transakcji

Lokalne obiektyużytkownika

Programs

SAPMZXXX

Transaction codeTransaction type

Dialog transaction...

ZXXX

...

Transactions

...

Transaction codeTransaction textProgramScreen number

ZXXXTESTSAPMZXXX100

$TMP

SAP AG2000

Elementy składowe definicji ekranu

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.

SAP AG2000

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

SAP AG2000

Podstawowe Komponenty Programowania Dialogowego

SAP AG2000

Malarz Ekranu – ABAP/4

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

SAP AG2000

Elementy ekranu

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

SAP AG2000

Obsługa akcji użytkownika I

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.

SAP AG2000

Statyczne ustalanie kolejności ekranów

SAP AG2000

Dynamiczne ustalanie kolejności ekranów

SAP AG2000

Dynamiczne ustalanie kolejności ekranów II

SAP AG2000

Dynamiczne ustalanie kolejności ekranów III

SAP AG2000

Dynamiczne ustawianie wyglądu pola

SAP AG2000

Dynamiczne ustawianie wyglądu pola II

SAP AG2000

SET/GET PARAMETER

SAP AG2000

Dynamiczna kontrola poprawności I

SAP AG2000

Dynamiczna kontrola poprawności II

SAP AG2000

Dynamiczna kontrola poprawności III

SAP AG2000

Dynamiczna kontrola – transferer pól

SAP AG2000

Table control - przykład

SAP AG2000

Table control - parametry

SAP AG2000

Table control – elementy programu

SAP AG2000

Table control – pola struktury

SAP AG2000

Table control – przetwarzanie danych

SAP AG2000