[gelöst]SDK Abfrage

11. Dezember 2009 12:45

Hallo,

ich beschäftige mich gerade mal wieder etwas mit dem SDK.
Ich habe eine Entität tw-berichte erstellt. account 1=N tw-berichte.

Mein vorhaben ist nun, ein kleines Tool zu erstellen, wo der Kunde gesucht wird, und dann darunter in einem DataView alle tw-berichte Datensätze zu diesem Kunden angezeigt werden.

Create, Update und Delete kenne ich schon mit dem SDK, aber zum SELECT habe ich leider nichts gefunden.

Oder soll ich dies einfach über MSSQL machen, ohne dem SDK?

Danke
Gruß

tw-elektric
Zuletzt geändert von tw-elektric am 14. Dezember 2009 15:46, insgesamt 3-mal geändert.

Re: SDK Abfrage

11. Dezember 2009 14:41

Hallo tw-electric,

für deine Anforderung lautet das Zauberwort im SDK Retrieve bzw. RetrieveMultiple.

Unter diesem Stichwort wirst du auch genügend Beispiele finden, wie du deine Suche umsetzen kannst.

Re: SDK Abfrage

11. Dezember 2009 17:36

Danke für den Tipp.

Ich habe nun schon etwas mit reinem SQL getestet. Da ich ja nur Views mache.
Ist aber sicher weniger empfohlen, oder?

Code:
            con.ConnectionString = "Data Source=srv03;Initial Catalog=tw_elektric_MSCRM;Integrated Security=True;User ID=;Password="
            Dim da2 As New SqlDataAdapter("Select [New_Datum],[New_Teilnehmer],[New_Inhalt],[New_Neukunde],[New_AngebotTreffer]" & _
                                          ",[New_Angebotzuteuer],[New_Lob],[New_Tadel],[New_WarteaufKunde] FROM [tw_elektric_MSCRM].[dbo].[New_twbericht]" & _
                                          "WHERE [New_parentcustomerid] = '" & guid & "'" & _
                                          "Order by [New_Datum] DESC", con)
            da2.FillSchema(dt_twberichte, SchemaType.Source)
            da2.Fill(dt_twberichte)
            tbDatum.DataBindings.Add("Text", dt_twberichte, "New_Datum")
            rtbInhalt.DataBindings.Add("Text", dt_twberichte, "New_Inhalt")
            rtbTeilnehmer.DataBindings.Add("Text", dt_twberichte, "New_Teilnehmer")
            cbNeukunde.DataBindings.Add("checked", dt_twberichte, "New_Neukunde")
            cbCustomerWait.DataBindings.Add("checked", dt_twberichte, "New_WarteaufKunde")
            cbLob.DataBindings.Add("checked", dt_twberichte, "New_Lob")
            cbTadel.DataBindings.Add("checked", dt_twberichte, "New_Tadel")
            cbTeuer.DataBindings.Add("checked", dt_twberichte, "New_Angebotzuteuer")
            cbAngebotTreffer.DataBindings.Add("checked", dt_twberichte, "New_AngebotTreffer")
            Pos()


Im Prinzip möchte ich nur über eine GUI die Ansicht auf eine bestimmte Entität gewähren.

Re: SDK Abfrage

11. Dezember 2009 17:42

Hallo,

auch bei Views ist der Zugriff direkt auf den SQL-Server nicht supportet.

Es wird zwar funktionieren, über das SDK ist es aber der sichere Weg.

Bei eigenen Views musst du dich auch z.B. um die Darstellung der Uhrzeit selbst kümmern, da die Daten ja intern im UTC-Format gepsiechert werden, Picklisten werden nur mit dem Integer in der Tabelle gespeichert, nicht mit dem Namen, usw.

Re: [gelöst]SDK Abfrage

14. Dezember 2009 12:52

Hallo Michael,

ich versuche mich gerade daran.
Nun habe ich ein Problem, und weiß nicht wie ich die Werte von BusinessEntityCollection weitergeben kann.

Ich möchte diese nun gerne in einem ListView, DataView etc. darstellen. Aber ich komme nicht ran:

Code:
       ' Create the ColumnSet that indicates the properties to be retrieved.
        Dim cols As New ColumnSet()

        ' Set the properties of the ColumnSet.
        cols.Attributes = New String() {"name", "accountid"}

        ' Create the ConditionExpression.
        Dim condition As New ConditionExpression()

        ' Set the condition for the retrieval to be when the contact's address' city is Sammamish.
        condition.AttributeName = "accountnumber"
        condition.Operator = ConditionOperator.Like
        condition.Values = New String() {"10000"}

        ' Create the FilterExpression.
        Dim filter As New FilterExpression()

        ' Set the properties of the filter.
        filter.FilterOperator = LogicalOperator.And
        filter.Conditions = New ConditionExpression() {condition}

        ' Create the QueryExpression object.
        Dim query As New QueryExpression()

        ' Set the properties of the QueryExpression object.
        query.EntityName = EntityName.account.ToString()
        query.ColumnSet = cols
        query.Criteria = filter

        ' Retrieve the contacts.
        Dim account As BusinessEntityCollection = service.RetrieveMultiple(query)


Nun möchte ich z.B. an den gefunden Wert "name" ran kommen.
account.BusinessEntity.... ?