Sunteți pe pagina 1din 116

ENTERPRISE RESOURCE PLANNING (ERP)

Enterprise Resource Planning (ERP) reprezint n general un sistem


software de reea bazat pe arhitectura client/server.
Aceste sisteme au fost dezvoltate pentru gestionarea operaiilor economice
si tehnologice, i facilitarea integrrii tuturor proceselor, din faza de
planificare, realizare i urmrire a produciei, pn la relaiile cu furnizorii,
clienii sau ali parteneri de afaceri.
ERP este considerat expresia cea mai fidel a interdependenei dintre
economic i tehnologia informaional.
Un studiu al pieei de software ERP, realizat de revista Computer
Economics, indic un procent de 20% pentru organizaiile care au deja
instalate suite integrate, n toate ramurile de activitate. n aceste procente,
sunt predominante organizaiile cu activitate de producie.
Acelai studiu relev c popularitatea acestui sistem se va menine la
aceleai cote ridicate, n condiiile 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 modificri organizaionale


importante, n sensul mbuntirii modului de desfurare a activitii.
Aceste mbuntiri 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 activitilor de
producie i economice, este evident c ele reprezint mult mai mult dect
proiecte software.
Dincolo de schimbrile tehnologice, de infrastructur, beneficiile importante
ale ERP deriv tocmai din:
schimbrile la nivelul proceselor economice, la nivelul structurii
organizaionale i la nivel de management al resursei umane;
activitile de organizare i gestionare al informaiei.
Costurile, concretizate n software, hardware, consultan i instruire sunt
mult mai mari dect ale altor proiecte de aceeai anvergur.

ENTERPRISE RESOURCE PLANNING


(ERP)

De exemplu o firm mare poate s aloce unui proiect ERP un buget de


aproximativ 100 milioane USD.
Productorii soluiilor sunt de civa ani ntr-un proces de cercetare i
adoptare n soluiile proprii a platformelor e-business.
Mai exact, din 1999, clasicele ERP-uri au mbrcat o hain nou, fiind
rescrise i transformate esenial pentru a cuprinde toate avantajele oferite
de Internet i, implicit, pentru a furniza noi funcionaliti pe Internet.
ncepnd cu anul 2000, au fost lansate pe pia suite e-business ERP.
Pachetele Enterprise Resource Planning au devenit n anii '90 o prezen
obinuit n marile corporaii i n companiile multinaionale.
A doua jumtate a ultimului deceniu din secolul XX a nsemnat deschiderea
lor i pentru segmentul ntreprinderilor medii i mici.
Iniiativa generalizrii lor a determinat amplificarea popularitii i a
discuiilor din literatura de specialitate, iar primii ani din actualul secol XXI
confirm importana acestui fenomen.

ENTERPRISE RESOURCE PLANNING


(ERP)

Creterea i succesul implementrilor n noul mileniu depind de msura n


care suitele tradiionale se pot extinde i integra module sau alte aplicaii
specifice Internet. Existena firmelor pe pieele electronice devine o
necesitate.
ntr-o definiie orientat tehnologic, ERP reprezint un sistem informaional
contabil bazat pe interfee grafice utilizator, baze de date relaionale, limbaje
de generaia a IV-a, instrumente CASE i arhitectur client/server.
Totui, dei tehnologia este esenial n realizarea ERP, definiia trebuie s
reliefeze ariile funcionale acoperite: contabilitate, producie, vnzare,
aprovizionare, stocuri, control de calitate etc.
Astfel, sistemele ERP sunt pachete de aplicaii formate din mai multe
module care sprijin toate ariile funcionale: planificare, producie, vnzare,
marketing, distribuie, contabilitate, financiar, resurse umane, gestiunea
proiectelor, stocuri, service i ntreinere, logistic i e-business.
Arhitectura sistemului faciliteaz integrarea transparent a modulelor,
asigurnd fluxul informaiilor ntre toate funciunile 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 funcionale
existente.
ERP const din module software care acoper toate ariile funcionale,
structurate ca de exemplu: marketing i vnzri, service, proiectare i
dezvoltare de produs, producie i controlul stocurilor, aprovizionare,
distribuie, resurse umane, finane i contabilitate, servicii informatice.
Integrarea acestor module este realizat fr duplicarea informaiilor, cu
ajutorul noilor tehnologii de baze de date i al reelelor de calculatoare.
Datele reprezint fundaia unui sistem ERP.
Baza de date reprezint un depozit central pentru stocarea i organizarea
datelor.
Oferta de baze de date comerciale este mai restrns n comparaie cu
oferta suitelor ERP:
n prezent sunt aproximativ cteva sute de aplicaii de tip ERP i numai 20
de platforme de baze de date .

ENTERPRISE RESOURCE PLANNING


(ERP)

Puini sunt furnizorii ERP care au avut succes n dezvoltarea propriilor


platforme de baze de date.
Aceast strategie este mai rar ntlnit, deoarece presupune un efort
susinut pentru a contracara avantajele oferite de platformele dezvoltate de
firme specializate, deja testate i cunoscute pe pia.
Programele realizeaz legtura ntre bazele de date i funcionalitile
deservite.
Altfel spus, funcionalitatea este atins prin interaciunea dintre programe i
bazele de date.
Programele asigur culegerea datelor, validarea, prelucrarea i transferul
lor, ca i exportul datelor ctre alte medii.
Pentru a obine informaiile 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)

Interfeele devin tot mai importante, o dat cu dezvoltrile tehnologice,


deoarece asigur comunicarea mai uoar ntre diferite medii.
Prin interfee adecvate, programele pot prelua date i din alte surse:
Internet, Electronic Data Interchange (EDI), echipamente de producie, alte
programe de aplicaii
Rezultatele prelucrrii sunt oferite utilizatorilor sub form de rapoarte, fie
afiate pe ecranul monitorului (display-uri), fie tiprite la imprimant, dar i
sub form de fiiere, care pot fi exportate i prelucrate cu ajutorul altor medii
de lucru.
Prima modalitate de furnizare a rezultatelor - pe ecran - are avantajul
interactivitii: actualele sisteme ERP au dobndit tot mai mult flexibilitate.
Informaiile afiate pe ecran sunt diferite n funcie de tipul de utilizator care
le solicit i pot fi chiar personalizate pentru fiecare utilizator n parte.
Astfel, dup delimitarea cmpurilor de date solicitate, pot fi operate selecii
asupra acestora, sunt posibile sortri dup criterii diferite i pot fi stabilite
operaiile pe anumite cmpuri de date.

ENTERPRISE RESOURCE PLANNING


(ERP)

Pe de alt parte, afiarea difereniat a informaiilor pe categorii de


utilizatori este un aspect impus de politica de securitate a datelor n cadrul
organizaiei.
n sistemele ERP de ultim generaie sunt incluse formulare care afieaz
informaiile ntr-o interfa grafic, ntr-un mod simplu i intuitiv de operare.
Utilizatorul poate obine direct i interactiv informaiile dorite.
Din punct de vedere tehnic, este vorba n primul rnd de programarea soft,
care a nlocuit programarea hard.
Aceasta permitea scrierea de programe fixe ca i funcionalitate, n care
opiunile sunt limitate la cele avute n vedere iniial.
Programarea soft a devenit posibil o dat cu generalizarea interfeelor
grafice utilizator i se combin cu programarea vizual i cea dirijat de
evenimente.

ENTERPRISE RESOURCE PLANNING


(ERP)

n acest mod a fost mbuntit flexibilitatea aplicaiilor, nu numai pentru


ieiri, ci i pentru intrri i prelucrri de date: acelai program poate fi operat
n mod diferit de ctre utilizatori diferii.
n ce privete rapoartele, pe lng posibilitatea de parametrizare a
acestora, sistemele ERP au un generator de rapoarte, cu ajutorul cruia pot
fi construite noi rapoarte, ce nu au fost prevzute n cerinele iniiale.
Cel mai des ntlnit este formatul tabelar (Excel, Lotus 1-2-3 etc.), care
poate fi salvat i exploatat mai apoi cu ajutorul fiierelor de calcul (pentru
analize complexe asupra datelor, calcule suplimentare, grafice).
Aceast opiune de export este deosebit de important n sporirea
funcionalitii de ansamblu a sistemelor ERP, deoarece elimin cererile de
modificare ulterioar a aplicaiilor din partea beneficiarilor.
n fine, sistemele ERP pot genera ca ieiri diferite documente, cu form i
coninut standard: facturi, avize de expediie, NIR-uri, comenzi etc.

ENTERPRISE RESOURCE PLANNING


(ERP)

Dac n primele sisteme ERP, nu era posibil configurarea documentelor de


ieire n forma dorit (firmele fiind nevoite s modifice formatele), sistemele
actuale ofer diverse soluii pentru obinerea ieirilor n formatul dorit.
In sistemele ERP sunt utilizate instrumente de proiectare ce permit
flexibilitate n definirea ieirilor.
Majoritatea sistemelor ofer faciliti 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 operaii (workflow).
Ele ilustreaz desfurarea unui anume proces funcional, cum ar fi
calculul, nregistrarea i plata salariilor n cadrul sistemului ERP.
Aplicaiile workflow se refer la modul n care aplicaia reflect un flux de
procese economice dintr-o arie funcional.

ENTERPRISE RESOURCE PLANNING


(ERP)

Dei tipologia acestor aplicaii este mai ampl, avem n vedere doar dou
tipuri de aplicaii:
funcionale (specifice unei funciuni) ;
inter funcionale, care implic activiti ce se regsesc n dou sau mai
multe funciuni.
Abordarea pe procese este superioar celei funcionale, deoarece
activitile se desfoar nu doar n cadrul unei funciuni, ci adesea
traverseaz" mai multe domenii funcionale.
n cea mai simpl accepiune, workflow definete, creeaz i
supravegheaz execuia fluxurilor de lucru prin intermediul unui software
specializat.
Cea mai important caracteristic este flexibilitatea, care permite adaptarea
uoar a fluxurilor din sistem la fluxurile proceselor economice din
organizaie.
Unele sisteme ERP includ un modul funcional pentru stabilirea i
gestionarea fluxurilor de activiti specifice fiecrei organizaii.

Caracteristicile sistemelor
ERP

Principalele caracteristici ale sistemelor ERP sunt:


sunt pachete software proiectate n medii client/server;
prelucreaz majoritatea tranzaciilor organizaiei;
integreaz i unific procesele economice;
utilizeaz o baz de date la nivelul organizaiei, 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
organizaiile (diferite ramuri industriale, servicii, comer, bnci,
sntate etc.);
permit realizarea de adaptri fr intervenia programatorilor.

Avantajele sistemelor ERP

Beneficiile i avantajele unui sistem ERP sunt:

informaii online / n timp real pentru toate ariile funcionale ale unei
organizaii;
standardizarea datelor i claritatea acestora la nivel de ntreprindere;
aplicaiile includ "cele mai bune practici" din industria respectiv;
eficiena pe care o nregistreaz compania;
analizele i rapoartele ce pot fi folosite la planificri pe termen lung;
informaia este introdus n sistem o singur dat;
oblig la folosirea "celor mai bune practici" din industrie;
permite personalizri;
furnizeaz funcionaliti pentru interaciunea cu alte module;
furnizeaz instrumente de raportare managerial diversificate.

Descrierea avantajelor

Dezavantaje

Majoritatea problemelor pe care le ntlnim la sistemele ERP sunt urmate


de investiii inadecvate n ceea ce privete personalul implicat n training,
inclusiv schimbrile implementate i testele, att articolele lips a politicii
incorporate protectoare a integritii datelor n sistemele ERP ct i regulile
de folosire.

Restriciile ERP-ului includ:


Succesul depinde de aptitudinile i experiena forei de munc, inclusiv
training-ul despre cum s facem s funcioneze bine sistemul.
Multe companii reduc cheltuielile, minimaliznd bugetul pentru pregtire.
n particular, deintorii micilor ntreprinderi folosesc pentru sistemul lor ERP
un personal cu educaia insuficient n ceea ce privesc regulile de
funcionare a sistemului n general, cum ar fi baza APICS i n particular
cum pachetul de vnzare 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 legtur slab- poate
fi lipsit de rezultate la un departament sau la unul dintre parteneri i
astfel poate afecta celelalte legturi.
Majoritatea legturilor integrate au nevoie de exactitate n alte
aplicaii ca s lucreze eficient.
mpotrivirea n a trimite informaii ntre departamente poate reduce
eficiena softului.
Mai sunt ntlnite, de asemenea, la parteneriate probleme de
compatibilitatea a sistemelor.

Caracteristicile soluiilor ERP

n general soluiile de acest tip acoper ntreaga activitate economic a unei


companii.
Gestioneaz att relaiile cu furnizorii, activitatea de aprovizionare,
depozitarea, fluxurile de producie, controlul calitii, desfacerea ct i
activitatea economico-financiara a companiei. Nu sunt excluse nici
operaiunile de salarizare, resurse umane.
Un sistem ERP se deosebete de orice alte sisteme prin cteva concepte
care stau la baza construciei lor i fac din acestea unelte de baz ntr-o
economie competitiv.
Dintre acestea le menionam pe cele mai importante:
modul unitar de organizare a datelor;
integrarea tuturor funcionalitilor disponibile n cadrul sistemului
(gestiune contabil i financiar, producie, aprovizionare, vnzare,
salarizare, etc.);

Caracteristicile soluiilor ERP

extensibilitate - orice ERP permite extinderea prin adugare de noi


funcionaliti;
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 urmrirea execuiei bugetelor;
raportare adaptat necesitilor 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 soluiilor ERP

Una dintre situaiile n care un sistem ERP mbuntete activitatea este


