Documente Academic
Documente Profesional
Documente Cultură
RAPORT
privind practica de diplomă
realizată în cadrul Companiei I.C.S. ,, Cedacri International’’
S.R.L
Chişinău, 2016
Cuprins
Concluzie......................................................................................................................................31
Bibliografie...................................................................................................................................33
Anexe.............................................................................................................................................34
2
1. Descrierea structurii organizatorice a intreprinderii
Cedacri Internațional a fost fondată în decembrie 2007. Din aprilie 2008 îşi începe
activitatea propriu-zisă, oferind servicii de dezvoltare software și de Business Process
Outsourcing pentru Grupul Cedacri din care face parte.
Acesta este controlată în totalitate de către Cedacri S.p.A. care de peste 30 de ani este
lider pe piața de outsourcing pentru bănci, instituții financiare și companii industriale: cu circa 40
de milioane de tranzacţii pe zi, 40.000 de utilizatori ai sistemului, 30.000 MIPS putere de
procesare mainframe și 4.000 de servere.
Vânzările consolidate în 2013 au totalizat circa 246,8 miln de Euro. Proprietățile grupului
sunt 22 de bănci, printre cele mai importante Instituții Bancare care sunt în rândul utilizatorilor
serviciului furnizat.
Având la dispoziţie suportul profesional şi financiar a unei dintre cele mai puternice
companii în domeniul outsourcing-ului informatic, Cedacri Internaţional, din 2008 până în
prezent, a semnalat sporirea cifrei de afaceri, a spaţiului, a numărului de personal, a volumului de
proiecte şi a calităţii.
Conducerea filialii acestei companii din Chișinău este formată din: Administratorul -
Sergio Capatti, Administratorul – Mirco Bighin și Responsabilul Diviziuni IT și Administrație –
Francesco Pipio.
Viziune:
Strategii:
4
1.3 Clienții companiei
Compania mamă Cedacri mai bine de treizeci de ani este lider în Italia în domeniul
outsourcing-ului informatic pentru sectorul bancar şi financiar. Avînd la dispoziţie peste 1300 de
angajaţi, Grupul Cedacri numără mai mult de 150 de clienţi (vezi tabelul 1.1), dintre care 70 sunt
instituţii bancare italiene în full outsourcing, cu un total de peste 2700 ghişee bancare gestionate
şi 31,5 milioane de tranzacţii zilnice, cu un centru de calcul care este situat printre primele locuri
în Italia.
Tabelul 1.1
Solleciti di Pagamento
5
Continuare Tabelul 1.1
6
2. Descrierea actvității practicei de diplomă.
- Galben – mini-comentarii;
7
Col 7 – Valoarea '*' pusă în această coloană transformă rândul ce urmează în comentariu.
Valoarea '–' în această coloană indică continuarea rândului precedent (vezi fig. 2.1).
Col 8-11 – Zona A – aici încep denumiri de diviziuni majore are codului (precum
diviziunile, secţiunile, paragrafele) şi diferite declarări de bază.
Col 12-72 – Zona B – zona pentru instrucţiuni şi alt conţinut al diviziunilor majore.
Rând
Comentat Figura 2.2. Structura de bază a programului COBOL.
În primul rând codul programului COBOL constă din 4 diviziuni. Fiecare dintre acestea
se împart în secţii, paragrafe şi atribute sau instrucţiuni separate. Majoritatea subdiviziunilor sunt
opţionale deoarece în sistem deja sunt setate toate valorile default necesare.
Identification Division - este prima divizie declarată într-un program COBOL. Precum
urmează din denumire, ea identifică programul dat. Unicul parametru obligatoriu al acestei
diviziuni este PROGRAM-ID, care primeşte ca valoare denumirea logică a programului (maxim
8 caractere primul dintre care trebuie să fie alfabetic). De obicei denumirea logică şi denumirea
obiectului PBC sunt identice pentru a nu cauza confuzie.
Environment Division - cuprins toate secţiile şi toţi parametrii acestei diviziuni sunt
opţionale. Diviziunea determină diverse setări private ale programului. Deasemenea aici se
declară componentele externe cu care va trebui să interacţioneze programul.
- CONFIGURATION SECTION – conţine setări opţionale ale programului care
anulează setările default ale sistemului.
Parametrii de mai sus nu sunt utilizabili în cazul aplicaţiilor rulate pe MainFrame în z/OS,
deci nu trebuie declarate în program.
8
- SPECIAL-NAMES – aici pot fi programate clase private programului dat şi
reprogramată funcţia diferitor semne şi simboluri:
- 'S' THRU 'Z'. – Declararea unei clase COBOL, care de fapt reprezintă un tip de
date cu domeniu de valori programat. Poate fi util în expresii condiţionale şi la
declararea variabilelor de tipuri specifice. Clasele pot fi utilizate pentru a altera
funcţia semnelor de punctuaţie şi a altor semnelor ne alfabetice (cum ar fi $).
Deasemenea permite codificarea simbolurilor care nu pot fi introduse în mod
normal de la tastatură (cum ar fi £).
9
Versiunea extinsă a aceleiaşi declaraţii, utilizată în cazul lucrului cu fişiere cu cu
organizare specifică (ne secvenţială):
- SELECT COBFILE ASSIGN TO FLUXNAME;
Lucrul în Endever se poate efectua cu ajutorul logării pe reţeaua lor, pentru aceasta
trebuie de tastat opţiunea l sssu5ap1 apoi Ctrl sau de făcut dublu clic pe SUPER (vezi fig 2.3).
Autentificarea se face cu datele primite de la administratori, se tastează numele user-ului şi
parola (vezi fig.2.4), care nu trebuie să conţină mai mult de 8 caractere şi nu trebuie să fie
10
asemănătoare cu 10 parole precedente. Apoi trebuie de ales din lista de opţiuni “Ambienti
evolutivi” şi după care “TSOSYA” (vezi fig. 2.5 și 2.6).
11
Figura 2.5. Fereastra pentru lucru cu mai multe tipuri de proiecte.
În fig. 2.7 vedeţi fereastra Meniului Principal. Comanda PFSHOW elimină panela PFx
din fereastra de lucru mărind astfel cu cîteva rânduri suprafaţa efectivă a ferestrei de lucru.
12
Fig. 2.7 Fereastra Meniului Principal
13
Endevor
Endevor – este un instrument de elaborare al softului pentru aplicaţii Mainframe. El
combină funcţiile de sistem de căutare, ambient de elaborare, compilator şi control al versiunilor.
Accesarea Endevor se efectuează din meniul principal utilizând comanda A.Q sau în unele
ambiente A; E; 2; U; E (vezi fig.2.8).
Meniuri şi ferestre
interactive
Comenzi
(acceptabile doar de
obiecte individuale)
Filtre de căutare
Opţiuni auxiliare
Opţiuni de acces şi de filtrare
compilare Figura 2.8. Componentele ferestrei Endevor.
Linia de comandă
Meniurile şi ferestrele interactive servesc pentru calibrarea fină a operaţiunilor default
efectuate de Endevor la îndeplinirea diverselor comenzi (cum ar fi crearea, compilarea sau
editarea obiectelor Endevor).
14
Obiectele Endevor elaborate în cadrul cursului de studii, precum şi orice alte obiecte
create în lipsa unei cereri oficiale, trebuie declarate în Systemul XX şi SubSystemul XX .
- ELEMENT – numele obiectului căutat/creat. Numele obiectelor poate fi compus din cel
mult 8 caractere. În cazul obiectelor create regulamentar, numele acestora vă conţine
indicaţii şi componente descriptive privitoare obiectul în cauză. Spre exemplu primele 2
caractere ale denumirii indică de obicei procedura din care face parte obiectul. Tipul este
în unele cazuri descris de caracterele 3-6. Toate obiectele produse în cadrul cursului de
studii trebuie să înceapă cu „CRxxx” indicând astfel apartenenţa obiectului. Filtrul
Element acceptă deasemenea caractere specifice pentru a facilita căutarea:
15
- BUILD USING MAP – indcă faptul că lista trebuie să conţină atît obiectele aflate în SVL cât şi
versiunile lor din alte ambiente vizibile în MVSSVL (cum ar fi COL sau RIL):
- RETURN FIRST FOUND – în cazul în care obiectul există în mai multe ambiente (spre
exemplu şi în SVL şi în RIL), în listă va fi inclusă doar cea mai recentă versiune a
obiectului găsit:
16
- DISPLAY ENV/SYS/SUBSYS LIST – În cazul în care filtrele ENVIRONMENT,
SYSTEM şi SUBSYSTEM nu sunt valorizate, Endevor va cere valorizarea obligatorie a
acestora în ferestre de dialog cu afişarea listei de valori admisibile.
17
Lista Elementelor Selectate şi comenzile aplicabile obiectelor individuale
În imaginea dată, unele obiecte au atât versiuni în SVL cât şi versiuni în RIL. Aşa situaţii
apar din motiv că versiunile verificate şi stabile din RIL sunt utilizate de sistem „la nivelul
clientului”, iar versiunea din SVL este mai nouă şi se află încă în stadiul de elaborare.
Comenzi acceptabile
18
Deţinătorul
curent al
drepturilor de
editare
Ultimul processor
utilizat CCID-ul curent
al obiectului
Rezultatul compilării
precedente
- S – Afişează lista versiunilor obiectului. O versiune nouă este creată la fiecare salvare a
codului editat.
19
Figura 2.9. Preluarea drepturilor de editare.
Elementul indicat mai sus nu poate fi editat deoarece la moment drepturile de editare îi
aparţin unei alte matricole. Comanda SI transferă drepturile de editare matricolei care efectuiază
operaţia.
Conţinutul rândurilor
date
în diferite versiuni
20
Declararea obiectelor Endevor
În imagine sunt indicate toate setările obligatorii necesare la declararea unui obiect
Endevor de tip PBC.
Pentru a crea un obiect PBC în Endevor sunt necesare următoarele valorizări:
22
Gestionarea versiunilor
După fiecare salvare, este produsă o nouă versiune a obiectului în cauză.
Numărul
versiunii
CCID-ul
Autorul
utilizat
versiunii
Data şi ora
modificării Ultima
compilare
reuşită
Cu ajutorul materialului oferit şi exemplelor de cod sursă, lista problemelor propuse de mai
jos s-au putut rezolva. Dificultăţile întâlnite au fost de structurarea codului şi poziţionarea
instrucţiunilor după cum am mai menţionat în compartimentul Stuctura ferestrei Cobol.
23
Problemele propuse au fost de complexitate medie, iar proiectul final a inclus cunoştinţele
acumulate în rezolvarea problemelor de mai jos.
Lista problemelor:
1. Crearea programului HELLO utilizând programul de tip PTC, copia CPX unde vor şi
declarare variabilele de intrate şi ieşire, WNF- ce va rula programul.
24
Banca înregistrează şi emite un carnet de buletine (stătut 00 – nou, 10 – imprimat, 20 –
utilizat, stato 30 – anulat).
1. Clientul utilizează aceste buletine pentru a achita ceva la Poştă (de exemplu).
2. Poșta trimite un mesaj Băncii prin care confirmă şi informează despre utilizarea
buletinului.
Informație adăugătoare.
1) Statutul unui carnet (TB28) poate lua valori ca: '00' – nou, '10'- imprimat, '20' –
utilizat şi '30' – anulat
2) Statutul unui buletin (TB29) poate lua valori: '20' – utilizat şi '40' – plătit.
XX00CW28 - PWS – Înserarea carnetelor de buletine din PWS (în tabela XX00TB28)
Programul va fi chemat din PWS pentru a insera un nou carnet de Buletine Poştale Complete 896
pentru un client. Un carnet poate conţine nu mai mult de 30 de buletine.
Programul trebuie să prevadă 5 funcţii: XX007W28 - FUNZIONE: CONTROL,
INSERARE, IMPRIMARE, ANULARE, DETALIU.
25
Figura 2.11.
Inserarea din PWS a carnetelor de buletine TD 896.
- AAMMGG = data de emitere = dată din ziua când a fost înserat carnetul;
- CC = Cod-CIN obţinut din restul împărţirii la 93 (restul împărţirii primelor 16 caractere la 93).
XX28-CARN-PRIMOBOLL = 08961410160000001
XX28-CARN-ULT-BOLL = 08961410160000005
XXBPO-M896-COD-CLIE = 08961410160000005
- "0896141016000000107"
- "0896141016000000208"
- "0896141016000000309"
28
- "0896141016000000410"
- "0896141016000000511"
Funcția de IMPRIMARE
Cu acesta funcţie se poate efectua generarea unui fişier PDF din care mai apoi se va
imprimat carnetul cu buletinele clientului.
Programul trebuie doar să schimbe statutul la carnet XX28_CARNET_STATO din tabela
XX00TB28 atribuind la statut valoarea “10” (imprimat).
Funcția ANULARE
Cu ajutorul funcţiei de ANULARE se anulează carnetul. Programul schimbă statutul la
carnet XX28_CARNET_STATO din tabela XX00TB28 atribuind la statut valoarea “30” (anulat).
XX00G029 - Batch de inserare unui buletin într-o tabelă specială (XX00TB29).
Programul XX00G029 citeşte secvenţial datele dintr-un fişier de unload a tabelei XX00TB28
pentru a putea face posibil încărcarea cu date despre buletine 896 în tabela XX00TB29.
Pentru fiecare record din input efectuează controalele de mai jos. Dacă recordul nu trece
controalele acesta se va scri în fişierul de output XX000283.
- XX000283 – "Lista cu buletine care nu au trecut controalele".
Altfel acesta se va scrie în unul din fişierele de mai jos:
- XX000280 – "Lista de buletine cu statut 00 "Nou";
- XX000281 – "Lista de buletine cu statut 10 "Imprimate";
- XX000282 – "Lista de buletine cu statut 30 "Anulate".
Controale:
1) Codul la institut nu-i valorizat - XX28-IST;
29
2) Filiala operatorului nu-i valorizata - XX28-OPER-UFF;
3) Progresivul carnetului nu-i valorizat - XX28-PROG-CARN;
4) Statutul carnetului nu-i valid - XX28-CARN-STATO NOT = '00' AND '10' AND '20'
AND '30';
5) Numărul primului buletin nu-i valorizat - XX28-CARN-PRIMOBOLL;
6) Carnet cu zero buletine – dacă nici unul din câmpurile XX28-CARN-PEZZI1, XX28-
CARN-PEZZI2, XX28-CARN-PEZZI3 nu-i mai mare ca ZERO.
Pentru fiecare record din XX00TB28 cu statutul "10" (imprimat) ce satisface condiţiile
(fără erori) s-au:
- Inserare directă toate recordurile în XX00TB29 pentru câte sunt în total, adică XX28-
CARN-PEZZI1 + XX28-CARN-PEZZI2 + XX28-CARN-PEZZI3, fiecare cu importul sau
XX29-IMPORTO-EMIS obţinut prin respectivul XX28-CARN-TAGLIO*.
30
Concluzie
Efectuând această practică pot să deduc foarte multe lucruri şi concluzii, dar cel mai
important consider ca după finisarea ei apar deja unele deprinderi din domeniul, şi aceasta mi-a
dat posibilitatea de a înţelege cu adevărat importanţa funcţiei alese.
În cadrul acestei perioade de 6 săptămâni am fost încadrată într-un program pilot pentru
persoanele practicante, astfel am avut posibilitatea să fac cunoştinţă și să pun bază pentru
programarea în limbajul Cobol.
Cu ajutorul acestei practici am înţeles mai bine cum lucrează programul cu fişiere. Am
înţeles cum e mai bine să structurezi programul ca să fie mai eficient, cât mai mic în volum şi
mai vizibil pentru alte persoane. La fel am observat că trebuie să te atârni destul de serios faţă de
aceea ce faci (de program), pentru al face mai plăcut la folosire şi mai uşor de înţeles. Mi-au
apărut unele idei pe viitor la care mă gândeam înainte dar nu ştiam cum să le fac în program.
Am obţinut unele deprinderi referitor la lucru în cadrul programării, am învăţat a pune
întrebări cât mai eficiente pentru soluţionarea problemei, am obţinut deprinderea de a caută
problemele pas cu pas şi de a le rezolva. În urma ce am fost încadrată în proiectul Buletine
poştale mi-am făcut unele concluzii:
- Trebuie să ştii ceea ce faci;
- Trebuie să fie o comunicare reciprocă între tine şi client;
- Uneori codurile utilizate odată pot fi reutilizate fără a fi scrise din nou;
- Nu trebuie să scrii codul pentru tot programul odată fără să-l testezi, mai bine câte
un fragment şi apoi vezi funcţionalitatea lui;
- Structurarea codului poate să te ajute mult peste mai mult timp;
- Ceea ce nu poţi face tu în 2-5 ore poate face mai rapid un coleg de al tău, mai bine
cere ajutorul decât să reţii procesul de dezvoltare a aplicației;
- Echipa în care eşti încadrat este ca o familie unde nu exista concurenţă.
31
Practica de instruire constituie o primă lucrare de sine stătătoare a studenţilor şi după
rezultatele realizării ei se pot face concluzii cu privire la pregătirea studentului pentru a activa în
domeniul programării, de a evidenţia studenţii cei mai capabili pentru instruirea ulterioară în
calitate de specialist în programare.
32
Bibliografie
1. http://www.ionivan.ro/ISTORIA-INFORMATICII/istorie-limbaje.htm
2. http://www.cedacrinternational.md/?lang=ro
3. https://www.ibm.com/support/knowledgecenter/SSGTSD_13.1.0/com.ibm.debugtool.doc
_13.1/rmdita/rcmdeva.html
33
Anexe
34
Anexă 1
Cod sursă
Codul 1 - Controalele pentru inserarea carnelelor poștale.
******************************************************************
IDENTIFICATION DIVISION.
******************************************************************
*=====================*
PROGRAM-ID. XX11CW28.
*=====================*
******************************************************************
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
DATA DIVISION.
******************************************************************
WORKING-STORAGE SECTION.
*---------------------------------------------------------------*
* Campi di appoggio
*---------------------------------------------------------------*
01 WS-EIBRESP PIC S9(08) COMP.
01 CD-CHANNEL-NOME1 PIC X(16) VALUE SPACES.
01 WS-STR-A1-CAP-RES-I PIC S9(5).
01 WS-STR-A1-CAP-RES-O PIC -ZZZZ9.
01 WS-TOTAL-PIEZZI PIC 9(005).
01 WS-VLINK PIC S9(08) COMP-3 VALUE +0.
01 OK PIC 9(002) VALUE 0.
01 WS-905-M896-COD-CLIE.
05 WS-905-M896-TIPO PIC 9(003).
* Tip buletin (egal cu 896)
05 WS-905-M896-DTEMIS PIC 9(006).
* Data emitere carnet
05 FILLER REDEFINES WS-905-M896-DTEMIS.
10 WS-905-M896-DTEMIS-AA PIC 9(002).
35
Continuarea Anexă 1
10 WS-905-M896-DTEMIS-MM PIC 9(002).
10 WS-905-M896-DTEMIS-GG PIC 9(002).
05 WS-905-M896-PROG PIC 9(007).
*... Elaborazione principale
MOVE DFHCOMMAREA(1:EIBCALEN) TO XX007W28-RECORD
PERFORM VERIFICARE
PERFORM FINE THRU FINE-EX
.
*---------------------------------------------------------------*
VERIFICARE.
IF XX007W28-I-DEB-NDG = LOW-VALUE AND
XX007W28-I-CRED-CC = LOW-VALUE
MOVE 1 TO OK
MOVE 'Campuri obligatorii XX007W28-I-DEB-NDG/CRED-CC'
TO XX007W28-DES-MSG
END-IF
IF OK = 0
STRING 'Compte du beneficiaire : ' DELIMITED BY SIZE
XX007W28-I-CRED-CC DELIMITED BY SIZE
INTO XX007W28-O-MOTIVAZIONE
END-STRING
PERFORM CONTROL-CARNPEZZI
*---------------------------------------------------------------*
01 AN00C126 PIC X(08) VALUE 'AN00C126'.
COPY AN000088.
COPY AN000750.
COPY XX0000PO.
01 XXTSQ0PO PIC X(8) VALUE 'XXTSQ0PO'.
COPY XX007TPO.
*---------------------------------------------------------------*
* Copy di commarea
*---------------------------------------------------------------*
COPY XX007W28.
*---------------------------------------------------------------*
36
Continuarea Anexă 1
LINKAGE SECTION.
01 DFHCOMMAREA PIC X(0500).
*---------------------------------------------------------------*
*****************************************************************
PROCEDURE DIVISION.
*---------------------------------------------------------------*
END-IF
.
VERIFICARE-EX. EXIT.
*--------------------------------------------------------------*
CONTROL-CARNPEZZI.
IF ( XX007W28-I-CARN-PEZZI1 IS NOT NUMERIC AND
XX007W28-I-CARN-TAGLIO1 IS NOT NUMERIC )
AND ( XX007W28-I-CARN-PEZZI2 IS NOT NUMERIC AND
XX007W28-I-CARN-TAGLIO2 IS NOT NUMERIC )
AND ( XX007W28-I-CARN-PEZZI3 IS NOT NUMERIC AND
XX007W28-I-CARN-TAGLIO3 IS NOT NUMERIC )
MOVE 'Completati unul din campurile CARN-PEZZI/TAGLIO'
TO XX007W28-DES-MSG
ELSE
IF XX007W28-I-CARN-PEZZI3 IS NOT NUMERIC
MOVE 0 TO XX007W28-I-CARN-PEZZI3
END-IF
IF XX007W28-I-CARN-PEZZI2 IS NOT NUMERIC
MOVE 0 TO XX007W28-I-CARN-PEZZI2
END-IF
IF XX007W28-I-CARN-PEZZI1 IS NOT NUMERIC
MOVE 0 TO XX007W28-I-CARN-PEZZI1
END-IF
IF ( XX007W28-I-CARN-PEZZI1 > 0 AND
XX007W28-I-CARN-TAGLIO1 >0 )
OR ( XX007W28-I-CARN-PEZZI2 > 0 AND
XX007W28-I-CARN-TAGLIO2 > 0 )
37
Continuarea Anexă 1
OR ( XX007W28-I-CARN-PEZZI3 > 0 AND
XX007W28-I-CARN-TAGLIO3 > 0 )
PERFORM CONTROL-PIESE
ELSE
MOVE 'CARN-PEZII/TAGLIO trebuie sa fie mai mare ca 0'
TO XX007W28-DES-MSG
END-IF
END-IF
.
CONTROL-CARNPEZZI-EX. EXIT.
*---------------------------------------------------------------*
CONTROL-PIESE.
COMPUTE WS-TOTAL-PIEZZI = XX007W28-I-CARN-PEZZI1 +
XX007W28-I-CARN-PEZZI2 +
XX007W28-I-CARN-PEZZI3
IF WS-TOTAL-PIEZZI > 30
MOVE 'Sunt mai mult de 30 piese pentru INSERARE'
TO XX007W28-DES-MSG
ELSE
PERFORM CONTROL-BOLETINO
END-IF
.
CONTROL-PIESE-EX. EXIT.
*---------------------------------------------------------------*
CONTROL-BOLETINO.
IF XX007W28-I-TIPO-BOLLETTINO = '8'
PERFORM CERCA-NDG
PERFORM LEGGI-TB905-SEG5
PERFORM LEGGI-TB905-SEG6
PERFORM OPERATI-CURSOR
ELSE
MOVE 'Nu ati selectat BULETINUL 8' TO XX007W28-DES-MSG
END-IF
.
38
Continuarea Anexă 1
CONTROL-BOLETINO-EX. EXIT.
*---------------------------------------------------------------*
CERCA-NDG.
INITIALIZE AN0088-CNTRL
39
Continuarea Anexă 1
A1-NOMVIA-DOM DELIMITED BY ' '
SPACE DELIMITED BY SIZE
A1-NOCIV-DOM DELIMITED BY SPACES
SPACE DELIMITED BY SIZE
WS-STR-A1-CAP-RES-O DELIMITED BY SPACES
SPACE DELIMITED BY SIZE
A1-COMUNE-DOM DELIMITED BY SPACES
SPACE DELIMITED BY SIZE
A1-PROV-DOM DELIMITED BY SPACES
INTO XX007W28-O-DEB-IND
END-STRING
END-IF
MOVE A1-LOCAL-RES TO XX007W28-O-DEB-LOC
END-IF
.
CERCA-NDG-EX. EXIT.
*---------------------------------------------------------------*
LEGGI-TB905-SEG5.
MOVE XX007W28-IST TO XXBPO-COD-IST
MOVE 5 TO XXBPO-SEGUITO
MOVE 'XXTS01' TO C-SQL-FUNZ
EXEC CICS LINK PROGRAM (XXTSQ0PO)
COMMAREA (XXPO-XX007TPO)
RESP(WS-VLINK)
END-EXEC
IF WS-VLINK NOT = DFHRESP (NORMAL)
MOVE '002' TO XX007W28-COD-ERR
MOVE 'Error select tabel XXTSQ0PO'
TO XX007W28-DES-MSG
END-IF
EVALUATE TRUE
WHEN N-SQL-CODE = ZEROES
MOVE XXTS01-XXPO-DATI TO XXBPO-DATI
IF XXBPO-M896-CCP-IBAN > SPACES
40
Continuarea Anexa 1
41
Continuarea Anexă 1
PERFORM FINE THRU FINE-EX
EVALUATE TRUE
WHEN WS-VLINK = DFHRESP (NORMAL)
MOVE I-XXTS01 TO DATI-SEGUITO-6
IF XXBPO-M896-CCP-INT1 NOT > SPACES
MOVE '004' TO XX007W28-COD-ERR
MOVE 'Intestazione del C/C postale non valorizzata'
TO XX007W28-DES-MSG
PERFORM FINE THRU FINE-EX
ELSE
MOVE XXBPO-M896-CCP-INT1 TO XX007W28-O-CCP-INTEST1
END-IF
WHEN OTHER
MOVE '003' TO XX007W28-COD-ERR
MOVE 'TABELLA 905 SEGUITO 6 ASSENTE'
TO XX007W28-DES-MSG
PERFORM FINE THRU FINE-EX
END-EVALUATE
.
LEGGI-TB905-SEG6-EX. EXIT.
*---------------------------------------------------------------*
OPEN-CURSOR.
MOVE 'XXTO01' TO C-SQL-FUNZ OF XXPO-XX007TPO
PERFORM CALL-XX00TBPO
.
OPEN-CURSOR-EX. EXIT.
*---------------------------------------------------------------*
FETCH-CURSOR.
MOVE 'XXTF01' TO C-SQL-FUNZ
PERFORM CALL-XX00TBPO
.
FETCH-CURSOR-EX. EXIT.
*---------------------------------------------------------------*
CLOSE-CURSOR.
42
Continuarea Anexă 1
MOVE 'XXTC01' TO C-SQL-FUNZ
PERFORM CALL-XX00TBPO
.
CLOSE-CURSOR-EX. EXIT.
*---------------------------------------------------------------*
CALL-XX00TBPO.
44
Anexă 2
Cod sursă
Codul 2 - Copia XX007W28.
*#<NOME-COPY:XX007W28>
*#<COMMAREA PROGRAMMA XX00CW28>
*****************************************************************
* 1.5. Copia de aria comuna (commarea) XX007W28 *
*****************************************************************
01 XX007W28-RECORD.
05 XX007W28-PARTE-FISSA.
10 XX007W28-RELEASE PIC X(003).
10 XX007W28-IST PIC 9(005).
10 XX007W28-FIL PIC 9(005).
10 XX007W28-TERM PIC X(004).
10 XX007W28-NDGO PIC 9(011).
10 XX007W28-COD-TRAN PIC X(004).
10 XX007W28-DATA-OPER PIC 9(008).
10 XX007W28-ORA-OPER PIC 9(008).
10 XX007W28-COD-ERR PIC X(003).
10 XX007W28-DES-MSG PIC X(380).
10 XX007W28-PAGSU PIC X.
10 XX007W28-PAGGIU PIC X.
10 XX007W28-PAGSU-O PIC X.
10 XX007W28-PAGGIU-O PIC X.
10 XX007W28-KEY-INIZ PIC X(100).
10 XX007W28-KEY-PAGSU PIC X(100).
10 XX007W28-KEY-PAGGIU PIC X(100).
10 XX007W28-FUNZIONE PIC X(8).
05 XX007W28-DATI-I.
10 XX007W28-I-CARN-STATO PIC X(002).
10 XX007W28-I-DEB-NDG PIC 9(012).
10 XX007W28-I-CRED-CC PIC X(035).
10 XX007W28-I-CARN-TAGLIO1 PIC 9(007)V9(02).
10 XX007W28-I-CARN-PEZZI1 PIC 9(003).
45
Continuarea Anexă 2
10 XX007W28-I-CARN-TAGLIO2 PIC 9(007)V9(02).
10 XX007W28-I-CARN-PEZZI2 PIC 9(003).
10 XX007W28-I-CARN-TAGLIO3 PIC 9(007)V9(02).
10 XX007W28-I-CARN-PEZZI3 PIC 9(003).
10 XX007W28-I-TIPO-BOLLETTINO PIC X(001).
05 XX007W28-DATI-O.
10 XX007W28-O-PROG-CARN PIC 9(017).
10 XX007W28-O-CARN-STATO PIC X(002).
10 XX007W28-O-CARN-STAMPA PIC X.
10 XX007W28-O-CARN-PRIMOBOLL PIC 9(018).
10 XX007W28-O-CARN-ULT-BOLL PIC 9(018).
10 XX007W28-O-CARN-TAGLIO1 PIC 9(007)V9(02).
10 XX007W28-O-CARN-PEZZI1 PIC 9(003).
10 XX007W28-O-CARN-TAGLIO2 PIC 9(007)V9(02).
10 XX007W28-O-CARN-PEZZI2 PIC 9(003).
10 XX007W28-O-CARN-TAGLIO3 PIC 9(007)V9(02).
10 XX007W28-O-CARN-PEZZI3 PIC 9(003).
10 XX007W28-O-TOT-IMP PIC 9(015).
10 XX007W28-O-CRED-CC PIC X(035).
10 XX007W28-O-DEB-NDG PIC 9(012).
10 XX007W28-O-DEB-INTEST1 PIC X(040).
10 XX007W28-O-DEB-INTEST2 PIC X(040).
10 XX007W28-O-DEB-IND PIC X(040).
10 XX007W28-O-DEB-LOC PIC X(040).
10 XX007W28-O-MOTIVAZIONE PIC X(070).
10 XX007W28-O-OPER-NDG PIC 9(012).
10 XX007W28-O-OPER-FIL PIC 9(005).
10 XX007W28-O-OPER-RAP PIC 9(012).
* Contul raportului de portofoliu
* N.B. In caz de imprimare la ouput/carnet BOLL
* contine fff/cccccccc (filiale de 3, bara, contul de 8)
10 XX007W28-O-DOM-PAG PIC X(001).
* Provenienta platii; valori prevazute:
* - "1" = Filiale
46
Continuarea Anexă 2
* - "2" = Banca
* - "3" = Poste
10 XX007W28-O-TIPO-BOLLETTINO PIC X(001).
* Tip Buletin:
* P - Postale
10 XX007W28-O-CCP PIC X(012).
* Cont Postal Curent
10 XX007W28-O-CCP-INTEST1 PIC X(055).
* Inregistrarea contului postal curent
10 XX007W28-O-CCP-IBAN PIC X(027).
* IBAN clientului emitent (titular ccp)
47