2016-07-28 17 views
0

Meine App zeichnet Daten aus einer OpenEdge-Tabelle und verwendet einen Business Entity and Rest Service, um die Daten über PASOE bereitzustellen. Ich entwickle auf der JavaScript-Seite und habe wenig oder gar keine Erfahrung mit OE, abgesehen von der Generierung von Business Entities mit CRUD-Operationen für meine Dienste.Verwenden der assign() - Methode auf dem JSDO zum Aktualisieren von OE-Tabelleninformationen

Was ich versuche, ist ein einzelnes Feld eines einzelnen Datensatzes von wahr zu falsch zu aktualisieren, indem Sie die Zuweisungsmethode von JSDO verwenden. Ich bekomme immer einen 500 Fehler, der besagt, dass es keine WHERE STRING finden konnte und dass KEYS und INDEXES benötigt werden, und all das Zeug. Das Problem ist, ich bin mir fast sicher, dass ich assign() falsch verwende, aber ich kann mir nicht sicher sein. Die Dokumentation darüber ist nicht sehr spezifisch, wie wir es benutzen und welche Parameter es haben soll, um etwas zu aktualisieren oder zuzuordnen. Ich fühle mich wie dieses Beispiel ist vage. Wie sollte "update-object" aussehen?

Hilfe!

Vielen Dank im Voraus.

PS. Ich kann ein Code-Snippet von dem erstellen, was ich versuche, wenn es sein muss, aber meine Frage ist ziemlich allgemein.

+2

Sie erhalten eher eine genaue Antwort, wenn Sie eine genauere Frage stellen - also würde ein Code-Snippet helfen. Auch welche Version von Progress? – jdpjamesp

+2

Ein Fehler von 500 insbesondere mit Verweisen auf WHERE STRING AND KEYS UND INDEXES ist ein Problem in Ihrer ABL-Back-End-Logik. Bitte stellen Sie sicher, dass Sie Ihren AppServer mit -debugalert und -errorstack starten und genaue Fehlermeldungen - einschließlich Stack-Trace - aus der AppServer-Logdatei bereitstellen. –

Antwort

0

Entschuldigung für die verzögerte Antwort. Mein Problem war nur mein Unwissen über OpenEdge selbst. Meine erste Lösung, die ich alleine herausfinden konnte, war einfach eine KEYS-Anweisung in der Datenquellendefinition meiner Klassendatei hinzuzufügen:

DEFINE DATA-SOURCE srcWHS_TEMP_LOC FOR sandbox.WHS_TEMP_LOC KEYS (TEMP_ID).

Ich tat dies auf einem Feld, das ich wusste, war einzigartig. Für meine andere Tabelle benötigte ich eine Kombination aus zwei Feldern, um eine eindeutige ID zu erstellen, so dass unser hauseigener OpenEdge-Experte sie für mich hinzufügen konnte. Alles funktioniert jetzt gut.