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 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
CREATE TRIGGER Modif_Sage_contact
ON ESSAIGAMIEC.dbo.F_CONTACTT
FOR DELETE,INSERT,UPDATE
AS
IF NOT EXISTS(SELECT * FROM INSERTED) AND EXISTS(SELECT * FROM DELETED) -- On est dans le cas d'une suppression : instruction DELETE
DELETE FROM AMIELEC_MSCRM.dbo.ContactBase
FROM AMIELEC_MSCRM.dbo.ContactBase Ct
INNER JOIN DELETED Del --Del pour deleted
ON Ct.LastName=Del.CT_Nom
IF @@ERROR <> 0
ROLLBACK TRANSACTION
IF EXISTS(SELECT * FROM INSERTED) AND NOT EXISTS(SELECT * FROM DELETED) -- On est dans le cas d'une insertion : instruction INSERT
--DECLARATION DES VARIABLES DE PROCEDURES
declare @id int, @num varchar(17), @nom varchar(35), @prenom varchar(35), @service int, @fonction varchar(35), @telportable varchar(21), @telephone varchar(21), @fax varchar(21), @mail varchar(69), @nom_complet varchar(70)
declare @conv_ContactId uniqueidentifier, @service_char varchar(35),@id_utilisateur uniqueidentifier, @businness_unit uniqueidentifier, @compteId uniqueidentifier,@identifiant_contact int
--DECLARATION DU CURSEUR
DECLARE curseur_contact cursor FOR
select cbMarq,CT_Num,CT_Nom,CT_Prenom,N_Service,CT_Fonction,CT_Telephone,CT_TelPortable,CT_Telecopie,CT_EMail
from INSERTED
--select @autoid=@@identity from inserted
--OUVERTURE DU CURSEUR ET LANCEMENT
OPEN curseur_contact
FETCH curseur_contact INTO @id, @num, @nom, @prenom, @service, @fonction, @telephone, @telportable, @fax, @mail
--POUR LE PREMIER ENREGISTREMENT
--CLEF PRIMAIRE DE LA TABLE CONTACTBASE généré de façon unique aléatoirement (uniqueidentifier)
SET @conv_ContactId = NEWID()
--INITIALISATION DE L'IDENTIFIANT
SET @identifiant_contact=1
--POUR DEFINIR LE PROPRIETAIRE DES DONNEES ET SA DIVISION ASSOCIEE
SET @id_utilisateur='50F3DA06-2E90-DB11-996E-0015E9F01122'
SET @businness_unit='CA227FFA-2D90-DB11-996E-0015E9F01122'
select @nom=CT_Nom FROM ESSAIGAMIEC.dbo.F_CONTACTT
select @prenom=CT_Prenom FROM ESSAIGAMIEC.dbo.F_CONTACTT
--NOM COMPLET DU CONTACT
SET @nom_complet=@nom+' '+@prenom
--POUR DEFINIR LE TYPE DE SERVICE
if @service=1
SET @service_char='Principal'
if @service=2
SET @service_char='Commercial'
if @service=3
SET @service_char='Achat'
if @service=4
SET @service_char='Informatique'
if @service=5
SET @service_char='Administratif'
if @service=6
SET @service_char='Autres'
if @service=7
SET @service_char='Direction'
--TANT QUE LE CURSEUR CONTIENT DES DONNEES
WHILE @@FETCH_STATUS = 0
BEGIN
--LANCEMENT DU CURSEUR
FETCH curseur_contact INTO @id, @num, @nom, @prenom, @service, @fonction, @telephone, @telportable, @fax, @mail
--CLEF PRIMAIRE DE LA TABLE CONTACTBASE généré de façon unique aléatoirement (uniqueidentifier)
SET @conv_ContactId = NEWID()
--INCREMENTATION DE L'IDENTIFIANT
SET @identifiant_contact=@identifiant_contact+1
--POUR DEFINIR LE PROPRIETAIRE DES DONNEES ET SA DIVISION ASSOCIEE
SET @id_utilisateur='50F3DA06-2E90-DB11-996E-0015E9F01122'
SET @businness_unit='CA227FFA-2D90-DB11-996E-0015E9F01122'
select @nom=CT_Nom FROM ESSAIGAMIELEC.dbo.F_CONTACTT
select @prenom=CT_Prenom FROM ESSAIGAMIELEC.dbo.F_CONTACTT
--NOM COMPLET DU CONTACT
SET @nom_complet=@nom+' '+@prenom
--POUR DEFINIR LE TYPE DE SERVICE
if @service=1
SET @service_char='Principal'
if @service=2
SET @service_char='Commercial'
if @service=3
SET @service_char='Achat'
if @service=4
SET @service_char='Informatique'
if @service=5
SET @service_char='Administratif'
if @service=6
SET @service_char='Autres'
if @service=7
SET @service_char='Direction'
--INSERTION DANS LES TABLES DE LA CRM
insert into AMIELEC_MSCRM.dbo.ContactBase(ContactId,AccountId,OwningBusinessUnit,OwningUser,OriginatingLeadId,StatusCode,StateCode,DeletionStateCode,
Description,LastName,FirstNAme,FullName,Department,JobTitle,EMailAddress1,Telephone1,MobilePhone,fax)
values(@conv_ContactId,@compteId,@num,@businness_unit,@id_utilisateur,null,1,0,0,@nom,@prenom,@nom_complet,@service_char,@fonction,@mail,@telephone,@telportable,@fax)
insert into AMIELEC_MSCRM.dbo.ContactExtensionBase(ContactId,New_compte_associe,New_id_contact,New_nom_societe)
values(@conv_ContactId,Null,@identifiant_contact,@num)
IF @@ERROR <> 0
ROLLBACK TRANSACTION
--FERMETURE ET DESALLOCAION DU CURSEUR
CLOSE curseur_contact
DEALLOCATE curseur_contact
END
IF EXISTS(SELECT * FROM INSERTED) AND EXISTS(SELECT * FROM DELETED) -- On est dans le cas d'une MAJ : instruction UPDATE
BEGIN
UPDATE AMIELEC_MSCRM.dbo.ContactBase
SET AMIELEC_MSCRM.dbo.ContactBase.LastName=Ins.CT_Nom
FROM AMIELEC_MSCRM.dbo.ContactBase
INNER JOIN INSERTED Ins --Ins pour inserted
ON AMIELEC_MSCRM.dbo.ContactBase.LastName=Ins.CT_Nom
IF @@ERROR <> 0
ROLLBACK TRANSACTION
END |
Partager