3. Februar 2010 17:56
3. Februar 2010 18:02
4. Februar 2010 16:17
public void Execute(IPluginExecutionContext context)
{
// Verify we have an entity to work with
if (context.InputParameters.Properties.Contains("Target") &&
context.InputParameters.Properties["Target"] is DynamicEntity && context.Depth<2)
{
using (ICrmService service = context.CreateCrmService(true))
{
// Obtain the target business entity from the input parmameters.
DynamicEntity entity = (DynamicEntity)context.InputParameters.Properties["Target"];
decimal val = 37; //((CrmMoney)((((DynamicEntity)(context.PostEntityImages["PostImage"])).Properties["totalamount"]))).Value;
if (entity.Properties.Contains("discountamount"))
{
((CrmMoney)entity.Properties["discountamount"]).Value = val ;
}
else
{
CrmMoneyProperty manualdiscountProperty = new CrmMoneyProperty("discountamount", new CrmMoney(val));
entity.Properties.Add(manualdiscountProperty);
}
decimal valForTotal = 890;
if (entity.Properties.Contains("totalamount"))
{
((CrmMoney)entity.Properties["totalamount"]).Value = valForTotal;
}
else
{
CrmMoneyProperty totalamountProperty = new CrmMoneyProperty("totalamount", new CrmMoney(valForTotal));
entity.Properties.Add(totalamountProperty);
}
service.Update(entity);
}
}
}
5. Februar 2010 16:47
11. Februar 2010 10:20
//1) Get the entity
TargetRetrieveQuote target = new TargetRetrieveQuote();
target.EntityId = ((Key)((DynamicEntity)context.InputParameters[ParameterName.Target]).Properties["quoteid"]).Value;
RetrieveRequest request = new RetrieveRequest();
request.Target = target;
request.ColumnSet = new AllColumns();
RetrieveResponse response = (RetrieveResponse)service.Execute(request);
//2) Update some fields
quote quoteEntity = (quote)response.BusinessEntity;
///quoteEntity.discountamount = new CrmMoney(1234); // for this is working
quoteEntity.totalamount = new CrmMoney(4567);
//3) Execute request
TargetUpdateQuote targetQuote = new TargetUpdateQuote();
targetQuote.Quote = quoteEntity;
UpdateRequest uRequest = new UpdateRequest();
uRequest.Target = targetQuote;
UpdateResponse uResponse = (UpdateResponse)service.Execute(uRequest);
11. Februar 2010 12:36
19. Februar 2010 15:18
Euer Entwickler muss nur auf das Update des Angebotes reagieren, die Werte neu berechnen und dem Post-Image zuweisen.
19. Februar 2010 15:48
Ein Post-Image steht mir ja logischerweise nur zur Verfügung, wenn ich das Plug-In das Post Stage Plug-In registriere
Wenn ich in diesem Fall die Attribute im Post-Image ändere, ändert das an der Entität an sich ja nichts. Das Post-Image repräsentiert nach meinem Verständnis die Attribute der Entität nach dem Speichern der Änderungen die durch den Standard-Code vorgenommen wurden
19. Februar 2010 16:31
if (context.PostEntityImages.Contains("Quote") && context.PostEntityImages["Quote"] is DynamicEntity)
{
DynamicEntity entity = (DynamicEntity)context.PostEntityImages["Quote"];
if(entity.Properties.Contains("name")){
entity.Properties.Remove("name");
}
entity.Properties.Add(new StringProperty("name", "Hugo"));
}
19. Februar 2010 17:38
19. Februar 2010 18:50
20. Februar 2010 11:33
22. Februar 2010 12:45
- Post Image: this will contain the first-, lastname and emailaddress1
field. These are all the fields you specify in the image and have a value in
the database AFTER the update is commited to the database.
public void Execute(IPluginExecutionContext context)
{
// Verify we have an entity to work with
if (context.PostEntityImages.Contains("Quote") && context.PostEntityImages["Quote"] is DynamicEntity)
{
ICrmService service = context.CreateCrmService(true);
// Obtain the target business entity from the input parmameters.
DynamicEntity entity = (DynamicEntity)context.PostEntityImages["Quote"];
if (entity.Properties.Contains("name"))
{
entity.Properties.Remove("name");
}
entity.Properties.Add(new StringProperty("name", "Hugo"));
service.Update(entity);
}
}
22. Februar 2010 17:50
23. Februar 2010 10:27
2. März 2010 17:12
4. März 2010 16:23
Ein Blick ins SDK hätte mir schon vorher gesagt, dass TotalAmount ein Read-Only Feld ist und somit keine Änderungen möglich sind