myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Datentechnologien » CRM WebService Einträge suchen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

CRM WebService Einträge suchen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
marv100
myCSharp.de-Mitglied

Dabei seit: 26.09.2008
Beiträge: 227
Entwicklungsumgebung: VS2008, C#, ASP.NET


marv100 ist offline

CRM WebService Einträge suchen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

verwendetes Datenbanksystem: MS SQL, MS CRM

Hallo zusammen,

ich habe die ehrenvolle Aufgabe bekommen, in einem Programm eine Suche einzubauen. Sie soll über den CRM WebService von MS arbeiten. So weit so gut.

Was ich bis jetzt geschafft habe, ist die ServiceReference in meinem Projekt zu implementieren.
Weiter komm ich leider nicht, weil ich überhaupt keinen Plan hab, wie ich das anstellen soll.

Könnt ihr mir da weiter helfen?
Neuer Beitrag 19.12.2008 16:15 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
langalaxy langalaxy ist männlich
myCSharp.de-Mitglied

avatar-1914.gif


Dabei seit: 30.11.2005
Beiträge: 664
Entwicklungsumgebung: VS 2008


langalaxy ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi,

verwende für die Suche entweder die Klasse QueryExpression oder suche über FetchXML.
Beides ist im SDK [1] beschrieben.

[1]  http://msdn.microsoft.com/de-de/library/bb928212(en-us).aspx oder  http://www.microsoft.com/downloads/detai...C1-A2662AAE9DFB
Neuer Beitrag 19.12.2008 17:53 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
marv100
myCSharp.de-Mitglied

Dabei seit: 26.09.2008
Beiträge: 227
Entwicklungsumgebung: VS2008, C#, ASP.NET

Themenstarter Thema begonnen von marv100

marv100 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

da habe ich schon geschaut aber blick da irgendwie nicht durch.

allein schon beim "Set up the CRM Service" bekomm ich schon einen Fehler:

C#-Code:
Error    1    'Angebot.CrmService' is a 'namespace' but is used like a 'type'    C:\develop\Angebot\Angebot\F_Suche.cs    22    13    Angebot

den rest versteh ich auch nicht. wie muss das form aussehen, welche elemente müssen drauf und wie funktioniert dann der code???
Neuer Beitrag 22.12.2008 08:38 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
langalaxy langalaxy ist männlich
myCSharp.de-Mitglied

avatar-1914.gif


Dabei seit: 30.11.2005
Beiträge: 664
Entwicklungsumgebung: VS 2008


langalaxy ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Abgesehen davon, dass die zwei Wege in der SDK gut dokumentiert sind, scheinen dir ein paar Grundlagen zu fehlen:  [Hinweis] Bitte schau in die SDK-/MSDN-Doku und  [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)
Neuer Beitrag 22.12.2008 17:09 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
marv100
myCSharp.de-Mitglied

Dabei seit: 26.09.2008
Beiträge: 227
Entwicklungsumgebung: VS2008, C#, ASP.NET

Themenstarter Thema begonnen von marv100

marv100 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

hab mir das nun mal genau angeschaut und versucht mit dem fetchXML die daten auszulesen.
also ich bekomme die abfrage in einem stringgeliefert.
ich bin nur zu doof um die abfrage einzugrenzen.
meins sieht momentan wie folgt aus:

C#-Code:
// Set up the CRM Service.
            CrmService service = new CrmService();
            service.Credentials = System.Net.CredentialCache.DefaultCredentials;

            //// Retrieve all accounts.
            //string fetch1 = "<fetch mapping='logical'>";
            //fetch1 += "<entity name='account'><all-attributes/>";
            //fetch1 += "</entity></fetch>";

            //// Fetch the results.
            //String result1 = service.Fetch(fetch1);

            // Retrieve all accounts where the last name is not Cannon.
            string fetch2 = @"
                              <fetch mapping='logical'>
                                <entity name='account'>
                                    <attribute name='accountid'/>
                                    <attribute name='name'/>
                                        <filter type='and'>
                                            <condition attribute='name' operator='like' value='%musik%' />
                                        </filter>
                                </entity>
                              </fetch>
                              ";

            // Fetch the results.
            String result2 = service.Fetch(fetch2);

