Exemple de connexion ODBC entre Sage CRM et une base ACCESS (Multi Devis)

Dans l’exemple ci dessous, voici un exemple d’une connexion ODBC entre Sage CRM et Sage Multi Devis.

L’objectif étant de vous montrer comment réaliser en 10 étape la connexion entre deux applications via une liaison ODBC.




Comment changer le statut de la société lorsqu’une opportunité est signée ?

Il suffit de créer le trigger suivant dans SQL server !

CREATE TRIGGER [dbo].[ctr_ChangeStatus] ON [dbo].[Opportunity] FOR INSERT , UPDATE as

BEGIN

DECLARE @nFileid NUMERIC
DECLARE @nCompanyId AS Numeric (18,0) –Identifiant de la Société
DECLARE @strCurrentStatus AS varchar (80) –Statut de la société courante
DECLARE @strOppoStatus AS varchar (80) –Statut de l’opportunité

SELECT @nFileid = [oppo_opportunityId] FROM [INSERTED]
select @nCompanyId = [oppo_PrimaryCompanyId] FROM [INSERTED]
SELECT @strOppoStatus = [oppo_status] FROM [INSERTED]

select @strCurrentStatus = [comp_type] FROM company
where [company].[comp_companyId] = @nCompanyId

–Mise à jour
IF (@strCurrentStatus <> ‘Customer’) and (@strOppoStatus = ‘Won’)
BEGIN
update company
set comp_type = ‘Customer’ where comp_companyid = @nCompanyId
END
END




Visualiser les listes cibles statiques rattachées à une société

Lorsque vous consultez une liste cible, vous avez la possibilité de visualiser l’ensemble des sociétés rattachées à cette liste. Par contre la consultation d’une fiche ne vous permet pas actuellement de voir à quelles listes cibles est rattachée la société !!!!

Voici donc la manipulation à réaliser :

Il faut créer la vue suivante sur l’entité société :

CREATE VIEW vCompanyListesCibles AS  SELECT company.*,  ddcategory.ddcat_name as [Liste_cible],  ddata.ddata_createdDate as [Date_ajout]  FROM COMPANY inner join ddata  on ddata_entityid = comp_companyid  inner join ddfield on ddfld_fieldid = ddata_fieldid inner join ddcategory  on ddcat_categoryid = ddfld_categoryid  where ddata_entity = 5  and ddata_deleted is null

Il vous reste à créer une liste basée sur cette vue, puis un bloc de liste et enfin un onglet avec la fonction « executer le bloc » basé sur le bloc précédemment crée.

Voici le résultat :




Afficher ses clients non visités…

Je vous propose de réaliser un tableau de bord ou une liste clible affichant la liste de ses clients non visités. Cela signifie qu’aucune action n’est programmée associée à la fiche.

1 – Créer cette vue dans la table Company (activer les options permettant de la rendre accessible depuis un groupe ou un rapport) :

CREATE VIEW vCustomerWithoutCommunication

AS

SELECT Person.*, Company.*, Address.* FROM Company

LEFT JOIN Address ON Comp_PrimaryAddressId = Addr_AddressId

LEFT JOIN Person ON Comp_PrimaryPersonId = Pers_PersonId

where comp_companyid not in

(select comp_companyid from company

inner join comm_link on comp_companyid = cmli_comm_companyid

inner join communication on comm_communicationid = cmli_comm_communicationid

where cmli_deleted is null and comm_status = ‘Pending’)

 and comp_type = ‘Customer’

and comp_deleted is null

2 – Création d’une liste basée sur cette vue

3 – Création d’un bloc utilisant cette liste en placant la condition SQL suivante : comp_primaryuserid = #U

 Le tour est joué !!!!




Mettre à jour son agenda avant une démo

Ce script est à lancer dans l’outil de requêtes de SQL Server.

Il faut dans un premier temps créer un agenda avec des RDV et des tâches correspondant à la semaine en cours, puis mettre à jour son agenda en lancant cette requête (elle décale de 7 jours les communications) :

 update Communication

set Comm_DateTime = dateadd(day, 7, comm_datetime)

where Comm_DateTime is not null

update Communication

set Comm_ToDateTime = dateadd(day, 7, Comm_ToDateTime)

where Comm_ToDateTime is not null

update Communication

set Comm_DateTime = dateadd(day, 2, comm_datetime)

where Comm_DateTime is not null and datepart(weekday, comm_datetime) = 6

update Communication

set Comm_ToDateTime = dateadd(day, 2, Comm_ToDateTime)

where Comm_ToDateTime is not null and datepart(weekday, Comm_ToDateTime) = 6

update Communication

set Comm_DateTime = dateadd(day, 1, comm_datetime)

where Comm_DateTime is not null and datepart(weekday, comm_datetime) = 7

update Communication

set Comm_ToDateTime = dateadd(day, 1, Comm_ToDateTime)

where Comm_ToDateTime is not null and datepart(weekday, Comm_ToDateTime) = 7