was mache ich falsch? // Query auf CustomerAddress!

29/10/2008 - 22:22 von Ralph Hüttenmoser | Report spam
Guten Abend
ich versuche die 3.e Account Adresse zu ermitteln. In meinem Testcode versteckt sich ein Hund. Wenn ich nur über "condition1" den
Query absetze, dann kreige ich die Adressen.

Gerne will ich aber direkt auf die 3.e Adresse des Accounts zugreiffen.

Kann mir jemand meinen Fehler verraten?

danke Ralph

code-
public void UpdateThirdAddress()
{
// Create the ConditionExpression.
ConditionExpression condition1 = new ConditionExpression();
condition1.AttributeName = "parentid";
condition1.Operator = ConditionOperator.Equal;
condition1.Values = new object[1];
condition1.Values[0] = new Guid("6471C15B-11A5-DD11-8478-0050568C1A2C"); //Test

ConditionExpression condition2 = new ConditionExpression();
condition2.AttributeName = "objecttypecode";
condition2.Operator = ConditionOperator.Equal; //= 1 (Account)
condition2.Values = new object[1];
condition2.Values[0] = new EntityNameReference(EntityName.account.ToString());


ConditionExpression condition3 = new ConditionExpression();
condition3.AttributeName = "addressnumber";
condition3.Operator = ConditionOperator.Equal; //=3 (third address)
condition3.Values = new object[1];
condition3.Values[0] = new CrmNumber(3);


// Builds the filter based on the condition
FilterExpression filter = new FilterExpression();
filter.FilterOperator = LogicalOperator.And;

//filter.Conditions = new ConditionExpression[] { condition1 }; //làuft

filter.Conditions = new ConditionExpression[] { condition1, condition2, condition3 };



QueryExpression query = new QueryExpression();
query.EntityName = EntityName.customeraddress.ToString();
query.ColumnSet = new AllColumns();
query.Criteria = filter;



RetrieveMultipleRequest req = new RetrieveMultipleRequest();
req.Query = query;

RetrieveMultipleResponse resp = (RetrieveMultipleResponse)service.Execute(req);
if (resp.BusinessEntityCollection.BusinessEntities.Length > 0)
{
foreach (BusinessEntity ent in resp.BusinessEntityCollection.BusinessEntities)
{
//update ...
}
}
}
 

Lesen sie die antworten

#1 Jürgen Beck
31/10/2008 - 14:58 | Warnen spam
"Ralph Hüttenmoser" schrieb im Newsbeitrag
news:%

ich versuche die 3.e Account Adresse zu ermitteln. In meinem Testcode
versteckt sich ein Hund. Wenn ich nur über "condition1" den Query absetze,
dann kreige ich die Adressen.

Gerne will ich aber direkt auf die 3.e Adresse des Accounts zugreiffen.



Hallo Ralph,

dein Code sieht erst mal richtig aus. Auch wird für eine dritte angelegte
Adresse in der Datenbank der Wert 3 für das Feld AddressNumber hinterlegt.

Ich würde dir mal empfehlen, mit dem SQL Server Profiler aufzuzeichnen, was
CRM aus deiner Abfrage macht.

Wenn alles nichts hilft, dann lese halt alle Adresse und nimmt dort die raus
mit dem Wert 3 für das Feld AddressNumber. Aber das weißt du ja sicher schon
selbst. :-)

Viele Grüße,
Jürgen
Jürgen Beck
Dipl. Kfm./Wirtschaftsinformatik
MVP, MCSD.NET, MCITP DBA, MCDBA, MCSE
Microsoft Certified Business Management Solutions Professional
Microsoft Certified CRM Developer
Microsoft Certified Trainer

ComBeck IT Services & Business Solutions
Microsoft Gold Certified Partner
Microsoft Small Business Spec ialist
Developing & Supporting Business Applications from small business to big
enterprises covering scores of sectors
Web: http://www.combeck.de
Community: http://www.mscrm-community.de

Ähnliche fragen