sâmbătă, 28 noiembrie 2009

Dry Run, Cut-Over, Roll-Out ce reprezinta?

Fac parte din terminologia specifica unei implementari SAP si anume:
- in timpul unui Dry-run sistemul configurat este predat clientului cu scopul de a fi testat si evaluat de catre acesta, se va organiza o sesiune de training in care i se vor prezenta utilizatorului facilitatile pe care le ofera noul sistem informatic si se vor urmari eventualele neconcordante intre configurarea existenta in sistem si procesele pe care compania le desfasoara. In cazul unui dry-run vor rula in paralel atat vechiul sistem informatic cat si noul sistem urmarind desfasurarea in conditii normale ale activitatilor normale de business, iar tranzitia catre noul sistem sa se realizeze in cele mai bune conditii.
- in timpul unui Cut-Over se va stabili termenul pentru tranzitia la noul sistem, iar vechiul sistem va fi dezactivat, motiv pentru care se va testa gradul de solicitare al noului sistem prin simularea intr-un sistem de test(copie a sistemului de productie)a unei zile de lucru normale.(la nivel tranzactional) Se va testa de altfel functionarea tuturor aplicatiilor de migrare a datelor catre si dinspre SAP, vor fi recreate situatii de incarcare a datelor externe in SAP si monitorizarea aplicatiilor de extractie si conversie a datelor.
- in cadrul unui Roll-Out se vor realiza actiuni de implementare si customizare a unui pachet informatic pentru a corespunde cerintelor de activitate ale organizatiei. La baza sta un template ce contine aplicatii predefinite care sunt customizate pentru a indeplini cerintele specifice ale organizatiei. Acesta va contine: procese si platforme standardizate, posibilitati de interfatare cu alte sisteme, suport tehnic, consultanta si training, suport pentru implementare, etc.

miercuri, 11 noiembrie 2009

Ce reprezinta termenul de "client" in SAP?

Probabil printre primele lucruri pe care le-am auzit cand am luat contact cu SAP pentru prima data a fost "va rog sa va logati pe clientul xxx si sa va deschideti prima sesiune de lucru...", ce inseamna "client" in contextul acesta? dupa cum probabil banuiti este vorba de unul din parametrii necesari pentru a va putea accesa sesiunea de lucru.
Deci ce este "client" in SAP?
Pe scurt poate reprezenta o companie, un sector de afaceri, sau o corporatie.
Versiunea oficiala este aceea ca un client poate fi o entitate legala si organizationala independenta sau poate reprezenta o grupare de date si informatii din baza de date.




marți, 27 octombrie 2009

Cum se implementeaza o solutie SAP?

Implementarea unei solutii SAP atrage dupa sine multe schimbari la nivel organizational, schimbari de management, de norme, in modul de lucru, imbunatatirea serviciilor furnizate clientilor, etc.
Fiind un proces indelungat (de regula dureaza 1-2 ani in functie de solutie), in implementare sunt implicati atat cei care ofera suportul tehnic SAP cat si end-useri din diferite departamente ale companiei care asigura respectarea de catre consultanti intocmai a proceselor de business ce se desfasoara in cadrul companiei.
Procesul are in vedere 4 faze principale de implementare:
- faza de pregatire a proiectului
- analiza si intocmire a planului (blueprint)
- crearea structurilor functionale SAP si testarea solutiei
- ultima etapa:transferul solutiei in productie
- Go Live
Ce urmareste fiecare etapa?
Etapa de pregatire urmareste in principal 2 obiective:
- sa se identifice solutia SAP care corespunde cel mai bine obiectului principal de activitate al companiei
- stabilirea si specializarea personalului care se va ocupa de asistenta tehnica SAP
Etapa de analiza si intocmire a planului (blueprint) presupune:
- stabilirea celui mai bun furnizor al solutiei informatice avand in vedere costurile
- identificare posibilelor probleme de implementare si a modalitatilor de recuperare a datelor
- crearea si specializarea unei echipe de suport tehnic in implementarea si dezvoltarea solutiei
- specializarea end-userilor in utilizarea solutiei informatice
- stabilirea unui centru de date SAP (centrul serverelor care sustin solutia)
- instalarea solutiei si componentelor necesare companiei
- alocarea personalului calificat pentru asigurarea suportului informatic, creare unui Help Desk SAP
Crearea structurilor functionale SAP are ca obiective:
- intocmirea unui plan al schimbarilor organizationale pe care il va aduce implementarea solutiei informatice
- intocmirea unui set de reguli n privinta gestionarii sistemului informatic (SAP Best Practices)
- testarea stabilitatii proceselor business SAP, si integrarea lor cu alte procese SAP.
Faza finala urmareste in principal:
- monitorizarea serviciilor de asistenta urmarind in primul rand respectarea indicilor de calitate si performanta(SLA, KPI).
- transferul solutiei din dezvoltare si test in productie.
Activarea solutiei in productie (GO live)

