Trigger popup à la création de document

Forum consacré aux développements d'applications interfacées avec les logiciels Sage

Modérateurs: Super Modérateur, Modérateurs

Règles du forum
Merci de prendre connaissance des règles d'utilisation du forum

Avant de poster un nouveau message, utilisez la fonction RECHERCHER. Indiquez la VERSION de votre logiciel et toutes informations utiles à la résolution de votre question. Ne rédigez pas vos messages en MAJUSCULES. Soyez courtois et pensez aux formules de POLITESSE d'usage. Les messages à vocation COMMERCIALE ou PUBLICITAIRE seront supprimés.

*** LORSQU'UN SUJET EST RESOLU, SON AUTEUR DOIT EDITER LE 1ER MESSAGE DU SUJET EN HAUT DE PAGE ET COCHER "SUJET RESOLU" ***

Trigger popup à la création de document

Messagede yFlory » Mer 30 Mar 2011 16:28

Bonjour,
J'ai créé dans ma gescom deux informations libres sur les clients appelés POPUP1 et POPUP2.
Ces deux informations libres contiennent les particularités du client (par exemple, si il est dans une région montagneuse où le colis risque d’être abimé dans les transports, il faut faire un colis plus résistant) que je souhaite faire apparaitre dans une popup à la création d'un document de vente.

La meilleure (et certainement la seule...) solution me semble ĂŞtre un trigger Ă  l'insertion dans F_DOCENTET qui va chercher les informations libres dans F_COMPTET.

J'ai fait le trigger suivant mais je ne suis pas sur de sa validité :S

Code: Tout sélectionner
CREATE TRIGGER TG_POPUP ON [dbo].[F_DOCENTET]
FOR INSERT
AS

   IF (SELECT COUNT(*) FROM INSERTED WHERE Do_Domaine = 0) = 1 BEGIN
      
   DECLARE @popup varchar(200), @alert varchar(250), @cli varchar(20)
      SELECT @cli = DO_Tiers

      SELECT @popup = POPUP1 + ' ' + POPUP2 FROM F_COMPTET, FCOMPTET WHERE DO_Tiers = CT_Num
      
      IF @popup != ''
              

            SELECT @alert = 'Le tiers ' + @cli + ' a la particularitĂ© suivante : ' + @popup
              
            EXEC dbo.CB_SendMessage @@SPID, @alert

      END   
   END   
END


J'ai une erreur sur le dernier END

Code: Tout sélectionner
Msg 156, Niveau 15, État 1, Procédure TG_POPUP, Ligne 21
Syntaxe incorrecte vers le mot clé 'END'.


Si quelqu'un peut m'aider, j'ai vraiment du mal avec les triggers...

D'avance merci!
Dernière édition par yFlory le Jeu 14 Avr 2011 15:29, édité 1 fois.
Sage 100 Gestion commerciale version 16.05
yFlory
Posteur habitué
Posteur habitué
 
Messages: 21
Inscription: Jeu 13 Jan 2011 09:57

Re: Trigger popup à la création de document

Messagede yFlory » Jeu 31 Mar 2011 09:25

J'ai essayé le code suivant :
Code: Tout sélectionner
CREATE TRIGGER TG_POPUP2 ON [dbo].[F_DOCENTETE]
FOR INSERT
AS

IF (SELECT COUNT(*) FROM INSERTED WHERE Do_Domaine = 0) = 1 BEGIN
   
DECLARE @popup varchar(139), @popupn1 varchar(69), @popupn2 varchar(69), @alert varchar(250), @cli varchar(17)
   SELECT DO_Tiers INTO cli FROM INSERTED

   SELECT POPUP1 INTO popupn1 FROM F_COMPTET, F_DOCENTETE WHERE Do_Tiers = CT_Num
   SELECT POPUP2 INTO popupn2 FROM F_COMPTET, F_DOCENTETE WHERE Do_Tiers = CT_Num
   SELECT @popup = @popupn1 + ' ' + @popupn2
   
   IF @popup IS NOT NULL
           

            SELECT @alert = 'Le tiers ' + @cli + ' a la particularitĂ© suivante : ' + @popup
           
            EXEC dbo.CB_SendMessage @@SPID, @alert

   END       
GO


