[gelöst]Fehler bei Entity Create wegen Plugin Message Create

16. November 2015 15:34

Hallo zusammen,

ich habe vor einiger Zeit ein Plugin geschrieben, das sich an die Create Message von Verkaufschanceprodukt, Angebotsprodukt, Auftragsprodukt und Rechnungsprodukt hängt und dort Felder aus dem Gewählten Produkt in das jeweilige Verkaufchanceprodukt etc. zieht. Soweit so schön das funktioniert super wenn ich in einer der vier Entitäten Produkte zufüge. Nun habe ich aber zwei JavaScripts geschrieben die über einen Menübutton ausgelöst werden. Der eine soll Angebote mitsamt Angebotsprodukten kopieren, der andere eine Rechnung mit Rechnungsprodukten automatisch erstellen. Bei beiden kommt die Fehlermeldung die ich als Bild angehängt habe.
EntityState must be set to null, Creaded (for Create message) or Changed (for Update message)
.
EntityStateMustBeSetToNull.png

Soweit ich das bei meiner Recherche verstanden habe liegt das Problem beim Plugin das an der Create Message hängt (Post Operation). Ich habe aber leider nicht verstanden, wie ich das Problem lösen kann. Update passt in meinem JavaScript ja nicht da ich ja neue Rechnungs- und Angebotsprodukte anlegen möchte.

Hier noch der JavaScriptcode mit dem ich versuche ein Rechnungsprodukt anzulegen:
Code:
// Rechnung erstellt nun noch Rechnungsprodukte generierne:
         createdInvoiceId = result.InvoiceId;
         
         // Wenn onlinestunden auf dem Ticket dann Rechnungsprodukt Stundensatz online Kurzbeschriebung Onlinestunden Ticket                  
         var summeAktivitaetenOnline = GetArbeitsstundenOnline(Entity.IncidentId);
         if(summeAktivitaetenOnline != null || summeAktivitaetenOnline != ""){
            var newInvoiceDetail = new Object();

            var productReference = new Object();
            productReference.Id = "B87A8036-60E2-DF11-B1FC-001E4F38B5AB";
            productReference.LogicalName = "product";
            productReference.Name = "Online-Einheit à 15 Minuten";
            newInvoiceDetail.ProductId = productReference;
            
            var nextpositionsnummer = getNextPositionsnummer(createdInvoiceId);
            newInvoiceDetail.OPD_positionsnummer_produkt_neu = nextpositionsnummer;
            newInvoiceDetail.Itara_ics_shortdescription = "Online-Einheit à 15 Minuten";
            newInvoiceDetail.OPD_Kurzbeschreibungenglisch = "Online unit at 15 minutes";
            var onlineEinheiten = ((summeAktivitaetenOnline[0]*60)+summeAktivitaetenOnline[1])/15; //(summeAktivitaetenOnline*60)/15;
            newInvoiceDetail.Quantity = parseFloat(onlineEinheiten).toFixed(2);

            var invoiceReference = new Object();
            invoiceReference.Id = createdInvoiceId;
            invoiceReference.LogicalName = "invoice";
            invoiceReference.Name = Entity.Title;            
            newInvoiceDetail.InvoiceId = invoiceReference;
            
            var einheitReference = new Object();
            einheitReference.Id = "F3172E7B-3373-4321-BFF0-06F1425A93A5";
            einheitReference.Name = "Stk";
            einheitReference.LogicalName = "uom";

            newInvoiceDetail.UoMId = einheitReference;
            
            var resultInvoiceDetail = SSDK.REST.createRecord(newInvoiceDetail, "InvoiceDetail");
            if (resultInvoiceDetail.name == "Error") {
               alert("Error: " + resultInvoiceDetail.message);
            }
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von Nicole Schmitz am 17. November 2015 12:39, insgesamt 2-mal geändert.

Re: Fehler bei Entity Create wegen Plugin Message Create

17. November 2015 11:53

Hi Nicole,

schon mal gegoogled?
http://blog.simpletrees.com/2014/06/ent ... eated.html
etc..

Gruß
Jan

Re: Fehler bei Entity Create wegen Plugin Message Create

17. November 2015 12:39

Hallo Jan,

ja gegoogelt hatte ich schon kam aber mit den Ergebnissen nicht klar weil ich mich zunächst auf den context eingeschossen hatte. Ich bin nicht ganz so versiert in der Programmierung vom CRM da tun sich dann schon mal Verständnislücken auf. :oops: Aber nun scheint es mit dem setzen des EntityStates zu gehen.
Code:
entity.EntityState = EntityState.Changed;

Danke.