• Nem Talált Eredményt

Vállalati Informatika

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Vállalati Informatika"

Copied!
71
0
0

Teljes szövegt

(1)

Vállalati Informatika

Mihály Krisztián 2017. 10. 06.

(2)

II. előadás

• „Beugró”

• ABAP alapok (ismétlés)

• ABAP Data Dictionary

• Minta adatbázis ismertetése

• Open SQL

• Műveletvégzés belső táblákkal

(3)

II. előadás

• „Beugró”

• ABAP alapok (ismétlés)

• ABAP Data Dictionary

• Minta adatbázis ismertetése

• Open SQL

• Műveletvégzés belső táblákkal

(4)

„Beugró”

• „Beugró” tétje: megajánlott jegy feltétele

• Szabályok:

15 perc

Törekedjünk a lényegre törő válaszokra, 3-5 mondat

„Soroljon fel” = felsorolás

„Ismertesse” = 3-5 mondat (lsd. fentebb)

„Igaz, vagy hamis? Miért?” = Igen / Nem + 3-5 mondat (lsd. fentebb)

1 (helyes) ábra többet mond 100 szónál

Bárminemű csalás szigorúan büntetett.

de ezt nem kell külön kiemelni, ugye 

(5)

Beugró / Ismétlés

A. Csoport

1) Soroljon föl legalább 4 SAP R/3 logisztikai modult!

2) A felsorolt modulok közül ismertesse az egyik által megvalósított funkciókat!

3) Ismertesse az ABAP Application server fő entitásait!

B. Csoport

1) Soroljon föl legalább 4 SAP R/3 pénzügyi modult!

2) A felsorolt modulok közül ismertesse az egyik által megvalósított funkciókat!

3) Ismertesse az 5 ABAP Application server

munkafolyamat típust!

(6)

II. előadás

• „Beugró”

• ABAP alapok (ismétlés)

• ABAP Data Dictionary

• Minta adatbázis ismertetése

• Open SQL

• Műveletvégzés belső táblákkal

(7)

ABAP alapok

• Minden utasítás után pontot kell tenni DATA lv_a TYPE i.

DATA lv_b TYPE i.

• Ugyanazon utasítást kiadása rövidített formában a : és , használatával DATA: lv_a TYPE i,

lv_b TYPE i.

(8)

ABAP megjegyzések

• Teljes soros megjegyzés

Sor elején „*” karakterrel

Blokk kommentekre nincs lehetőség (vesd össze /* és */ )

Program szerkesztőben több sor kijelölésével és CTRL+SHFT –l kommentezni, CTRL+SHFT + < visszavonni lehet

• Sorvégi megjegyzés

” karakter utáni szöveget fordításkor nem vesz figyelembe

(9)

ABAP beépített típusok

Típus Alapértelmezett méret (byte)

Mérettartomány (byte)

Leírás Kezdőérték

I 4 Fix (4) Egész szám 0

F 8 Fix (8) Lebegőpontos szám 0

P 8 Fix (1-16) Pakolt decimális szám

(előjellel)

0

N 1 Fix (1-65535) Numerikus szöveg ’0…0’

C 1 Fix (1-65535) Alfanumerikus, karakterek ’ ’

D 8 Fix (8) Alfanumerikus, dátum ’00000000’

T 6 Fix (6) Alfanumerikus, idő ’000000’

X 1 Fix (1-65535) Hexadecimális ’00…00’

String Változó Sztring

Xstring Változó Hexadecimális sztring

(10)

Változók definiálása

• DATA utasítással kell deklarálni.

• TYPE vagy LIKE kulcsszóval lehet megadni a típusát

TYPE: előre definiált típus, vagy adatszótárban lévő típus

LIKE: létező objektummal azonos típust lehet vele definiálni (használata indokolt esetben javasolt)

Ha nem használunk típus azonosítót, akkor alapértelmezetten a típus C.

DATA lv_szam1 TYPE i.

DATA lv_szam2 LIKE lv_szam1.

(11)

Változók definiálása

• C, N, X és P típusok esetén változó hossz megadható.

• A változó hosszát a deklarálásnál a változó neve után kell zárójelben megadni

DATA lv_rendszam(7) TYPE c.

• VALUE kiterjesztéssel kezdőérték adható:

DATA lv_rendszam(7) TYPE c VALUE ’SAP-221’.

(12)

Számtípusokról

• I

Egész szám

Aritmetikai műveletek eredménye kerekítve lesz

DATA: lv_eredmeny TYPE i.

