1 / 28

ERP arendusvahendid

ERP arendusvahendid. Programmeerimiskeeled. 19.05.05 Indrek Vaino. Sissejuhatus. Kolme erineva arendusvahendi tutvustus: XAL ( eXtended Application Language ) X++ ABAP/4 ( Advanced Business Application Programming language ). Eesmärgid ja omapärad.

karah
Download Presentation

ERP arendusvahendid

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ERP arendusvahendid Programmeerimiskeeled 19.05.05 Indrek Vaino

  2. Sissejuhatus Kolme erineva arendusvahendi tutvustus: • XAL (eXtended Application Language) • X++ • ABAP/4 (Advanced Business Application Programming language)

  3. Eesmärgid ja omapärad • Suunatud majandustarkvara olemasoleva funktsionaalsuse (edasi)arendamiseks • Oma spetsiifiline süntaks • Andmehalduse kesksed • Täielik või osaliselt piiratud ligipääs kogu rakenduse lähtekoodile

  4. XAL: ajalugu • 1983, 1986 - rakenduse ja keele eelkäijad • 1991 - esimene kliendile suunatud versioon 4GL arendusvahendist • 1995 - Windows'i-põhine tugi (kohitsetud) • 1997, 1998 - toote upgrade (XAL >> X++)

  5. XAL: üldtutvustus • Platvormid (W95/98, NT, W2000, AIX 4.3, HP-UX 10.x, 11.0, SUN Solaris 7, TRU64 evol.5, Linux) • Andmebaasid (Native db, Oracle 8, 9i, Microsoft SQL) • Tüübipõhine (type-based) 4GL keel - andmed ja struktuurid peavad järgima kindlaid reegleid. • Makrokeel, milles koodi korduvkasutuse vajadus on lahendatud makrodega. • Sisaldab ühtset IDE keskkonda arendusvahenditega (k.a. GUI-vahendid, makrovahendid, baasiga suhtlemise vahendid, silujad) milles kood transleeritakse ja täidetakse. • Sarnaneb BASICule, lihtne süntaks, intuitiivselt loetav.

  6. XAL: andmed • Viis andmetüüpi: • INTEGER [-2'147'483'648…2'147'483'647], • DECIMAL [16 numbrit sõltuvalt komakohast], • TEXT [' ' või " ", spetsiaalfunktsioonid "\", nt. "\t" - tab, "\n" - crlf, max pikkus 255], • DATE, • ENUMERATED TEXT. • Massiivid (ühedimensionaalsed). • Andmetabelid: • Rakenduse tabelid, • Temporary e. ajutised tabelid, • Vabalt defineeritavad tabelid.

  7. XAL: keele süntaks • Funktsioonid ja võtmesõnad(umbes 200 funktsiooni: tüübiteisendused, suhtlemine virtuaalmasinaga, suhtlemine andmebaasiga) • Operaatorid:Aritmeetilised (=, +, -, *, /) ja Võrdlus-operaatorid (==, <, >, <=, >=, <>) • Muutujad (programmi alguses, tüübi ja vajadusel tüübi pikkuse määrangutega, väärtustamine käsuga SET) • Makrod(Globaalsed - #Globaldefine, #Globalmacro; lokaalsed - #Localmacro; makroteegid - #Macrolib, makromuutujad / konstandid - #Define, #Undef) • Lihtlaused (omistamine, teisendused), liitlaused (IF…THEN...ENDIF, DO…END, SEARCH…END), juhtimislaused (RETURN, BREAK, TTSABORT, TTSCOMMIT)

  8. XAL: mitmesugust • Erindeid eraldi käsitlema ei pea, interpretaator tagastab veakoodi mida programm võib vajadusel töödelda • Virtuaalne Windows'i programmeerimine • Eraldi arendusvahendid skriptide, andmebaasi, aruannete, päringute, vormide, menüüde töötlemiseks • Programminäited (Vizingi teoreemi algoritm)

  9. Axapta ja X++

  10. Axapta / X++: ajalugu • XALi järgmine, edasiarendatud versioon. • 1998 - esimene reliis, 1999 - versioon 2.0 • 2000 - reliis 2.1 sisaldas AOSi, 2-/3-tier clients, COM-liides MS toodete jaoks, esimesed webi-rakendused. • 2001 - reliis 2.5 XML liides, täiendavad moodulid ja webi-rakendused. • 2002 - Microsoft ostis firma koos toote- ja kliendiportfelliga.

  11. Axapta / X++: üldtutvustus • Platvormiks on Windows, andmebaasiks MS SQL, Oracle 9i ning native baasiks MSDN. • IDE sisaldab objektipuud(Application Hierarhcy Tree), tabelisirvijat, koodisilujat, editori, märgendite süsteemijpm. • X++ on sümbioos C++, Javast ja SQList, sisaldades neile sarnaseid / omaseid elemente. • X++ on OOP toetades OO printsiipe nagu kapseldamine, pärilikkus, klassid, objektid, meetodid ja parameetrid. • Arenduskeskkonda kutsutakse MorphX.

  12. X++: andmed • Seitse erinevat primitiivset andmetüüpi: boolean, integer, real, date, timeofday, string, enum. • Komposiit-tüübid: massiivid, konteinerid, klassid, tabelid. • Massiivid: dünaamilised või fikseeritud pikkusega. Deklareerimine: nt. int i[]; NoYes e[100,10]. • Konteinerid on dünaamilised tüübita massiivid, mis võivad sisaldada primitiivtüüpe, massiive ja konteinereid. Nt. container c3=[1,3.4,"abc"]. Eraldi funktsioonid konteinerite töötlemiseks. • Laiendatud andmetüübid (Extended Data Types): kasutaja-defineeritud andmetüübid, mis võivad koosneda primitiividest ja konteineritest. Eraldi funktsioonid laiendatud andmetüüpide töötlemiseks.

  13. X++: andmed • Andmetabeli poole saab pöörduda sarnaselt, nagu klasside poole. void GetCustomerBalanceMST() { CustTable customerTable; // instants klienditabelile Print customerTable.AccountNo; // kliendi konto number } • Meetodid andmete töötlemiseks asuvad andmete juures; võimalik meetodit välja kutsuda ka otsepöördumisega tabeli meetodi poole. Print CustTable::find("KLIENT").Address; • Vahetu pöördumine ka andmetabelite poole. LedgerJournalTrans ledJournalTrans() { LedgerJournalTrans ledgerJournalTrans; ; select firstonly ledgerJournalTrans where ledgerJournalTrans.Voucher == BankDeposit.Voucher && ledgerJournalTrans.TransDate == BankDeposit.TransDate && ledgerJournalTrans.BankDepositNum == BankDeposit.DepositNum; return ledgerJournalTrans; }

  14. X++: muutujad ja skoop • Muutuja on pointer mälus paiknevale objektile, mis sisaldab vajalikke andmeid. • Muutuja peab olema vähemalt ühe täheline, ent väidetavalt mistahes pikkusega koosnedes kõikidest ASCII/ANSI koodilehe tähtedest ning numbritest. • Nimestandardid on defineeritud arendajate poolt, nt. peetakse ühetähelisi lühendeid sobilikuks üksnes ajutiste muutujate defineerimisel (i, j, k, m, n täisarvude ja c, d, e tähemärkide - char - jaoks). • Muutujad ja meetodid on kindlapiiriliselt defineeritava skoobiga. Globaalsele objektile pääseb ligi kõikjalt. Kasutaja-defineeritud muutujad on lokaalsed vaadeldava klassi või meetodi piires.

  15. X++: keele süntaks • Relatsioonilised operaatorid (like, ==, >=, <=, >, <, !=, &&, ||, !), aritmeetilised operaatorid (>>, <<, *, /, DIV, MOD, &, +, -, ?). • Kommentaarid sarnased, nagu C++. • Omistamine sarnane nagu C++ (=, +=, ++, -=, --). • Laused. Tingimuslikud (IF, SWITCH), tsüklid (WHILE, DO, FOR, BREAK), andmetöötlus (SELECT, WHILE SELECT, SELECT FIRSTONLY, DELETE, INSERT, UPDATE, TTSxxx). • Umbes paar tuhat klassi ja andmetabelit, 200 funktsiooni ja reserveeritud võtmesõna.

  16. X++: mitmesugust • Eraldi vahendid andmete haldamiseks, vormide disainimiseks, aruannete loomiseks, klasside kirjeldamiseks, webi-rakenduste tegemiseks. • Mäluhaldus: automaatne prügikoguja (automatic garbage collector) toimib automaatselt - koheselt, kui viide mingile objektile kaob vabastatakse mälu uute väljakutsete jaoks.

  17. SAP R/3 : ABAP

  18. SAP / ABAP: ajalugu • Üks paljudest 4GL keeltest mida arendati 1980-ndatel. Algselt mõeldud aruannete loomiseks R/2 ning tähistas algselt "Allgemeiner BerichtsAufberetiungsProzessor" -- üldine aruandeloomise protsessor. • Oli esmalt mõeldud lõppkasutajatele andmete töötlemiseks, ent osutus kasutaja jaoks liiga keeruliseks. • 1991 - peamised SAP R/2 ja R/3 põhifunktsioonid olid kirjutatud ABAPis. • 1992 - ABAP jäi peamiseks keeleks klient-server põhises R/3 süsteemis. • 1999 - SAP reliisis objekt-orienteeritud lisad ABAPi - ABAP Objects koos R/3 reliisiga 4.5. • 2001 - sisuliselt kogu SAP rakendus on kirjutatud ABAPis. • Viimane arendusplatvorm NetWeaver toetab nii ABAPi kui Javat.

  19. SAP / ABAP: üldtutvustus • Platvormid (HP-Ux, Tru64, Linux, Windows, AIX, Sun Solaris, andmebaas Oracle, Informix, ADABAS-A, DB2, DB/400, Microsoft SQL, MaxDb etc.) • ABAP on plokk-struktureeritud keel, süntaks ja keelelised elemendid on sarnased nii Oracle PL/SQL, IBMi PL\I kui ka COBOLi keelele. • Arenduskeskkond sisaldab IDEt ning transpordisüsteemi. • IDEs on nt. Object Navigator, ABAP Dictionary, ABAP Editor, Class Builder, Function Builder, Screen Painter, Menu Painter, koodisiluja jne. • Rakenduskoodi hoitakse andmebaasis ning kompileeritakse iga kord, kui seda esimest korda kasutatakse. Kompileeritud kood paigutatakse serveri mällu, mille poole pöördumine ja mille käivitamine on suhteliselt kiire. • ABAP sisaldab mõningaid tugevalt aruandluse koostamisele orienteeritud sündmus-trigerite kontrollstruktuure, aruandlust saab hõlpsasti koostada drill-down võimalustega.

  20. ABAP: üldtutvustus • ABAP programmid transleeritakse bait-koodi, mida töötleb edasi interpretaator. Virtuaalarvuti on suhteliselt hästi peidetud, ent esinevad programsed vead (core-dump) meenutavad IBM/370 assemblerit. • ABAPis on loodud kogu R/3 nähtav funktsionaalsus. Kernel või tuum sisaldab osa C-koodi, mis interpreteerib baitkoodi kompileeritud ABAP-programme, ent C-koodi ümber on loodud selline infrastruktuur, et enamus kasutajaid ning ka paljud arendajad ei tea, mis või kus kernel on. • ABAPis kasutataks palju sisemisi andmetabeleid (Internal Tables), mida hoitakse rakendusserveril (vs andmebaasiserver) ning mis vähendavad tunduvalt andmebaasi koormust ja üleüldist võrguliiklust.

  21. ABAP: andmed • Andmetüübid >> • Andmeobjektid (sisaldavad andmeid programmi täitmisel; enne andmete kasutamist tuleb need lugeda andmeobjektidesse): • tekstisümbolid, • muutujad, • konstandid, • tööalad (work areas).

  22. ABAP : kompleks-struktuur • Kasutaja defineeritava kompleks andmestruktuuri näide * local types in program* referring to predefined ABAP types: TYPES: surname(20)   TYPE c,       street(30)   TYPE c,       zip_code(10) TYPE n,       city(30)     TYPE c,       phone(20)     TYPE n,       date         LIKE sy-datum. * local structure in program* referring to the above types TYPES: BEGIN of address,         name TYPE surname,         code TYPE zip_code,         town TYPE city,         str  TYPE street, END OF address.

  23. ABAP: keele süntaks • Loogilised operaatorid (EQ, =, NE, <>, ><, LT, <, LE, <=, GT, >, GE, >=), stringivõrdluse operaatorid (CO - contains only, CN - contains not only, CA - contains any, NA - contains not any, CS - contains string jne.), bitivõrdluse operaatorid (O - bits are one, Z - bits are zero, M - bits are mixed). • Väärtustamine: • MOVE <f1> TO <f2> on samaväärne <f2> = <f1>. • WRITE (NAME) TO TARGET on samaväärne <f2> = <f1> • Algväärtustamine: Clear <f1> • Lausete eraldajana kasutatakse punkti. Samal real võib olla mitu lauset eeldusel, et lause eraldaja ja järgmise lause vahel on veel ka tühik: PROGRAM TEST. WRITE 'Metsas elavad a) karu, b) jänes ja c) hunt'. • Lihtsa päringu näide: select * from mytable where key like '25%'. write: / mytable-key, mytable-value. perform do_something using mytable-value. endselect.

  24. ABAP : tüübiteisendused • Struktuuri konverteerimine mitte-sobivasse struktuuri (non-compatible) • Elementaarmuutujate konverteerimine struktuuriks • Struktuuri teisendamine elementaarmuutujaks • Kõikidel puhkudel konverteeritakse esiteks seotud struktuur character-formaati ning seejärel konverteeritakse siht-struktuur ja character-formaadis struktuur omavahel.

  25. ABAP: kasutajaliides • Screen (ekraanivorm): defineeritakse vahendis Screen Painter ning selle poole saab programselt pöörduda. Ekraanivorm sisaldab sisend-väljund reglementi (mask) ning voo-loogikat: process before output (PBO) ja process after input (PAI). • Selection Screens (valikuvormid): kõige enamlevinum kasutajaliidese tüüp, mida kasutatakse kunas-iganes siis, kui kasutajalt oodatakse andmebaasi välja täitmist või valikukriteeriumite sisestamist. • Lists (loendid): kasutatakse andmete kuvamiseks kasutajale. Loenditega saab edasi anda näiteks päringu tulemusi, kasutaja saab vajadusel loendit drill-downida ning trükkida loendi sisu printerisse või salvestada faili. • Messages (teated): kasutatakse kõige enam veasituatsioonide kasutajale kommunikeerimiseks. Näiteks on olemas teatetüübid Termination, Error, Information, Status, Warning, Exit.

  26. ABAP: programmitüübid • Igal ABAP-programmil on tüüp, mis määrab kindlaks, kas ja kuidas programmi käivitatakse. • Käivitatavad programmid. • Tüüp 1 programmid on käivitatavad programmi nime abil (nt. aruanded). • Tüüp M programme saab käivitada ainult transaktsiooni koodiga. • Otseselt mitte käivitatavad programmid. • Tüüp F programmid on nn. funktsionaalsete moodulite konteinerid (funktsioonigrupid). • Tüüp K programmid on globaalsete klasside konteinerid (klassi definitsioonid). • Tüüp J programmid on globaalsed liidesed (liidese-definitsioonid). • Tüüp S programmid on alamprogrammid, mida käivitatakse teiste programmide seest (alamprogrammide kogumid). • Tüüp I programmid - include-programmid.

  27. ABAP: programminäited • Näited SAPis

  28. Tänan tähelepanu eest.

More Related