Bonjour,
j'utilise actuellement un curseur qui va modifier une tables, (tables contenant les abonnements à un états de reporting) et ensuite lance un job le problème c'est qu'il faut que je test si le job exécuté sous l'agent sql est encore en cour d'utilisations car quand mon curseur va passer sur la ligne suivant il va modifier la table des abonnements.
le but de cette requête est d'éviter de se taper la création des job a la main et les test si oui ou non le vendeur doit recevoir un mail le jour même.
la question que je me pose est donc la suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 declare parcours_vendeur cursor for Select Societe,Vendeur, NomPrenom, Email from T_Vendeur declare @Societe varchar(10) declare @Vendeur varchar(10) declare @NomPrenom varchar(32) declare @Email varchar(250) open parcours_vendeur fetch Parcours_vendeur into @Societe,@vendeur,@NomPrenom,@Email WHILE @@FETCH_STATUS = 0 begin --Test pour savoir si des différences sont associés au vendeur if @Vendeur in (select vendeur from t_client as C, t_difquantitecommandeefacturee as D where C.Client=D.Client and D.DateAnomalie=datediff(day,0,getdate())) begin -- mise à jour des champs pour prendre en compte les paramètre du vendeur en cours Update Reportserver.dbo.Subscriptions SET ExtensionSettings = '<ParameterValues><ParameterValue><Name>TO</Name><Value>'+@Email+'</Value></ParameterValue><ParameterValue><Name>IncludeReport</Name><Value>True</Value></ParameterValue><ParameterValue><Name>RenderFormat</Name><Value>PDF</Value></ParameterValue><ParameterValue><Name>Subject</Name><Value>Le rapport @ReportName a été exécuté à @ExecutionTime</Value></ParameterValue><ParameterValue><Name>IncludeLink</Name><Value>True</Value></ParameterValue><ParameterValue><Name>Priority</Name><Value>NORMAL</Value></ParameterValue></ParameterValues>', Parameters = '<ParameterValues><ParameterValue><Name>vendeur</Name><Value>'+@Vendeur+'</Value></ParameterValue></ParameterValues>' WHERE Report_OID = 'ebcc60eb-d37e-3569-b06b-83f81689604a' --exécution du job envoyant le mail au vendeur Exec msdb.dbo.sp_start_job N' myjob ' End fetch Parcours_vendeur into @Societe,@vendeur,@NomPrenom,@Email End Close parcours_vendeur deallocate parcours_vendeur
Existe il une procédure stockée qui nous renvoie l'information sur l'état du job ?
ou encore
Est il possible de retrouver dans une table le fait que le job est en cours ou bien est terminé?
et si OUI laquelle.
cordialement.
Partager