IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Microsoft Dynamics CRM Discussion :

Faire du reporting services dans la CRM avec une autre BD que la CRM


Sujet :

Microsoft Dynamics CRM

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut Faire du reporting services dans la CRM avec une autre BD que la CRM
    Bonjour,
    Je cherche à savoir s'il est possible dans la CRM d'afficher des rapports de Reporting Services (jusque là ça devrait aller) mais avec une base de données extérieur à la CRM pour laquelle évidemment les clients ont les droits de consultation

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Quand tu dis "une base de données extérieur à la CRM", est-ce que tu peux préciser STP ? Elle est sur une autre serveur ? Sur le même serveur ? Une autre instance ? La même instance ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Pardon pour le "pas clair".

    Mon serveur CRM s'appellerait srv-crm (une CRM) 2013 sur le domaine dmn.fr

    Mon rapport à intégrer dans la CRM utilise comme source de données une base de donnée bd1 sur un serveur SQL srv-sql appartenant au même domaine?

    Donc les serveurs src-crm et srv-sql sont distincts et appartiennent au même domaine.

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Merci pour cette précision.

    La solution la plus simple est de rajouter un linked server depuis ta base CRM vers l'autre base de données.

    Cependant, si tes serveurs sont géographiquement distants, ou s'il y a une passerelle internet entre les deux, etc. les performances seront désastreuses.

    Si c'est le cas, tu auras principalement deux solutions à envisager :
    - répliquer/mirorer la base externe vers une nouvelle base de données sur le serveur qui héberge la base CRM.
    - créer une DB sur le serveur qui héberge la base CRM, et utiliser un ETL (ex. SSIS) afin de synchroniser les données de la base de données externe.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Ok merci pour ta réponse :
    J'essaierai mais juste pour me mettre sur la piste : si la source de données n'est pas un moteur SQL mais Analyse Services :
    - est ce que je peux faire un serveur lié vers Analyse Services ?

    Pour l'autre solution : Si le serveur Analyse Services est sur le serveur CRM : cela fonctionnerait il ?

    J'avais pensé à une autre solution mais pour le moment mes tests ne fonctionnent pas :
    Je savais (et j'ai pas mal galéré pour le configurer d'ailleurs) que depuis un serveur Reporting Services on pouvait attaquer des bases de données d'un autre serveur en authentification Windows via un empreint d'identité. (L'identité du client ne se perd pas quand RS attaque la source de données).

    Je me demandais si je ne pouvais pas faire la même chose en utilisant un compte de domaine qui lance le pool d'application CRM sur IIS et ce compte aurait la délégation d'identité du client.

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Euh ben ta question portait sur une base de données SQL Server, donc ma réponse ne concernait que ce cas de figure. S'il s'agit d'Analysis Service c'est une autre histoire et il faut ouvrir un autre topic (1 topic = 1 question).
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  7. #7
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    En réalité pour être tout à fait franc, je t'ai posé la question sans regarder mais je te confirme qu'on peut lié un objet Analyse Services comme serveur lié à la base de donnée, je viens de faire le test et je retrouve mon cube dans l'explorateur d'objets de SSMS.
    Par contre je n'ai pas encore interrogé ma source de données depuis SSRS et encore moins visualisé mon rapport dans la CRM donc je ne peux encore marqué le post comme Résolu

  8. #8
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Re,
    En fait j'ai un peu investigué : je ne pense pas qu'il soit nécessaire d'appeler ma source de donnée externe depuis un serveur lié.
    Je pense qu'il est tout à fait possible, si le client a le droit de se connecter à la source de données, de configurer un compte de domaine qui autorise la délégation d'identité du client sur la classe de service http et que le pool d'application de la CRM prendrait l'identité de ce compte de domaine.
    En fait je pense que c'est la même problématique que j'ai lancé sur ce forum il y a deux ou trois semaines avec Reporting Services :

    http://www.developpez.net/forums/d14...-kerberos-sql/

    Sauf qu'il faut remplacer Reporting Services par CRM/IIS. Je pense que pour le paramétrage des SPN c'est la même classe de service (http).
    Ce qui m'a mis sur la voie c'est qu'en regardant le journal d'évenement SQL de ma source de données la connexion a essayé d'être établie avec le compte de domaine qui lance le service du pool d'application. D'ailleurs en faisant l'essai de lui attribuer les droits dans la base mon rapport s'affiche. Donc ce qui m'amène à penser que la délégation d'identité ne s'est pas produite correctement.

    En vérifiant un peu cette page WEB :

    http://msdn.microsoft.com/fr-fr/libr...(v=vs.71).aspx

    Pour la délégation d'identité (via le protocole Kerberos), je me rends compte qu'il faut une authentification de type Windows et non une authentification anonyme.
    Or dans IIS les deux étaient activées : j'ai désactivé l'authentification anonyme mais une erreur générique apparait à l'affichage de ma page web. D'où ma question comment lancé le service de mon pool d'application avec un compte de domaine sans activer l'authentification anonyme

  9. #9
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    Bon j'ai un tout petit peu avancé dans mon analyse :

    d'abord ce que je n'avais pas percuté c'est que pour afficher les rapports ce n'est pas le processus IIS qui est lancé mais celui de Reporting Services.

    Du coup ce que j'ai fait c'est que j'ai lancé mon Reporting Services avec le même compte de domaine que celui de II2 (svc-crm) (celui pour lequel la déléguation est déjà activé).

    Puis j'ai changé le fichier rsreportservice.config pour mettre du RSWindowsNegotiate en lieu et plan du RSWindowsNTLM.

    Puis dans ReportService j'ai activé les erreurs distants.
    Et ça ne marche toujours pas mon erreur est :

    [ReportServerException : Echec de l'ouverture de la session de l'utilisateur '{<GUID>}'. ]

    [ReportServerException : Impossible de créer une connexion à la source de données 'DataSource'. (rsErrorOpenningConnection]
    La deuxième partie de l'erreur ressemble à une délégation d'identité qui n'a pas fonctionné et est cohérent avec le journal d'évenement qui me dit que sur ma source de données (impossible d'établir une connexion avec svc-crm)

    Mais la première partie est plus obscure : j'ai vérifié le GUID et il correspond à mon compte dans la CRM mais puisque l'erreur est préfixé par ReportServer, j'ai vérifié les utilisateurs dans la BDD Report Server et le GUID de mon utilisateur n'est pas le même.

    Du coup je me demande si l'erreur ne vient pas du fait que ReportServer n'arrive pas à matcher les 2 erreurs : ce qui semble bizarre puisque pour un Rapport standard de la CRM il n'y a pas de problème

  10. #10
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2008
    Messages : 464
    Points : 268
    Points
    268
    Par défaut
    OK J'ai réinstallé l'extension des rapports SSRS pour Dynamics CRM et j'ai lancé le service Report Server avec le compte dmn\svc-crm (qui est le même compte que celui qui lance le Pool d'application de la CRM sur le serveur de la CRM).

    Là j'ai l'erreur :
    Login failed for user 'dmn\svc-crm' ... dans ma base de données.

    Ce qui est bizarre car j'ai défini mes SPN et ma délégation de service pour les comptes dmn\svc-crm et dmn\svc-sql (le compte qui lance le service SQL Server sur le serveur distant pour la base de données externes).

    En plus mon navigateur client, IIS et le fichier rsreportserver.config du serveur CRM sont paramétré pour fonctionner en authentification Windows intégré avec provider Kerberos (Negotiate pour être tout à fait exact).


    Donc à priori l'identité du client devrait être utilisé pour la connexion à la base de données distantes.

    Je confirme cependant qu'on peut se connecteur à une base distante sans faire de serveur lié ou héberger la base sur le serveur de CRM puisqu'en faisant l'essai de donner les droits au compte dmn\svc-crm dans la base de données distantes mon rapport s'affiche.

    Quelque chose me dit que c'est un problème Kerberos et mon petit doigt me dit que c'est du au fait que j'utilise le même compte de service pour le service IIS/CRM et celui de report server :
    - 1) C'est recommandé dans la doc CRM de ne pas utiliser le même compte
    - 2) J'avais déjà posté le même genre de pb (voire Forum SQL Server) pour un problème d'authentification Kerberos avec Report Server et SQL Server. Le pb venait du fait que j'utilisais le même compte pour le service SQL que pour report server.
    Le pb est qu'ici je ne sais que faire : si j'utilise deux comptes différents, compte tenu que Report Server et la CRM sont sur le même server et utilise la même classe de service (http), si j'utilise deux comptes différents pour les 2 services je vais avoir un doublon de SPN. L'idéal pour un essai c'est d'installer mon service Report Server utilisait pour la CRM sur un autre serveur que celui de la CRM mais :
    - 1) Je ne sais pas comment faire
    - 2) Je voudrais pouvoir le faire sans casser ma BD et ma solution déjà en place

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/07/2013, 16h06
  2. Configurer Report Services dans un cluster
    Par orafrance dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/10/2009, 11h04
  3. Integration de SQL Reporting Services dans Sharepoint
    Par Gond63 dans le forum SharePoint
    Réponses: 0
    Dernier message: 21/08/2009, 14h22
  4. Réponses: 4
    Dernier message: 03/10/2008, 13h37
  5. Injection avec une autre méthode que le setter.
    Par Tiaps dans le forum Spring
    Réponses: 2
    Dernier message: 22/05/2007, 23h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo