Benutzer mit den meisten Antworten
C# Befüllen einer Verkaufschance?

Frage
-
Guten Morgen liebe CRMler,
ich habe mal wieder ein Befüllungsproblem. Diesmal komm ich bei der Entität "Verkaufschance" (opportunity) nicht weiter. Dabei möchte ich nur den Label, also "Thema", mit Daten befüllen.
Mein Code sieht folgendermaßen aus:
DynamicEntity oDynEntity = new DynamicEntity(); oDynEntity.Name = EntityName.opportunity.ToString(); oDynEntity.Properties.Add(new stringProperty("name", "TEEEEST!")); Guid oGuid = (Guid)oService.Create(oDynEntity);
Den oService hab ich natürlich vorher schon erstellt. Wenn ihr euch fragt warum ich eine DynamicEntity benutze, ich muss später auch selbst erstellte Felder befüllen. Aber noch nicht mal das obere klappt. Muss ich bei Verkaufschance irgendwas anders machen?
mfg Jasper
Antworten
-
Hallo Jasgan,
warum verwendest du nicht den Code, wie er im SDK beschrieben ist? Du kansnt natürlich für die Properties weiterhin die Kurzform verwenden, aber den Rest würde ich so machen wie im SDK.
// Set the properties of the contact using property objects.
StringProperty firstname = new StringProperty();
firstname.Name = "firstname";
firstname.Value = "Jesper";
StringProperty lastname = new StringProperty();
lastname.Name = "lastname";
lastname.Value = "Aaberg";
// Create the DynamicEntity object.
DynamicEntity contactEntity = new DynamicEntity();
// Set the name of the entity type.
contactEntity.Name = EntityName.contact.ToString();
// Set the properties of the contact.
contactEntity.Properties = new Property[] {firstname, lastname};
// Create the target.
TargetCreateDynamic targetCreate = new TargetCreateDynamic();
targetCreate.Entity = contactEntity;
// Create the request object.
CreateRequest create = new CreateRequest();
// Set the properties of the request object.
create.Target = targetCreate;
// Execute the request.
CreateResponse created = (CreateResponse) service.Execute(create);
Viele Grüße
Michael Sulz
MVP für Microsoft Dynamics CRM
www.msdynamics.de- Als Antwort markiert Michael Sulz Mittwoch, 25. September 2013 16:10
-
Dein Problem ist wahrscheinlich, dass du den Kunden nicht angibst. Das Attribut "customerid" ist als SystemRequired markiert und muss deshalb angegeben werden.
Siehe http://msdn.microsoft.com/en-us/library/cc153469.aspx
Die auftretende SoapException enthält eine Eigenschaft Detail, in der die genauere Fehlermeldung enthalten ist.
crmService.Create() ist übrigens eine "Kurzschreibweise" für ein TargetCreateRequest.
- Als Antwort markiert Jasper Gandyra Montag, 11. Oktober 2010 07:32
Alle Antworten
-
Hallo Jasgan,
warum verwendest du nicht den Code, wie er im SDK beschrieben ist? Du kansnt natürlich für die Properties weiterhin die Kurzform verwenden, aber den Rest würde ich so machen wie im SDK.
// Set the properties of the contact using property objects.
StringProperty firstname = new StringProperty();
firstname.Name = "firstname";
firstname.Value = "Jesper";
StringProperty lastname = new StringProperty();
lastname.Name = "lastname";
lastname.Value = "Aaberg";
// Create the DynamicEntity object.
DynamicEntity contactEntity = new DynamicEntity();
// Set the name of the entity type.
contactEntity.Name = EntityName.contact.ToString();
// Set the properties of the contact.
contactEntity.Properties = new Property[] {firstname, lastname};
// Create the target.
TargetCreateDynamic targetCreate = new TargetCreateDynamic();
targetCreate.Entity = contactEntity;
// Create the request object.
CreateRequest create = new CreateRequest();
// Set the properties of the request object.
create.Target = targetCreate;
// Execute the request.
CreateResponse created = (CreateResponse) service.Execute(create);
Viele Grüße
Michael Sulz
MVP für Microsoft Dynamics CRM
www.msdynamics.de- Als Antwort markiert Michael Sulz Mittwoch, 25. September 2013 16:10
-
Hallo,
erstmal ein Danke für deine Antwort! Nun sieht mein Code folgendermaßen aus:
DynamicEntity dynEntity = new DynamicEntity(); dynEntity.Name = EntityName.opportunity.ToString(); dynEntity.Properties.Add(new StringProperty("name", "teeeest!")); TargetCreateDynamic createDynamic = new TargetCreateDynamic(); createDynamic.Entity = dynEntity; CreateRequest cRequest = new CreateRequest(); cRequest.Target = createDynamic; CreateResponse cResponse = (CreateResponse)oService.Execute(cRequest);
Es funktioniert aber leider immernoch nicht. Das witzige hierbei ist ja, dass wenn ich die Zielentität einfach auf Firma (account) umändere, dann funktioniert alles. Nur bei Opportunity scheint er irgendwelche Probleme zu haben.
Hier mal mein Fehlercode (falls das weiterhilft):
System.Web.Services.Protocols.SoapException wurde nicht von Benutzercode behandelt.
Message=Server was unable to process request.
Source=System.Web.Services
Actor=""
Lang=""
Node=""
Role=""
StackTrace:
bei System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
bei System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
bei Microsoft.Crm.SdkTypeProxy.CrmService.Execute(Request Request)
bei WebApplication2._Default.Page_Load(Object sender, EventArgs e) in c:\users\j.gandyra\documents\visual studio 2010\Projects\WebApplication2\WebApplication2\Default.aspx.cs:Zeile 73.
bei System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
bei System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
bei System.Web.UI.Control.OnLoad(EventArgs e)
bei System.Web.UI.Control.LoadRecursive()
bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:mfg Jasper
-
Dein Problem ist wahrscheinlich, dass du den Kunden nicht angibst. Das Attribut "customerid" ist als SystemRequired markiert und muss deshalb angegeben werden.
Siehe http://msdn.microsoft.com/en-us/library/cc153469.aspx
Die auftretende SoapException enthält eine Eigenschaft Detail, in der die genauere Fehlermeldung enthalten ist.
crmService.Create() ist übrigens eine "Kurzschreibweise" für ein TargetCreateRequest.
- Als Antwort markiert Jasper Gandyra Montag, 11. Oktober 2010 07:32