Sunteți pe pagina 1din 7

Exercitiu Database Access + File Interfaces

Tema :
Sa se creeze un program care sa extraga informatii despre ordinele de vanzare (Sales Orders) si
sa scrie datele rezultate intr-un fisier.

Partea 1: Selectarea datelor

Ecranul de selectie :
Ecranul de selectie va avea urmatoarea structura :

Sales document (VBAK-VBELN) – select option


Document date (VBAK-AUDAT) – select option

Show deliveries – checkbox


Show invoices – checkbox

Export to file – checkbox


Local – radiobutton
File name and path – parametru
Application server – radiobutton
File name and path – parametru

Daca checkbox-ul ‘Export to file’ nu este bifat, parametrii ‘Local file name and path’ si ‘AppServ
file name and path’ trebuie sa fie output-only, ca in imaginea de mai jos :

Pagina 1
Exercitiu Database Access + File Interfaces

Daca checkbox-ul ‘Export to file’ este bifat si radiobutton-ul ‘Local’ este bifat, doar parametrul
‘Local file name and path’ poate primi valori :

Daca checkbox-ul ‘Export to file’ este bifat si radiobutton-ul ‘Application Server’ este bifat, doar
parametrul ‘AppServ file name and path’ poate primi valori :

Pentru a gasi cum se poate face acest lucru cititi aici :


http://help.sap.com/saphelp_46c/helpdata/en/56/1eb6c705ad11d2952f0000e8353423/conte
nt.htm

Important!
Daca checkbox-ul ‘Export to file’ nu este bifat, trebuie dat mesaj de informare -> “Niciun fisier
nu va fi salvat”, si doar numarul de documente de fiecare tip trebuie sa fie afisate.

Pentru parametrul ‘Local file name and path’ trebuie sa se poata lista valorile posibile (la F4),
adica sa se poata alege numele fisierului si calea unde se va salva fisierul local.

Hint: folositi functia F4_FILENAME.


Pagina 2
Exercitiu Database Access + File Interfaces

Fiserele pe application server le veti salva in directorul DIR_HOME (puteti vizualiza structura
directoarelor logice cu tranzactia AL11).

Nu uitati sa gestionati erorile. Ex: daca checkboxul ‘Export to file’ este bifat dar nu este
completat numele fisierului - > eroare.

Ce trebuie sa faca programul :


Programul trebuie sa extraga informatii despre Sales Orders (Comanda de vanzare) din
tabelele VBAK si VBAP :
- Sales Document (VBAK-VBELN)
- Document Date (VBAK-AUDAT)
- Sales Document Type Description (Sales Document Type = VBAK-AUART, voi trebuie sa
afisati descrierea acestui tip. Ex : pt AUART = ‘SO’ trebuie sa afisati ‘Rush Order’.
Descrierea se gaseste intr-o alta tabela, in functie de limba, pe care trebuie sa o gasiti voi
)
- Sales Document Item (VBAP-POSNR)
- Material (VBAP-MATNR)
- Short text for sales order item (VBAP-ARKTX)
- Quantity (VBAP-KWMENG)
- UM (VBAP-VRKME)

Pentru fiecare pozitie din Sales Order trebuie sa scrieti in fisier informatii referitoare la Delivery
(Livrare) din tabelele LIKP, LIPS, doar daca checkbox-ul ‘Show deliveries’ este bifat :
- Delivery number (LIPS-VBELN)
- Delivery item (LIPS-POSNR)
- Plant (LIPS-WERKS)
- Storage location (LIPS-LGORT)
- Quantity (LIPS-LFIMG)
- UM (LIPS-VRKME)

Pentru fiecare pozitie din Sales Order trebuie sa scrieti in fisier infomatii referitoare la Invoice
(Factura) din tabelele VBRK, VBRP, doar daca checkbox-ul ‘Show invoices’ este bifat :
- Invoice number (VBRP-VBELN)
- Invoice item (VBRP-POSNR)
- Quantity (VBRP-FKIMG)
- UM (VBRP-VRKME)
- Amount (VBRP-NETWR)
- Currency (VBRK-WAERK)

In modulul SD( Sales and Distribution ) legatura intre documente este urmatoarea :
SALES ORDER -> DELIVERY -> INVOICE

Pagina 3
Exercitiu Database Access + File Interfaces

Atentie! O comanda de vanzare poate avea mai multe livrari si o livrare poate avea mai multe
facturi si invers (pe o factura se pot gasi mai multe livrari, care pot avea mai multe comenzi de
vanzare), deci legaturile nu sunt 1:1 ci N:N.

Tabela in care gasiti legaturile dintre documente este VBFA.


De exemplu, pornind de la Sales Order-ul 5354 / item 10, daca ne uitam in tabela VBFA :

Gasim legaturile cu livrarea si factura. In acest caz, pentru Sales Order-ul 5354 / item 10 avem
livrarea 80003751 / pozitia 10 si factura 90005634 / pozitia 10. Ne dam seama ce semnifica
fiecare document prin campul VBTYP_N (Document category of subsequent document) care
este J pentru Delivery si M pentru factura :

Tranzactiile pentru creare / modificare / vizualizare sunt :


- Pentru Sales Order : VA01 / VA02 / VA03
- Pentru Delivery : VL01N / VL02N / VL03N
- Pentru Invoice : VF01 / VF02 / VF03

Puteti vizualiza fluxul documentelor din oricare din aceste tranzactii (mai putin cea de creare)
apasand pe butonul

Exemplu : daca in VA03 introduceti Sales order-ul 5354 si apasati pe butonul puteti vedea
fluxul documentelor (documentele corespunzatoare SO-ului 5354) :

Pagina 4
Exercitiu Database Access + File Interfaces

La sfarsitul raportului trebuie afisat numarul total de Sales Order-uri gasite, numarul total de
Deliveries si numarul total de Invoices.

Daca checkbox-ul ‘Show deliveries’ nu este bifat, informatiile despre livrare nu trebuie sa
apara, la fel si pentru checkbox-ul ‘Show invoices’.

Partea 2: Exportul in fisier

Daca checkbox-ul export to file este bifat trebuie sa salvati un fisier fie local fie pe application
server (in functie de radiobutton) lista comenzilor de vanzare, lista livrarilor, lista facturilor (in
functie de checkbox-urile ‘Show Deliveries’ si ‘Show Invoices’) separate de caracterul ‘;’.

Exemplu fisier :

Pagina 5
Exercitiu Database Access + File Interfaces

SO:Sales Order Number1; Sales Order Type1; Sales Document Type Description1
SI:Sales Order1 Item1;Material, Short text for sales order item;Quantity, UM
DN:Delivery number; Delivery item; Plant; Storage Location;Quantity;UM
IN:Invoice Number;Invoice Item;Quantity;UM;Amount;Currency
Sales Order1 Item2;Material, Short text for sales order item;Quantity, UM
DN:Delivery number; Delivery item; Plant; Storage Location;Quantity;UM
IN:Invoice Number;Invoice Item;Quantity;UM;Amount;Currency
_______________________________________________________________________________________
SO:Sales Order Number2; Sales Order Type2; Sales Document Type Description2
SI:Sales Order2 Item1;Material, Short text for sales order item;Quantity, UM
DN:Delivery number; Delivery item; Plant; Storage Location;Quantity;UM
IN:Invoice Number;Invoice Item;Quantity;UM;Amount;Currency
Sales Order2 Item2;Material, Short text for sales order item;Quantity, UM
DN:Delivery number; Delivery item; Plant; Storage Location;Quantity;UM
IN:Invoice Number;Invoice Item;Quantity;UM;Amount;Currency

SO: 0000005354;Rush Order;24.02.1998


SI:00010; M-15 Sec Multisync XV15; 25,000;PC
DN: 80003751;00010;1200;0001;25,000;PC
IN:90005634;00010;25,000;PC;53.550,00;DEM
SI: 00020;M-16 Sec Multisync XV 17;24,000;PC
DN: 80003751;00020;1200;0001;24,000;PC
IN:90005634;00020;24,000;PC;60.816,00;DEM

SO: 0000005355;Rush Order;24.02.1998


SI:00010; M-17 Jotach SN4000;32,000;PC
DN: 80003753;00010;1200;0001;32,000;PC
IN:90005636;00010;32,000;PC;90.240,00;DEM

Salvarea fisierului local de tip text o veti face apeland metoda


cl_gui_frontend_services=>gui_download

Pagina 6
Exercitiu Database Access + File Interfaces

Salvarea fisierului pe application server se face cu OPEN DATASET / TRANSFER … / CLOSE


DATASET.

Pagina 7

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