modul de preluare a comenzilor clienilor.
Acestea sunt nregistrate ntr-un sistem unic. Toate persoanele implicate n
preluarea, facturarea i transportul aferente comenzii pot vedea aceleai
informaii.
Este eliminat factorul uman care ar trebui n lipsa unui ERP s reintroduc
aceleai 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 implicai n activitatea companiei din
diferite departamente i locaii s lucreze folosind un sistem unitar.
Intervenia unei persoane asupra unor date are efecte multiple n sistem,
ceea ce face ca mai trziu orice utilizator care are nevoie de acea
informaie s o regseasc ntr-o form actualizat.
Comunicare n companie se realizeaz mult mai eficient i cu date sigure.

Caracteristicile soluiilor ERP

ERUp-ul standardizeaz modul n care se desfoar activitile n


companie. Implementarea unui astfel de sistem este unul dintre primii pai
pe care trebuie s i fac o companie pentru a putea adera la o certificare
ISO.
Pentru c cifrele urmtoare vorbesc de la sine despre avantajele unei soluii
ERP:
reducerea stocurilor - 18% ;
reducerea costurilor cu materiale - 5% ;
reducerea costurilor adiionale/salarii - 8%;
creterea vnzrilor i a satisfaciei clienilor - 12%;
mbuntirea controlului financiar contabil - 16%.
Producia este cel mai important proces n lanul valorii ntr-o ntreprindere
productoare, iar calitatea i competitivitatea pe pia a produselor rezultate
din procesul de producie este esenial.

Caracteristicile soluiilor ERP

Pentru ndeplinirea acestor deziderate este esenial eficiena sistemului


informatic de gestiune a activitii. Numai implementarea unei soluii
informatice perfect modelate pe specificul activitilor unei ntreprinderi
productoare poate asigura premisele competitivitii acesteia.

Justificarea investiiei ntr-un sistem ERP:


Eficientizarea ntreprinderii;
Standardizarea proceselor economice;
Eliminarea insulelor informaionale;
Modularitate i arhitectur deschis, care faciliteaz adoptarea tehnologiilor
viitoare .

Costurile implementrii unui


ERP

Cnd vorbim de costurile unui ERP ne referim de fapt la costurile tuturor


aciunilor pe care compania trebuie s le execute pentru a avea un proiect
de succes.
n literatura de specialitate se vorbete de TCO (total cost of ownership). n
aceste costuri sunt incluse licene, instalri, configurri, training utilizatori,
integrare aplicaii, etc.
Pe plan local (n Romnia) putem vorbi costuri TCO care pornesc de la 50
mii i 500 milioane Euro. Limita superioar este atins doar de companiile
mari multinaionale.
Limita inferioar reprezint un buget minim pe care o companie trebuie s l
aloce atunci cnd dorete s investeasc ntr-un ERP.
Riscul de a avea un proiect euat atunci cnd se alege o soluie doar dup
pre, din pcate, n Romnia este foarte mare.
Este de preferat ca n cazul n care nu se pot gsi surse interne de finanare
s se apeleze la o companie specializat n finanarea proiectelor IT&C.

Durata implementrii unui


ERP

n general cnd vorbim de companii medii din Romnia timpul de


implementare este strns legat de gradul i nevoia de adaptare a
aplicaiei la nevoile companiei.
Se mai observ o accentuat legtur ntre acest timp i gradul n
care managementul companiei i utilizatorii aplicaiei se implic n
reuita proiectului.
n general acest interval variaz foarte mult situndu-se ntre 3-4
luni i 10-12 luni.

Ca orice proiect exist probabilitatea ca acesta s eueze. Modul n


care sunt eliminate riscurile proiectului pot micora sau mri aceast
probabilitate.
Conteaz foarte mult modul n care se implic echipa de
implementare, comunicarea ntre echipa furnizorului i a
beneficiarului, motivaia viitorilor utilizatori i altele.

PREZENTARE SAP

n ultimul timp au aprut o multitudine de aplicaii pentru gestionarea


n timp util a diverselor date legate de administrarea afacerilor, ca
rspuns la creterea complexitii i a volumului sarcinilor
manageriale.
Un aspect important ce trebuie avut n vedere de aceste aplicaii este
facilitarea lurii unor decizii manageriale n timp util, preferabil ct mai
scurt, n condiiile existenei 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 acelai timp transformarea lor n aciuni precise i
corecte se impun se fac ct mai rapid.
innd cont de aceste deziderate i de continua evoluia a domeniului
IT, aplicaiile au nceput s corespund acestor cerine ntr-un grad din
ce n ce mai mare.

PREZENTARE SAP

Funcionarea unitar a instrumentelor software i echipamentelor n


scopul realizrii acestor deziderate a condus la conturarea unor
sisteme integrate.
Acest lucru a ncercat i n parte l-a reuit aplicaiile integrate SAP
prescurtare avnd ca ultim interpretare Systems, Applications and
Protocol in Data Processing.
Prima versiune a SAP R/1 realiza gestionarea automat a
contabilitii firmelor.
Litera R provine de la faptul c aplicaia oferea o procesare n timp
Real a datelor.
n anii 70 a aprut versiunea R/2. SAP R/2 constituia un pachet de
aplicaii 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 multinaionale care aveau nevoie de procesarea n timp real
a datelor cu posibiliti 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 facilitile i puterea de integrare ce o oferea, SAP a ajuns s
domine piaa aplicaiilor software pentru mediul afacerilor n urmtorii
10 ani.

PREZENTARE SAP
Evoluia SAP pe parcursul anilor este prezentat n
tabelul urmtor:
Anul

1972

1979

1992

1999/2000

2002/2003

mySAP.com
One-Step
Business

mySAP Business
Suite SAP
NetWeaver

Versiune SAP

R/1

R/2 Mainframe

R/3
Client/ Server

Venituri

0.3 mil.

5.1 mil.

424 mil.

6,265 Md.

7,4 Md.

Nr. Angajai

60

3200

25000

28654

Nr. Clieni

50

2800

15000

19300

Nr.de ri

35

120

120+

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 Sanataii, Ministerul Comunicaiilor i Tehnologiei Informaiei,
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 soluii directe de consultana n business
management i sisteme informatice integrate de gestiune a
resurselor ntreprinderii (ERP).

Compania ocup poziia de lider pe piaa soluiilor ERP din


Romania, deinnd, la sfarsitul anului 2000, o cota de piaa de
52,5%, potrivit datelor furnizate de IDC (International Data
Corporation).

Organizarea SAP

innd cont de multitudinea de domenii economice n


care se aplic soluiile SAP, ca de altfel i mulimea de
departamente interne ale unei companii conectate prin
SAP, era de ateptat ca SAP s capete o organizare
modular pentru a fi ct mai flexibil i eficient.
Astfel SAP conine urmtoarele module:

Finane i Conducere(FICO);
Resurse umane (HR);
Managementul materialelor(MM);
Vnzare i distribuie(SD);
Planificarea produciei (PP).

Organizarea SAP

Aceste module conin la rndul alte module, exist chiar minimodule


independente. Iat o list de astfel de module secundare:

FI-AP contabilizare ieiri(pli);


FI-AR contabilizare intrri;
FI-FM managementul fondurilor;
FI-CA contabilizare contract;
CO-PA - analiza profitului;
CO-PC costul produsului;
AM managementul activelor;
PS sistemul proiectului;
FS asigurri;
IS soluii pentru medii industriale;
IS-ADEC industria aerospaial i de aprare;