lv_eredmeny = 4 / 20 . ” 0 lv_eredmeny = 16 / 20 . ” 1

• P

DECIMALS kulcsszóval tizedesjegyek száma előírható (max 14) DATA lv_tizedes TYPE p DECIMALS 4 VALUE ’1234.0012’ .

(13)

Konstansok, literálok

• Kulcsszó: CONSTANTS + VALUE

CONSTANTS lc_max_wp TYPE i VALUE 10.

• Literál:

’ … ’

CONSTANTS lc_standard_header TYPE string VALUE ’ Header’.

(14)

Értékadás

• CLEAR

Tetszőleges adattípust iniciális értékre állít

• Egyszerű értékadás

változó2 = változó1 .

• MOVE

MOVE változó1 TO változó2.

Típuskonvertálási szabályoknak megfelelően a változó értékét másolja.

• MOVE-CORRESPONDING

MOVE-CORRESPONDING struktúra1 TO struktúra2.

Értékek mezőként másol, mely során a mezők nevét egyezteti

(15)

Műveletvégzés

• Változó = Aritmetikai kifejezés .

COMPUTE előtag használható, de opcionális. Nem szoktuk használni.

• Az aritmetikai kifejezésben használhatunk zárójelet és operátorokat.

A zárójeleket és operátorokat mindig szóközzel el kell választani. Ez szokatlan lehet a legtöbb programozási nyelvvel ellentétben.

(16)

Logikai kifejezések

• NOT

• AND

• OR

Operátor Jelentés

EQ = Egyenlő

NE <> >< Nem egyenlő

GT > Nagyobb

GE >= => Nagyobb vagy egyenlő

LT < Kisebb

LE <= =< Kisebb vagy egyenlő

BETWEEN e1 AND e2 Intervallum

IS INITIAL Inicializálási érték

(17)

Vezérlési szerkezetek

• IF szerkezet

IF logikai kifejezés . Utasítás 1.

ELSEIF logikai kifejezés.

Utasítás 2

ELSEIF logikai kifejezés.

Utasítás 3.

ELSE.

Utasítás 4.

ENDIF.

(18)

Vezérlési szerkezetek

CASE változó.

WHEN érték1.

utasítások .

WHEN érték2 OR érték3.

utasítások . WHEN OTHERS.

utasítások.

ENDCASE.

(19)

Vezérlési szerkezetek

DO n TIMES.

utasítások . ENDDO.

Futás közben a SY-INDEX rendszerváltozót 1-től kezdve egyesével növeli.

Az N egész szám opcionális, ilyen esetben a ciklus végtelen ciklus.

Ha a ciklust elkezdte lefuttatni, a futási számot az n változóval, vagy a sy- index változóval már módosítani nem lehet.

(20)

Vezérlési szerkezetek

WHILE <logikai kifejezés>.

<utasítások>

ENDWHILE.

Ciklusváltozója a sy-index paraméterrel érhető el.

A számolást 1-től kezdődik (nem 0, mint sok más programozási nyelvben)

(21)

Vezérlési szerkezetek

CHECK <logikai kifejezés> .

Ha a logikai kifejezés nem teljesül, akkor a következő iterációs ciklusra lép.

EXIT .

Az adott ciklusból kilép.

CONTINUE .

Hasonló a CHECK-hez, de nincs feltételhez kötve.

(22)

II. előadás

• „Beugró”

• ABAP alapok (ismétlés)

• ABAP Data Dictionary

• Minta adatbázis ismertetése

• Open SQL

• Műveletvégzés belső táblákkal

(23)

ABAP Data Dictionary

• Objektumok 3 láthatóság szintje

Futtató környezet szintje

Minden futó program és feldolgozási blokk látja

ABAP program szintje

ABAP programok elején található ún. globális definíciós blokkban létrehozott objektumok

Programon belüli feldolgozási blokkokban látható, programok között nem

Lokális szint

Egy feldolgozási blokkban létrehozott objektumok

(24)

ABAP Data Dictionary

• Futtató környezeti szintű entitásokat hozunk itt létre

• Transzportálható objektumok (lsd. CTS)

• Objektumok két állapotát különbözteti meg

Mentett (Inaktív)

Aktív

• Széles körben integrált

ABAP interpreter

ABAP eszközök

Képernyő rajzoló

Forrás:

https://help.sap.com/saphelp_nw73ehp1/helpdata/en/

cf/21ea0b446011d189700000e8322d00/frameset.htm

(25)

