Intégrer une page Web ASP.NET dans Sharepoint Online

Comme nous l’avons souligné dans l’article https://laurentgermes.wordpress.com/2014/04/09/creer-un-formulaire-web-asp-net-connecte-a-dynamics-crm/, une page ASP.NET ne peut être hebergée directement dans un site SharePoint Online (alors que SharePoint OnPremise le permet).
Nous avons donc une page ASP.NET hébergée sur un site Azure ou un autre serveur et qui fonctionne indépendamment.
Cette page peut être interrogée dans un site SharePoint comme n’importe quelle autre page, à l’aide d’un composant Webpart.

Toutefois, du choix de ce composant Webpart dépend le succès de l’opération :-):

vous pourriez être tenté d’utiliser le composant “Page”
Ajout WebPart Page (wrong)

et ce serait une erreur, car rien ne s’afficherait alors.

les composants qui garantissent un accès à une page tierce sont :
le lien url, qui renvoie directement l’utilisateur sur la page ASP.NET hébergée

Insérer Lien
la “visionneuse de page”:
Visionneuse de Page

Visionneuse de Page 2

Vous obtenez alors une page Web intégrée à votre site SharePoint Online et capable de générer des enregistrements dans Dynamics CRM.

Formulaire ASP NET dans Site Sharepoint

 

la saisie et l’envoi de ce formulaire

Formulaire Saisie

se retrouve en quelques secondes dans le CRM

Prospect CRM suite saisie via Web

Les Processus d’alerte (Workflows se déclenchant à la création d’un enregistrement d’un certain type) peuvent ensuite compléter le flux en demandant à des utilisateurs précis de prendre connaissance de la demande envoyée.

 

 

Advertisements

#composant-webpart, #formulaire-web, #integration-sharepoint-crm, #lien, #prospect-crm, #sharepoint-online, #visionneuse-de-page-web

Créer un formulaire HTML dans Sharepoint Online

Office 365 offre la possibilité d’activer SharePoint Online. Parmi les sites que SharePoint propose, il existe un site Web lié à l’organisation qui permet de modéliser très rapidement un “Site Vitrine”.
Le but de cet article est de montrer comment l’on peut facilement utiliser ce site pour mettre à disposition un formulaire de contact, par simple ajout de code html.

Dans votre organisation Office 365 (portal.microsoftonline.com), allez dans SharePoint

Site Sharepoint

et ouvrez la collection de sites.

Collection Sites 1

 

Créez ou modifiez la page sur laquelle vous voulez mettre le formulaire:

Page

Vous disposez de plusieurs composants pour alimenter la page. Pour un formulaire html, le “code incorporé” suffit.
Code Incorporé

Pour notre exemple nous avons utilisé ce code:

script1

script2

Enregistrez et publiez:

enregistrer et publier

Le formulaire apparaît désormais dans votre page.

Si vous cliquez sur “envoyer”

Demo Formulaire

un email avec le résumé des informations saisies apparaît pré-rempli

exemple mail

L’expéditeur peut le compléter ou l’envoyer tel quel.

#formulaire-web, #html-2, #sharepoint-online

Créer un Formulaire Web (ASP.NET) connecté à Dynamics CRM

 

Dans le projet qui suit, nous voulons mettre à disposition d’internautes un formulaire de prise de contact, via lequel ils pourront nous soumettre un projet.

Nous voulons que l’envoi de ce formulaire génère un enregistrement dans Dynamics CRM.
Pour le formulaire de saisie, nous visons cette présentation:

Formulaire Saisie

Deux types d’intégration de ces informations peuvent être envisagés :

  1. Envoyer les informations collectées dans le formulaire par email à un contact (plusieurs niveaux d’intégration et de sélection du destinataire peuvent être envisagés). Cette option est abordée ici .
  2.  Créer directement un enregistrement dans Dynamics CRM 2013.

C’est sur ce deuxième cas que porte cet article, puisqu’il permet d’initier un enregistrement CRM et très vite d’utiliser les fonctions de Dynamics CRM dans la suite du processus.