joi, 8 octombrie 2009

Ce sunt tranzactiile?

Putem numi tranzactie operatia prin care aducem modificari bazei de date, in sine sistemul SAP fiind el insusi un sistem tranzactional. Intregul lant de procese ce are loc in cadrul sistemului este generat de tranzactii.
In SAP o tranzactie este o secventa de pasi(pasi de dialog) pe care o realizeaza utilizatorul pentru a genera un eveniment, modul in care sunt executati toti acesti pasi de dialog fiind monitorizat de un dispatcher SAP.
De regula baza de date nu va fi actualizata pana cand ultima tranzactie nu s-a incheiat, in caz contrar se poate reveni asupra modificarilor.
O tranzactie are la baza 2 etape: una interactiva care poate avea unul sau mai multi pasi si este responsabila pentru pregatirea datelor ce vor actualiza baza de date, si una de actualizare a bazei de date.
Deoarece mai multi utilizatori pot accesa simultan aceeasi informatie, pentru a nu aduce inconsistente in procesul tranzactional exista un mecanism de blocare(LUW) care se activeaza pe durata rularii tranzactiei.
Toate tranzactiile au asociat un cod tranzactional ce se introduce direct in fereastra de comanda, spre exemplu ordinele de vanzare se pot crea accesand din fereastra de comanda codul de tranzactie VA01. O lista a tuturor tranzactiilor disponibile in sistemul SAP R/3 poate fi vazuta accesand tabela TSTC utilizand codul tranzactional SE16(vizualizare tabele) din fereastra de comanda.
Pasul de dialog(screen) este reprezentat de un program dinamic (dynpro) care are la baza o anumita logica de procesare a pasilor de dialog. Un dynpro contine definitiile campurilor, formatul ferestrei de dialog, validarea si logica de procesare a pasilor de dialog.
Logica de procesare presupune ca un dynpro sa controleze ceea ce trebuie executat inainte ca fereastra de dialog sa fie afisata(process before output PBO) si ceea trebuie executat dupa ce utilizator termina de introdus datele in fereastra de dialog.(process
after input PAI)
Trecerea utilizatorului de la o fereastra de dialog la alta genereaza de fapt un pas de dialog , iar un set de pasi alcatuiesc o tranzactie.
Asa cum mentionam mai sus pentru a pastra integritatea unei tranzactii in cazul accesarii simultane a aceleiasi informatii de catre mai multi utilizatorii a fost dezvoltat un mecanism de blocare numit LUW.(Logical Units of Work)
Conceptual un LUW este un set de pasi care trebuiesc executati corect intr-o tranzactie pentru a trece mai departe la logica tranzactiei. Daca apare vreo eroare in executarea unuia din pasi, doar pasul curent este eliminat, iar cei anteriori sunt pastrati.

luni, 28 septembrie 2009

Customizing

Customizing este unealta prin care iti poti adapta pachetul SAP la cerintele business ale companiei, este metoda prin care se pot imbunatati si dezvolta diferite procese business in functie de cerintele firmei. Unele modificari au efecte imediate asupra altor elemente datorita asocierilor ce sunt definite prin intermediul customizingului, spre exemplu adaugarea tarii in care isi are sediul compania atrage dupa sine determinarea automata a unor elemente precum calcularea taxelor, determinarea cerintelor legale, efecte asupra monedei de schimb, etc. Implementarea customizingului se face de catre experti in procesele de business ce au loc in cadrul companiei care trebuie sa respecte intocmai structura, procesele si functiile din cadrul companiei si sa le transpuna respectand un set de reguli(best practices) in SAP.
Probabil cel mai des utilizat IMG(implementation guide) este unealta care ii ajuta pe specialisti in activitatea de implementare a unui flux nou in SAP. Cunoscut si sub numele de SPRO (dupa numele tranzactiei) meniul de customizare are o structura arborescenta fiecare ramura reprezentand cate un modul, obiectele de sub fiecare ramura reprezantand un element ce poate fi supus customizarii(definire a unui element nou/ asociere intre elemente deja existente).
Fiecare obiect din customizing are atasat o documentatie ce ofera informatii despre obiect in sine si ce actiuni poate desfasura.

sâmbătă, 19 septembrie 2009

Integrarea aplicatiilor in R/3 (AI)