Domain, Data Element, Structure, Table

Forrás: https://help.sap.com/saphelp_nw73ehp1/helpdata/en/cf/21ede5446011d189700000e8322d00/content.htm

(26)

Domain

• A domain meghatároz egy típust és egy értékkészletet

Kimeneti hosszt

Opcionálisan negatív értéktartomány jelölést

• Az értékkészlet lehet:

Felsorolt diszkrét értékek halmaza

Adatbázis tábla aktuális tartalma szerint ellenőrzött (value table)

Nem limitált, a típusnak megfelelő halmazból származó

• Rendelkezhet konverziós eljárással, mely a megjelenítési formátumot belső formátummá alakítja és vissza.

https://help.sap.com/saphelp_nw73ehp1/helpdata/en/cf/21ede5446011d189700000e8322d00/content.htm

(27)

Data element

• Szemantikai tartalmat ír le

• Vagy elemi típust, vagy referencia típust határoz meg (ABAP OO, később)

• Elemi típus esetén hivatkozhat

Beépített típusra

Domainre

• Kötelezően kiegészítendő mezőleíró információval (Field descriptions)

• Kiegészíthető dokumentációval (mező F1 help)

• Keresési segítséggel kiegészíthető (lsd. Később)

https://help.sap.com/saphelp_nw73ehp1/helpdata/en/cf/21ea0b446011d189700000e8322d00/frameset.htm

(28)

Struktúrák

• Összetett adatstruktúrák leírására használjuk

• Attribútumokból épül fel, mely komponensekre hivatkoznak.

Komponens lehet

Beépített típus

Adatelem

Struktúra

Táblatípus (lsd. Később)

(29)

Struktúrák

3 típust különböztetünk meg

• Egyszerű struktúrák

Mezői csak elemi típusokra mutatnak

• Beágyazott struktúrák

Legalább egy mezője egy másik struktúrára mutat (de nem táblatípusra)

• Mélyen beágyazott struktúrák

A struktúra legalább egy táblatípusra mutat

(30)

Struktúrák

(31)

Táblatípusok

• ABAP belső tábla struktúrájának és funkciójának definiálására használjuk.

• A táblatípusnak sortípusa van, mely lehet:

Beépített típus

Adatelem

Strukturált típus

Struktúra

Tábla

Referencia típus (ABAP OO, lsd. később)

(32)

Táblatípus

(33)

Táblatípus

• Táblatípus létrehozásakor elérési módot is definiálhatunk

Standard táblázat

A kulcs szerinti eléréshez szekvenciális keresést használ.

Sorrendezett táblázat

A táblázat belül a kulcsai szerint rendezetten kerül tárolásra. Bináris kereséssel gyors elérést támogat.

Hashelt táblázat

Minden rekordnak egyedi kulccsal kell rendelkeznie. Tárolásnál hash függvényt használ.

Indexelt táblázat

Lehet standard, vagy sorrendezett

(34)

Adatbázistáblák

Az ABAP adatszótárban az alábbi adatbázis táblatípusok definiálhatók:

• Transparent table

• Table pool

Nem foglalkozunk vele a tárgy keretein belül

• Cluster table

Nem foglalkozunk vele a tárgy keretein belül

(35)

Transparent table

• Mezőkből áll, melyek adatelemre hivatkoznak.

• A kliens általában része a definíciónak, ettől ritkán térünk el (lsd.

Mandantok – előző előadás)

MANDT, adatelem CLIENT

• Kulcs mezők definiálhatóak

Kérdés: MANDT kulcs mező?

• Idegen kulcsok definiálhatóak transparent táblázatok között

• Indexek definiálhatóak

(36)

Transparent table

• Technikai beállítások

Adattípusok megadása

Törzsadat, tranzakciós adat, stb.

Várható méret kategória

Bufferelési beállítások

Naplózási/loggolási beállítások

(37)

Szünet

(38)

II. előadás

• „Beugró”

• ABAP alapok (ismétlés)

• ABAP Data Dictionary

• Minta adatbázis ismertetése

• Open SQL

• Műveletvégzés belső táblákkal

(39)

Példa

Laboralkalmakon két példával fogunk foglalkozni.

Standard példamodell – Repülő vállalatok és járatok

Gyakorlati példafeladat – Kerékpárgyártó üzem modellezése és alkalmazásai

(40)

Standard példamodell – Repülő vállalatok és járatok

• Egy légitársaságról az alábbi információkat akarjuk tárolni

A légitársaság neve