Organizarea SAP

IS-AFS mbrcminte i nclminte;


IS-B aplicaii bancare;
IS-BEV industria buturilor;
IS-DFS industria aprrii i securitii;
IS-H managementul spitalelor;
IS-HER managementul instituiilor de nvmnt superior;
IS-M industria media;
IS-MIN industria minier;
IS-MP industria de morrit;
IS-OIL industria de extracie, prelucrare a petrolului;

Organizarea SAP

Alte module secundare:

IS-PS managementul sectorului public;


IS-T managementul telecomunicaiilor;
HR-PA administrarea personalului;
HR-PB recrutarea personalului;
HR-PD pregtirea personalului;
HR-PY plata personalului;
QM managementul calitii;
SD vnzri i distribuie;
WM managementul depozitelor.

Organizarea SAP

Aceste module cu toate c pot funciona individual au i


posibiliti de interconectare.
O implementare SAP dei este costisitoare att financiar ct i
logistic ofer o serie de avantaje nete.
n primul rnd un avantaj ar fi experiena i resursele de
management puse la dispoziie de SAP, un alt avantaj ar fi c
valoarea afacerii i a companiei va crete n urma crerii unui
sistem integrat de gestionare.
Soluiile SAP devin cu adevrat avantajoase pentru marile
companii naionale i multinaionale i mai puin pentru
companiile mici i mijlocii.

Tehnologii puse la dispoziie de SAP

SAP R/3 este o aplicaie bazat pe interaciunea client-server.


Nivelul de prezentare sau client constituie un mod de interfaare cu
aplicaia.
Nivelul aplicaie abordeaz toate operaiile legate de procesarea logic
a datelor i nivelul baz de date nregistreaz i pstreaz toate
informaiile despre sistemul integrat, inclusiv tranzaciile i
configurarea datelor.
Aplicaiile din SAP R/3 sunt realizate ntr-un limbaj specific propriu,
numit ABAP (Advanced Business Application Programming
Programarea avansat a aplicaiilor de afaceri).
Versiunea ABAP/4 constituie un limbaj de generaia a patra (4GL),
orientat spre crearea de aplicaii simple dar puternice.
n plus R/3 mai ofer i un mediu complet de dezvoltare de aplicaii. n
acest mediu se pot modifica aplicaii SAP deja existente pe lng
crearea de aplicaii cu totul noi.

Tehnologii puse la dispoziie de SAP

Interaciunea n ABAP cu bazele de date se face sub forma unor


comenzi Open SQL.
Alt aspect al mediului SAP este posibilitatea de lucru cu interfee
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 adevrat dificil din ABAP este implementarea de soluii
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 dei cu profil
asemntor de activitate pot avea o structur a bazelor de date
i a interfarii lor diferit.
extensii ce in de comunicarea de informaii ntre sisteme.

Tehnologii puse la dispoziie de SAP

Aceasta presupune dezvoltarea de cod n ABAP prin care s se


precizeze ce date s fie accesibile prin mijloace de interfaare
ctre alte sisteme, ce informaii sunt relevante dintr-un sistem
pentru activitatea altui sistem.

innd cont de complexitatea implementrii, companiile sunt


nevoite s recruteze consultani SAP bine pregtii 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 aplicaii de la SAP este SAP


NetWeaver.
Aceasta ofer acea gam de soluii specifice
aplicaiilor integrate care permite lucrul n comun
inter-comunicarea dintre module, construirea de
aplicaii avnd drept baz alte aplicaii, prin aceasta
urmrindu-se reducerea costurilor crerii de aplicaii
pentru gestionarea afacerilor.

SAP NetWeaver

Aplicaia SAP presupune conlucrarea a patru aspecte principale:


integrarea persoanelor n cadrul acesteia se urmrete:
accesul la informaie pe canale multiple;
crearea unui portal;
colaborare ;
integrarea informaiilor:
informaii despre specificul afacerii i administrare afacerilor n general;
informaii i cunotine despre mecanismele afacerii;
managementul datelor principale;
integrarea proceselor:
broker pentru integrarea proceselor;
managementul proceselor din afacere;
platforma aplicaiei:
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
SAP
SAP
SAP
SAP
SAP
SAP

pune la dispoziie urmtoarele mijloace de integrare:


Enterprise Portal Portal pentru companii;
Mobile Infrastructure;
Business Intelligence;
Master Data Management;
Exchange Infrastructure;
Web Application Server;

Pe de alt parte pe lng serviciile prezentate anterior mai sunt puse la


dispoziie 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
dispoziie a tuturor resurselor i instrumentelor necesare ntr-un
singur program prin intermediul unui singur element de interfa.
Astfel dei n mod normal ar fi nevoie de mai multe aplicaii pentru
ndeplinirea sarcinii, prin conceptul de portal implementat de SAP EP
sunt puse la dispoziii unelte specifice special realizate pentru
realizarea sarcinii.

SAP Mobile Infrastructure (SAP MI) permite construirea unei interfee


unificate ntre aplicaiile SAP i dispozitivele electronice mobile de
genul celularelor, pagerelor, PDA-urilor.
Deoarece n mod obinuit fiecare dispozitiv mobil are un mijloc
specific de interfaare, realizarea unui modul care s-a treac peste
diferene i s comunice informaia .

SAP NetWeaver

Aplicaiile 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 folosete meta-date, adic date
referitoare la funcionalitatea i elementele controlate de interfa i
mai puin 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


interaciunea dintre informaie, capaciti de analiz a informaiei i
mijloace de facilitare a nelegerii, i de asemenea posibilitate de a
informa i pe alii interesai de lucrurile ce au fost observate prin
intermediul acestui serviciu. Practic acest serviciu permite accesul la
un depozit de date care pstreaz datele ntr-o form normalizat, i
extragerea informaiilor dorite ntr-o form interactiv, form ce
permite interogri complexe.(aa numitele InfoCubes).

SAP NetWeaver

SAP Master Data Management (SAP MDM) lucreaz tot asupra bazelor
de date permind ca informaii nespecifice, folosite n mai multe
module SAP s fie armonizate pentru evitarea contradiciilor ntre baze
de date, sau informaiilor eronate sau incomplete.
Reducerea informaiilor eronate duce la scderea costurilor de
meninere i administrare a sistemelor integrate.
Dac serviciul precedent doar exploata o baz de date, acest serviciu
supravegheaz i menine o baz de date ntr-o stare buna de
sntate.(aa-zisa rezolvare a inconsistenelor). i acest serviciu
lucreaz pe SAP Web AS.

SAP Exchange Infrastructure (SAP XI) se ocup cu gestionarea


schimbului de informaii dintre module, servicii etc. din cadrul SAP.
Acest serviciu realizeaz un transfer securizat i perfect compatibil
ntre modulele SAP. Pe lng 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