Plus de message d'erreur mais rien ne se passe lors de la validation d'un document de vente pour un client pour lequel j'ai renseigné popup1 et popup2...
Sage 100 Gestion commerciale version 16.05
yFlory
Posteur habitué
Posteur habitué
 
Messages: 21
Inscription: Jeu 13 Jan 2011 09:57

Re: Trigger popup à la création de document

Messagede IMPERIAL » Ven 1 Avr 2011 09:44

Bonjour,

Un trigger c'est bien ... mais c'est toujours en dernier ressort.

Voici une solution plus simple.

Crée une info libre de type entete de document.

Teste si ton info libre = XXX alors utilise la fonction ALERTE() pour envoyer un POPUP ...

C'est plus simple et ça fonctionne sur toutes les infos libres.

Cdlt
IMPERIAL
Consultant Senior
Il n'y a pas de secret pour réussir; c'est le fruit de l'apprentissage du travail acharné et des leçons tirées de l'échec.

Colin Luther Powell
Avatar de l’utilisateur
IMPERIAL
Super Contributeur
Super Contributeur
 
Messages: 1185
Inscription: Jeu 6 AoĂ» 2009 12:39
Localisation: LEVALLOIS PERRET

Re: Trigger popup à la création de document

Messagede yFlory » Mar 12 Avr 2011 16:23

Bonjour Imperial et merci pour ta réponse.
Désolé de répondre seulement maintenant mais certains projets dans mon entreprise m'ont forcé à laisser Sage de coté quelques temps...

Je pense comprendre ta solution mais je ne vois pas comment elle se lance...
Pour moi un test ne s'effectue qu'à l'exécution d'une requête... C'est pour cette raison que je souhaitais utiliser un trigger.
Sage 100 Gestion commerciale version 16.05
yFlory
Posteur habitué
Posteur habitué
 
Messages: 21
Inscription: Jeu 13 Jan 2011 09:57

Re: Trigger popup à la création de document

Messagede IMPERIAL » Mar 12 Avr 2011 16:41

Bonjour

Tu mets dans tes popup1 et 2 tes infos Ă  tester ...

Tu crées une info libre en entete de document de type texte et coches valeur calculée

tu y mets ceci :

Si CompteT.InfoLibValeur(4) = "MONTAGNE" Alors
Alerte("ATTENTION :CLIENT EN MONTAGNE")
FinSi



CompteT.InfoLibValeur(4) : ton popup1 c'est la 4ème info libre de la liste
"MONTAGNE" la valeur que tu testes
Alerte Le message

tu peux imbriquer les si, en mettre plusieurs Ă  la suite ...

Cdlt
IMPERIAL
Consultant Senior
Il n'y a pas de secret pour réussir; c'est le fruit de l'apprentissage du travail acharné et des leçons tirées de l'échec.

Colin Luther Powell
Avatar de l’utilisateur
IMPERIAL
Super Contributeur
Super Contributeur
 
Messages: 1185
Inscription: Jeu 6 AoĂ» 2009 12:39
Localisation: LEVALLOIS PERRET

Re: Trigger popup à la création de document

Messagede yFlory » Mar 12 Avr 2011 17:19

Merci, je vais essayer ça et je te tiens au courant!!
Sage 100 Gestion commerciale version 16.05
yFlory
Posteur habitué
Posteur habitué
 
Messages: 21
Inscription: Jeu 13 Jan 2011 09:57

Re: Trigger popup à la création de document

Messagede yFlory » Jeu 14 Avr 2011 10:54

Bonjour,
Je n'ai pas réussi à atteindre le résultat souhaité à l'aide de ta solution, mais j'y suis quand même parvenu avec un trigger...
L'urgence du besoin Ă  fait que j'ai dut rester sur un trigger puisque celui-ci fonctionne...

Encore merci pour ton aide, j'essaierai de débloquer le micmac en utilisant ta solution et en cherchant ce qui ne fonctionne pas mais en attendant je garde le trigger.
Sage 100 Gestion commerciale version 16.05
yFlory
Posteur habitué
Posteur habitué
 
Messages: 21
Inscription: Jeu 13 Jan 2011 09:57


Retourner vers Développements ODBC, Objets métiers, SQL

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités