trigger pour rendre obligatoire la saisie du représentant

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 pour rendre obligatoire la saisie du représentant

Messagede Treize » Jeu 4 Juin 2009 09:55

Bonjour Ă  tous,

Je travaille sur la gestion commerciale 100 Sql server V15.50. Je cherche à mettre en place un trigger lors de la création des documents de vente pour rendre obligatoire la saisie du représentant. J'ai bien avancé sur mon script, mais je bloque à un endroit et j'aurais aimé avoir vos lumières !! Voici le texte sql :
Code: Tout sélectionner
CREATE TRIGGER CTRLSTATE_UPD_F_DOCENTETE ON F_DOCENTETE FOR UPDATE AS
SET NOCOUNT ON
BEGIN
DECLARE @represantant int, @status int, @Msg char(255), @piece char(9)
DECLARE @domaine int, @type int
SELECT @status = DO_Statut, @represantant = CBRE_No, @piece = DO_Piece, @domaine = DO_Domaine, @type = DO_Type FROM INSERTED
-- Cas des DEVIS
IF (@domaine = 0 AND @type = 0)
BEGIN
IF @represantant <1
BEGIN
RAISERROR('Indiquer le vendeur !',11,1)
--RAISERROR(80012,11,1) WITH SETERROR
rollback transaction
RETURN
END
END
END


Mais actuellement, le trigger ne fonctionne pas car pour l'instant aucun message ne s'affiche, meme si le représentant est absent. Comme vous pouvez le voir, je me base sur le champ CBre_no qui, en allant voir dans la table, prend la valeur 0 lorsque le représentant n'est pas renseigné dans le document. C'est pour cela que je mets le critère IF @represantant <1

Mais ça ne fonctionne pas et je ne comprends pas pourquoi. Si quelqu'un a une idée, je suis preneur...
Merci d'avance
Treize
Contributeur
Contributeur
 
Messages: 74
Inscription: Jeu 18 Jan 2007 12:26

Re: trigger pour rendre obligatoire la saisie du représentant

Messagede OokieDookie » Lun 8 Juin 2009 17:31

Bonjour,

Contrôlez que le résultat de cette requête ne comporte pas de valeur NULL.

Code: Tout sélectionner
SELECT DISTINCT CBRE_No, COUNT(*)
FROM F_DOCENTETE
WHERE DO_Domaine = 0 AND DO_Type = 0
GROUP BY CBRE_No
ORDER BY CBRE_No

S'il y en a (en tout cas sur ma base c'est le cas), tentez d'initaliser votre valeur :
A la place de
Code: Tout sélectionner
IF @represantant <1


Mettez
Code: Tout sélectionner
IF ISNULL(@represantant, 0) <1


HTH,

PS : Pour mettre votre code en relief, sélectionnez-le avant de cliquer sur le bouton Code quand vous rédigez vos messages. C'est plus clair et surtout plus pratique pour les copier/coller :wink:
"L'expérience est le nom que chacun donne à ses erreurs." (O. Wilde)
Qualité et précision de la question conditionnent celles de la réponse. :roll:
:arrow:Nouveau venu ? Une urgence ? A lire...
:arrow:SMS-addict / M(o)ufles OEM ?
Avatar de l’utilisateur
OokieDookie
Modérateur
Modérateur
 
Messages: 1012
Inscription: Jeu 14 Fév 2008 13:50
Localisation: Paris

Re: trigger pour rendre obligatoire la saisie du représentant

Messagede Recce007 » Mer 10 Juin 2009 15:49

Bonjour,
N'oubliez pas non plus que les triggers ne fonctionneront pas sur F_DOCENTETE si vous utilisez la fonctionnalité " écrans personnalisés" de Sage 100... Décochez Ecran personnalisé et vous pourrez réellement tester votre trigger mais le champ représentant sera retourné en dessous du bouton Information du document... pas très convivial. Convivialité ou contrôle, vosu devrez choisir mais ne pourrez pas avoir les deux.
Et malheureusement cette incohérence fonctionnelle existera toujours en v.16.xx...
Vous pourriez peut-être contourner ce problème en attaquant non pas F_DOCENTETE mais en attaquant F_DOCLIGNE (avec comme contrôle supplémentaire DL_Valorise = 1 pour éviter les lignes de commentaires); le représentant en entête de document étant également repris à la ligne, si votre trigger détecte qu'il n'existe pas, votre avertissement invitera l'iutilisateur à le créer en entête et à le reporter sur chaque ligne.... Idée à creuser...

Excellente journée à vous
Recce007
Contributeur
Contributeur
 
Messages: 58
Inscription: Mer 8 Avr 2009 11:19

Re: trigger pour rendre obligatoire la saisie du représentant

Messagede Treize » Ven 19 Juin 2009 11:46

Bonjour,
Je rentre de vacances et je viens juste de prendre connaissance de vos réponses.
Merci beaucoup, je vais tester tout ça
Cordialement,
Treize
Contributeur
Contributeur
 
Messages: 74
Inscription: Jeu 18 Jan 2007 12:26

Re: trigger pour rendre obligatoire la saisie du représentant

Messagede Treize » Ven 19 Juin 2009 14:59

Re,

Merci à tous les deux, vos lumières me sont bien utiles et mon problème est résolu.

En vous remerciant,
Treize
Contributeur
Contributeur
 
Messages: 74
Inscription: Jeu 18 Jan 2007 12:26

Re: trigger pour rendre obligatoire la saisie du représentant

Messagede ZIZOU94 » Mar 30 Juin 2009 15:57

Pouvez vous poster votre trigger afin que je puisse l adapter a ma base.

cordialement
ZIZOU94
Posteur néophyte
Posteur néophyte
 
Messages: 1
Inscription: Ven 26 Juin 2009 10:18

Re: trigger pour rendre obligatoire la saisie du représentant

Messagede sop » Jeu 23 Juil 2009 12:22

bonjour Ă tous
le sujet suivant m'interesse.s'il vous plait j'utilise la version 13.1de sage est ce que ce trigger je peux l'avoir pour ma version.
merci.
sop
Super Contributeur
Super Contributeur
 
Messages: 138
Inscription: Ven 15 AoĂ» 2008 13:37

Re: trigger pour rendre obligatoire la saisie du représentant

Messagede hinazi » Mer 5 AoĂ» 2009 12:50

Bonjour Treize
pourriez vous pster votre trigger car j'ai 1 probleme semblable mais je n'arrive pas ale resoudre , j'aimerai m'inspirer du votre .merci bien
hinazi
Posteur habitué
Posteur habitué
 
Messages: 22
Inscription: Mer 15 Juil 2009 16:15

Re: trigger pour rendre obligatoire la saisie du représentant

Messagede sop » Sam 15 AoĂ» 2009 11:22

bonjour
j'utilise le script proposer par trize sur le devis il marche bien mais j'aimerais l'appliquer sur les bons de livraison et factures client .
merci de m'aider .
sop
Super Contributeur
Super Contributeur
 
Messages: 138
Inscription: Ven 15 AoĂ» 2008 13:37


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

Qui est en ligne

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