rspunsurilor i transferurilor ca i o configurabilitate deosebit a
oricrui 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 aplicaie aceasta se creeaz n
totalitate prin SAP NetWeaver Developer Studio, dar cnd se ruleaz
execuia ei se face prin SAP Web AS.
Acest serviciu suport n acelai tip dou limbaje JAVA (versiune
J2EE 1.3) i ABAP. Mai permite, printre altele, construirea de pagini
Web i creare i meninerea de servicii Web.
Un alt aspect este compatibilitatea cu mediul SAP Web Dynpro ce
permite crearea de interfee prin modelare i generare de cod.

Instrumente de dezvoltare SAP

SAP NetWeaver Developer Studio reprezint instrumentul principal pentru


dezvoltare de aplicaii.
Se bazeaz pe Eclipse care este un pachet de unelte pentru crearea de
unelte de dezvoltare.
Eclipse a fost creat de IBM, i muli productori de software l-au adoptat
printre care i SAP. Aceast unealt permite dezvoltare de aplicaii n Java
i asigur de asemenea i posibiliti de creare de servicii Web.
Nucleul Java din cadrul acestei unelte se numete JDI (Jave Development
Infrastructure). Acesta pune la dispoziie un dicionare pentru tipuri de date
i definiii din Java, urmrete legturile dintre module, reconstruiete
automat bibliotecile.
Un alt aspect important este SAP Web Dynpro care permite programatorilor
fr folosirea limbajului Java s specifice aspectul i comportamentul
interfeei. n mod asemntor aceast unealt mai dispune i de
capacitatea de a crea i configura interfee pentru dispozitive mobile i
wireless.

Instrumente de dezvoltare SAP

SAP Composite Application Framework (SAP CAF) este un


instrument de creare i modificare de aplicaii bazate pe serviciile
oferite de alte aplicaii.
Acest mod de creare de aplicaii are avantajul economiei de timp
prin reutilizarea codului unor aplicaii deja existente n alte medii.
Aceast unealt permite crearea de aplicaii prin folosire modelrii
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 interaciunea cu MySAP Business Suite prin intermediul
unei interfee pentru accesul obiectual.
Pe lng aceast interaciune mai este permis i alte interaciuni cu
aplicaii din afara SAP.

Instrumente de dezvoltare SAP

Pentru a realiza toate acestea SAP CAF are o colecie de metadate


care descriu obiectele, rolurile, interfeele utilizator ca de altfel i
relaiile 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 evidenei versiunilor


codului instalat, separarea configurrilor locale de nucleul
produsului, permite crearea unor pachete de aplicaii cu interfa de
instalare, mai mult permite realizarea de patch-uri i upgrade-uri
pentru aplicaiile 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 crerii unui program de ABAP n SAP

Din pcate n ceea ce privete realizarea i testarea programelor de


ABAP sunt puine opiuni, i nu o multitudine de medii i
compilatoare freeware cum sunt pentru programarea C i vizual.
Totui exist vreo cteva opiuni de editoare ABAP cu verificarea de
sintax dar limitate ca funcionalitate.
O versiune incluznd i un compilator cu posibiliti medii de creare
de aplicaii este practic inexistent.
Singura posibilitate este folosirea kit-urilor puse la dispoziie de
SAP, dar pentru ca versiunea s fie funcional este necesar
instalarea a numeroase module i opiuni ce permit n final o
programare complet prin ABAP.
Totui ca mod de organizare i de structurare ABAP are o structur
relativ uor de stpnit.

Etapele crerii unui program de ABAP n


SAP

Are un nivel ce poate fi deprins uor un aa zis nivel procedural de


baz asemntor 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 aplicaie orict 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 secvene de cod, sau a flexibilitii limbajului trebuie
parcurse n mod obligatoriu o serie de etape ce decurg una din alta
i sunt obligatorii.

Etapele crerii unui program de ABAP n


SAP

1.

2.

3.

4.

5.

Astfel sunt necesare urmtoarele etape (presupunnd c SAP a fost


deja instalat i configurat):
Pornirea Serverului Aplicaiei prin rularea Start-Programs- SAP
Netweaver 7.0 ABAP NSP Start Application Server;
Logarea la SAP prin rularea - Start-Programs - SAP Front End
SAP Logon;
Din fereastra ce apare SAP Logon 710 din tabul Systems- se
apas butonul de Log On-(Logare);
Se face logarea prin specificare numelui utilizatorului (pentru
versiunea TRIAL se folosete BCUSER) i a parolei (pentru TRIAL
este minisap) se apas apoi Enter;
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 crerii unui program de ABAP n


SAP
6.

7.

8.

9.

10.

n fereastra ce apare se specifica numele noului program (nume ce


obligatoriu trebuie s nceap cu Y, Z), se alege opiunea Source
code- i se apas butonul ---Create-;
n fereastra ce apare se specific titlul programului(Title), tipul
(Type = Executable Program), statutul (Status = Test Program),
domeniul aplicaiei ( Application = Basis), se apas butonul Save;
n fereastra ce apare se apas butonul Local Object- i va aprea
fereastra de editare a programului;
Se scrie programul dorit i se ruleaz cu F8 sau se verific sintaxa
cu Ctrl + F2.
Programul se salveaz cu Ctrl + S sau din meniul principal
Program-Save.

Etapele crerii unui program de ABAP n


SAP
6.

7.
8.
9.

Pentru a ncrca un program deja scris se scrie numele acestuia n


aceeai fereastr prin care se pot crea noi programe i se apas
butonul Change-( acesta permite deschiderea cu posibiliti de
modificare pe cnd Display- permite doar vizualizarea);
Se iese prin Program- Exit sau Shift + F3;
Se nchide fereastra i se face Log Out ( logarea pentru ieire);
Se nchide fereastra de logare i se ruleaz executabilul de oprire
a Serverului Aplicaie prin Start-Programs- SAP Netweaver 7.0
ABAP NSP Stop Application Server.

Declararea variabilelor instruciunea


DATA

Pentru a se declara variabile, structuri, vectori se poate folosi


instruciune DATA.
Aceasta poate avea urmtoarele 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 instruciunea


DATA

Pentru prima
completri:

variant este necesar una din urmtoarele

1.
2.

3.
4.
5.
6.
7.
8.
9.

... TYPE typ


... LIKE f1
... TYPE typ OCCURS n
... LIKE f1 OCCURS n
... TYPE LINE OF itabtyp
... LIKE LINE OF itab
... VALUE lit
... DECIMALS n
... WITH HEADER LINE

Declararea variabilelor instruciunea


DATA

Un exemplu tipic de declarare a unei variabile este:

DATA nume_var TYPE litera_tip.

Atunci cnd lipsete 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 conine litere i cifre, dar trebuie s nceap cu o liter.
Se mai poate folosi liniua de subliniere (underscore) n interiorul
numelui variabilei.

Declararea variabilelor instruciunea


DATA

Tipurile de baz din ABAP sunt definite prin intermediul unor


simboluri litera i sunt cele din tabelul urmtor:

Declararea variabilelor instruciunea


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 instruciunea


DATA

n cazul declaraiei de tipul:

DATA nume_var LIKE alt_nume_var.


Se declara variabila nume_var avnd acelai tip cu o variabil
declarat anterior sau predeclarat - alt_nume_var.