A légitársaság egyezményes 3 karakteres kódja

A légitársaság anyacégének pénzneme

A vállalat honlapjának címe

• Kérdések

Ez törzsadat, tranzakciós adat, vagy rendszeradat?

Mi következik ebből?

Milyen mezőket definiálnánk?

(41)

Standard példamodell – Repülő vállalatok és járatok

• Egy járatról az alábbi információkat kell tárolnunk:

Melyik légitársasághoz tartozik

Járat száma

Egyéb információkat (nem soroljuk fel)

• Kérdések

Ez törzsadat, tranzakciós adat, vagy rendszeradat?

Milyen mezőket definiálnánk?

A légitársaság azonosítójára milyen megkötéseket tennénk?

(42)

Standard példamodell – Repülő vállalatok és járatok

• Egy adott járat ütemezésről az alábbi információkat kell tárolnunk:

Melyik légitársasághoz tartozik

Járat száma

Repülés dátuma

Egyéb információkat (nem soroljuk fel)

• Kérdések

Ez törzsadat, tranzakciós adat, vagy rendszeradat?

Milyen mezőket definiálnánk?

A légitársaság azonosítójára milyen megkötéseket tennénk?

(43)

Standard példamodell – Repülő vállalatok és járatok

Egy foglalásról az alábbi információkat kell tárolnunk:

Melyik légitársasághoz tartozik

Járat száma

Repülés időpontja

Foglalás azonosítója

Foglaló ügyfél azonosítója

Kérdések

Ez törzsadat, tranzakciós adat, vagy rendszeradat?

Milyen mezőket definiálnánk?

A légitársaság azonosítójára, járatra, repülés időpontjára, ügyfél azonosítóra milyen megkötéseket tennénk?

(44)

Feladat

Közösen alkossuk meg a modell entitás-

relációs diagrammját!

(45)

Standard példamodell – Repülő vállalatok és járatok

SCARR

SFLIGHT

SBOOK

Légi társaságok

Járatok

Foglalások

SPFLI Járat ütemezés

(46)

Standard példamodell – Repülő vállalatok és járatok

• Nézzük meg a definíciókat!

Domének

Adatelemek

Táblák

• Tranzakció: SE11

• Standard adatbázistáblák: SCARR, SPFLI, SFLIGHT, SBOOK

(47)

Standard példamodell

(48)

Standard példamodell

(49)

Standard példamodell

(50)

Standard példamodell

(51)

Hallgatói feladat

Elképzelt feladatunk adatmodelljének megalkotása és létrehozása.

Kerékpárgyártó üzem modellezése

• Több típusú kerékpárt gyártunk, különböző méretekben. Minden típusról az alábbi információkat tároljuk

Típust azonosító (egyedi 10 karakteres azonosító)

Anyagtípus (Acél, Alumínium, Karbon, egyéb)

Gyártás kezdete, vége

Garanciális idő

(52)

Hallgatói feladat

Több gyártó üzemmel rendelkezünk, melyekről tároljuk:

• Gyártási hely azonosító

• Cím

• Telefonszám

(53)

Hallgatói feladat

Minden gyártott kerékpárról az alábbi információkat tároljuk

• Kerékpár száma (egyedi, 20 karakteres azonosító)

• Típusa

• Gyártás éve

• Gyártási hely

• Színe

(54)

Hallgatói feladat

Kerékpárvásárlóinkat külön tároljuk

• Vevő azonosítója

• Vevő neve

• Vevő telefonszáma

• Vevő lakcíme

(55)

Hallgatói feladat

Minden kerékpár eladásról tároljuk

• Vevő azonosítója

• Kerékpár azonosítója

• Adásvétel dátuma

• Fizetés módja (készpénzes, bankkártyás, átutalás, egyéb)

• Ha egyéb, akkor szövegesen lehet megadni a fizetés módját

(56)
(57)

Hallgatói feladat

• Készítsék el a feladat entitás-relációs diagrammját!

• Ügyeljenek az alábbiakra:

Kliens függő adatok meghatározása

Domének meghatározása

Adatelemek meghatározása

Kulcsok, Idegen kulcsok

(58)

Hallgatói feladat

• A rendszerben hozzuk létre az megalkotott modellt!

(59)

II. előadás

• „Beugró”

• ABAP alapok (ismétlés)

• ABAP Data Dictionary

• Minta adatbázis ismertetése

• Open SQL

• Műveletvégzés belső táblákkal

(60)

Open SQL

• Szabvány ISO-SQL utasításainak részhalmaza