möchte aber andere werte ausgegeben haben, so wie in dieser sql-abfrage:

C#-Code:
                String lSelect = "";
                lSelect += " SELECT AccountBase.Name, ContactBase.FullName, CustomerAddressBase.Line1, CustomerAddressBase.PostalCode, CustomerAddressBase.City ";
                lSelect += " FROM AccountBase, CustomerAddressBase, ContactBase";
                lSelect += " WHERE AccountBase.Name LIKE '%" + I_Name.Text + "%'";
                lSelect += " AND CustomerAddressBase.ParentId = AccountBase.PrimaryContactId";
                lSelect += " AND AccountBase.PrimaryContactId = ContactBase.ContactID";
                lSelect += " AND CustomerAddressBase.Line1 != ''";
                lSelect += " AND CustomerAddressBase.PostalCode != ''";
                lSelect += " AND CustomerAddressBase.City != ''";

wie bekomm ich das hin?

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von marv100 am 06.01.2009 10:22.

Neuer Beitrag 06.01.2009 10:21 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
langalaxy langalaxy ist männlich
myCSharp.de-Mitglied

avatar-1914.gif


Dabei seit: 30.11.2005
Beiträge: 664
Entwicklungsumgebung: VS 2008


langalaxy ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Wenn dir FetchXml nicht aus den Fingern gleitet Zunge raus , kannst du die Abfrage mit den stunnware-Tools zusammenbauen ->  http://stunnware.com/products/tools4/dow...Tools4.2.15.zip

Um Daten von mehrern Entitäten abzufragen musst du link-entity verwenden (Pendant zu einem Join).
Die SQL-Abfrage die du gepostet hast ist von Microsoft übrigens nicht supported. Technisch ist es zwar möglich, aber du spartst dir viel Handarbeit wenn du mit den FilteredViews arbeitest.

Was soll die Abfrage eigentlich bezwecken? Ich hab das Gefühl dass dein Problem einfacher zu lösen ist.
Neuer Beitrag 09.01.2009 19:57 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
marv100
myCSharp.de-Mitglied

Dabei seit: 26.09.2008
Beiträge: 227
Entwicklungsumgebung: VS2008, C#, ASP.NET

Themenstarter Thema begonnen von marv100

marv100 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

ich habe im CRM eine Liste mit Kunden.
Nun möchte ich ein Programm schreiben, wo ich nach einem Kunden suche und von dem die Adresse rausbekommen um mit dieser weiter im Programm arbeiten zu können.
Neuer Beitrag 14.01.2009 08:22 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
marv100
myCSharp.de-Mitglied

Dabei seit: 26.09.2008
Beiträge: 227
Entwicklungsumgebung: VS2008, C#, ASP.NET

Themenstarter Thema begonnen von marv100

marv100 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

habe jetzt folgendes im netz gefunden:

C#-Code:
            // Set up the CRM Service.
            CrmService service = new CrmService();
            service.Credentials = System.Net.CredentialCache.DefaultCredentials;

            // Create the query object.
            QueryByAttribute query = new QueryByAttribute();
            query.ColumnSet = new AllColumns();
            query.EntityName = EntityName.account.ToString();

            // The query will retrieve all accounts whose address1_city is Sammamish.
            query.Attributes = new string[] { "name" };
            query.Values = new string[] { "Musik" };

            // Execute the retrieval.
            BusinessEntityCollection retrieved = service.RetrieveMultiple(query);

3 fragen habe ich dazu noch.
- wie bekomme ich beim query.values das hin, dass nicht nach musik sondern nach *musik* oder %musik% gesucht wird?
- wie krieg ich die gefundenen Werte in ein datagrid?
- was muss ich tun, damit er mir nur den namen und die adresse in das datagrid schreibt?
Neuer Beitrag 14.01.2009 15:29 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
langalaxy langalaxy ist männlich
myCSharp.de-Mitglied

avatar-1914.gif


Dabei seit: 30.11.2005
Beiträge: 664
Entwicklungsumgebung: VS 2008


langalaxy ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Solange du nicht versuchst das Thema zu verstehen, wird das nichts...

--> string.Format(), ColumnSet, ...

Siehe  [Hinweis] Wie poste ich richtig? Punkt 1.1.1, 4, ...
Neuer Beitrag 14.01.2009 20:54 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 6 Monate.
marv100
myCSharp.de-Mitglied

Dabei seit: 26.09.2008
Beiträge: 227
Entwicklungsumgebung: VS2008, C#, ASP.NET

Themenstarter Thema begonnen von marv100

marv100 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Eine Frage habe ich noch zu diesem Thema.

Ich habe es jetzt wie folgt gelöst:

C#-Code:
                // Set up the CRM Service.
                CrmService service = new CrmService();
                service.Credentials = System.Net.CredentialCache.DefaultCredentials;

                string fetch = "";
                fetch += "   <fetch mapping='logical'>";
                fetch += "     <entity name='account'>";
                fetch += "         <attribute name='name'/>";
                fetch += "         <attribute name='address1_line1'/>";
                fetch += "         <attribute name='address1_postalcode'/>";
                fetch += "         <attribute name='address1_city'/>";
                fetch += "         <attribute name='websiteurl'/>";
                fetch += "         <attribute name='emailaddress1'/>";
                fetch += "         <attribute name='telephone1'/>";
                fetch += "         <attribute name='fax'/>";
                fetch += "           <attribute name='CFSesVerkehrsnummer'/>";
                fetch += "         <link-entity name='contact' from='accountid' to='accountid'>";
                fetch += "              <attribute name='firstname'/>";
                fetch += "              <attribute name='lastname'/>";
                fetch += "         </link-entity>";
                fetch += "           <filter type='and'>";
                fetch += "               <condition attribute='name' operator='like' value='%" + I_Nachname.Text.ToString() + "%' />";
                fetch += "           </filter>";
                fetch += "         <order attribute='name'/>";
                fetch += "     </entity>";
                fetch += "   </fetch>";

                // Fetch the results.
                String result = service.Fetch(fetch);

                byte[] MyData;
                MyData = System.Text.Encoding.GetEncoding(1252).GetBytes(result);
                MemoryStream ms = new MemoryStream();
                ms.Write(MyData, 0, MyData.Length);
                FileStream output = File.OpenWrite(@"C:\Angebot\Vorlagen\result.xml");
                ms.WriteTo(output);
                output.Flush();
                output.Close();
                ms.Close();

                XmlDataDocument xmlDoc = new XmlDataDocument();
                xmlDoc.DataSet.ReadXml(@"C:\Angebot\Vorlagen\result.xml");
                DataSet ds = new DataSet("result");
                ds = xmlDoc.DataSet;

                dataGridView1.DataSource = ds.DefaultViewManager;
                dataGridView1.DataMember = "result";

Mein Problem ist es, wenn bei einem Eintrag nicht alle Felder ausgefüllt sind, lässt er die einfach weg. Kann ich dies verhindern?
Neuer Beitrag 12.08.2009 08:36 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
langalaxy langalaxy ist männlich
myCSharp.de-Mitglied

avatar-1914.gif


Dabei seit: 30.11.2005
Beiträge: 664
Entwicklungsumgebung: VS 2008


langalaxy ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Nein, alle Attribute die Null sind werden per FetchXML nicht ausgegeben.

Btw. wieso schreibst du die Antwort auf Platte um sie direkt danach wieder zu laden?!
Neuer Beitrag 26.08.2009 21:59 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 11 Jahre.
Der letzte Beitrag ist älter als 11 Jahre.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 20.10.2020 11:35