n cazul declaraiei 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 numrul elementelor din vector se poate
modifica.

Declararea variabilelor instruciunea


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 instruciunea


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 conine informaii referitoare la un student.

Declararea variabilelor instruciunea


DATA

n continuare se declar un tabel de tip TipStudent cu 20 de


cmpuri i o variabil de tip TipStudent UnStudent.
Se completeaz datele prin atribuire n variabila UnStudent i se
adaug la variabil tip tabel Studeni cu ajutorul instruciunii
APPEND.

n cazul declaraiei de tipul:

DATA nume_var LIKE nume_var OCCURS n.

Se declar o tabel cu nregistrri de tipul variabilei nume_var. Se


aloc iniial n nregistrri pentru tabel.

Declararea variabilelor instruciunea


DATA

n cazul declaraiei de tipul:

DATA nume_var TYPE LINE OF nume_tip_tabel.


Se declar o variabil a crui tip corespunde cu tipul unei
nregistrri din tabelul specificat prin nume_tip_tabel.

O alt declaraie de date este urmtoarea:

DATA nume_var LIKE LINE OF nume_tabel.


Se declar o variabil avnd tipul unei nregistrri din variabila
nume_tabel.

Declararea variabilelor instruciunea


DATA

Pentru a specifica o valoare de iniializare se poate folosi:

DATA nume_var TYPE nume_tip VALUE val_initializare.

n general cnd se specific o iniializare se utilizeaz cuvntul


cheie VALUE.
Secvena de mai sus declar o variabil cu numele nume_var de
tipul nume_tip i i atribuie valoare de iniializare val_initializare.

Exemple:
DATA numar TYPE I VALUE 1000,
Nume(30) TYPE C VALUE Alexandru.

Declararea variabilelor instruciunea


DATA

Pentru a specifica numrul de zecimale pentru o variabil de tip P


se folosete:
DECIMALS n.
, unde n specific numrul 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
folosete expresia:
WITH HEADER LINE.

Declararea variabilelor instruciunea


DATA

Exemplu:

DATA: Studenti TYPE TipStudent OCCURS 20 WITH HEADER


LINE.

CLEAR Studenti.
CLEAR Studenti[ ];

Secvena din exemplu creeaz un tabel cu numele Studenti ce are


i linie antet. Prima apelare a instruciunii CLEAR terge linia antet.
A doua apelare, cea cu paranteze ptrate terge nregistrrile din
Studenti.

Declararea variabilelor instruciunea


DATA

Varianta 2 a instruciunii DATA

Data nume_var(dim)

Are aceleai adugiri ca i varianta 1 dar se refer numai la tipurile


de date simbolizate prin C, N, P i X, oricare alt cmp avnd
dimensiune standard. Valorile maxime ale dimensiunii sunt n
funcie de tip, conform urmtorului tabel:

Declararea variabilelor instruciunea


DATA

Fiecare octet poate conine 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 instruciunii DATA


Are urmtoarea sintax:
DATA : BEGIN OF nume_struct.
V1 TYPE nume_tip1,
V2 TYPE nume_tip2,

END OF nume_struct.

Declararea variabilelor instruciunea


DATA

Cu ajutorul acestei secvene se poate defini orice tip de structur. n


interiorul expresiilor BEGIN OF i END OF trebuie declarate
cmpurile componente.
Atunci cnd se dorete ca o structur s conin cmpurile altei
structuri deja definite se poate folosi expresia urmtoare ce va fi
inclus n definiia structurii:
INCLUDE STRUCTURE nume_alt_struct;
Varianta 4 a instruciunii DATA

Are urmtoarea sintax:


DATA: BEGIN OF nume_tabel OCCURS n.

END OF nume_tabel.

Declararea variabilelor instruciunea


DATA

Prin secvena aceasta se declara o tabel intern cu n nregistrri


necompletate.
Acest mod de declarare accept i o adugire 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 acelai
tip.
Aceast expresie se adaug la sfritul declarrii tabelei imediat nainte de
punct.

Varianta 5 a instruciunii DATA


Are o utilizare mai restrns i accept urmtoare sintax:
DATA: BEGIN OF COMMON PART nume_parte.

END OF COMMON PART.

Declararea variabilelor instruciunea


DATA

Prin aceasta se declar o zon de memorie de date puse la


dispoziie 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 instruciune 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 prezena n expresia de declarare a constantelor a


cuvntului 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 cmpuri
constante.

Declararea constantelor

Se observ c prezena n expresia de declarare a constantelor a


cuvntului 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 cmpuri
constante.

Expresii logice
Expresii de comparaie pentru date simple

Expresiile logice folosesc urmtoarea list de operatori de


comparaie:

Expresii logice
Expresii de comparaie pentru date simple

Se observ ce se pot folosi fie operatori simbolici fie operatori literali


pentru acelai gen de comparaie. Expresia logic de comparaie
are forma:

elem1 op_comp elem2.

Dac tipurile nu coincid se face conversia dup prioritate i apoi se


face comparaia.
Comparaia se face de la stnga la dreapta.
Prioritatea nseamn c tipurile numerice mai puin 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.

Instruciuni de control
Instruciunea IF
Sintaxa general a unei instruciuni IF este:
IF expresie_logica.

Dac expresia logic este evaluat ca fiind adevrat(true) atunci ceea ce


urmeaz dup IF pn la ntlnirea instruciunii ENDIF asociat ei este executat.
Orice expresie care ncepe cu IF trebuie urmat la un moment dat de un ENDIF,
aceste dou instruciuni formnd o pereche.
Instruciunea ENDIF face pereche cu ultimul IF precizat n secvena de program.
Sunt posibile trei tipuri de structuri pe baza instruciunii IF:

IF exp_log.
Instruciuni
ENDIF.

Instruciuni de control

Sau

IF exp_log.
Instruciuni1
ELSE.
Instructiuni2
ENDIF.

n acest caz se execut Instruciuni1 dac exp_log este adevrat,


altfel Instruciuni2.
De remarcat c dup fiecare instruciune se pune un punct.

Instruciuni de control

A treia variant este:


IF exp_log1.
Instruciuni1
ELSEIF exp_log2.
Instruciuni2

ELSEIF exp_log_n.
Instruciuni_n
ENDIF.
Aceast secven permite verificare a n condiii fiecare ramur
condiional executndu-se n cazul n care expresia logic asociat este
adevrat, att pentru IF ct i pentru ELSEIF. Odat ce s-a ntlnit o
condiie adevrat se execut instruciunile asociate ramurii i se trece la
instruciunea ENDIF finalizndu-se parcurgerea blocului condiional. Cel
mult un grup de instruciuni poate fi executat n cazul n care expresia logic
asociat este adevrat.

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

Instruciuni de control

Instruciunea CASE

Pentru alegerea unui grup de instruciuni n funcie de o valoare


ntreag se folosete instruciunea CASE.
Variabila de selecie asociat instruciunii CASE este comparat cu
valori constante avnd neaprat acelai tip cu cel al variabilei de
selecie.
Practic secvena de program generat prin folosirea instruciunii CASE
se rezum la verificare unor condiii de egalitate ntre variabila de
selecie i constantele specificate ulterior.
Instruciunea CASE are urmtoarea sintax general:

Instruciuni de control

CASE variabila.
WHEN opiune1.
Instruciuni1.
WHEN optiune2.
Instruciuni2.

WHEN opiune_n.
Instruciuni_n.
WHEN OTHERS.
Alte_instruciuni.
ENDCASE.
De remarcat c fiecare instruciune CASE este urmat de un ENDCASE
asociat.
Opiunile de ramificare condiional sunt diferite ntre ele. Dac variabila
este egal cu opiunea atunci se execut blocul de instruciuni ce urmeaz,
pn la ntlnire unui alt WHEN sau ENDCASE.

Instruciuni de control

Dac nici una dintre opiuni nu este egal cu variabila atunci pentru a se efectua totui
ceva se folosete instruciunea WHEN_OTHERS. Aceast instruciune nu poate fi
specificat dect 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 dect trei.'.
ENDCASE.

Instruciuni de ciclare
Instruciunea DO

Instruciunea DO poate fi folosit pentru a repeta un grup de


instruciuni de un numr precizat de ori sau indefinit de ori. Astfel ea
are una din sintaxele:

DO.
DO n TIMES.

Prima variant este pentru repetarea indefinit, adic pn cnd n


blocul de instruciuni ca urmare a ndeplinirii unor condiii s-a
executat una din instruciunile EXIT, STOP, REJECT sau
CONTINUE.

Instruciuni de ciclare

A doua variant este pentru repetarea de n-ori a grupului de


instruciuni.
Orice instruciune DO trebuie urmat de o instruciune ENDDO care
delimiteaz blocul de instruciuni ce se execut.
Instruciune EXIT determin ieirea din secvena delimitat de
DOENDDO.
STOP i REJECT sunt asociate bazelor de date prelucrate n blocul
DOENDDO i realizeaz o nchidere a acestora n plus fa de
simpla prsire a buclei.
CONTINUE determin ncheierea parcurgerii curente a buclei n
momentul n care este ntlnit i nceperea unei noi parcurgeri a
buclei.

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

Instruciuni de ciclare
Secvena numr i afieaz 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 acelai lucru dar folosind o ciclare definit, adic o
repetare de 10 ori a blocului de comenzi. Totui se poate iei mai devreme
dac se dorete prin folosire instruciunii EXIT.

Instruciuni de ciclare
Instruciunea WHILE
Spre deosebire de DO n care ciclarea poate fi indefinit sau perfect
determinat n WHILE aceasta depinde de o expresie logic. Att timp ct
aceast expresie este adevrat se execut instruciunile din bucl. De
asemenea mai sunt valabile i instruciunile de ieire din bucl sau trecere
la urmtoarea iteraie : EXIT, STOP,REJECT respectiv CONTINUE.
Aceast instruciune are urmtoare sintax:

WHILE exp_log.
Instruciuni

ENDWHILE.
Desigur c sunt permise numeroase imbricri ale unui WHILE n alt
secven WHILE .a.m.d.

Instruciuni de ciclare

O instruciune asociat unei instruciuni WHILE


urmtoarea sintax:

este VARY cu

VARY vv FROM val1 NEXT val2.

Aceast instruciune trebuie neaprat plasat n bucla WHILE


asociat dar nafara oricrei alte bucle.
Prin aceasta se determin la primul pas atribuirea la variabila vv a
valorii val1,la pasul urmtor a valorii val2 i la urmtorii pai de
valori succesiv mai mari creterea fcndu-se cu un pas egal cu
diferena dintre val2 i val1.

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

Instruciuni 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
selectnd caracterele de pe poziii impare i LITERA2 pe cele de pe
poziii pare.
Se va afia la fiecare ciclare cte dou caractere, pe ecran aprnd
reconstituit irul de caractere coninut n structur(adic Exemplu!).

Instruciuni de ciclare

Instruciunea LOOP

Instruciunea LOOP permite ciclare n interiorul cmpurilor 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 afiarea componentelor din vector


SV1, SV2 etc.

LOOP AT VV FROM poz1 TO poz2.


WRITE : / VV-SV1,VV-SV2.
ENDLOOP.

Instruciuni de ciclare

Realizeaz parcurgerea vectorului VV ncepnd cu poziia poz1 i


ncheind cu poziia poz2, afind 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 condiia definit de exp_log se va face
i o afiare a valorilor cmpurilor SV1, respectiv SV2. Este
obligatoriu ca prima variabil din expresia logic s fac referire la
un cmp din structur.(de exemplu SV1>0).

Instruciuni de ciclare

Instruciunea CHECK
Instruciunea CHECK se folosete n interiorul unei bucle pentru a se
preciza dac se proceseaz mai departe bucla sau se sare la urmtoarea
ciclare. Ea este nsoit de o expresie logic. Dac aceasta este adevrat
atunci este permis parcurgerea buclei cu instruciunea imediat urmtoare
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.

Instruciuni de ciclare

n aceasta secven se afieaz elementele pentru care VECHIME


este mai mare ca 5.

LOOP AT ANGAJATI.
CHECK ANGAJATI - VECHIME > 5.
WRITE: / ANGAJATI -VECHIME, ANGAJATI -SALARIU.
ENDLOOP.

Aceast secvena realizeaz acelai lucru dar folosind instruciunea


CHECK.

Instruciuni de afiare

WRITE
Pentru a afia un ir de caractere sau oricare alt tip predefinit se
poate folosi WRITE. Aceasta instruciune poate avea urmtoare
sintax:
WRITE var1,var2,,varn.
Prin aceasta se afieaz coninutul variabilelor var1, var2 varn.
Pentru a afia 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 afiarea unor iruri de caractere
predefinite cu afiarea coninutului unor variabile.

Instruciuni de afiare

O alt variant a funciei WRITE este urmtoarea:


WRITE AT / pozx (dim) var1,var2,abc,varn.

Semnul / este folosit pentru a se preciza trecerea pe un rnd nou.


Pozx specific poziia pe coloane a afirii. Dim specific
dimensiunea minim a cmpului de afiare. Poziia i dimensiunea
trebuie specificate n ordinea de mai sus fr ca ntre ele s existe
vreun spaiu.

Pentru a se modifica culoare textului afiat se pot folosi dup o


expresie cu WRITE obinuit i instruciunile de formatare a culorii
textului:
COLOR, INTENSIFIED, INVERSE.

Instruciuni de afiare

De exemplu se poate folosi : COLOR idcolor.


Unde idcolor este conform tabelului:

Instruciuni de afiare

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 folosete apelul INTENSIFIED ON altfel pentru a dezactiva
aceast opiune se folosete INTENSIFIED OFF.
Pentru a se folosi negativul fotografic al culorilor se activeaz
opiune INVERSE folosind aceeai sintax.

Exemplu:
WRITE Numarul e gresit! COLOR COL_NEGATIVE INTENSIFIED
ON.

Instruciuni de afiare

Pentru a reseta toate formatrile se folosete instruciunea RESET.


