[Erledigt][Webservice]Problem beim Errichten von Datensätzen

21. November 2022 12:35

Wir haben seit heute "plötzlich" ein Problem. Beim Versuch der Errichtung eines neuen Datensatzes gibt uns der Webservice plötzlich Fehler zurück:
Code:
{
    "faultstring": "The record already exists.",
    "faultcode": "a:Microsoft.Dynamics.Nav.Types.Exceptions.NavNCLRecordAlreadyExistsException",
    "detail": {
        "string": "The record already exists."
    }
}


Anbei der Code, der gesendet wird:
Code:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:grad="urn:microsoft-dynamics-schemas/page/gradingheader">
   <soapenv:Header/>
   <soapenv:Body>
      <grad:Create>
         <grad:GradingHeader>
         </grad:GradingHeader>
      </grad:Create>
   </soapenv:Body>
</soapenv:Envelope>


Im Rahmen des Debuggings haben wir nun direkt als erste Zeile des "OnInsert"-Triggers der zugehörigen Tabelle einen Aufruf zum ERROR eingebaut, hierzu kommt es aber gar nicht, die Fehlermeldung oben erscheint.
Der Fehler muss also - soweit ich es sehe - bereits vorher ausgelöst werden. Hier bleibt dann eigentlich nur die Page "gradingheader" an sich, doch diese beinhaltet keinen weiteren Code.
Dennoch haben wir auch hier rumprobiert, beim "OnNewRecord" wird ein ERROR via Webservice dargestellt, bis hierhin scheint es also zu klappen. Will man stattdessen einen ERROR beim "OnInsertRecord" der Page ausgeben gelangt man wieder zum obigen Fehler. Hat jemand eine Idee woran sowas liegen kann?

Was läuft zwischen dem OnNewRecord der Page und dem "OnInsert"-Trigger der Tabelle?

Im Normalfall wird im OnInsert-Trigger die Auftragsnummer via Nummernserie vergeben - hierzu kommt es aber gar nicht erst.
Kurioserweise funktioniert derselbe Code im Testsystem weiterhin.
Grüße
Zuletzt geändert von FlensGold am 21. November 2022 16:25, insgesamt 1-mal geändert.

Re: [Webservice]Problem beim Errichten von Datensätzen

21. November 2022 16:24

Problem hat sich erledigt.
Ursache war ein leerer Datensatz in der Tabelle, wie auch immer der dort reinkam. Ärgerlicherweise fiel er mir bei der Fehlersuche nicht auf.