• Legfontosabb utasítások

SELECT

INSERT

UPDATE

DELETE

MODIFY

• Lefutás után a sy rendszerváltozó frissítésre kerül. Sikeres futás esetén a SY-SUBRC értéke 0, egyéb esetben ne nulla és specifikáció szerint

értéket ad tartalmaz különböző hibaesetekben

(61)

SELECT

SELECT <oszlopok>

FROM <tábla>

INTO <cél>

WHERE <feltételek>

GROUP BY <oszlopok>

ORDER BY <feltételek>

(62)

SELECT

• SELECT attr1 attr2

• SELECT *

• SELECT DISTINCT

SELECT utasítás után az alábbi rendszerváltozók kerülnek beállítása sy-subrc

sy-dbcnt

(63)

Oszlopfüggvények

• MAX: maximum

• MIN: minimum

• AVG: átlag

• SUM: összeg

• COUNT: különböző értékek száma az adott oszlopban

• COUNT(*): Az eredményhalmaz számossága

(64)

SELECT - FROM

• FROM után adjuk meg azt az adatbázistáblát, vagy adatbázis nézetet, amelyből olvasni akarunk

• Több táblából is tudunk egyszerre olvasni a JOIN klauzával

INNER JOIN

LEFT|RIGHT JOIN

CROSS JOIN

(65)

SELECT - INTO

• Az INTO klauza mondja meg, hogy mely ABAP belő változóba kerüljön az utasítás eredménye

Lehet

Változó

Struktúra

Táblázat

INTO TABLE

APPENDING

(66)

SELECT - WHERE

• A WHERE klauza után olyan logikai kifejezések adhatóak meg, amellyel a rekordokra tudunk feltételeket meghatározni

• csak a logikai kifejezéseket, ezekben pedig az adatbázistábla mezőit , valamint, az operátorok másik oldalán, konstansokat vagy

programváltozókat adhatunk meg

(67)

SELECT – GROUP BY

• Az eredményben a sorok csoportosíthatóak Fontos!

Ha akár csak egy oszlop is szerepel a GROUP BY mögött, akkor az összes oszlopot, ami szerepel a SELECT kulcsszó után az oszloplistában, fel kell sorolni a GROUP BY után is, kivéve, ha az adott oszlop oszlopfüggvényben szerepel

(68)

SELECT – ORDER BY

• Az eredményhalmaz mely oszlopok szerint kerüljenek sorrendezésre

• ASCENDING , DESCENDING

(69)

SELECT, mint ciklus

SELECT <feltételek> . Ciklusmag .

ENDSELECT .

Ilyen esetben minden ciklus iterációban történik egy adatbázishozzáférés.

Elavult, ne használjuk.

(70)

II. előadás

• „Beugró”

• ABAP alapok (ismétlés)

• ABAP Data Dictionary

• Minta adatbázis ismertetése

• Open SQL

• Műveletvégzés belső táblákkal

(71)

Műveletvégzés belső táblákkal

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

A bíróság a tájékozta- tást már az első idézés kibocsátásakor megteheti, de megteheti azt követően is, hogy a vádlott az előző tárgyaláson szabályszerű idézés

Relevés of group A are dominated by Utricularia vulgaris, and Lemna trisulca is missing; group B is dominated by Salvinia natans and group C by Hydrocharis morsus-ranae; group D

Ha a táblázatnak még nincs olyan oszlopa, melynek a fejlécében ez az atomi formula szerepel, akkor fel kell venni egy új oszlopot, melynek fejlé- cébe beírjuk az

A Lemondás és megmaradásban arról írtam, hogy ha a nyolcvanas években a magyar ha- tárőrök arról faggattak, hogy mi célból utazom Magyarországra, akkor azt válaszoltam:

Minden bizonnyal előfordulnak kiemelkedő helyi termesztési tapasztalatra alapozott fesztiválok, de számos esetben más játszik meghatározó szerepet.. Ez

A népi vallásosság kutatásával egyidős a fogalom történetiségének kér- dése. Nemcsak annak következtében, hogy a magyar kereszténység ezer éves története során a

Ez BCNF, de mégis redundáns, mert ha valamelyik tárgynál szerepel egy gyereknév, akkor az összes többinél is szerepelnie kell. beszúrni nehéz, mert amikor egy sort

Én soha nem vagyok ellene, de arról van szó, nem ő, hanem én találtam rá, hogy a népművészetből kell kiindulni.. Nem is Magyarországon,