Datele diferitelor aplicatii functionale SAP au proprietatea de a fi integrate si accesibile si de catre aplicatii terte formand un tipar al unui flux continuu de informatii cu 2 sensuri in care informatiile circula intre diferitele departamente ale unei companii. Un alt avantaj al integrarii aplicatiilor este acela ca datele sunt disponibile in timp real, astfel incat un manager care trebuie sa intocmeasca un raport despre situatia financiara a firmei dispune de date instant.
Integrarea modulelor de aplicatie se realizeaza utilizand optiunile disponibile in cadrul R/3 Business Engineer, iar la nivelul modelelor de date integrarea realizandu-se cu ajutorul functiilor disponibile in cadrul Data Modeler.
Un exemplu de model pentru visualizarea datelor unui client:

Interfata utilizator(SAPGUI)

Interfata utilizator reprezinta nivelul de prezentare(dialog) fiind prezenta atat pe sistemele Windows :Windows 95, Windows98, Windows NT, Windows XP cat si pe Motif, OS/2 Presentation Manager si Macintosh.
Interfata utilizator numita si SAPGUI include toate caracteristicile grafice specifice ferestrelor de tip interfata, butoane, bara de meniuri, bara de unelte, linkuri, descrieri de tip pop-up, si meniu contextual.
In functie de programele sau aplicatiile care vor fi rulate de catre utilizator acestea pot avea un design diferit, sa contina mai multe sau mai putine elemente grafice.
Programatorii pot sa defineasca propriile variante grafice adaugand meniuri si alte elemente grafice in functie de cerintele aplicatiilor.
In ultimele versiuni R/3 exista posibilitatea transferului de componente ale nivelului de prezentare catre alte statii de lucru datorita introducerii in arhitectura R/3 a unor componente de tip ActiveX sub Windows sau JavaBeans.

duminică, 13 septembrie 2009

Ce sisteme suporta SAP?

SAP are la baza o tehnologie deschisa in care aplicatiile pot rula pe diferite sisteme de operare, baze de date si pot utiliza diferite tehnologii de comunicare.
Daca va intrebati cu ce sisteme este compatibil SAP aflati ca la nivel de sistem de operare este compatibil cu o serie de sisteme precum:UNIX,Linux, Windows 95, Windows 98, Windows NT, Windows XP, Macintosh.
In timp ce la nivelul bazei de date relationeaza cu o serie de baze de date ca: Oracle, Informix, Adabas D, DB2, si SQL−Server.
La nivelul de aplicatie permite programelor externe sistemului sa interactioneze prin intermediul unor module de functii numite RFC(remote function call), RPC (remote procedure call) sau folosind Business Application Program Interfaces (BAPIs).
Nivelul de comunicatii externe este reprezentat prin:
  • EDI (electronic data interchange) interfata ce automatizeaza schimbul de date intre R/3 si alte sisteme partenere.
  • MAPI (Messaging Application Program Interface) tehnologie, ce suporta protocoale standard ca X.400 and SMTP ce permit utilizatorilor R/3 sa comunice cu alte sisteme de mailing si Internet.
  • BAPI interfata ce permite accesul catre programele si datele din sistem de catre aplicatii externe ale clientilor sau programe partenere complementare.
  • ALE (Application Link Enabled) permite comunicarea intre sistemul R/3 si alte sisteme externe.

Ce inseamna IBU?

Termenul de IBU(Industry Business Unit) se foloseste pentru a identifica un pachet specific de solutii SAP dezvoltat de partneri sau clienti in colaborare cu echipa SAP pentru un anumit sector industrial.
Dezvoltarea pachetelor de solutii specifice are ca rezultat existenta actuala pe piata a mai multor astfel de solutii pentru diferite sectoare de activitate:
Fiecare pachet de solutii ingloband informatii atat despre piata cat si despre sectorul de activitate in conformitate cu normele in vigoare.
Implicarea SAP in toate aceste sectoare a dus si la dezvoltarea unor module aditionale care la inceput au fost incluse in pachetele de solutii, precum Call Center(preiau comenzile de la clienti), iar apoi observand ca de fapt aceste module sunt comune pentru majoritatea pachetelor de solutii le-a inglobat in asa numitele pachete de solutii strategice (Strategic Business Unit)SBU .
Initial SAP a dezvoltat 3 astfel de pachete strategice SBU:
  • SAP Supply Chain Management (SCM), care include module precum SAP Advanced Planner and Optimizer (APO), SAP Business to Business (B2B), si SAP Product Data Management (PDM)
  • SAP Customer Relationship Management (CRM), care include module precum SAP Sales, SAP Marketing, si SAP Service
  • SAP Business Intelligence (BI), care include module ca SAP Business Information Warehouse (BW) si SAP Knowledge Warehouse