Pré-requis :

Les éléments nécessaires sont les suivants:

  • (Une organisation Dynamics CRM Online activée).
  • Visual Studio 2012 ou 2013
  • Un compte Windows Azure  (une version d’évaluation peut être  activée ici)
  • Le Windows Azure SDK (téléchargeable ici)
  • Le SDK Dynamics CRM

Analyse des Données attendues: Choix de l’entité de destination

Puisque les personnes soumettant leurs demandes peuvent être de nouveaux contacts inconnus de la base client, nous décidons d’utiliser l’entité “Prospects” (Lead) de Dynamics CRM comme receptacle des données du formulaire.

Cette entité porte nativement des informations de contact, de société, ainsi que divers champs permettant de qualifier un projet: Description, Délai de décision, …

Nous commençons donc par analyser les champs que nous voulons voir renseignés quand une demande est formulée via le portail Web.

Image

nous notons pour cet exercice les champs suivants:

  • Sujet
  • Prénom (du Contact)
  • Nom (du Contact)
  • téléphone (du Contact)
  • Email (du Contact)
  • Nom de La société (qui permettra notamment de vérifier si la société est déjà cliente)
  • Budget
  • Date de fermeture estimée (que l’on considèrera être la date de prise de décision du client par défaut)
  • Délai d’exécution d’achat ( qui renseigne un ordre de grandeur horizon pour la prise de décision)

Analyse des exigences de la page Web:

Les formats de champs utilisés:

Parmi les champs sollicités, certains sont de simples champs texte, d’autres sont des listes de valeur ou des dates. Le format de chaque champs doit être identifié car il devra le cas échéant afficher des valeurs de choix issues du CRM, mais  surtout, envoyer des données compatibles avec le format de Destination ( celui du champs CRM qui doit être alimenté).

Ce dialogue avec Dynamics CRM (ou tout autre application) suppose une part de code “Serveur” qui nécessite d’accéder:

  1. à la bonne organisation (parceque l’on est poli…)
  2. d’être authentifié (parceque c’est mieux quand ça marche)

A ce stade, le futur environnement de la page Web qui  va porter ce formulaire doit être pris en compte:

le code serveur, qui se manifeste sous forme de fichier “.dll”,  est un incontournable, or certains sites Web comme SharePoint Online, qui est une plateforme mutualisée, ne tolèrent pas les DLL externes.

Cela amène à deux solutions de contournement:

  • Soit nous utilisons du code HTML complété par du Javascript
  • Soit nous développons la page en ASP.NET,  mais il faudra alors l’héberger en dehors de SharePoint Online et l’intégrer ensuite sous forme de Composant WebPart.

Pour cet exercice, nous optons pour la deuxième solution.

Création du Projet Page Web en ASP.NET

Vous pouvez partir d’un projet vide mais le SDK CRM 2013 présente l’avantage de proposer un projet “WebAppWalkthrough” qui porte une structure par défaut.

Image

Dans Visual Studio 2013 (ou autre version) , ouvrez ce projet existant ou créez le votre

Créez les champs du formulaire dans la page aspx

Pour le formulaire évoqué plus haut, nous utilisons ce code:

Formulaire ASP Design

<%@PageTitle=”Home Page”Language=”C#”MasterPageFile=”~/Site.master”AutoEventWireup=”true”CodeBehind=”Default.aspx.cs”Inherits=”WebAppWalkthrough._Default”%>

<asp:ContentID=”HeaderContent”runat=”server”ContentPlaceHolderID=”HeadContent”>

</asp:Content>

<asp:ContentID=”BodyContent”runat=”server”ContentPlaceHolderID=”MainContent”>

Merci de renseigner les informations suivantes:

<br/>

<br/>

Prénom:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtFirstName”runat=”server”></asp:TextBox>

<br/>

<br/>

Nom:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtName”runat=”server”></asp:TextBox>

<br/>

<br/>

Email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtEmail”runat=”server”TextMode=”Email”></asp:TextBox>

&nbsp;<br/>

<br/>

Telephone:&nbsp;

