Quantcast
Channel: Microsoft Dynamics CRM Forum - Recent Threads
Viewing all articles
Browse latest Browse all 46379

Create Record in Another Entity D365 Plugin

$
0
0

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.


Viewing all articles
Browse latest Browse all 46379

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>