miercuri, 9 septembrie 2009

Module functionale SAP R/3

In versiunea completa a pachetului SAP R/3 exista multe module, dar majoritatea companiilor folosesc doar o parte dintre acestea. Mai degraba, achizitioneaza si instaleaza sau implementeaza doar acele module care le servesc activitatilor pe care le gestioneaza.
Modulele alese spre implementare sunt integrate si interconectate cu serverele de baza de date si serverele-client de catre programatori, iar interfetele sunt adaptate cerintelor firmei. Odate instalate modulele numai cunosc granite si lucreaza ca un singur sistem informatic, permitand firmei sa adauge oricand in functie de necesitati alte module fara a perturba sistemul informatic.

luni, 7 septembrie 2009

In ce limbaj a fost dezvoltat SAP?

Daca va intrebati ce limbaj sta in spatele SAP-ului aflati ca este vorba de un limbaj dezvoltat de cei de la SAP special pentru aplicatiile de tip business asemanator limbajului COBOL.
Numele sau ABAP (Advanced Business Application Programming) a fost o alaturare potrivita de cuvinte care sugereaza in primul rand specificul acestui limbaj si faptul ca provine dintr-o prima generatie de programe ce au inclus conceptul de Logical Database.
Ca sa ne dam seama la nivel structural unde s-ar pozitiona si care este rolul acestor programe trebuie sa avem in vedere arhitectura sistemului SAP prezentata in postul anterior si anume:
daca nivelul bazei de date contine in general date acestea trebuie preluate prin intermediul unei aplicatii si furnizate utilizatorului spre a se folosi de ele, ca urmare programele ABAP ruleaza la nivelul de aplicatie(application layer) si au rolul de a extrage datele de la nivelul bazei de date si de a le aduce la nivelul de prezentare(interfetei cu utilizatorul).
Pentru a va face o idee despre cum arata codul sursa al unui program va exemplific urmatorul cod sursa ce verifica o lista de documente intr-un fisier si adauga un x in fata documentului in momentul in care il gaseste:
************************************************************************
*Program name : XXXXXXXXX *
*Analyst name : XXXXXXXXX *
* Programmer's name : XXXXXXXXXXXXXX *
*Created on : XX/XX/XXXX *
* Function description : XXXXXXXXXXXXXXXX*
* Requested by : XXXXXXXXX *
************************************************************************
* Modification 001 : *
* Done by : *
* Requested by : *
* Date : *
*----------------------------------------------------------------------*

REPORT XXXXXXX MESSAGE-ID 00.

*--------------------------TABLES---------------------------------------
TABLES: likp.

*--------------------SELECTION-SCREEN-----------------------------------
SELECTION-SCREEN BEGIN OF BLOCK bl1.
PARAMETERS: p_ddname TYPE zsdsn-ddname OBLIGATORY.
SELECT-OPTIONS: s_vbeln FOR likp-vbeln OBLIGATORY.
SELECTION-SCREEN END OF BLOCK bl1.

*----------------------------TYPES--------------------------------------
TYPES: BEGIN OF ty_dsname,
dsname TYPE zsdsn-dsname,
END OF ty_dsname.

TYPES: BEGIN OF ty_vbeln,
vbeln TYPE likp-vbeln,
END OF ty_vbeln.

*----------------------------DATA--------------------------------------
DATA: it_dsname TYPE TABLE OF ty_dsname,
it_vbeln TYPE TABLE OF ty_vbeln,
it_vbeln2 TYPE TABLE OF ty_vbeln.

DATA: wa_dsname TYPE ty_dsname,
wa_vbeln TYPE ty_vbeln.

DATA: BEGIN OF it_input OCCURS 0,
line(225) TYPE c,
END OF it_input.

DATA: lv_vbeln(10),
gv_modified(1),
gv_file_mod(1),
lv_tabix TYPE sy-tabix,
va_index LIKE sy-tabix.

*----------------------START-OF-SELECTION------------------------------
START-OF-SELECTION.

SELECT dsname INTO TABLE it_dsname
FROM zsdsn
WHERE ddname = p_ddname.

READ TABLE it_dsname INTO wa_dsname INDEX 1.

*--- open dataset to read it
call method zcl_xxxxx_base=>open_dataset_text_mode
exporting
iv_filename = WA_DSNAME-DSNAME
iv_for = zcl_xxxxx_base=>for_INPUT
exceptions
cannot_open = 8.

