-
Notifications
You must be signed in to change notification settings - Fork 0
/
CALLNOMCLI.SQLRPGLE
92 lines (67 loc) · 9.17 KB
/
CALLNOMCLI.SQLRPGLE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
**free
ctl-opt option(*srcstmt) dftactgrp(*No);
// ds spécifique au prog callNomCli
/copy MILFORT/qcopsrc,cnomclids
// ds commune au prog callNOMCLI et au progr nomCli
/copy MILFORT/qcopsrc,nomCliDs
dcl-pi *n;
// paremeter list = un seul élément une ds = un seul parm = num cli
cnomclids likeDs(cnomcliDS_template);
//numCliChar char(5);
end-pi;
dcl-pr nomcli extpgm('NOMCLI');
toto likeDs(nomCliDs_template);
end-pr;
dcl-ds nomCliDs likeDs(nomCliDs_template);
// variables de travail
dcl-s w_message char(50);
dcl-s w_numCliNum packed(5:0);
dcl-s w_returnCodeNum int(10);
dcl-s errCheckParm ind;
exsr checkParm;
if not errCheckParm;
w_message = 'num client char : '
+ %trim(cnomCliDS.numCliChar)
+ ')';
dsply (%trim(w_message));
// nomCliDS.inDs.numClient = cnomcliDS.numCliInt;
nomCliDS.inDs.numClient = %dec(cnomCliDS.numCliChar:5:0);
nomCli(nomCliDs);
if nomCliDs.ouDS.returnCode = 0; // tout va bien
clear w_message;
w_message = ' in.n°Client '
+ %char(nomCliDS.inDS.numClient)
+ ' ou.nom '
+ %trim(nomCliDs.ouDS.nomClient)
+ ' ou.rc '
+ %char(nomCliDs.ouDS.returnCode)
+ ')';
dsply (%trim(w_message));
else; // erreur rencontree pendant execution nomcli
clear w_message;
w_message = ' erreur nomcli '
+ ' pour client numero : '
+ %char(nomCliDS.inDS.numClient);
dsply (%trim(w_message));
endif;
else;
// erreur parametres
endif;
*inlr = *on;
//---------------------------------------------------------------------
begsr checkParm;
errCheckParm = *off;
clear w_numCliNum;
// controle valeur de numClient
if cnomCliDS.numCliChar <> *blanks;
monitor;
w_numCliNum = %dec(cnomCliDS.numCliChar:5:0);
on-error *all; // numClient non numérique
dsply ('parametre non numérique');
errCheckParm = *on;
endmon;
else; // numClient = blanc
dsply ('parametre à blanc');
errCheckParm = *on;
endif;
endsr;