Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > CRM > Microsoft Dynamics CRM
Microsoft Dynamics CRM Forum d'entraide Microsoft Dynamics CRM
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/04/2011, 17h22   #1
Membre régulier
 
Homme Jérôme Lambert
Développeur .NET
Inscription : décembre 2010
Messages : 99
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Lambert
Âge : 27
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : décembre 2010
Messages : 99
Points : 99
Points : 99
Par défaut [CRM 2011]mise à jour produit

Bonjour,

Je me demandais comment je pouvais gérer le fait de rendre des produits inactifs durant une importation?

Je m'explique:
Je reçois une base de données de mon fournisseur principal, je mets à jour les produits (je me demande d'ailleurs ce que fait CRM2011 s'il voit un produit déjà dedans? Mise à jour du produit ou il le passe simplement sans mettre à jour les champs? Enfin ça je testerai)
Edit: J'ai ma réponse, il met tout simplement les imports en erreur Conflit d'ID...

Dans les produits que mon fournisseur me fournis, il retire les produits qu'il ne peut plus avoir, et c'est ces produits là que je voudrais passer à inactif (supprimer non car je dois encore avoir suivi des clients qui ont ce produit).

J'espère avoir été un peu clair. Il me faudrait un script ou je ne sais pas quoi que je lancerais en même temps que l'importation (javascript, VB ou C# je ne sais pas trop où mettre un code qui ferait ça)

Jérôme
Jerome2606 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 07h57   #2
dsy
Membre habitué
 
Inscription : septembre 2002
Messages : 75
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 75
Points : 100
Points : 100
Je ne crois pas qu'il soit possible de désactiver un produit avec l'outil d'importation de CRM 2011. Je ne me souviens pas avoir vu cette option, du moins dans la version 4.
Par contre, il est effectivement possible de créer un programme en C# pour désactiver les produits supprimés.

Soit tu es développeur et motivé, tu peux alors le faire toi même grâce au SDK de CRM.

Soit tu engages un développeur qui connaisse C# et Dynamics CRM pour créer cet outil. Tu pourrais carrément lui demander de faire un outil d'importation personnalisé.
dsy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 10h00   #3
Membre régulier
 
Homme Jérôme Lambert
Développeur .NET
Inscription : décembre 2010
Messages : 99
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Lambert
Âge : 27
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : décembre 2010
Messages : 99
Points : 99
Points : 99
Déjà merci de ta réponse.
J'ai trouvé une réponse à ma question pour désactiver les produits, j'utilise une métadonnée oui/non (appelée désactivé) et un workflow à la demande qui regarde si désactivé == oui alors désactiver le produit.

Maintenant je cherche comment quand je fais une importation écraser les produits dont l'ID est le même dans le CRM (pour le moment quand je refais importation même si je modifie des champs dans le fichier d'importation, il me met erreur de conflit dans l'ID).
Je regarde encore un peu à droite à gauche, si vous avez des idées ...

Jérôme
Jerome2606 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 18h05   #4
Membre régulier
 
Homme Jérôme Lambert
Développeur .NET
Inscription : décembre 2010
Messages : 99
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Lambert
Âge : 27
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : décembre 2010
Messages : 99
Points : 99
Points : 99
Après de multiple recherche je me heurte à un problème au niveau du SDK (C#) du CRM 2011.
Voici mon code:
Code :
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
//Retrieve entities
            DataCollection<Entity> allProducts = service.RetrieveMultiple(queryProducts).Entities;
            Decimal newPrice = 0;
            //Retrieve all entities per page
            while (allProducts.Count > (page.Count - 1))
            {
                allProducts = service.RetrieveMultiple(queryProducts).Entities;
                foreach (Product product in allProducts)
                {
                    for (int i = 1; i < ArrProductTechdata.Length; i++)
                    {
                        if (((Array)ArrProductTechdata.GetValue(i)).GetValue(1).ToString() == product.ProductNumber.ToString())
                        { 
                            //On a trouvé le produit correspondant on met à jour ses données
                            product.Description = ((Array)ArrProductTechdata.GetValue(i)).GetValue(0).ToString();
                            if(product.VendorPartNumber != null)
                                product.VendorPartNumber = ((Array)ArrProductTechdata.GetValue(i)).GetValue(2).ToString();
                            if(product.SupplierName != null)
                                product.SupplierName = ((Array)ArrProductTechdata.GetValue(i)).GetValue(6).ToString();
                            newPrice = 0;
                            if(product.Price != null & Decimal.TryParse(((Array)ArrProductTechdata.GetValue(i)).GetValue(7).ToString(),out newPrice))
                                product.Price.Value = newPrice;
                            newPrice = 0;
                            if (product.CurrentCost != null & Decimal.TryParse(((Array)ArrProductTechdata.GetValue(i)).GetValue(8).ToString(), out newPrice))
                                product.CurrentCost.Value = newPrice;
                            //if(product.QuantityOnHand != null)
                            //    product.QuantityOnHand.Value = (decimal)((Array)ArrProductTechdata.GetValue(i)).GetValue(9);
                            //product.GetAttributeValue<String>("new_ean");
                            break;
                        }
                    }
                }
                queryProducts.PageInfo.PageNumber += 1;
            }
Ce code me permet de lire un par un la liste des produits que me fournit mon fournisseur et de les comparer (par l'id) dans ceux dans le CRM.
Ma question est très simple, comment accéder aux attributs personnalisé (de type new_string)? Comment écrire dans ceux-la?
Dans mon code, ce serait par exemple:
mais évidemment il ne le trouve pas.
je vois bien comment aller chercher la valeur:
Code :
product.GetAttributeValue<String>("new_ean");
mais comment je peux écraser cette valeur par une nouvelle.


Merci d'avance,

Jérôme
Jerome2606 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 18h09   #5
Membre expérimenté
 
Avatar de KibitO
 
Chef de projet MOA
Inscription : septembre 2004
Messages : 537
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projet MOA

Informations forums :
Inscription : septembre 2004
Messages : 537
Points : 528
Points : 528
Si tu fais référence à ton webservice avec "uniquename=<ORGANISATION>", tu peux les atteindre. Sinon il te faut passer par les DynamicEntities.
KibitO est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 09h56   #6
Membre régulier
 
Homme Jérôme Lambert
Développeur .NET
Inscription : décembre 2010
Messages : 99
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Lambert
Âge : 27
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : décembre 2010
Messages : 99
Points : 99
Points : 99
Bonjour,
merci de ta réponse mais je ne l'ai pas bien compris.
Mon application n'est pas un webservice, c'est une application Windows Form.
Quand tu mets uniquename=<Organisation>, je ne vois pas comment atteindre mes attributs personnalisés.
Je vais essayer de comprendre les DynamicsEntities. Mais il s'agit d'une entité interne au CRM, j'ai juste deux métadonnées rajoutées par après et c'est ça que je veux atteindre.

Merci de ton aide,

Jérôme
Jerome2606 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 10h54   #7
Membre régulier
 
Homme Jérôme Lambert
Développeur .NET
Inscription : décembre 2010
Messages : 99
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Lambert
Âge : 27
Localisation : Belgique

Informations professionnelles :
Activité : Développeur .NET
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : décembre 2010
Messages : 99
Points : 99
Points : 99
Après multiple recherche, il fallait faire au plus simple mdrrr
Code :
product["new_ean"] = "blablabla";
On ne peut faire plus simple mdr.

Le site de Technet m'a bien aidé:
http://msdn.microsoft.com/en-us/libr...ce.update.aspx

Merci de ton aide Kibito,

Jérôme
Jerome2606 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 17h31   #8
Membre expérimenté
 
Avatar de KibitO
 
Chef de projet MOA
Inscription : septembre 2004
Messages : 537
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Chef de projet MOA

Informations forums :
Inscription : septembre 2004
Messages : 537
Points : 528
Points : 528
Cool ! Pas de souci
KibitO est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h18.


 
 
 
 
Partenaires

Hébergement Web