<asp:TextBoxID=”txtTel”runat=”server”TextMode=”Phone”Height=”25px”></asp:TextBox>

<br/>

<br/>

Nom de la Société:<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtCompanyName”runat=”server”Width=”300px”></asp:TextBox>

<br/>

<br/>

Objet :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtSujet”runat=”server”Width=”450px”></asp:TextBox>

<br/>

<br/>

Description du projet: ;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtDescription”runat=”server”Height=”150px”TextMode=”MultiLine”Width=”500px”></asp:TextBox>

<br/>

<br/>

Budget:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtBudget”runat=”server”></asp:TextBox>

<br/>

 

Récupération des Valeurs de l’horizon : pour l’horizon, nous devons récupérer une liste  de Valeurs du CRM (objet DropDown)

Horizon :&nbsp;&nbsp;&nbsp;

<asp:DropDownListID=”ddlHorizon”runat=”server”>

</asp:DropDownList>

<br/>

Récupération d’une date de décision : pour la date de decision, nous utilisons un objet “calendar”

Date de décision (si connue):

<asp:CalendarID=”Calendar1″runat=”server”></asp:Calendar>

<br/>

<asp:ButtonID=”btnSave”runat=”server”OnClick=”btnSave_Click”Text=”Envoyer mon projet”/>

</asp:Content>

Remarque:

Si besoin, ajoutez les champs utiles dans le fichier Xrm.cs en identifiant leur nom technique dans Dynamics CRM

Exemple : purchase timeframe

Type : Groupe d’Option

Exemple Purchase Timeframe

Add Purchase Timeframe

Add Purchase Timeframe Zoom

Equivalences de champs dans le CodeBehind

Faites ensuite les équivalences dans l’onglet Codebehind (cs) :

  • Déclarez les paramètres de connexion à l’organisation ainsi que l’utilisateur choisi pour se connecter:

{

CrmConnection cnx = CrmConnection.Parse(“Url=https:// VOTREORGANISATION.crm4.dynamics.com; Username=USER@ VOTREORGANISATION.com; Password=USER PASSWORD;”);

IOrganizationService service = newOrganizationService(cnx);

  • Effectuez le mapping associant le champ de formulaire et le champ CRM (ici lead.* propose les champs du prospect que l’on associe aux champs du formulaire)

Xrm.Lead lead = new Xrm.Lead();

lead.FirstName = txtFirstName.Text;

lead.LastName = txtName.Text;

lead.Description = txtDescription.Text;

lead.CompanyName = txtCompanyName.Text;

lead.MobilePhone = txtTel.Text;

lead.BudgetAmount = Decimal.Parse(txtBudget.Text);

lead.EstimatedCloseDate = newDateTime();

service.Create(lead);

Focus sur les formats:

  • Si vous utilisez un champ texte pour la mention d’un montant, il est recommandé d’ajouter une condition de vérification de donnée pour éviter tout incident de « lecture », exemple une condition vérifiant que le champ est renseigné: if (txtBudget.Text.Length > 0)
  • la valeur saisie doit ensuite être convertie dans un format qui sera compatible avec celui du champ de destination dans Dynamics CRM. La fonction « Parse » effectue cette action de conversion en décimale, en date, etc. :

Exemple:

{

lead.BudgetAmount = Decimal.Parse(txtBudget.Text);

}

  • De même pour les champs texte renseignant une Date: si vous avez utilisé un champ texte pour saisir la date ( et non un calendrier comme dans notre exemple), il faut convertir la saisie en date:

lead.EstimatedCloseDate = DateTime.Parse(txtDateDecision.Text);

  • Pour les valeurs de listes, il faut récupérer la liste et sélectionner la valeur qui nous intéresse (les valeurs d’option ont le plus souvent un identifiant technique et un libellé)

publicstaticList<OptionItem> GetGlobalOptionsetValues(string optionsetName, IOrganizationService service)

{

List<OptionItem> values = newList<OptionItem>();

var optionsetSelectedText = string.Empty;

var retrieveOptionSetRequest = newRetrieveOptionSetRequest { Name = optionsetName };

var retrieveOptionSetResponse = (RetrieveOptionSetResponse)service.Execute(retrieveOptionSetRequest);

var retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;

var optionList = retrievedOptionSetMetadata.Options.ToArray();

foreach (OptionMetadata optionMetadata in optionList)

{

values.Add(newOptionItem() { Value = optionMetadata.Value.Value, Text = optionMetadata.Label.UserLocalizedLabel.Label });

Une fois ces équivalences finalisées, la solution peut être généré.

Script Final:

Dans notre exemple, pour plus de facilité dans la reconnaissance des formats, nous avons décidé de ne reposer que sur la saisie du calendrier pour la mention de la date de décision. Le script est le suivant:

Default.aspx :

<%@PageTitle=”Home Page”Language=”C#”MasterPageFile=”~/Site.master”AutoEventWireup=”true”CodeBehind=”Default.aspx.cs”Inherits=”WebAppWalkthrough._Default”%>

<asp:ContentID=”HeaderContent”runat=”server”ContentPlaceHolderID=”HeadContent”>

</asp:Content>

<asp:ContentID=”BodyContent”runat=”server”ContentPlaceHolderID=”MainContent”>

Merci de renseigner les informations suivantes:

<br/>

<br/>

Prénom:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtFirstName”runat=”server”></asp:TextBox>

<br/>

<br/>

Nom:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtName”runat=”server”></asp:TextBox>

<br/>

<br/>

Email&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtEmail”runat=”server”TextMode=”Email”></asp:TextBox>

&nbsp;<br/>

<br/>

Telephone:&nbsp;

<asp:TextBoxID=”txtTel”runat=”server”TextMode=”Phone”Height=”25px”></asp:TextBox>

<br/>

<br/>

Nom de la Société:<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtCompanyName”runat=”server”Width=”300px”></asp:TextBox>

<br/>

<br/>

Objet :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtSujet”runat=”server”Width=”450px”></asp:TextBox>

<br/>

<br/>

Description du projet: ;<br/>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtDescription”runat=”server”Height=”150px”TextMode=”MultiLine”Width=”500px”></asp:TextBox>

<br/>

<br/>

Budget:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<asp:TextBoxID=”txtBudget”runat=”server”></asp:TextBox>

<br/>

<br/>

Horizon :&nbsp;&nbsp;&nbsp;

<asp:DropDownListID=”ddlHorizon”runat=”server”>

</asp:DropDownList>

<br/>

<br/>

Date de décision (si connue):

<br/>

<asp:CalendarID=”Calendar1″runat=”server”></asp:Calendar>

<br/>

<br/>

<br/>

<asp:ButtonID=”btnSave”runat=”server”OnClick=”btnSave_Click”Text=”Envoyer mon projet”/>

</asp:Content>

Default.aspx.cs :

using Microsoft.Xrm.Client;

using Microsoft.Xrm.Client.Services;

using Microsoft.Xrm.Sdk;

using Microsoft.Xrm.Sdk.Messages;

using Microsoft.Xrm.Sdk.Metadata;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace WebAppWalkthrough

{

publicclassOptionItem

{

publicint Value { get; set; }

publicstring Text { get; set; }

}

publicpartialclass_Default : System.Web.UI.Page

{

IOrganizationService service = null;

privatevoid ConnectToCRM()

{

CrmConnection cnx = CrmConnection.Parse(“Url=https:// VOTREORGANISATION.crm4.dynamics.com; Username=USER@ VOTREORGANISATION.com; Password=USER PASSWORD;”);

service = newOrganizationService(cnx);

}

protectedvoid Page_Load(object sender, EventArgs e)

{

// purchasetimeframe

if (!Page.IsPostBack)

{

ConnectToCRM();

var horizonValues = GetGlobalOptionsetValues(“purchasetimeframe”, service);

ddlHorizon.DataSource = horizonValues;

ddlHorizon.DataTextField = “Text”;

ddlHorizon.DataValueField = “Value”;

ddlHorizon.DataBind();

}

}

protectedvoid btnSave_Click(object sender, EventArgs e)

{

ConnectToCRM();

Xrm.Lead lead = new Xrm.Lead();

lead.FirstName = txtFirstName.Text;

lead.LastName = txtName.Text;

lead.Subject = txtSujet.Text;

lead.Description = txtDescription.Text;

lead.CompanyName = txtCompanyName.Text;

lead.MobilePhone = txtTel.Text;

if (txtBudget.Text.Length > 0)

{

lead.BudgetAmount = Decimal.Parse(txtBudget.Text);

}

lead.PurchaseTimeFrame = int.Parse(ddlHorizon.SelectedValue.ToString());

lead.EstimatedCloseDate = Calendar1.SelectedDate;

service.Create(lead);

}

protectedvoid txtName2_TextChanged(object sender, EventArgs e)

{

}

publicstaticList<OptionItem> GetGlobalOptionsetValues(string optionsetName, IOrganizationService service)

{

List<OptionItem> values = newList<OptionItem>();

var optionsetSelectedText = string.Empty;

var retrieveOptionSetRequest = newRetrieveOptionSetRequest { Name = optionsetName };

var retrieveOptionSetResponse = (RetrieveOptionSetResponse)service.Execute(retrieveOptionSetRequest);

var retrievedOptionSetMetadata = (OptionSetMetadata)retrieveOptionSetResponse.OptionSetMetadata;

var optionList = retrievedOptionSetMetadata.Options.ToArray();

foreach (OptionMetadata optionMetadata in optionList)

{

values.Add(newOptionItem() { Value = optionMetadata.Value.Value, Text = optionMetadata.Label.UserLocalizedLabel.Label });

}

Mise à disposition :

Ce projet a été conçue pour un site Web ASP.NET, il peut donc être hébergé dans une page Web ASP.NET Azure par exemple.
Nous exposons la procédure à suivre ici:

#asp-net, #azure-2

Herberger une page ASP.NET dans Azure

Nous avons vu comment créer une page ASP.NET communiquant avec Dynamics CRM ici:

Ce type de page porte du code serveur et ne peut être hébergée que sur certains types de solution, dont Azure.
Pour héberger notre formulaire, nous décidons de l’héberger sur un site Web ASP.NET dans Azure:
nous allons sur http://azure.microsoft.com et ouvrons notre compte.

Sites Web: Nouveau
Azure 1

nous sélectionnons une des options permettant la création d’une page ASP.NET

Choix Azure ASP

nous nommons le site

Choix Nom Site

et une fois généré, nous chargeons le profil de publication qui lui est associé:

Profil

Dans Visual Studio, nous ouvrons le projet qui nous intéresse et allons dans l’onglet “Générer/ Publier”

Publier

Publication Projet

Vous obtenez votre formulaire disponible en ligne :

http://votrepage.azurewebsites.net

NB : vous pouvez avoir une page blanche si le Windows Identity Model n’a pas été copié en local.

Pour corriger cela, allez dans les références de votre projet, sélectionnez les propriétés de Windows Identity Model et passez « copie locale » à « True »

Windows Identity Model

Copie Locale True

Votre formulaire doit désormais d’afficher quand vous tapez l’URL Azure.

 

Setup PowerBI to use Data from Dynamics CRM 2013

The following post is for our English audience and is regarding how to setup PowerBI to use data coming from Dynamics CRM (please forgive the printscreens in French as the original post is in my native tongue)

Nota bene: in the example below, we use a Dynamics CRM 2013 Online organization hosted in Office 365, but the principle remains the same whether you use Online or OnPremise organization.

PowerBi uses Excel, enrcihed with some add-ins that enable the connection to external database:

Prerequisites :

Download Power Query
http://www.microsoft.com/fr-fr/download/confirmation.aspx?id=39379

Download or activate PowerPivot :

For Excel 2010, PowerPivot can be downloaded:
http://office.microsoft.com/fr-fr/excel-help/complement-powerpivot-HA101811050.aspx
http://www.microsoft.com/fr-fr/download/details.aspx?id=7609
http://msdn.microsoft.com/fr-fr/library/ee210644.aspx

For Excel 2013, you just need to activate it:

http://office.microsoft.com/fr-fr/excel-help/demarrer-le-complement-power-pivot-dans-microsoft-excel-2013-HA102837097.aspx
Open Excel and go to File/ Options

BI1

Select « Complements COM » and check Microsoft Power Pivot pour Excel 2013:

BI2

You should now see 2 additional tabs when you open Excel:

PowerQUERYetPIVOT

Once Excel is configured with these add ins, you can start delcaring where you want to get the data from.

Identify the ODATA Service URL in Dynamics CRM :

In your Dynamics CRM organization, go to Setup/Customization/Developer ressources :

BI3

and copy the URL for ODATA  (ODATA REST Protocol):

BI4

This URL should be like :

https://yourorganization.crm4.dynamics.com/XRMServices/2011/OrganizationData.svc/

In Excel, in the PowerQuery Tab, go to “connect to external data”/ “from other sources”:

BI5

and select the “from ODATA”

BI6

By default, Excel will consider that you want to connect anonymously. This will cause troubles to access the data, so you must identify the user you use to access the data.

You do this in « Basic » or « Enterprise Account»

BI9

paste the URL for ODATA service that you identified previously.

BI10

Once the connection is done, you have access to the tables you need from Dynamics CRM and you can start building your reports:

BI11

I hope this helped!

#dynamics-crm, #powerbi, #powerpivot, #powerquery

Utiliser les fonctions PowerBI avec Dynamics CRM 2013

L’article ci-dessous indique comment activer PowerBI en vue d’interroger des données issues de Dynamics CRM.

La Solution PowerBI repose sur Excel sur lequel on ajoute certains composants permettant de se connecter aux bases de données externes.

Cela nécessite d’installer les composants et de préparer Excel à la connexion vers la base qui nous intéresse.

Prérequis :

Télécharger Power Query
http://www.microsoft.com/fr-fr/download/confirmation.aspx?id=39379

Télécharger ou activer PowerPivot :

Pour les versions Excel 2010 et antérieures, Power Pivot peut etre téléchargé :
http://office.microsoft.com/fr-fr/excel-help/complement-powerpivot-HA101811050.aspx
http://www.microsoft.com/fr-fr/download/details.aspx?id=7609
http://msdn.microsoft.com/fr-fr/library/ee210644.aspx

Pour Excel 2013, il est préinstallé et il suffit de l’activer :

http://office.microsoft.com/fr-fr/excel-help/demarrer-le-complement-power-pivot-dans-microsoft-excel-2013-HA102837097.aspx
Ouvrez Excel et allez dans Fichier/ Options

BI1

Sélectionnez « Compléments COM » et cochez Microsoft Power Pivot pour Excel 2013:

BI2

Vous devez désormais voir les 2 onglets quand vous lancez Excel :

PowerQUERYetPIVOT

Identifier l’adresse URL du Service ODATA de Dynamics CRM :

Allez dans Paramètres/Personnalisation/Ressources du Développeur :

BI3

Et notez l’adresse de Service de Données ODATA (Protocole ODATA REST):

BI4

L’URL doit normalement être :

https://votreorganisation.crm4.dynamics.com/XRMServices/2011/OrganizationData.svc/

Dans l’onglet PowerQuery, allez sur “Obtenir des données Externes/ A partir d’autres sources” :

BI5

et sélectionnez “A partir d’un flux ODATA”

BI6

Par défaut Excel vous propose un accès anonyme aux données :

BI8

Cela causera des problèmes d’accès aux données, donc il faut préciser l’utilisateur de connexion :
En utilisant les menus « Basique » ou « Compte d’Entreprise »

BI9

Et copiez l’adresse précédemment identifiée.

BI10

Une fois la connexion établie, vous obtenez par défaut les tables que vous pouvez exploiter pour la construction de vos rapports :

BI11

 

Vous êtes prêt pour construire vos Rapports.

#dynamics-crm, #powerbi, #powerpivot, #powerquery