Pentru a afia o linie necompletat se poate folosi instruciune SKIP
fr parametri.
Inserat ntre dou instruciuni de afiare (WRITE) va determina
afiarea unei linii necompletate imediat n faa afirii determinate
de instruciunea WRITE ce o urmeaz.
Exemplu:
WRITE: / Prima linie..
SKIP.
WRITE: / Linia dinainte este necompletata!.

Se va afia: Prima linie. Linia dinainte este necompletata!

Instruciuni de afiare

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 numrul de ordine 1.
Toate afirile ce urmeaz se vor face ncepnd cu linia specificat
de poz_linie.

Instruciuni de atribuire

nainte de a face o procesare matematic a datelor numerice mai


nti acestea trebuie obinute 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 stng a egalului
ia valoare specificat de membrul drept.
Exemplu:
A=1234.
B=1.25.
C=1.45E+10.
Nume= Radu Teodorescu.

Instruciuni de atribuire

Exist posibilitate i de atribuire multipl astfel:


v4 = v3 = v2 = v1.
Unde v2 primete valoare lui v1, apoi v3 primete valoarea lui v2 i
n cele din urm v4 primete valoare lui v3. Deci n final v2, v3 i v4
vor conine valoare precizat n v1.

O alt variant este folosirea


general urmtoare sintax:

instruciunii MOVE. Care are n

MOVE var1 TO var2.


n care coninutul variabilei var1 este transferat n variabila var2.
Var1 poate fi alt variabil, un nume de constant, sau o expresie
constant direct.

Instruciuni de atribuire

Exemplu:
MOVE 8.56 TO medie.
MOVE Andrei TO nume.
Atribuirea nu este permis att pentru instruciune MOVE ct i pentru
operatorul = dect dac tipurile membrilor implicai sunt identici sau
compatibili( n sensul c se poate realizeze o conversie automat a unui
membru spre membrul destinaie).
Este util de reinut capacitile 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 cnd avem dou structuri care au cmpuri cu denumiri identice i n


acelai timp cu tipuri compatibile se poate realiza o atribuire parial, adic
doar a acelor cmpuri comune, astfel:
MOVE-CORRESPONDING struct1 TO struct2.

Instruciuni de atribuire

Astfel cmpurile comune ale structurii struct2 vor primi valorile din
structura de date struct1. La compilare aceast instruciune va fi
nlocuit cu un grup de instruciuni MOVE pentru fiecare din
cmpurile cu denumiri identice.

Uneori se dorete reiniializare variabilelor cu valorile implicite


stabilite de ABAP. Pentru aceasta poate fi folosit instruciunea
CLEAR cu urmtoarea sintax:

CLEAR V.

Un V este o variabil de un tip elementar.

Instruciuni 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 afia:
Numarul initializat prin VALUE este 12
Numarul reinitializat prin CLEAR este 0

Instruciuni aritmetice

Cea mai simpl transpunere a unei expresii matematice de calcul


este evaluare expresiei cu urmtoarele secvene:
COMPUTE var=<expresie>.
sau mai direct
var=<expresie>.
Expresia poate conine operatori,operanzi i/sau funcii. Prioritatea
de efectuare a calculului este urmtoarea:
Parantezele rotunde;
Funciile;
** (puterea);
*, /, DIV, MOD(nmulirea, mprirea, mprirea ntregilor,
calcularea restului) ;
+, -.(adunarea, scderea).

Operaiile aritmetice de baz

Pentru operaiile aritmetice de baz (adunare, scdere, nmulire,


mprire) exist pe lng exprimare prin intermediul operanzilor i
exprimarea prin intermediul instruciunilor. Astfel pentru adunare
exista ADD, pentru scdere SUBTRACT, pentru nmulire
MULTIPLY, pentru mprire DIVIDE. Astfel exist urmtoare
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 operaii de mprire de ntregi se folosesc operatorii DIV i


MOD (
pentru aflarea restului).

Operaiile aritmetice de baz

Operaia de calcul a puterii se realizeaz astfel:

a = baza ** putere.

Unde baza i putere pot fi oricare valori numerice valide. Ordinea


evalurii expresiilor ce conine operatorul putere este de la dreapta
la stnga, pentru oricare alt expresie ordinea obinuit este de la
stnga la dreapta.

Operaii aritmetice cu
structuri

Fiecreia din cele patru instruciuni aritmetice i se poate asocia


extensia CORRESPONDING astfel:

ADD- CORRESPONDING
SUBTRACT- CORRESPONDING
MULTIPLY- CORRESPONDING
DIVIDE- CORRESPONDING

Aceasta determin operaii ntre oricare dou cmpuri cu denumiri


identice din cele dou structuri, avnd o comportare similar ca
MOVE-CORRESPONDING.

Operaii aritmetice cu structuri

Exemplu:
DATA BEGIN OF Client,
Acest program realizeaz o extragere de
Nume(30),
bani din contul Clientului pentru plata unui
CNP TYPE N,
produs.
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.

Variante ale instruciunii ADD

O variant a instruciunii ADD este:


ADD n1 THEN n2 UNTIL nz GIVING s.

Aceast secven adun cmpurile n1, n2 pn la nz inclusiv, iar


suma lor o depune n s, este echivalentul expresiei:
s = n1 + n2 + + nz.

Aceste cmpuri trebuie s aib aceeai dimensiune(spaiu de


memorie) a tipului i trebuie s ocupe zone consecutive n memorie.
Se observ c valoare iniial a lui s nu este luat n calcul.

Variante ale instruciunii 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 instruciunii ADD

O alt variant a instruciunii ADD este:

ADD n1 THEN n2 UNTIL nz TO m.

Aceasta adun la valoare curent din m, cmpurile de la n1 la nz,


echivalentul ei fiind expresia:

m = m + n1 + n2 ++ nz.

Variante ale instruciunii 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 instruciunii 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


conine suma achiziiilor de la firma adugate la cheltuielile iniiale.
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 instruciunii ADD

Prima variant presupune o organizare riguroas a declarrii


cmpurilor n structur, astfel cmpurile ncepnd cu n1 trebuie s
aib aceleai dimensiuni i s fie consecutive, iar m1 specific
indexul primului cmp din serie ce este sumat relativ la poziia
cmpului n1.
Astfel dac se sumeaz ncepnd i incluznd cmpul n1 indexul
m1 va avea valoare 1. mz specific valoare indexului ultimului cmp
ce se sumeaz. Rezultatul va fi depus n m.
Varianta a doua are un comportament asemntor cu varianta fr
extensia ACCORDING TO sel.
Aceast extensie determin luare n considerare i sumarea doar a
acelor cmpuri ce ndeplinesc condiia de selecie sel.

Funcii de prelucrare primar variabilelor


n virgula mobil

Acestea se refer la rotunjiri, aproximri, 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 dect
argumentul.
FLOOR() ntoarce cea mai mare valoare ntreag nu mai mare
dect argumentul.
TRUNC() ntoarce partea ntreag a argumentului.
FRAC() ntoarce partea fracionar a argumentului.

S-ar putea să vă placă și