I have two entities. Let say: MemberTransaction
and MemberTransactionDetail
.
The case is: When creating new record on MemberTransaction
. It will create a record also in MemberTransactionDetail
.
The fields for each entity are:
##MemberTransaction
MemberTransactionId PK,
MemberTransactionNo String,
TransactionDate DateTime,
MemberId LookUp
##MemberTransactionDetail
MemberTransactionDetailId PK,
MemberTransactionId LookUp,
ProductId LookUp,
Qty number
Then I tried the following code:
public void Execute(IServiceProvider serviceProvider)
{
try
{
var context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
var postImage = context.PostEntityImages["PostImage"];
var entity = (Entity)context.InputParameters["Target"];
if (entity.Attributes.Contains("KEY"))
{
var memberTransactionId = postImage.GetAttributeValue<Guid>("trn_membertransactionid");
var memberTransactionNo = postImage.GetAttributeValue<String>("trn_membertransactionno");
var transactionDetail = new Entity("trn_membertransactiondetail");
transactionDetail["trn_membertransactionno"] = memberTransactionNo;
transactionDetail["trn_membertransactionid"] = new EntityReference("trn_membertransactiondetail", memberTransactionId);
transactionDetail["trn_transactiondetailno"] = "6667";
var serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
var service = serviceFactory.CreateOrganizationService(context.UserId);
var tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
tracingService.Trace("Plugin: Creating the Transaction Detail.");
service.Create(transactionDetail);
var transactionDetailId = transactionDetail.Id;
tracingService.Trace("The Detail Id is " + transactionDetailId);
}
//var account = new Entity("account", memberTransactionId);
//account["primarycontactid"] = new EntityReference("contact", transactionDetailId);
//service.Update(account); // update the primary contact lookup
}
catch (Exception ex)
{
Console.Write("What?" + ex.Message);
}
}
The error said on the Exception is: The given key was not present in the dictionary.
Does anyone can give me a solution for this matter please?
Thank you.