+ All Categories

aiicc

Date post: 15-Jan-2016
Category:
Upload: lavinia-avr
View: 7 times
Download: 0 times
Share this document with a friend
Description:
Aiic
116
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ă 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.
Transcript
Page 1: aiicc

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.

Page 2: aiicc

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

Page 3: aiicc

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.

Page 4: aiicc

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

Page 5: aiicc

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 .

Page 6: aiicc

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

Page 7: aiicc

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.

Page 8: aiicc

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.

Page 9: aiicc

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.

Page 10: aiicc

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

Page 11: aiicc

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.

Page 12: aiicc

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.

Page 13: aiicc

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.

Page 14: aiicc

Descrierea avantajelor

Page 15: aiicc

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.

Page 16: aiicc

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.

Page 17: aiicc

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

Page 18: aiicc

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.

Page 19: aiicc

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.

Page 20: aiicc

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

Page 21: aiicc

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 .

Page 22: aiicc

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.

Page 23: aiicc

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.

Page 24: aiicc

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.

Page 25: aiicc

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.

Page 26: aiicc

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.

Page 27: aiicc

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.

Page 28: aiicc

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

Page 29: aiicc

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

Page 30: aiicc

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;

Page 31: aiicc

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;

Page 32: aiicc

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.

Page 33: aiicc

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.

Page 34: aiicc

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.

Page 35: aiicc

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.

Page 36: aiicc

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.

Page 37: aiicc

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.

Page 38: aiicc

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.

Page 39: aiicc

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.

Page 40: aiicc

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 .

Page 41: aiicc

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

Page 42: aiicc

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.

Page 43: aiicc

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.

Page 44: aiicc

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.

Page 45: aiicc

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.

Page 46: aiicc

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.

Page 47: aiicc

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.

Page 48: aiicc

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.

Page 49: aiicc

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ă;

Page 50: aiicc

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.

Page 51: aiicc

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.

Page 52: aiicc

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.

Page 53: aiicc

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

Page 54: aiicc

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.

Page 55: aiicc

Declararea variabilelor – instrucţiunea

DATA

Tipurile de bază din ABAP sunt definite prin intermediul unor

simboluri litera şi sunt cele din tabelul următor:

Page 56: aiicc

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.

Page 57: aiicc

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.

Page 58: aiicc

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.

Page 59: aiicc

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.

Page 60: aiicc

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

Page 61: aiicc

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.

Page 62: aiicc

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

Page 63: aiicc

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.

Page 64: aiicc

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.

Page 65: aiicc

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:

Page 66: aiicc

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.

Page 67: aiicc

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.

Page 68: aiicc

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.

Page 69: aiicc

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.

Page 70: aiicc

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.

Page 71: aiicc

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.

Page 72: aiicc

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.

Page 73: aiicc

Expresii logice

Expresii de comparaţie pentru date simple

Expresiile logice folosesc următoarea listă de operatori de

comparaţie:

Page 74: aiicc

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.

Page 75: aiicc

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

Page 76: aiicc

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.

Page 77: aiicc

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

Page 78: aiicc

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.

Page 79: aiicc

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ă:

Page 80: aiicc

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.

Page 81: aiicc

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.

Page 82: aiicc

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.

Page 83: aiicc

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.

Page 84: aiicc

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.

Page 85: aiicc

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.

Page 86: aiicc

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.

Page 87: aiicc

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.

Page 88: aiicc

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.

Page 89: aiicc

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!”).

Page 90: aiicc

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.

Page 91: aiicc

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

Page 92: aiicc

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.

Page 93: aiicc

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.

Page 94: aiicc

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.

Page 95: aiicc

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.

Page 96: aiicc

Instrucţiuni de afişare

De exemplu se poate folosi : COLOR idcolor.

Unde idcolor este conform tabelului:

Page 97: aiicc

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.

Page 98: aiicc

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!

Page 99: aiicc

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.

Page 100: aiicc

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

Page 101: aiicc

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

Page 102: aiicc

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.

Page 103: aiicc

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.

Page 104: aiicc

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

Page 105: aiicc

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

Page 106: aiicc

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

Page 107: aiicc

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.

Page 108: aiicc

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.

Page 109: aiicc

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.

Page 110: aiicc

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.

Page 111: aiicc

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.

Page 112: aiicc

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.

Page 113: aiicc

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.

Page 114: aiicc

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.

Page 115: aiicc

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.

Page 116: aiicc

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.