Post on 15-Jan-2016
description
transcript
ENTERPRISE RESOURCE PLANNING (ERP)
Enterprise Resource Planning (ERP) reprezintă în general un sistem
software de rețea bazat pe arhitectura client/server.
Aceste sisteme au fost dezvoltate pentru gestionarea operațiilor economice
si tehnologice, şi facilitarea integrării tuturor proceselor, din faza de
planificare, realizare şi urmărire a producţiei, până la relaţiile cu furnizorii,
clienţii sau alţi parteneri de afaceri.
ERP este considerată expresia cea mai fidelă a interdependenţei dintre
economic şi tehnologia informaţională.
Un studiu al pieţei de software ERP, realizat de revista Computer
Economics, indică un procent de 20% pentru organizaţiile care au deja
instalate suite integrate, în toate ramurile de activitate. În aceste procente,
sunt predominante organizaţiile cu activitate de producţie.
Acelaşi studiu relevă că popularitatea acestui sistem se va menţine la
aceleaşi cote ridicate, în condiţiile în care 34% din firmele chestionate
derulează un proiect ERP ori sunt în faza incipientă a unui astfel de proiect.
ENTERPRISE RESOURCE PLANNING
(ERP)
Proiectele ERP sunt adesea asociate cu modificări organizaţionale
importante, în sensul îmbunătăţirii modului de desfăşurare a activităţii.
Aceste îmbunătăţiri sunt cunoscute în literatura de specialitate sub numele
Business Process Reengineering (BPR), adică Proces de Reinginerie a
Afacerii.
Deoarece sistemele ERP oferă integrarea tuturor serviciilor şi activităţilor de
producţie şi economice, este evident că ele reprezintă mult mai mult decât
proiecte software.
Dincolo de schimbările tehnologice, de infrastructură, beneficiile importante
ale ERP derivă tocmai din:
schimbările la nivelul proceselor economice, la nivelul structurii
organizaţionale şi la nivel de management al resursei umane;
activităţile de organizare şi gestionare al informaţiei.
Costurile, concretizate în software, hardware, consultanţă şi instruire sunt
mult mai mari decât ale altor proiecte de aceeaşi anvergură.
ENTERPRISE RESOURCE PLANNING
(ERP)
De exemplu o firmă mare poate să aloce unui proiect ERP un buget de
aproximativ 100 milioane USD.
Producătorii soluţiilor sunt de câţiva ani într-un proces de cercetare şi
adoptare în soluţiile proprii a platformelor e-business.
Mai exact, din 1999, clasicele ERP-uri au îmbrăcat o haină nouă, fiind
rescrise şi transformate esenţial pentru a cuprinde toate avantajele oferite
de Internet şi, implicit, pentru a furniza noi funcţionalităţi pe Internet.
Începând cu anul 2000, au fost lansate pe piaţă suite e-business ERP.
Pachetele Enterprise Resource Planning au devenit în anii '90 o prezenţă
obişnuită în marile corporaţii şi în companiile multinaţionale.
A doua jumătate a ultimului deceniu din secolul XX a însemnat deschiderea
lor şi pentru segmentul întreprinderilor medii şi mici.
Iniţiativa generalizării lor a determinat amplificarea popularităţii şi a
discuţiilor din literatura de specialitate, iar primii ani din actualul secol XXI
confirmă importanţa acestui fenomen.
ENTERPRISE RESOURCE PLANNING
(ERP)
Creşterea şi succesul implementărilor în noul mileniu depind de măsura în
care suitele tradiţionale se pot extinde şi integra module sau alte aplicaţii
specifice Internet. Existenţa firmelor pe pieţele electronice devine o
necesitate.
Într-o definiţie orientată tehnologic, ERP reprezintă un sistem informaţional
contabil bazat pe interfeţe grafice utilizator, baze de date relaţionale, limbaje
de generaţia a IV-a, instrumente CASE şi arhitectură client/server.
Totuşi, deşi tehnologia este esenţială în realizarea ERP, definiţia trebuie să
reliefeze ariile funcţionale acoperite: contabilitate, producţie, vânzare,
aprovizionare, stocuri, control de calitate etc.
Astfel, sistemele ERP sunt pachete de aplicaţii formate din mai multe
module care sprijină toate ariile funcţionale: planificare, producţie, vânzare,
marketing, distribuţie, contabilitate, financiar, resurse umane, gestiunea
proiectelor, stocuri, service şi întreţinere, logistică şi e-business.
Arhitectura sistemului facilitează integrarea transparentă a modulelor,
asigurând fluxul informaţiilor între toate funcţiunile întreprinderii într-o
manieră extrem de transparentă.
ENTERPRISE RESOURCE PLANNING
(ERP)
Alegerea sistemului ERP potrivit permite beneficiarului să implementeze un
sistem integrat unic, prin înlocuirea sau reproiectarea sistemelor funcţionale
existente.
ERP constă din module software care acoperă toate ariile funcţionale,
structurate ca de exemplu: marketing şi vânzări, service, proiectare şi
dezvoltare de produs, producţie şi controlul stocurilor, aprovizionare,
distribuţie, resurse umane, finanţe şi contabilitate, servicii informatice.
Integrarea acestor module este realizată fără duplicarea informaţiilor, cu
ajutorul noilor tehnologii de baze de date şi al reţelelor de calculatoare.
Datele reprezintă fundaţia unui sistem ERP.
Baza de date reprezintă un depozit central pentru stocarea şi organizarea
datelor.
Oferta de baze de date comerciale este mai restrânsă în comparaţie cu
oferta suitelor ERP:
În prezent sunt aproximativ câteva sute de aplicaţii de tip ERP şi numai 20
de platforme de baze de date .
ENTERPRISE RESOURCE PLANNING
(ERP)
Puţini sunt furnizorii ERP care au avut succes în dezvoltarea propriilor
platforme de baze de date.
Această strategie este mai rar întâlnită, deoarece presupune un efort
susţinut pentru a contracara avantajele oferite de platformele dezvoltate de
firme specializate, deja testate şi cunoscute pe piaţă.
Programele realizează legătura între bazele de date şi funcţionalităţile
deservite.
Altfel spus, funcţionalitatea este atinsă prin interacţiunea dintre programe şi
bazele de date.
Programele asigură culegerea datelor, validarea, prelucrarea şi transferul
lor, ca şi exportul datelor către alte medii.
Pentru a obţine informaţiile cerute, programele preiau date din bazele de
date create prin alte programe, dar şi din alte surse.
Astfel, datele pot fi introduse de operatori, de la tastatură ori prin preluare
directă (scanarea codurilor bară, spre exemplu).
ENTERPRISE RESOURCE PLANNING
(ERP)
Interfeţele devin tot mai importante, o dată cu dezvoltările tehnologice,
deoarece asigură comunicarea mai uşoară între diferite medii.
Prin interfeţe adecvate, programele pot prelua date şi din alte surse:
Internet, Electronic Data Interchange (EDI), echipamente de producţie, alte
programe de aplicaţii
Rezultatele prelucrării sunt oferite utilizatorilor sub formă de rapoarte, fie
afişate pe ecranul monitorului (display-uri), fie tipărite la imprimantă, dar şi
sub formă de fişiere, care pot fi exportate şi prelucrate cu ajutorul altor medii
de lucru.
Prima modalitate de furnizare a rezultatelor - pe ecran - are avantajul
interactivităţii: actualele sisteme ERP au dobândit tot mai multă flexibilitate.
Informaţiile afişate pe ecran sunt diferite în funcţie de tipul de utilizator care
le solicită şi pot fi chiar personalizate pentru fiecare utilizator în parte.
Astfel, după delimitarea câmpurilor de date solicitate, pot fi operate selecţii
asupra acestora, sunt posibile sortări după criterii diferite şi pot fi stabilite
operaţiile pe anumite câmpuri de date.
ENTERPRISE RESOURCE PLANNING
(ERP)
Pe de altă parte, afişarea diferenţiată a informaţiilor pe categorii de
utilizatori este un aspect impus de politica de securitate a datelor în cadrul
organizaţiei.
În sistemele ERP de ultimă generaţie sunt incluse formulare care afişează
informaţiile într-o interfaţă grafică, într-un mod simplu şi intuitiv de operare.
Utilizatorul poate obţine direct şi interactiv informaţiile dorite.
Din punct de vedere tehnic, este vorba în primul rând de programarea soft,
care a înlocuit programarea hard.
Aceasta permitea scrierea de programe fixe ca şi funcţionalitate, în care
opţiunile sunt limitate la cele avute în vedere iniţial.
Programarea soft a devenit posibilă o dată cu generalizarea interfeţelor
grafice utilizator şi se combină cu programarea vizuală şi cea dirijată de
evenimente.
ENTERPRISE RESOURCE PLANNING
(ERP)
În acest mod a fost îmbunătăţită flexibilitatea aplicaţiilor, nu numai pentru
ieşiri, ci şi pentru intrări şi prelucrări de date: acelaşi program poate fi operat
în mod diferit de către utilizatori diferiţi.
În ce priveşte rapoartele, pe lângă posibilitatea de parametrizare a
acestora, sistemele ERP au un generator de rapoarte, cu ajutorul căruia pot
fi construite noi rapoarte, ce nu au fost prevăzute în cerinţele iniţiale.
Cel mai des întâlnit este formatul tabelar (Excel, Lotus 1-2-3 etc.), care
poate fi salvat şi exploatat mai apoi cu ajutorul fişierelor de calcul (pentru
analize complexe asupra datelor, calcule suplimentare, grafice).
Această opţiune de export este deosebit de importantă în sporirea
funcţionalităţii de ansamblu a sistemelor ERP, deoarece elimină cererile de
modificare ulterioară a aplicaţiilor din partea beneficiarilor.
În fine, sistemele ERP pot genera ca ieşiri diferite documente, cu formă şi
conţinut standard: facturi, avize de expediţie, NIR-uri, comenzi etc.
ENTERPRISE RESOURCE PLANNING
(ERP)
Dacă în primele sisteme ERP, nu era posibilă configurarea documentelor de
ieşire în forma dorită (firmele fiind nevoite să modifice formatele), sistemele
actuale oferă diverse soluţii pentru obţinerea ieşirilor în formatul dorit.
In sistemele ERP sunt utilizate instrumente de proiectare ce permit
flexibilitate în definirea ieşirilor.
Majoritatea sistemelor oferă facilităţi grafice, pentru utilizarea însemnelor
firmei (logo/antet specific).
Un alt element conceptual de bază al sistemelor ERP îl constituie fluxurile
de procese sau fluxuri de operații (workflow).
Ele ilustrează desfăşurarea unui anume proces funcţional, cum ar fi
calculul, înregistrarea şi plata salariilor în cadrul sistemului ERP.
Aplicaţiile workflow se referă la modul în care aplicaţia reflectă un flux de
procese economice dintr-o arie funcţională.
ENTERPRISE RESOURCE PLANNING
(ERP)
Deşi tipologia acestor aplicaţii este mai amplă, avem în vedere doar două
tipuri de aplicaţii:
funcţionale (specifice unei funcţiuni) ;
inter funcţionale, care implică activităţi ce se regăsesc în două sau mai
multe funcţiuni.
Abordarea pe procese este superioară celei funcţionale, deoarece
activităţile se desfăşoară nu doar în cadrul unei funcţiuni, ci adesea
„traversează" mai multe domenii funcţionale.
În cea mai simplă accepţiune, workflow defineşte, creează şi
supraveghează execuţia fluxurilor de lucru prin intermediul unui software
specializat.
Cea mai importantă caracteristică este flexibilitatea, care permite adaptarea
uşoară a fluxurilor din sistem la fluxurile proceselor economice din
organizaţie.
Unele sisteme ERP includ un modul funcţional pentru stabilirea şi
gestionarea fluxurilor de activităţi specifice fiecărei organizaţii.
Caracteristicile sistemelor
ERP
Principalele caracteristici ale sistemelor ERP sunt:
sunt pachete software proiectate în medii client/server;
prelucrează majoritatea tranzacţiilor organizaţiei;
integrează şi unifică procesele economice;
utilizează o bază de date la nivelul organizaţiei, în care datele
sunt introduse o singură dată;
permit accesul la date în timp real;
oferă suport multivalută şi multilingv;
sunt adaptate specificului dat de ramura în care operează
organizaţiile (diferite ramuri industriale, servicii, comerţ, bănci,
sănătate etc.);
permit realizarea de adaptări fără intervenţia programatorilor.
Avantajele sistemelor ERP
Beneficiile şi avantajele unui sistem ERP sunt:
informaţii online / în timp real pentru toate ariile funcţionale ale unei
organizaţii;
standardizarea datelor şi claritatea acestora la nivel de întreprindere;
aplicaţiile includ "cele mai bune practici" din industria respectivă;
eficienţa pe care o înregistrează compania;
analizele şi rapoartele ce pot fi folosite la planificări pe termen lung;
informaţia este introdusă în sistem o singură dată;
obligă la folosirea "celor mai bune practici" din industrie;
permite personalizări;
furnizează funcţionalităţi pentru interacţiunea cu alte module;
furnizează instrumente de raportare managerială diversificate.
Descrierea avantajelor
Dezavantaje
Majoritatea problemelor pe care le întâlnim la sistemele ERP sunt urmate
de investiţii inadecvate în ceea ce priveşte personalul implicat în training,
inclusiv schimbările implementate şi testele, atât articolele lipsă a politicii
incorporate protectoare a integrităţii datelor în sistemele ERP cât şi regulile
de folosire.
Restricţiile ERP-ului includ:
Succesul depinde de aptitudinile şi experienţa forţei de muncă, inclusiv
training-ul despre cum să facem să funcţioneze bine sistemul.
Multe companii reduc cheltuielile, minimalizând bugetul pentru pregătire.
În particular, deţinătorii micilor întreprinderi folosesc pentru sistemul lor ERP
un personal cu educaţia insuficientă în ceea ce privesc regulile de
funcţionare a sistemului în general, cum ar fi baza APICS şi în particular
cum pachetul de vânzare ERP este folosit.
Dezavantaje
Sistemele pot fi dificil de utilizat şi sunt, uneori, etichetate ca fiind
prea “rigide” si neadaptabile personalului din compania respectivă şi
genului de afacere. .
Sistemul poate suferi de problemă de genul “legătură slabă”- poate
fi lipsit de rezultate la un departament sau la unul dintre parteneri şi
astfel poate afecta celelalte legături.
Majoritatea legăturilor integrate au nevoie de exactitate în alte
aplicaţii ca să lucreze eficient.
Împotrivirea în a trimite informaţii între departamente poate reduce
eficienţa softului.
Mai sunt întâlnite, de asemenea, la parteneriate probleme de
compatibilitatea a sistemelor.
Caracteristicile soluţiilor ERP
În general soluţiile de acest tip acoperă întreaga activitate economică a unei
companii.
Gestionează atât relaţiile cu furnizorii, activitatea de aprovizionare,
depozitarea, fluxurile de producţie, controlul calităţii, desfacerea cât şi
activitatea economico-financiara a companiei. Nu sunt excluse nici
operaţiunile de salarizare, resurse umane.
Un sistem ERP se deosebeşte de orice alte sisteme prin câteva concepte
care stau la baza construcţiei lor şi fac din acestea unelte de bază într-o
economie competitivă.
Dintre acestea le menţionam pe cele mai importante:
modul unitar de organizare a datelor;
integrarea tuturor funcţionalităţilor disponibile în cadrul sistemului
(gestiune contabilă şi financiară, producţie, aprovizionare, vânzare,
salarizare, etc.);
Caracteristicile soluţiilor ERP
extensibilitate - orice ERP permite extinderea prin adăugare de noi
funcţionalităţi;
posibilitatea de adaptare pentru orice procese economice;
posibilitatea de modificare a proceselor în ton cu modificarea legislativă;
analiza financiar-contabilă multidimensională (pe proiecte, tip de
activitatea, etc.);
definirea, bugetarea şi urmărirea execuţiei bugetelor;
raportare adaptată necesităţilor şi tipului de afacere;
raportare contabilă folosind mai multe sisteme (IAS,GAAP);
posibilitatea de a gestiona un grup de companii;
posibilitatea de consolidare a mai multor companii dintr-un grup.
Caracteristicile soluţiilor ERP
Una dintre situaţiile în care un sistem ERP îmbunătăţeşte activitatea este
modul de preluare a comenzilor clienţilor.
Acestea sunt înregistrate într-un sistem unic. Toate persoanele implicate în
preluarea, facturarea şi transportul aferente comenzii pot vedea aceleaşi
informaţii.
Este eliminat factorul uman care ar trebui în lipsa unui ERP să reintroducă
aceleaşi date de mai multe ori în diverse module software disparate.
Probabilitatea de a lucra cu date eronate este foarte mult redusă.
Practic un ERP permite tuturor acelora implicaţi în activitatea companiei din
diferite departamente şi locaţii să lucreze folosind un sistem unitar.
Intervenţia unei persoane asupra unor date are efecte multiple în sistem,
ceea ce face ca mai târziu orice utilizator care are nevoie de acea
informaţie să o regăsească într-o formă actualizată.
Comunicare în companie se realizează mult mai eficient şi cu date sigure.
Caracteristicile soluţiilor ERP
ERUp-ul standardizează modul în care se desfăşoară activităţile în
companie. Implementarea unui astfel de sistem este unul dintre primii paşi
pe care trebuie să îi facă o companie pentru a putea adera la o certificare
ISO.
Pentru că cifrele următoare vorbesc de la sine despre avantajele unei soluţii
ERP:
reducerea stocurilor - 18% ;
reducerea costurilor cu materiale - 5% ;
reducerea costurilor adiţionale/salarii - 8%;
creşterea vânzărilor şi a satisfacţiei clienţilor - 12%;
îmbunătăţirea controlului financiar contabil - 16%.
Producţia este cel mai important proces în lanţul valorii într-o întreprindere
producătoare, iar calitatea şi competitivitatea pe piaţă a produselor rezultate
din procesul de producţie este esenţială.
Caracteristicile soluţiilor ERP
Pentru îndeplinirea acestor deziderate este esenţială eficienţa sistemului
informatic de gestiune a activităţii. Numai implementarea unei soluţii
informatice perfect modelate pe specificul activităţilor unei întreprinderi
producătoare poate asigura premisele competitivităţii acesteia.
Justificarea investiţiei într-un sistem ERP:
Eficientizarea întreprinderii;
Standardizarea proceselor economice;
Eliminarea insulelor informaţionale;
Modularitate şi arhitectură deschisă, care facilitează adoptarea tehnologiilor
viitoare .
Costurile implementării unui
ERP
Când vorbim de costurile unui ERP ne referim de fapt la costurile tuturor
acţiunilor pe care compania trebuie să le execute pentru a avea un proiect
de succes.
În literatura de specialitate se vorbeşte de TCO (total cost of ownership). În
aceste costuri sunt incluse licenţe, instalări, configurări, training utilizatori,
integrare aplicaţii, etc.
Pe plan local (în România) putem vorbi costuri TCO care pornesc de la 50
mii şi 500 milioane Euro. Limita superioară este atinsă doar de companiile
mari multinaţionale.
Limita inferioară reprezintă un buget minim pe care o companie trebuie să îl
aloce atunci când doreşte să investească într-un ERP.
Riscul de a avea un proiect eşuat atunci când se alege o soluţie doar după
preţ, din păcate, în România este foarte mare.
Este de preferat ca în cazul în care nu se pot găsi surse interne de finanţare
să se apeleze la o companie specializată în finanţarea proiectelor IT&C.
Durata implementării unui
ERP
În general când vorbim de companii medii din România timpul de
implementare este strâns legat de gradul şi nevoia de adaptare a
aplicaţiei la nevoile companiei.
Se mai observă o accentuată legătură între acest timp şi gradul în
care managementul companiei şi utilizatorii aplicaţiei se implică în
reuşita proiectului.
În general acest interval variază foarte mult situându-se între 3-4
luni şi 10-12 luni.
Ca orice proiect există probabilitatea ca acesta să eşueze. Modul în
care sunt eliminate riscurile proiectului pot micşora sau mări această
probabilitate.
Contează foarte mult modul în care se implică echipa de
implementare, comunicarea între echipa furnizorului şi a
beneficiarului, motivaţia viitorilor utilizatori şi altele.
PREZENTARE SAP
În ultimul timp au apărut o multitudine de aplicaţii pentru gestionarea
în timp util a diverselor date legate de administrarea afacerilor, ca
răspuns la creşterea complexităţii şi a volumului sarcinilor
manageriale.
Un aspect important ce trebuie avut în vedere de aceste aplicaţii este
facilitarea luării unor decizii manageriale în timp util, preferabil cât mai
scurt, în condiţiile existenţei unui volum imens de date legate de orice
aspect şi detaliu al unei afaceri, produse, echipamente.
Deciziile luate trebuie să fie compatibile cu aspectele concrete ale
afacerii şi în acelaşi timp transformarea lor în acţiuni precise şi
corecte se impun se facă cât mai rapid.
Ţinând cont de aceste deziderate şi de continua evoluţia a domeniului
IT, aplicaţiile au început să corespundă acestor cerinţe într-un grad din
ce în ce mai mare.
PREZENTARE SAP
Funcționarea unitară a instrumentelor software şi echipamentelor în
scopul realizării acestor deziderate a condus la conturarea unor
sisteme integrate.
Acest lucru a încercat şi în parte l-a reuşit aplicaţiile integrate SAP
prescurtare având ca ultimă interpretare Systems, Applications and
Protocol in Data Processing.
Prima versiune a SAP – R/1 realiza gestionarea automată a
contabilităţii firmelor.
Litera R provine de la faptul că aplicaţia oferea o procesare în timp
Real a datelor.
În anii 70 a apărut versiunea R/2. SAP R/2 constituia un pachet de
aplicaţii software pentru gestionarea afacerilor implementate pe
mainframe.
Această versiune a avut mult succes în anii 80 şi începutul anilor 90.
PREZENTARE SAP
Versiunea SAP R/2 fost folosită îndeosebi de marile companii
europene multinaţionale care aveau nevoie de procesarea în timp real
a datelor cu posibilităţi de folosirea simultană a mai multor sisteme
monetare şi a mai multor limbi.
Odată cu SAP R/3 s-a implementat o arhitectură client-server ce a
permis folosirea de platforme şi sisteme de operare diverse.
Această versiune a fost lansată în iulie 1992.
Prin facilităţile şi puterea de integrare ce o oferea, SAP a ajuns să
domine piaţa aplicaţiilor software pentru mediul afacerilor în următorii
10 ani.
PREZENTARE SAP
Anul 1972 1979 1992 1999/2000 2002/2003
Versiune SAP R/1 R/2 Mainframe R/3
Client/ Server
mySAP.com
One-Step
Business
mySAP Business
Suite SAP
NetWeaver
Venituri 0.3 mil. 5.1 mil. 424 mil. 6,265 Md. 7,4 Md.
Nr. Angajați 9 60 3200 25000 28654
Nr. Clienți - 50 2800 15000 19300
Nr.de ţări - 2 35 120 120+
Evoluţia SAP pe parcursul anilor este prezentată în
tabelul următor:
Referintele SAP Romania din 1997 sunt: PETROMIDIA SA, ARPECHIM
SA, MOLDOCIM SA, IMAR SA, TAROM RA, IAR SA, AZOMURES SA si
RULMENTUL SA. De asemenea, SAP Romania a livrat versiunea
romaneasca a Sistemului SAP, unor societati multinationale ca METRO
ROMINVEST si British American Tobacco.
Ministerul Sanataţii, Ministerul Comunicaţiilor şi Tehnologiei Informaţiei,
Electrica, RATB, E-ON, Gima, Relad, automobile (Draexlmaier), Petrom,
Arpechim, Rompetrol, Heidelberg.
PREZENTARE SAP
Grupul Integrator/SAP Romania este o societate cu capital
romanesc, ce ofera soluţii directe de consultanţa în business
management şi sisteme informatice integrate de gestiune a
resurselor întreprinderii (ERP).
Compania ocupă poziţia de lider pe piaţa soluţiilor ERP din
Romania, deţinînd, la sfarsitul anului 2000, o cota de piaţa de
52,5%, potrivit datelor furnizate de IDC (International Data
Corporation).
Organizarea SAP
Ţinând cont de multitudinea de domenii economice în
care se aplică soluţiile SAP, ca de altfel şi mulţimea de
departamente interne ale unei companii conectate prin
SAP, era de aşteptat ca SAP să capete o organizare
modulară pentru a fi cât mai flexibilă şi eficientă.
Astfel SAP conţine următoarele module:
Finanţe şi Conducere(FICO);
Resurse umane (HR);
Managementul materialelor(MM);
Vânzare şi distribuţie(SD);
Planificarea producţiei (PP).
Organizarea SAP
Aceste module conţin la rândul alte module, există chiar minimodule
independente. Iată o listă de astfel de module secundare:
FI-AP – contabilizare ieşiri(plăţi);
FI-AR – contabilizare intrări;
FI-FM – managementul fondurilor;
FI-CA – contabilizare contract;
CO-PA - analiza profitului;
CO-PC – costul produsului;
AM – managementul activelor;
PS – sistemul proiectului;
FS – asigurări;
IS – soluţii pentru medii industriale;
IS-ADEC – industria aerospaţială şi de apărare;
Organizarea SAP
IS-AFS – îmbrăcăminte şi încălţăminte;
IS-B – aplicaţii bancare;
IS-BEV – industria băuturilor;
IS-DFS – industria apărării şi securităţii;
IS-H – managementul spitalelor;
IS-HER – managementul instituţiilor de învăţământ superior;
IS-M – industria media;
IS-MIN – industria minieră;
IS-MP – industria de morărit;
IS-OIL – industria de extracţie, prelucrare a petrolului;
Organizarea SAP
Alte module secundare:
IS-PS – managementul sectorului public;
IS-T – managementul telecomunicaţiilor;
HR-PA – administrarea personalului;
HR-PB – recrutarea personalului;
HR-PD – pregătirea personalului;
HR-PY – plata personalului;
QM – managementul calităţii;
SD – vânzări şi distribuţie;
WM – managementul depozitelor.
Organizarea SAP
Aceste module cu toate că pot funcţiona individual au şi
posibilităţi de interconectare.
O implementare SAP deşi este costisitoare atât financiar cât şi
logistic oferă o serie de avantaje nete.
În primul rând un avantaj ar fi experienţa şi resursele de
management puse la dispoziţie de SAP, un alt avantaj ar fi că
valoarea afacerii şi a companiei va creşte în urma creării unui
sistem integrat de gestionare.
Soluţiile SAP devin cu adevărat avantajoase pentru marile
companii naţionale şi multinaţionale şi mai puţin pentru
companiile mici şi mijlocii.
Tehnologii puse la dispoziţie de SAP
SAP R/3 este o aplicaţie bazată pe interacţiunea client-server.
Nivelul de prezentare sau client constituie un mod de interfaţare cu
aplicaţia.
Nivelul aplicaţie abordează toate operaţiile legate de procesarea logică
a datelor şi nivelul bază de date înregistrează şi păstrează toate
informaţiile despre sistemul integrat, inclusiv tranzacţiile şi
configurarea datelor.
Aplicaţiile din SAP R/3 sunt realizate într-un limbaj specific propriu,
numit ABAP (Advanced Business Application Programming –
Programarea avansată a aplicaţiilor de afaceri).
Versiunea ABAP/4 constituie un limbaj de generaţia a patra (4GL),
orientat spre crearea de aplicaţii simple dar puternice.
În plus R/3 mai oferă şi un mediu complet de dezvoltare de aplicaţii. În
acest mediu se pot modifica aplicaţii SAP deja existente pe lângă
crearea de aplicaţii cu totul noi.
Tehnologii puse la dispoziţie de SAP
Interacţiunea în ABAP cu bazele de date se face sub forma unor
comenzi Open SQL.
Alt aspect al mediului SAP este posibilitatea de lucru cu interfeţe
grafice. Totodată pentru a oferi un suport deplin în organizarea şi
gestionarea elementelor de program şi de interfaţă s-a implementat
conceptul de obiect în ABAP.
Partea cu adevărat dificilă din ABAP este implementarea de soluţii
specifice. În această privinţă doua aspecte trebuie avute în vedere:
configurarea şi adaptarea la structura managerială şi la specificul
economic al companiei. Astfel diferite companiei deşi cu profil
asemănător de activitate pot avea o structură a bazelor de date
şi a interfaţării lor diferită.
extensii ce ţin de comunicarea de informaţii între sisteme.
Tehnologii puse la dispoziţie de SAP
Aceasta presupune dezvoltarea de cod în ABAP prin care să se
precizeze ce date să fie accesibile prin mijloace de interfaţare
către alte sisteme, ce informaţii sunt relevante dintr-un sistem
pentru activitatea altui sistem.
Ţinând cont de complexitatea implementării, companiile sunt
nevoite să recruteze consultanţi SAP bine pregătiţi pentru a
realiza sarcina. Implementarea trebuie să ţină cont de specificul
companiei, de ce are compania nevoie dar şi de resursele de
care aceasta dispune.
SAP NetWeaver
Una din cele mai noi aplicaţii de la SAP este SAP
NetWeaver.
Aceasta oferă acea gamă de soluţii specifice
aplicaţiilor integrate care permite lucrul în comun –
inter-comunicarea dintre module, construirea de
aplicaţii având drept bază alte aplicaţii, prin aceasta
urmărindu-se reducerea costurilor creării de aplicaţii
pentru gestionarea afacerilor.
SAP NetWeaver
Aplicaţia SAP presupune conlucrarea a patru aspecte principale:
integrarea persoanelor în cadrul acesteia se urmăreşte:
accesul la informaţie pe canale multiple;
crearea unui portal;
colaborare ;
integrarea informaţiilor:
informaţii despre specificul afacerii şi administrare afacerilor în general;
informaţii şi cunoştinţe despre mecanismele afacerii;
managementul datelor principale;
integrarea proceselor:
broker pentru integrarea proceselor;
managementul proceselor din afacere;
platforma aplicaţiei:
J2EE (Java 2 Platform Enterprise Edition);
ABAP ;
Abstractizarea (acces nediscriminativ) pentru un tip larg da baze de date
şi sisteme de operare.
SAP NetWeaver
SAP pune la dispoziţie următoarele mijloace de integrare:
SAP Enterprise Portal – Portal pentru companii;
SAP Mobile Infrastructure;
SAP Business Intelligence;
SAP Master Data Management;
SAP Exchange Infrastructure;
SAP Web Application Server;
Pe de altă parte pe lângă serviciile prezentate anterior mai sunt puse la
dispoziţie şi unelte de dezvoltare şi management ca:
SAP NetWeaver Developer Studio;
SAP Visual Composer;
SAP Composite Application Framework;
SAP Solution Manager.
SAP NetWeaver
SAP Enterprise Portal (pe scurt SAP EP) permite utilizatorului să se
concentreze asupra sarcinii ce o are de realizat prin punerea la
dispoziţie a tuturor resurselor şi instrumentelor necesare într-un
singur program prin intermediul unui singur element de interfaţă.
Astfel deşi în mod normal ar fi nevoie de mai multe aplicaţii pentru
îndeplinirea sarcinii, prin conceptul de portal implementat de SAP EP
sunt puse la dispoziţii unelte specifice special realizate pentru
realizarea sarcinii.
SAP Mobile Infrastructure (SAP MI) permite construirea unei interfeţe
unificate între aplicaţiile SAP şi dispozitivele electronice mobile – de
genul celularelor, pagerelor, PDA-urilor.
Deoarece în mod obişnuit fiecare dispozitiv mobil are un mijloc
specific de interfaţare, realizarea unui modul care s-a treacă peste
diferenţe şi să comunice informaţia .
SAP NetWeaver
Aplicaţiile SAP MI sunt realizate în SAP NetWeaver Developer Studio şi
sunt destinate a fi rulate pe SAP Web AS sau pe dispozitive mobile.
Pentru a realiza compatibilitate SAP MI foloseşte meta-date, adică date
referitoare la funcţionalitatea şi elementele controlate de interfaţă şi
mai puţin cele legate de aspect şi un anumit mod de deservire al
comenzilor prin acea interfaţă.
SAP Business Intelligence (SAP BI) permite punerea în comun şi
interacţiunea dintre informaţie, capacităţi de analiză a informaţiei şi
mijloace de facilitare a înţelegerii, şi de asemenea posibilitate de a
informa şi pe alţii interesaţi de lucrurile ce au fost observate prin
intermediul acestui serviciu. Practic acest serviciu permite accesul la
un depozit de date care păstrează datele într-o formă normalizată, şi
extragerea informaţiilor dorite într-o formă interactivă, formă ce
permite interogări complexe.(aşa numitele InfoCubes).
SAP NetWeaver
SAP Master Data Management (SAP MDM) lucrează tot asupra bazelor
de date permiţând ca informaţii nespecifice, folosite în mai multe
module SAP să fie armonizate pentru evitarea contradicţiilor între baze
de date, sau informaţiilor eronate sau incomplete.
Reducerea informaţiilor eronate duce la scăderea costurilor de
menţinere şi administrare a sistemelor integrate.
Dacă serviciul precedent doar exploata o bază de date, acest serviciu
supraveghează şi menţine o bază de date într-o stare buna de
„sănătate”.(aşa-zisa rezolvare a inconsistenţelor). Şi acest serviciu
lucrează pe SAP Web AS.
SAP Exchange Infrastructure (SAP XI) – se ocupă cu gestionarea
schimbului de informaţii dintre module, servicii …etc. din cadrul SAP.
Acest serviciu realizează un transfer securizat şi perfect compatibil
între modulele SAP. Pe lângă gestionarea transferului se mai ocupă şi
de convertirea diferitelor formate de date transmise în formate
compatibile – interschimbabile.
SAP NetWeaver
Acest serviciu permite un grad ridicat de automatizarea a
răspunsurilor şi transferurilor ca şi o configurabilitate deosebită a
oricărui aspect sau comportament.
De asemenea mai permite folosirea de servicii Web de tipul trimiterii şi
primirii de masaje.
SAP Web Application Server(SAP Web AS) – este elementul
fundamental din structura lui SAP NetWeaver.
În momentul în care se dezvoltă o aplicaţie aceasta se creează în
totalitate prin SAP NetWeaver Developer Studio, dar când se rulează
execuţia ei se face prin SAP Web AS.
Acest serviciu suportă în acelaşi tip două limbaje JAVA (versiune
J2EE 1.3) şi ABAP. Mai permite, printre altele, construirea de pagini
Web şi creare şi menţinerea de servicii Web.
Un alt aspect este compatibilitatea cu mediul SAP Web Dynpro ce
permite crearea de interfeţe prin modelare şi generare de cod.
Instrumente de dezvoltare SAP
SAP NetWeaver Developer Studio – reprezintă instrumentul principal pentru
dezvoltare de aplicaţii.
Se bazează pe Eclipse care este un pachet de unelte pentru crearea de
unelte de dezvoltare.
Eclipse a fost creat de IBM, şi mulţi producători de software l-au adoptat
printre care şi SAP. Această unealtă permite dezvoltare de aplicaţii în Java
şi asigură de asemenea şi posibilităţi de creare de servicii Web.
Nucleul Java din cadrul acestei unelte se numeşte JDI (Jave Development
Infrastructure). Acesta pune la dispoziţie un dicţionare pentru tipuri de date
şi definiţii din Java, urmăreşte legăturile dintre module, reconstruieşte
automat bibliotecile.
Un alt aspect important este SAP Web Dynpro care permite programatorilor
fără folosirea limbajului Java să specifice aspectul şi comportamentul
interfeţei. În mod asemănător această unealtă mai dispune şi de
capacitatea de a crea şi configura interfeţe pentru dispozitive mobile şi
wireless.
Instrumente de dezvoltare SAP
SAP Composite Application Framework (SAP CAF) – este un
instrument de creare şi modificare de aplicaţii bazate pe serviciile
oferite de alte aplicaţii.
Acest mod de creare de aplicaţii are avantajul economiei de timp
prin reutilizarea codului unor aplicaţii deja existente în alte medii.
Această unealtă permite crearea de aplicaţii prin folosire modelării
bazate pe roluri şi pe procese.
O caracteristică a SAP CAF este folosirea unor obiecte flexibile
numite proceduri ghidate prin care utilizatorul este îndrumat în
specificarea pas cu pas a procesului.
Mai permite interacţiunea cu MySAP Business Suite prin intermediul
unei interfeţe pentru accesul obiectual.
Pe lângă această interacţiune mai este permis şi alte interacţiuni cu
aplicaţii din afara SAP.
Instrumente de dezvoltare SAP
Pentru a realiza toate acestea SAP CAF are o colecţie de metadate
care descriu obiectele, rolurile, interfeţele utilizator ca de altfel şi
relaţiile dintre acestea. Pe baza acestora se generează codul
interpretabil de SAP Web AS. Aceste metadate pot genera prin
prelucrare sute şi mii de linii de cod.
SAP Solution Manager – permite ţinerea evidenţei versiunilor
codului instalat, separarea configurărilor locale de nucleul
produsului, permite crearea unor pachete de aplicaţii cu interfaţă de
instalare, mai mult permite realizarea de patch-uri şi upgrade-uri
pentru aplicaţiile deja create şi instalate.
Orice element nou, semnificativ, odată finalizat, poate fi transformat
în pachet şi trimis sub această formă celor ce îl folosesc.
LIMBAJUL DE PROGRAMARE ABAP Etapele creării unui program de ABAP în SAP
Din păcate în ceea ce priveşte realizarea şi testarea programelor de
ABAP sunt puţine opţiuni, şi nu o multitudine de medii şi
compilatoare freeware cum sunt pentru programarea C şi vizuală.
Totuşi există vreo câteva opţiuni de editoare ABAP cu verificarea de
sintaxă dar limitate ca funcţionalitate.
O versiune incluzând şi un compilator cu posibilităţi medii de creare
de aplicaţii este practic inexistentă.
Singura posibilitate este folosirea kit-urilor puse la dispoziţie de
SAP, dar pentru ca versiunea să fie funcţională este necesară
instalarea a numeroase module şi opţiuni ce permit în final o
programare completă prin ABAP.
Totuşi ca mod de organizare şi de structurare ABAP are o structură
relativ uşor de stăpânit.
Etapele creării unui program de ABAP în
SAP
Are un nivel ce poate fi deprins uşor – un aşa zis nivel procedural de
bază – asemănător primului nivel din C , un nivel mai avansat în
care se lucrează cu obiecte – similar nivelului C++ ca dificultate sau
complexitate, şi un nivel avansat de lucru cu obiecte de interfaţă şi
ferestre şi streamuri comparabil cu Visual C sau orice alt mediu
vizual.
Pentru a crea o aplicaţie oricât de simplă în ABAP, şi mai ales
pentru a o testa este nevoie de un mediu de programare, editare.
Acesta este oferit de SAP Netweaver 7.0 ABAP.
Pentru a crea un program pornind de la zero sau doar pentru
testarea unei secvenţe de cod, sau a flexibilităţii limbajului trebuie
parcurse în mod obligatoriu o serie de etape ce decurg una din alta
şi sunt obligatorii.
Etapele creării unui program de ABAP în
SAP
Astfel sunt necesare următoarele etape (presupunând că SAP a fost
deja instalat şi configurat):
1. Pornirea Serverului Aplicaţiei prin rularea Start-Programs- SAP
Netweaver 7.0 ABAP – NSP – Start Application Server;
2. Logarea la SAP prin rularea - Start-Programs - SAP Front End –
SAP Logon;
3. Din fereastra ce apare –SAP Logon 710 din tabul –Systems- se
apasă butonul de –Log On-(Logare);
4. Se face logarea prin specificare numelui utilizatorului (pentru
versiunea TRIAL se foloseşte BCUSER) şi a parolei (pentru TRIAL
este „minisap”) se apasă apoi Enter;
5. Din arborele de meniuri – SAP menu- se alege Tools- ABAP
workbech- Devolopment – User Interface –SE38 ABAP Editor, se
face dublu clic pe acesta din urmă;
Etapele creării unui program de ABAP în
SAP
6. În fereastra ce apare se specifica numele noului program (nume ce
obligatoriu trebuie să înceapă cu Y, Z), se alege opţiunea –Source
code- şi se apasă butonul ---Create-;
7. În fereastra ce apare se specifică titlul programului(Title), tipul
(Type = Executable Program), statutul (Status = Test Program),
domeniul aplicaţiei ( Application = Basis), se apasă butonul –Save;
8. În fereastra ce apare se apasă butonul –Local Object- şi va apărea
fereastra de editare a programului;
9. Se scrie programul dorit şi se rulează cu F8 sau se verifică sintaxa
cu Ctrl + F2.
10. Programul se salvează cu Ctrl + S sau din meniul principal
Program-Save.
Etapele creării unui program de ABAP în
SAP
6. Pentru a încărca un program deja scris se scrie numele acestuia în
aceeaşi fereastră prin care se pot crea noi programe – şi se apasă
butonul –Change-( acesta permite deschiderea cu posibilităţi de
modificare pe când –Display- permite doar vizualizarea);
7. Se iese prin Program- Exit sau Shift + F3;
8. Se închide fereastra şi se face Log Out ( logarea pentru ieşire);
9. Se închide fereastra de logare şi se rulează executabilul de oprire
a Serverului Aplicaţie prin Start-Programs- SAP Netweaver 7.0
ABAP – NSP – Stop Application Server.
Declararea variabilelor – instrucţiunea
DATA
Pentru a se declara variabile, structuri, vectori se poate folosi
instrucţiune DATA.
Aceasta poate avea următoarele variante:
1. DATA f.
2. DATA f(len).
3. DATA: BEGIN OF rec,
...
END OF rec.
4. DATA: BEGIN OF itab OCCURS n,
...
END OF itab.
5. DATA: BEGIN OF COMMON PART c,
...
END OF COMMON PART.
Declararea variabilelor – instrucţiunea
DATA
Pentru prima variantă este necesară una din următoarele
completări:
1. ... TYPE typ
2. ... LIKE f1
3. ... TYPE typ OCCURS n
4. ... LIKE f1 OCCURS n
5. ... TYPE LINE OF itabtyp
6. ... LIKE LINE OF itab
7. ... VALUE lit
8. ... DECIMALS n
9. ... WITH HEADER LINE
Declararea variabilelor – instrucţiunea
DATA
Un exemplu tipic de declarare a unei variabile este:
DATA nume_var TYPE litera_tip.
Atunci când lipseşte specificarea tipului se presupune automat că
variabila este de tip caracter (C).
Numele variabilei poate avea o lungime de maxim 30 de caractere
şi poate conţine litere şi cifre, dar trebuie să înceapă cu o literă.
Se mai poate folosi liniuţa de subliniere (underscore) în interiorul
numelui variabilei.
Declararea variabilelor – instrucţiunea
DATA
Tipurile de bază din ABAP sunt definite prin intermediul unor
simboluri litera şi sunt cele din tabelul următor:
Declararea variabilelor – instrucţiunea
DATA
Exemple:
DATA ch TYPE C.
creează o dată de tip caracter cu numele ch.
DATA data_start TYPE D.
creează o variabilă de tip dată calendaristică cu numele data_start.
Valorile de tip întreg sunt valori întregi între -2^31 to 2^(31-1) (adică
între
-2.147.483.648 şi 2.147.483.647).
Valorile în virgulă mobilă au o precizie de maxim 15 zecimale şi se
încadrează în intervalul de la 1E-307 şi 1E+308.
Declararea variabilelor – instrucţiunea
DATA
În cazul declaraţiei de tipul:
DATA nume_var LIKE alt_nume_var.
Se declara variabila nume_var având acelaşi tip cu o variabilă
declarată anterior sau predeclarată - alt_nume_var.
În cazul declaraţiei de tipul:
DATA nume_var TYPE nume_tip OCCURS n.
Se declară variabila nume_var ca fiind un vector cu n elemente de
tipul nume_tip. Pe parcurs numărul elementelor din vector se poate
modifica.
Declararea variabilelor – instrucţiunea
DATA
Exemplu:
TYPES: BEGIN OF TipStudent,
nume(30) TYPE C,
grupa(10) TYPE C,
medie TYPE F,
END OF TipStudend.
DATA Studenti TYPE TipStudent OCCURS 20,
UnStudent TYPE TipStudent.
…
Declararea variabilelor – instrucţiunea
DATA
…
UnStudent-Nume = ‘Popescu Radu’.
UnStudent-Grupa = ’451B’.
UnStudent-Medie= 8.56.
APPEND UnStudent TO Studenti.
UnStudent-Nume = ‘Ionescu Radu’.
UnStudent-Grupa = ’341B’.
UnStudent-Medie= 8.87.
APPEND UnStudent TO Studenti.
Această secvenţă de program declară o structură cu numele
TipStudent, ce conţine informaţii referitoare la un student.
Declararea variabilelor – instrucţiunea
DATA
În continuare se declară un tabel de tip TipStudent cu 20 de
câmpuri şi o variabilă de tip TipStudent – UnStudent.
Se completează datele prin atribuire în variabila UnStudent şi se
adaugă la variabil tip tabel Studenţi cu ajutorul instrucţiunii
APPEND.
În cazul declaraţiei de tipul:
DATA nume_var LIKE nume_var OCCURS n.
Se declară o tabelă cu înregistrări de tipul variabilei nume_var. Se
alocă iniţial n înregistrări pentru tabelă.
Declararea variabilelor – instrucţiunea
DATA
În cazul declaraţiei de tipul:
DATA nume_var TYPE LINE OF nume_tip_tabel.
Se declară o variabilă a cărui tip corespunde cu tipul unei
înregistrări din tabelul specificat prin nume_tip_tabel.
O altă declaraţie de date este următoarea:
DATA nume_var LIKE LINE OF nume_tabel.
Se declară o variabilă având tipul unei înregistrări din variabila
nume_tabel.
Declararea variabilelor – instrucţiunea
DATA
Pentru a specifica o valoare de iniţializare se poate folosi:
DATA nume_var TYPE nume_tip VALUE val_initializare.
În general când se specifică o iniţializare se utilizează cuvântul
cheie VALUE.
Secvenţa de mai sus declară o variabilă cu numele nume_var de
tipul nume_tip şi îi atribuie valoare de iniţializare val_initializare.
Exemple:
DATA numar TYPE I VALUE 1000,
Nume(30) TYPE C VALUE ‘Alexandru’.
Declararea variabilelor – instrucţiunea
DATA
Pentru a specifica numărul de zecimale pentru o variabilă de tip P
se foloseşte:
… DECIMALS n.
, unde n specifică numărul de zecimale, care poate fi o valoare între
0 şi 14.
Exemplu:
DATA salariu TYPE P DECIMALS 2.
Pentru a se specifica că tabelul se creează cu o linie de antet se
foloseşte expresia:
…WITH HEADER LINE.
Declararea variabilelor – instrucţiunea
DATA
Exemplu:
DATA: Studenti TYPE TipStudent OCCURS 20 WITH HEADER
LINE.
…
CLEAR Studenti.
CLEAR Studenti[ ];
Secvenţa din exemplu creează un tabel cu numele Studenti ce are
şi linie antet. Prima apelare a instrucţiunii CLEAR şterge linia antet.
A doua apelare, cea cu paranteze pătrate şterge înregistrările din
Studenti.
Declararea variabilelor – instrucţiunea
DATA
Varianta 2 a instrucţiunii DATA
Data nume_var(dim) …
Are aceleaşi adăugiri ca şi varianta 1 dar se referă numai la tipurile
de date simbolizate prin C, N, P şi X, oricare alt câmp având
dimensiune standard. Valorile maxime ale dimensiunii sunt în
funcţie de tip, conform următorului tabel:
Declararea variabilelor – instrucţiunea
DATA
Fiecare octet poate conţine un caracter sau două cifre zecimale sau
hexazecimale.
Exemplu:
DATA nume(30) TYPE C.
Declară un şir de caractere cu dimensiunea maximă de 30 de caractere.
Varianta 3 a instrucţiunii DATA
Are următoarea sintaxă:
DATA : BEGIN OF nume_struct.
V1 TYPE nume_tip1,
V2 TYPE nume_tip2,
…
END OF nume_struct.
Declararea variabilelor – instrucţiunea
DATA
Cu ajutorul acestei secvenţe se poate defini orice tip de structură. În
interiorul expresiilor BEGIN OF… şi END OF… trebuie declarate
câmpurile componente.
Atunci când se doreşte ca o structură să conţină câmpurile altei
structuri deja definite se poate folosi expresia următoare ce va fi
inclusă în definiţia structurii:
INCLUDE STRUCTURE nume_alt_struct;
Varianta 4 a instrucţiunii DATA
Are următoarea sintaxă:
DATA: BEGIN OF nume_tabel OCCURS n.
…
END OF nume_tabel.
Declararea variabilelor – instrucţiunea
DATA
Prin secvenţa aceasta se declara o tabelă internă cu n înregistrări
necompletate.
Acest mod de declarare acceptă şi o adăugire de tipul :
VALID BETWEEN poz1 AND poz2.
Prin care se specifică validitate tabelei în raport cu două variabile sau
constante temporale, numerice etc. Ambele limite trebuie să fie de acelaşi
tip.
Această expresie se adaugă la sfârşitul declarării tabelei imediat înainte de
punct.
Varianta 5 a instrucţiunii DATA
Are o utilizare mai restrânsă şi acceptă următoare sintaxă:
DATA: BEGIN OF COMMON PART nume_parte.
…
END OF COMMON PART.
Declararea variabilelor – instrucţiunea
DATA
Prin aceasta se declară o zonă de memorie de date puse la
dispoziţie în comun.(prin apeluri externe cu PERFORM).
Dacă există o singură zonă comună nu este nevoie să fie denumită
altfel este necesar un nume de identificare.
Structurile de date comune trebuie să fie identice cu cele din
programul de la care sunt apelate.
Pentru a asigura identitate perfectă a structurilor se poate folosi
expresia INCLUDE STRUCTURE nume_parte.
Declararea constantelor
Declararea constantelor are mai multe caracteristici în comun cu
declararea variabilelor (folosind instrucţiune DATA). Astfel se pot
declara constante în mai multe variante:
1. CONSTANTS c. ... VALUE [ val | IS INITIAL ].
2. CONSTANTS c(len) ... VALUE [ val | IS INITIAL ].
3. CONSTANTS: BEGIN OF nume_const_struct,
...
END OF nume_const_struct.
Prima variantă are sintaxa:
CONSTANTS: k1,k2,..,kn VALUE val_init.
Sau
CONSTANTS: k1,k2,..,kn VALUE IS INITIAL.
Declararea constantelor
Se observă că prezenţa în expresia de declarare a constantelor a
cuvântului VALUE este obligatorie.
Se poate specifica astfel fie o anumită valoare a constantei, fie o
valoare specificată implicit de ABAP.
Varianta doi este folosită pentru declararea unui vector de
constante.
Varianta trei este folosită pentru a se declara o structură cu câmpuri
constante.
Declararea constantelor
Se observă că prezenţa în expresia de declarare a constantelor a
cuvântului VALUE este obligatorie. Se poate specifica astfel fie o
anumită valoare a constantei, fie o valoare specificată implicit de
ABAP.
Varianta doi este folosită pentru declararea unui vector de
constante.
Varianta trei este folosită pentru a se declara o structură cu câmpuri
constante.
Expresii logice
Expresii de comparaţie pentru date simple
Expresiile logice folosesc următoarea listă de operatori de
comparaţie:
Expresii logice
Expresii de comparaţie pentru date simple
Se observă ce se pot folosi fie operatori simbolici fie operatori literali
pentru acelaşi gen de comparaţie. Expresia logică de comparaţie
are forma:
elem1 op_comp elem2.
Dacă tipurile nu coincid se face conversia după prioritate şi apoi se
face comparaţia.
Comparaţia se face de la stânga la dreapta.
Prioritatea înseamnă că tipurile numerice mai puţin precise sunt
convertite în tipuri numerice mai precise. Astfel dacă elem1 este de
tip N şi elem2 este de tip F, elem1 va fi convertit la F.
Instrucţiunea IF
Sintaxa generală a unei instrucţiuni IF este:
IF expresie_logica.
Dacă expresia logică este evaluată ca fiind adevărată(true) atunci ceea ce
urmează după IF până la întâlnirea instrucţiunii ENDIF asociată ei este executat.
Orice expresie care începe cu IF trebuie urmată la un moment dat de un ENDIF,
aceste două instrucţiuni formând o pereche.
Instrucţiunea ENDIF face pereche cu ultimul IF precizat în secvenţa de program.
Sunt posibile trei tipuri de structuri pe baza instrucţiunii IF:
IF exp_log.
Instrucţiuni
ENDIF.
Instrucţiuni de control
Instrucţiuni de control
Sau
IF exp_log.
Instrucţiuni1
ELSE.
Instructiuni2
ENDIF.
În acest caz se execută Instrucţiuni1 dacă exp_log este adevărată,
altfel Instrucţiuni2.
De remarcat că după fiecare instrucţiune se pune un punct.
Instrucţiuni de control A treia variantă este:
IF exp_log1.
Instrucţiuni1
ELSEIF exp_log2.
Instrucţiuni2
…
ELSEIF exp_log_n.
Instrucţiuni_n
ENDIF.
Această secvenţă permite verificare a n – condiţii fiecare ramură
condiţională executându-se în cazul în care expresia logică asociată este
adevărată, atât pentru IF cât şi pentru ELSEIF. Odată ce s-a întâlnit o
condiţie adevărată se execută instrucţiunile asociate ramurii şi se trece la
instrucţiunea ENDIF finalizându-se parcurgerea blocului condiţional. Cel
mult un grup de instrucţiuni poate fi executat în cazul în care expresia logică
asociată este adevărată.
Instrucţiuni de control
Exemplu:
DATA A TYPE I.
...
IF A > 0.
WRITE / 'Numarul este pozitiv. '.
ELSEIF A<0.
WRITE / 'Numarul este negativ.'.
ELSE.
WRITE / 'Numarul este nul.'.
ENDIF.
Instrucţiuni de control
Instrucţiunea CASE
Pentru alegerea unui grup de instrucţiuni în funcţie de o valoare
întreagă se foloseşte instrucţiunea CASE.
Variabila de selecţie asociată instrucţiunii CASE este comparată cu
valori constante având neapărat acelaşi tip cu cel al variabilei de
selecţie.
Practic secvenţa de program generată prin folosirea instrucţiunii CASE
se rezumă la verificare unor condiţii de egalitate între variabila de
selecţie şi constantele specificate ulterior.
Instrucţiunea CASE are următoarea sintaxă generală:
Instrucţiuni de control
CASE variabila.
WHEN opţiune1.
Instrucţiuni1.
WHEN optiune2.
Instrucţiuni2.
…
WHEN opţiune_n.
Instrucţiuni_n.
WHEN OTHERS.
Alte_instrucţiuni.
ENDCASE.
De remarcat că fiecare instrucţiune CASE este urmată de un ENDCASE
asociat.
Opţiunile de ramificare condiţională sunt diferite între ele. Dacă variabila
este egală cu opţiunea atunci se execută blocul de instrucţiuni ce urmează,
până la întâlnire unui alt WHEN sau ENDCASE.
Instrucţiuni de control
Dacă nici una dintre opţiuni nu este egală cu variabila atunci pentru a se efectua totuşi
ceva se foloseşte instrucţiunea WHEN_OTHERS. Această instrucţiune nu poate fi
specificată decât o dată în blocul CASE.
Exemplu:
DATA A TYPE I.
...
CASE A.
WHEN 0.
WRITE / 'Numarul este zero.'.
WHEN 1.
WRITE / 'Numarul este unu.'.
WHEN 2.
WRITE / 'Numarul este doi.'.
WHEN 3.
WRITE / 'Numarul este trei.'.
WHEN OTHERS.
WRITE / 'Numarul este mai mare decât trei.'.
ENDCASE.
Instrucţiuni de ciclare
Instrucţiunea DO
Instrucţiunea DO poate fi folosită pentru a repeta un grup de
instrucţiuni de un număr precizat de ori sau indefinit de ori. Astfel ea
are una din sintaxele:
DO.
DO n TIMES.
Prima variantă este pentru repetarea indefinită, adică până când în
blocul de instrucţiuni ca urmare a îndeplinirii unor condiţii s-a
executat una din instrucţiunile EXIT, STOP, REJECT sau
CONTINUE.
Instrucţiuni de ciclare
A doua variantă este pentru repetarea de n-ori a grupului de
instrucţiuni.
Orice instrucţiune DO trebuie urmată de o instrucţiune ENDDO care
delimitează blocul de instrucţiuni ce se execută.
Instrucţiune EXIT determină ieşirea din secvenţa delimitată de
DO…ENDDO.
STOP şi REJECT sunt asociate bazelor de date prelucrate în blocul
DO…ENDDO şi realizează o închidere a acestora în plus faţă de
simpla părăsire a buclei.
CONTINUE determină încheierea parcurgerii curente a buclei în
momentul în care este întâlnit şi începerea unei noi parcurgeri a
buclei.
Instrucţiuni de ciclare
Exemple:
DATE A TYPE I VALUE 1.
DO.
IF A>10.
WRITE \’Numaratoare s-a incheiat’.
EXIT.
ELSE.
WRITE: ‘Numarul:’,A.
ENDIF.
ADD 1 TO A.
ENDDO.
Instrucţiuni de ciclare
Secvenţa numără şi afişează valorile de la 1 la 10 folosind o ciclare
indefinită.
DATE A TYPE I VALUE 1.
DO 10.
IF A<=10.
WRITE: ‘Numarul:’,A.
ENDIF.
ADD 1 TO A.
IF A>10.
WRITE \’Numaratoare s-a incheiat’.
ENDIF.
ENDDO.
Această secvenţă face acelaşi lucru dar folosind o ciclare definită, adică o
repetare de 10 ori a blocului de comenzi. Totuşi se poate ieşi mai devreme
dacă se doreşte prin folosire instrucţiunii EXIT.
Instrucţiuni de ciclare
Instrucţiunea WHILE
Spre deosebire de DO în care ciclarea poate fi indefinită sau perfect
determinată în WHILE aceasta depinde de o expresie logică. Atât timp cât
această expresie este adevărată se execută instrucţiunile din buclă. De
asemenea mai sunt valabile şi instrucţiunile de ieşire din buclă sau trecere
la următoarea iteraţie : EXIT, STOP,REJECT respectiv CONTINUE.
Această instrucţiune are următoare sintaxă:
WHILE exp_log.
Instrucţiuni…
…
ENDWHILE.
Desigur că sunt permise numeroase imbricări ale unui WHILE în altă
secvenţă WHILE ş.a.m.d.
Instrucţiuni de ciclare
O instrucţiune asociată unei instrucţiuni WHILE este VARY cu
următoarea sintaxă:
VARY vv FROM val1 NEXT val2.
Această instrucţiune trebuie neapărat plasată în bucla WHILE
asociată dar înafara oricărei alte bucle.
Prin aceasta se determină la primul pas atribuirea la variabila vv a
valorii val1,la pasul următor a valorii val2 şi la următorii paşi de
valori succesiv mai mari creşterea făcându-se cu un pas egal cu
diferenţa dintre val2 şi val1.
Instrucţiuni de ciclare
Exemplu:
DATA: BEGIN OF WORD,
UNU VALUE 'E',
DOI VALUE 'x',
TREI VALUE 'e',
PATRU VALUE 'm',
CINCI VALUE 'p',
SASE VALUE 'l',
SAPTE VALUE 'u',
OPT VALUE '!',
END OF WORD,
LITERA1, LITERA2.
Instrucţiuni de ciclare
WHILE LITERA2 <> '!'
VARY LITERA1 FROM WORD-UNU NEXT WORD-TREI
VARY LITERA2 FROM WORD-DOI NEXT WORD-PATRU.
WRITE: LITERA1, LITERA2.
ENDWHILE.
Această secvenţă de program determină parcurgerea structurii
formată din caractere prin intermediul a două variabile, LITERA1
selectând caracterele de pe poziţii impare şi LITERA2 pe cele de pe
poziţii pare.
Se va afişa la fiecare ciclare câte două caractere, pe ecran apărând
reconstituit şirul de caractere conţinut în structură(adică „Exemplu!”).
Instrucţiuni de ciclare
Instrucţiunea LOOP
Instrucţiunea LOOP permite ciclare în interiorul câmpurilor unui vector de
structuri. Ea are mai multe variante de apelare, astfel:
LOOP AT VV.
WRITE : / VV-SV1,VV-SV2.
ENDLOOP.
Realizează parcurgerea vectorului VV cu afişarea componentelor din vector
SV1, SV2 etc.
LOOP AT VV FROM poz1 TO poz2.
WRITE : / VV-SV1,VV-SV2.
ENDLOOP.
Instrucţiuni de ciclare
Realizează parcurgerea vectorului VV începând cu poziţia poz1 şi
încheind cu poziţia poz2, afişând în acest timp componentele SV1 şi
SV2 ale structurilor din vector.
LOOP AT VV WHERE exp_log.
WRITE : / VV-SV1,VV-SV2.
ENDLOOP.
Realizează parcurgerea întregii structuri a vectorului VV iar pentru
elementele care îndeplinesc condiţia definită de exp_log se va face
şi o afişare a valorilor câmpurilor SV1, respectiv SV2. Este
obligatoriu ca prima variabilă din expresia logică să facă referire la
un câmp din structură.(de exemplu „SV1>0”).
Instrucţiuni de ciclare
Instrucţiunea CHECK
Instrucţiunea CHECK se foloseşte în interiorul unei bucle pentru a se
preciza dacă se procesează mai departe bucla sau se sare la următoarea
ciclare. Ea este însoţită de o expresie logică. Dacă aceasta este adevărată
atunci este permisă parcurgerea buclei cu instrucţiunea imediat următoare
lui CHECK, altfel se trece la o nouă ciclare.
Exemplu:
DATA: BEGIN OF ANGAJATI OCCURS 100,
VECHIME(5), SALARIU(5),
END OF ANGAJATI.
LOOP AT ANGAJATI WHERE VECHIME > 5.
WRITE: / ANGAJATI -VECHIME, ANGAJATI -SALARIU.
ENDLOOP.
Instrucţiuni de ciclare
În aceasta secvenţă se afişează elementele pentru care VECHIME
este mai mare ca 5.
LOOP AT ANGAJATI.
CHECK ANGAJATI - VECHIME > 5.
WRITE: / ANGAJATI -VECHIME, ANGAJATI -SALARIU.
ENDLOOP.
Această secvenţa realizează acelaşi lucru dar folosind instrucţiunea
CHECK.
Instrucţiuni de afişare
WRITE
Pentru a afişa un şir de caractere sau oricare alt tip predefinit se
poate folosi WRITE. Aceasta instrucţiune poate avea următoare
sintaxă:
WRITE var1,var2,…,varn.
Prin aceasta se afişează conţinutul variabilelor var1, var2 … varn.
Pentru a afişa un şir de caractere se scrie şirul de caractere între
două ghilimele simple ca mai jos:
WRITE ‘Numarul este incorrect.’,’Valoare corecta ar fi fost pozitiva’.
Desigur că se pot combina afişarea unor şiruri de caractere
predefinite cu afişarea conţinutului unor variabile.
Instrucţiuni de afişare
O altă variantă a funcţiei WRITE este următoarea:
WRITE AT / pozx (dim) var1,var2,’abc…’,…varn.
Semnul / este folosit pentru a se preciza trecerea pe un rând nou.
Pozx specifică poziţia pe coloane a afişării. Dim specifică
dimensiunea minimă a câmpului de afişare. Poziţia şi dimensiunea
trebuie specificate în ordinea de mai sus fără ca între ele să existe
vreun spaţiu.
Pentru a se modifica culoare textului afişat se pot folosi după o
expresie cu WRITE obişnuită şi instrucţiunile de formatare a culorii
textului:
COLOR, INTENSIFIED, INVERSE.
Instrucţiuni de afişare
De exemplu se poate folosi : COLOR idcolor.
Unde idcolor este conform tabelului:
Instrucţiuni de afişare
Exemplu:
WRITE a COLOR 4.
WRITE a,b,c COLOR COL_GROUP.
Pentru a se specifica că se va folosi o nuanţă intensificată a culorilor
se foloseşte apelul INTENSIFIED ON altfel pentru a dezactiva
această opţiune se foloseşte INTENSIFIED OFF.
Pentru a se folosi negativul fotografic al culorilor se activează
opţiune INVERSE folosind aceeaşi sintaxă.
Exemplu:
WRITE ‘Numarul e gresit!’ COLOR COL_NEGATIVE INTENSIFIED
ON.
Instrucţiuni de afişare
Pentru a reseta toate formatările se foloseşte instrucţiunea RESET.
Pentru a afişa o linie necompletată se poate folosi instrucţiune SKIP
fără parametri.
Inserată între două instrucţiuni de afişare (WRITE) va determina
afişarea unei linii necompletate imediat în faţa afişării determinate
de instrucţiunea WRITE ce o urmează.
Exemplu:
WRITE: / ‘Prima linie.’.
SKIP.
WRITE: / ‘Linia dinainte este necompletata!’.
Se va afişa: Prima linie. Linia dinainte este necompletata!
Instrucţiuni de afişare
Se pot folosi şi variantele cu parametri ale lui SKIP anume:
SKIP n.
SKIP TO LINE poz_linie.
Prima variantă inserează n linii necompletate.
A doua variantă face o deplasare a cursorului în cadrul ecranului
curent la linia indicată de poz_linie.
Prima linie de pe ecran are numărul de ordine 1.
Toate afişările ce urmează se vor face începând cu linia specificată
de poz_linie.
Instrucţiuni de atribuire
Înainte de a face o procesare matematică a datelor numerice mai
întâi acestea trebuie obţinute în vreun fel, el pot să fie citite de la
tastatură, printr-o casetă de editare, dintr-o bază de date, existentă
sau creată sau cel mai simplu – ele pot fi specificate direct în
program prin transferul unor valori din constante sau variabile sau
printr-o expresie constantă directă. Ce mai simplă atribuire este
folosire operatorului „=”. Astfel membrul din partea stângă a egalului
ia valoare specificată de membrul drept.
Exemplu:
A=1234.
B=1.25.
C=1.45E+10.
Nume=’ Radu Teodorescu’.
Instrucţiuni de atribuire
Există posibilitate şi de atribuire multiplă astfel:
v4 = v3 = v2 = v1.
Unde v2 primeşte valoare lui v1, apoi v3 primeşte valoarea lui v2 şi
în cele din urmă v4 primeşte valoare lui v3. Deci în final v2, v3 şi v4
vor conţine valoare precizată în v1.
O altă variantă este folosirea instrucţiunii MOVE. Care are în
general următoare sintaxă:
MOVE var1 TO var2.
În care conţinutul variabilei var1 este transferat în variabila var2.
Var1 poate fi altă variabilă, un nume de constantă, sau o expresie
constantă directă.
Instrucţiuni de atribuire
Exemplu:
MOVE 8.56 TO medie.
MOVE ‘Andrei’ TO nume.
Atribuirea nu este permisă atât pentru instrucţiune MOVE cât şi pentru
operatorul “=” decât dacă tipurile membrilor implicaţi sunt identici sau
compatibili( în sensul că se poate realizeze o conversie automată a unui
membru spre membrul destinaţie).
Este util de reţinut capacităţile de conversie ale ABAP astfel:
o valoare cu zecimale poate fi rotunjită prin conversie la o valoare întreagă.
o valoare numerică poate fi convertită într-un şir de caractere.
Atunci când avem două structuri care au câmpuri cu denumiri identice şi în
acelaşi timp cu tipuri compatibile se poate realiza o atribuire parţială, adică
doar a acelor câmpuri comune, astfel:
MOVE-CORRESPONDING struct1 TO struct2.
Instrucţiuni de atribuire
Astfel câmpurile comune ale structurii struct2 vor primi valorile din
structura de date struct1. La compilare această instrucţiune va fi
înlocuită cu un grup de instrucţiuni MOVE pentru fiecare din
câmpurile cu denumiri identice.
Uneori se doreşte reiniţializare variabilelor cu valorile implicite
stabilite de ABAP. Pentru aceasta poate fi folosită instrucţiunea
CLEAR cu următoarea sintaxă:
CLEAR V.
Un V este o variabilă de un tip elementar.
Instrucţiuni de atribuire
Exemplu:
DATE A TYPE I VALUE 12.
WRITE: ’Numarul initializat prin VALUE este ’,A.
CLEAR A.
WRITE: /’Numarul reinitializat prin CLEAR este ’,A.
Programul va afişa:
Numarul initializat prin VALUE este 12
Numarul reinitializat prin CLEAR este 0
Instrucţiuni aritmetice
Cea mai simplă transpunere a unei expresii matematice de calcul
este evaluare expresiei cu următoarele secvenţe:
COMPUTE var=<expresie>.
sau mai direct
var=<expresie>.
Expresia poate conţine operatori,operanzi şi/sau funcţii. Prioritatea
de efectuare a calculului este următoarea:
Parantezele rotunde;
Funcţiile;
** (puterea);
*, /, DIV, MOD(înmulţirea, împărţirea, împărţirea întregilor,
calcularea restului) ;
+, -.(adunarea, scăderea).
Operaţiile aritmetice de bază
Pentru operaţiile aritmetice de bază (adunare, scădere, înmulţire,
împărţire) există pe lângă exprimare prin intermediul operanzilor şi
exprimarea prin intermediul instrucţiunilor. Astfel pentru adunare
exista ADD, pentru scădere SUBTRACT, pentru înmulţire
MULTIPLY, pentru împărţire DIVIDE. Astfel există următoare
echivalenţă a expresiilor:
a = b + c. ………. ADD b TO c.
a = b - c. ………. SUBTRACT c FROM b.
a= b * c. …………MULTIPLY b BY c.
a= b / c. …………DIVIDE b BY c.
Pentru operaţii de împărţire de întregi se folosesc operatorii DIV şi
MOD ( pentru aflarea restului).
Operaţiile aritmetice de bază
Operaţia de calcul a puterii se realizează astfel:
a = baza ** putere.
Unde baza şi putere pot fi oricare valori numerice valide. Ordinea
evaluării expresiilor ce conţine operatorul putere este de la dreapta
la stânga, pentru oricare altă expresie ordinea obişnuită este de la
stânga la dreapta.
Operaţii aritmetice cu
structuri
Fiecăreia din cele patru instrucţiuni aritmetice i se poate asocia
extensia CORRESPONDING astfel:
ADD- CORRESPONDING…
SUBTRACT- CORRESPONDING…
MULTIPLY- CORRESPONDING…
DIVIDE- CORRESPONDING…
Aceasta determină operaţii între oricare două câmpuri cu denumiri
identice din cele două structuri, având o comportare similară ca
MOVE-CORRESPONDING.
Operaţii aritmetice cu structuri
Exemplu:
DATA BEGIN OF Client,
Nume(30),
CNP TYPE N,
Suma TYPE F,
END OF Client.
DATE BEGIN OF produs,
Denumire(30),
Suma TYPE F,
END OF produs.
Client-Nume = ’Ionescu Mihai’;
Client-CNP =’1650211…’;
Client-Suma = 3230.
produs-Denumire = ‘Televizor cu ecran LCD’.
produs-Suma=1500.
SUBTRACT-CORRESPONDING produs FROM Client.
WRITE: ‘Clientul ‘,Client-Nume,’ mai are în cont suma de ’,Client-Suma.
Acest program realizează o extragere de
bani din contul Clientului pentru plata unui
produs.
Variante ale instrucţiunii ADD
O variantă a instrucţiunii ADD este:
ADD n1 THEN n2 UNTIL nz GIVING s.
Această secvenţă adună câmpurile n1, n2 până la nz inclusiv, iar
suma lor o depune în s, este echivalentul expresiei:
s = n1 + n2 + … + nz.
Aceste câmpuri trebuie să aibă aceeaşi dimensiune(spaţiu de
memorie) a tipului şi trebuie să ocupe zone consecutive în memorie.
Se observă că valoare iniţială a lui s nu este luată în calcul.
Variante ale instrucţiunii ADD Exemplu:
DATA: BEGIN OF student,
Nota1 TYPE F,
Nota2 TYPE F,
Nota3 TYPE F,
Nota4 TYPE F,
Nota5 TYPE F,
Nota6 TYPE F,
Nota7 TYPE F,
END OF student.
DATA medie TYPE F.
ADD student-Nota1 THEN student-Nota2 UNTIL student-Nota7
GIVING medie.
DIVIDE medie BY 7.
WRITE: / ‘Media studentului este’, medie.
Variante ale instrucţiunii ADD
O altă variantă a instrucţiunii ADD este:
ADD n1 THEN n2 UNTIL nz TO m.
Aceasta adună la valoare curentă din m, câmpurile de la n1 la nz,
echivalentul ei fiind expresia:
m = m + n1 + n2 +…+ nz.
Variante ale instrucţiunii ADD
Exemplu:
DATE cheltuieli_totale TYPE F.
DATE: BEGIN OF achizitii_de_la_firma,
Nume_firma(30),
Pret1 TYPE F,
Pret2 TYPE F,
Pret3 TYPE F,
Pret4 TYPE F,
Pret5 TYPE F,
END OF achizitii_de_la_firma.
Cheltuieli_totale = 54000.
achizitii_de_la_firma-Pret1 = 1200.
achizitii_de_la_firma-Pret2 = 3200.
achizitii_de_la_firma-Pret3 = 1500.
achizitii_de_la_firma-Pret4 = 4200.
achizitii_de_la_firma-Pret5 = 2500.
Variante ale instrucţiunii ADD
ADD achizitii_de_la_firma-Pret1 THEN achizitii_de_la_firma-Pret2
UNTIL achizitii_de_la_firma-Pret5 TO cheltuieli_totale.
Astfel după această secvenţă de program cheltuieli_totale va
conţine suma achiziţiilor de la firma adăugate la cheltuielile iniţiale.
Mai există şi alte două variante dar cu o utilizare mai dificilă:
ADD n1 FROM m1 TO mz GIVING m.
ADD n1 THEN n2 UNTIL nz
...ACCORDING TO sel ...GIVING m.
Variante ale instrucţiunii ADD
Prima variantă presupune o organizare riguroasă a declarării
câmpurilor în structură, astfel câmpurile începând cu n1 trebuie să
aibă aceleaşi dimensiuni şi să fie consecutive, iar m1 specifică
indexul primului câmp din serie ce este sumat relativ la poziţia
câmpului n1.
Astfel dacă se sumează începând şi incluzând câmpul n1 indexul
m1 va avea valoare 1. mz specifică valoare indexului ultimului câmp
ce se sumează. Rezultatul va fi depus în m.
Varianta a doua are un comportament asemănător cu varianta fără
extensia ACCORDING TO sel.
Această extensie determină luare în considerare şi sumarea doar a
acelor câmpuri ce îndeplinesc condiţia de selecţie sel.
Funcţii de prelucrare primară variabilelor
în virgula mobilă
Acestea se referă la rotunjiri, aproximări, parte întreagă, parte
zecimală, modul.
ABS(…) calculează valoare absolută a unei expresii numerice, altfel
spus modulul.
SIGN(…) determină semnul expresiei numerice dacă este negativă
întoarce -1, nulă 0, pozitivă +1.
CEIL(…) întoarce cea mai mică valoare întreagă mai mare decât
argumentul.
FLOOR(…) întoarce cea mai mare valoare întreagă nu mai mare
decât argumentul.
TRUNC(…) întoarce partea întreagă a argumentului.
FRAC(…) întoarce partea fracţionară a argumentului.