SQL - Gescom 100 - Trigger F_DOCENTETE

Cette section est consacrée aux développements d'applications interfacées avec les logiciels Sage.

Modérateurs: Super-Apogea, Super Modérateur

SQL - Gescom 100 - Trigger F_DOCENTETE

de mederic » Jeu 7 Fév 2013 19:23

Bonjour à tous,

Je suis sur une Gescom 100 16.05 Pack+ sous SQL 2005

Je souhaite mettre en place un Trigger sur la table F_DOCENTE, pour les ventes uniquement, qui compare le pays de livraison et la catégorie comptable pour renvoyer un message d'erreur le cas échéant.

Mon code est le suivant:
Code: Tout sélectionner
ALTER TRIGGER [dbo].[VAT] ON [dbo].[F_DOCENTETE]
FOR INSERT,UPDATE AS
BEGIN
 SET NOCOUNT ON;
   IF (SELECT TRIGGER_NESTLEVEL()) < 1
   BEGIN
    IF (Select DO_Domaine from INSERTED) = 0
      BEGIN
      DECLARE @Deliv_country varchar(50);
      DECLARE @Cat_Comptable varchar(2);
      select @Deliv_country = LI_Pays from F_LIVRAISON INNER JOIN INSERTED ON F_LIVRAISON.LI_NO = INSERTED.LI_NO
      select @Cat_Comptable = N_CatCompta from INSERTED
                                       IF @Cat_Comptable <> '1' and @Deliv_Country = 'Deutschland'
             BEGIN
             RAISERROR ('Message d'erreur',16,1)
             END
      END   
   END
END


Mon Trigger fonctionne sans fonctionner, je m'explique :
Quand je valide un document qui remplit les conditions, je n'ai pas le message d'erreur mais si j'effectue une modification, je renseigne le champ référence par exemple et que je valide par ENTER, j'ai le message qui apparait.
Ce que je souhaiterais c'est que ce message apparaisse dès le début lorsque je crée l'entête.
Si l'un de vous avait une idée salvatrice, ça m'aiderait bien.

Merci à tous.
Bonne soirée
Posteur néophyte
Posteur néophyte
 
Messages: 3
Inscription: Jeu 7 Fév 2013 19:06

Re: SQL - Gescom 100 - Trigger F_DOCENTETE

de asr31 » Lun 11 Fév 2013 23:46

Bonjour,

Les triggers sur entête ne s'activent que lorsque l'on valide l'entête soit en création soit sur modification d'une des valeurs d'entête (et non pas en cours de saisie d'un champ).
Le comportement est donc normal.

Cordialement,
ASR31

En recherche de missions.
Avatar de l’utilisateur
Super Contributeur
Super Contributeur
 
Messages: 2975
Inscription: Mer 13 Fév 2008 15:31
Localisation: TOULOUSE

Re: SQL - Gescom 100 - Trigger F_DOCENTETE

de mederic » Mar 12 Fév 2013 14:59

Bonjour,
Merci pour votre réponse
Je comprends bien qu'au cours de la saisie de champ le trigger ne s'active pas mais il ne s'active pas non plus quand je valide (via Enter) la création de mon en-tête.
Il se déclenche uniquement :
Quand j'ouvre puis ferme la fenêtre information (une fois l'en-tête créé)
Quand je modifie un champ (Référence par exemple) et que je valide par Enter.
Si je modifie le champ Référence et que je sors du champ en cliquant sur une ligne de document, la modification de Référence est bien enregistrée mais le Trigger ne se déclenche pas
Posteur néophyte
Posteur néophyte
 
Messages: 3
Inscription: Jeu 7 Fév 2013 19:06

Re: SQL - Gescom 100 - Trigger F_DOCENTETE

de asr31 » Mer 13 Fév 2013 22:11

Bonjour,

La partie 'cliente' de l'application SAGE procède souvent en plusieurs étapes SQL :
INSERT des champs clés et champs principaux puis UDATE des champs suivant.
De plus, tu es là sur de l'insert/update sur la table liée F_LIVRAISON (et non plus F_DOCENTETE).

Cordialement,
ASR31

En recherche de missions.
Avatar de l’utilisateur
Super Contributeur
Super Contributeur
 
Messages: 2975
Inscription: Mer 13 Fév 2008 15:31
Localisation: TOULOUSE


Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité