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
|
CREATE PROCEDURE dbo.PS_CREA_ANO_ENVIRONNEMENT(@PKFGT numeric(8), @PKFET numeric(8), @TYP_ANO_CDA char(12), @GRAV_CDA char(2), @PARAM1 char(80), @PARAM2 char(80), @JOB_LB char(25), @PROG_LB char(25))
/* Création d'anomalie de bas niveau (accès BD, acc ès serveur fichier, lecture/écriture fichier
@PKFGT : identifiant flux global traité
@PKFET : identifiant flux elementaire traité
@TYP_ANO_CDA : code alphanumerique du type anomalie
@GRAV_CDA : code alphanumerique de la gravit é
@PARAM1 :
@PARAM2 :
@JOB_LB : job appellant
@PROG_LB : etape dans le job */
AS
BEGIN
declare
@GRAV_CDN numeric(8),
@TYP_ANO_CDN numeric(8),
@DATEJOUR datetime,
@ERR int,
@MESSAGE_IN char(128),
@MESSAGE_OUT char(128),
@TYP_ANO_FORMAT_MSG_LB char(128)
if @PKFGT=0 or @PKFGT is NULL or @PKFET=0 or @PKFET is null
begin
return -500
end
else
/* Contrôle existence du flux */
if not exists(select * from ANO_FLUX_GLOBAL_TRAITE where FLUX_TRAIT_CDN=@PKFGT)
begin
return -400
end
else
if not exists(select * from ANO_FLUX_ELEM_TT where FLUX_ELEM_TT_CDN=@PKFET)
begin
return -400
end
else
/* Test type anomalie*/
select @TYP_ANO_CDN=TYP_ANO_CDN,@TYP_ANO_FORMAT_MSG_LB=TYP_ANO_FORMAT_MSG_LB from ANO_TYPE_ANOMALIE where TYP_ANO_CDA=@TYP_ANO_CDA
if @TYP_ANO_CDN =NULL
begin
return -600
end
else
/* Test gravité*/
select @GRAV_CDN=GRAV_CDN from ANO_GRAVITE where GRAV_CDA=@GRAV_CDA
if @GRAV_CDN=NULL
begin
return -600
end
else
begin
/* Calcul du message ANO_MSG_LB */
/* replace de %1 */
select @MESSAGE_IN=@TYP_ANO_FORMAT_MSG_LB
EXEC PS_REPLACE @MESSAGE_IN, @PARAM1 ,'P1',@MESSAGE_OUT OUT
/* replace de %2 */
IF @PARAM2 <>"" OR @PARAM2<>NULL OR RTRIM(@PARAM2)<>""
begin
select @MESSAGE_IN=@MESSAGE_OUT
EXEC PS_REPLACE @MESSAGE_IN, @PARAM2 ,'P2',@MESSAGE_OUT OUT
end
else
/* Calcul date jour*/
SELECT getdate()
SELECT @DATEJOUR=getdate()
/* Insert de l'anomalie */
INSERT INTO ANO_ANOMALIE(TYP_ANO_CDN,FLUX_ELEM_TT_CDN,FLUX_TRAIT_CDN,GRAV_CDN,ANO_DATE_DT,ANO_PARAM1_LB,ANO_PARAM2_LB,ANO_MSG_LB,ANO_JOB_LB,ANO_PROG_LB)
VALUES (@TYP_ANO_CDN,@PKFET,@PKFGT,@GRAV_CDN, @DATEJOUR, @PARAM1 , @PARAM2, @MESSAGE_OUT, @JOB_LB , @PROG_LB )
COMMIT TRAN
return 0
end
END
GO |
Partager