[gelöst] Bad Request bei Erstellen von Anfrage mit JS

23. September 2015 08:34

Hallo zusammen,

ich versuche aus einem Auftrag heraus mit JavaScript eine Anfrage zu erstellen. Ich möchte beim Erstellen einige Auftragswerte und Vertragsdaten an die Anfrage übergeben, daher wollte ich den Weg über JavaScript gehen. Nun bekomme ich aber beim Erstellen folgenden Bad Request:
Error: Error: 400: Bad Request: Fehler beim Verarbeiten des Anforderungsdatenstroms. Die Anforderung sollte ein gültiges Ressourcenobjekt der obersten Ebene sein.


Kann mir jemand sagen, was mir diese Fehlermeldung genau mitteilen will? Ich habe schon versucht über googlen was herauszufindne aber da finde ich nichts. Vielleicht suche ich auch falsch.
Wäre toll wenn mir jemand weiterhelfen könnte wonach ich suchen muss bzw. was ich falsch mache.

Hier noch der relevante Schnipsel meines Quellcodes:
Code:
function createIncident() {
   
   var createdIncidentId;
   // Kompletten Auftrag ziehen, ResultSet(true)
   var Entity = SSDK.REST.retrieveRecord(Xrm.Page.data.entity.getId(), "SalesOrder", "*", null);
   if (Entity != null) {
      // Auftrag gefunden, Ticket erstellen
      var newIncident = new Object();
      
      var ticketzahl = getTicketZahl();
      newIncident.Title = Entity.Name + " - " + ticketzahl;
      newIncident.OPD_PartnerId = Entity.CustomerId;
      newIncident.CustomerId = Entity.itara_actual_customer_id;
      
      var Auftragsreferenz = new Object();
      Auftragsreferenz.Id = Entity.SalesOrderId;
      Auftragsreferenz.LogicalName = "salesorder";
      Auftragsreferenz.Name = Entity.Name;
      
      newIncident.itara_incident_salesorder_id = Auftragsreferenz;
      
      newIncident.itarapro_incident_project_id = Entity.itarapro_salesorder_project_id;
      
      newIncident.Itara_guarantee_until = Entity.itara_guarantee_until;
      newIncident.OPD_guarantee = 2; //zunächst immer auf Berechnung stellen
      
      var result = SSDK.REST.createRecord(newIncident, "Incident");
      if (result.name == "Error") {
         alert("Error: " + result.message);
      } else { debugger
         // Ticket erstellt
                  
         // Neues Ticket öffnen.
         Xrm.Utility.openEntityForm("incident", createdIncidentId);
      }
   }
}

function getTicketZahl(){
   var entities = SSDK.REST.retrieveMultipleRecords("Incident", "$select=Title&$filter=itara_incident_salesorder_id/Id eq guid'" + Xrm.Page.data.entity.getId() + "'");
   if(entities != null){
      return entities.length+1;
   } else {
      return 1;
   }
}
Zuletzt geändert von Nicole Schmitz am 23. September 2015 10:26, insgesamt 1-mal geändert.

Re: Bad Request bei Erstellen von Anfrage mit JS

23. September 2015 10:26

Hallo zusammen,

konnte mein Problem schon selbst lösen.
Diese Zeile war der Übeltäter:
Code:
newIncident.OPD_guarantee = 2;


Bei diesem Feld handelte es sich um einen Optionssatz. Den kann man ja nicht so einfach setzen wie ich das versucht habe. :-)

So wird dann ein Schuh draus und das Script läuft sauber durch und erzeugt meine Anfrage.
Code:
var garantie = new Object();
garantie.Value = 2;
newIncident.OPD_guarantee = garantie;