IF sy-subrc NE 0.
MESSAGE i001 WITH text-001.
ELSE.
DO.
READ DATASET wa_dsname-dsname INTO it_input-line.
IF sy-subrc = 0.
APPEND it_input.
ELSE.
EXIT.
ENDIF.
ENDDO.

CLEAR gv_modified.

CLOSE DATASET wa_dsname-dsname.

LOOP AT s_vbeln.
CLEAR gv_modified.

READ TABLE it_input WITH KEY line(10) = s_vbeln-low.
CLEAR lv_tabix.
IF sy-subrc = 0.
CONCATENATE 'X' it_input-line INTO it_input-line.
gv_modified = 'X'.
gv_file_mod = 'X'.
lv_tabix = sy-tabix.
ENDIF.

READ TABLE it_input WITH KEY line(1) = 'X'
line+1(10) = s_vbeln-low.

IF sy-subrc <> 0 AND gv_modified <> 'X'.
READ TABLE it_input WITH KEY line(1) = 'x'
line+1(10) = s_vbeln-low.
IF sy-subrc <> 0.
wa_vbeln-vbeln = s_vbeln-low.
APPEND wa_vbeln TO it_vbeln.
ENDIF.
ENDIF.

IF NOT lv_tabix IS INITIAL.
MODIFY it_input INDEX lv_tabix TRANSPORTING line.
ENDIF.
ENDLOOP.


*---if modifications were made
IF gv_file_mod = 'X'.

*---open dataset to modify it
call method zcl_xxxxx_base=>open_dataset_text_mode
exporting
iv_filename = WA_DSNAME-DSNAME
iv_for = zcl_xxxxx_base=>for_OUTPUT
exceptions
cannot_open = 8.

LOOP AT it_input.
TRANSFER it_input-line TO wa_dsname-dsname.
ENDLOOP.

CLOSE DATASET wa_dsname-dsname.

ENDIF.


CLEAR wa_vbeln.

*---print the deliveries that were not found

IF it_vbeln IS INITIAL. " all deliveries were found
WRITE text-003.
ELSE.
WRITE: text-002.
LOOP AT it_vbeln INTO wa_vbeln.
WRITE: / wa_vbeln-vbeln.
ENDLOOP.
ENDIF.

ENDIF.

sâmbătă, 5 septembrie 2009

Ce este "SAP"?

Poate ati auzit pe cineva vorbind recent in cercul vostru de prieteni de SAP si v-ati intrebat ce inseamna SAP? la ce foloseste?
Evident este vorba de un sistem informatic complex utilizat in gestiunea bazelor de date, fiind preferatul companiilor mari. SAP vine de la System Applications and Products, si se imparte in module individuale care realizeaza diferite sarcini informatice in cadrul unei companii. Compania care a dezvoltat acest sistem informatic isi are radacinile in Germania la Walldorf si a fost fondata in 1972 de 4 fosti angajati ai companiei IBM.
Ganditi-va doar la faptul ca in acest moment SAP detine cea mai mare parte a pietei de aplicatii business fiind utilizat in peste 76.ooo de companii internationale si are în prezent reprezentanţe de vânzări şi unităţi de producţie în peste 120 de ţări fiind listată la mai multe burse, inclusiv Bursa din Frankfurt şi NYSE cu simbolul "SAP".
Scopul acestui blog nu este acela de a lauda si dezbate brandul SAP ci de a aduce informatii suplimentare practice celor interesati.
O sa trecem asadar la structura sistemului si ce face el mai exact:
- structura SAP se bazeaza pe o arhitectura client-server structurata pe mai multe segmente(o aplicatie(client) solicita o actiune unei alte aplicatii(server) si aceasta o indeplineste ) si anume:
- nivelul bazei de date care gestioneaza datele folosind un sistem de gestionare al bazei de date relational(SGBDR) . Tot aici sunt gestionate datele generale (master data) datele tranzactionale si sunt stocate programele si metadatele care descriu sistemul si structura sa;
-nivelul de aplicatie unde au loc executii ale programelor ABAP;
- nivelul de prezentare care contine interfata utilizator prin intermediul careia utilizatorii introduc date si apoi le afiseaza.

Am adus in discutie in cele de mai sus cateva elemente noi a caror insemnatate trebuie mentionata si anume:
date generale(master data) = o colectie de informatii despre o persoana sau obiect cum ar fi adresa, date legate de plata, cont, caracteristici, etc.
date tranzactionale(transactional data) = se refera la un singur eveniment, crearea unui document de achizitie, ori a unui ordin de vanzare. La crearea unui document SAP aloca documentului respectiv un numar si adauga documentul creat datelor tranzactionale deja existente.