Schaltfläche für umfangreiches Update
Ich habe eine Schaltfläche, die den angehängten Code ausführt. Ich mache das (Code mit der Schaltfläche ausführen) für jede Zeile der Tabelle. Ist es möglich, eine einzelne Schaltfläche zu erstellen, die diesen Code für jede einzelne Zeile ausführt? Danke
let header := {
Authorization: "Bearer 65fd963xxxxxxxxxxx6be28",
Accept: "application/json",
'API-NUMBER': "qkm7zxxxxxxxxxxxxwobxoh3"
};
let myURL := "https://risk.openapi.com/IT-richiesta/" + 'ID OPENAPI';
let response := do as server
let response := http("GET", myURL, header, null);
let resu := formatJSON(response.result);
let IdCertificato := ID;
(select 'Certificati' where ID = IdCertificato).('Status richiesta' := text(parseJSON(resu).first(data).status));
let status := text(parseJSON(resu).first(data).status);
if text(parseJSON(resu).first(data).soggetto.deceduto) = "true" then
alert("ATTENZIONE SOGGETTO DECEDUTO!")
else
if status = "COMPLETED" then
(select 'Certificati' where ID = IdCertificato).('Data ricezione' := format(date(year, month, day), "MM/DD/YYYY"));
(select 'Certificati' where ID = IdCertificato).(Indirizzo := text(parseJSON(resu).first(data).soggetto.residenza.indirizzo));
(select 'Certificati' where ID = IdCertificato).(CAP := text(parseJSON(resu).first(data).soggetto.residenza.cap));
(select 'Certificati' where ID = IdCertificato).('Località' := text(parseJSON(resu).first(data).soggetto.residenza.comune));
(select 'Certificati' where ID = IdCertificato).('Prov.' := text(parseJSON(resu).first(data).soggetto.residenza.provincia));
let datadec := text(parseJSON(resu).first(data).soggetto.decesso_data);
let onlydate2 := substr(datadec, 0, 10);
let dateArr2 := split(onlydate2, "-");
let year2 := number(item(dateArr2, 0));
let month2 := number(item(dateArr2, 1));
let day2 := number(item(dateArr2, 2));
(select 'Certificati' where ID = IdCertificato).(Note := if text(parseJSON(resu).first(data).soggetto.deceduto) = "true" then
"ATTENZIONE DECEDUTO IL " + text(format(date(year2, month2, day2), "DD/MM/YYYY"))
end);
if text(parseJSON(resu).first(data).soggetto.deceduto) = "true" then
'SchedaC'.('CHIUDI FASCICOLO' := true);
if text(parseJSON(resu).first(data).soggetto.deceduto) = "true" then
'Scheda Cliente'.('Motivo chiusura fasciolo' := "DECEDUTO")
end
end
end
end
2 Antworten
-
Hallo Andrea, ich bin jetzt nicht der API-Experte, aber grundsätzlich kann jeder Code, der sich auf einen Datensatz bezieht, auch für mehrere bzw. alle Datensätze einer Tabelle ausgeführt werden. Angenommen, du hättest einen Button mit folgendem Code, der im aktuellen Datensatz einen Wert in ein Datenfeld schreibt:
Summe := Menge * Preis
Dann könnte dieser Code mit einer for-Schleife für alle Datensätze der Tabelle ausgeführt werden:
for i in select TABELLE do i.Summe := i.Menge * i.Preis end
Du müsstest nun in deinem Code nach der Stelle suchen, wo die Schleife beginnen und enden soll. Und wie in obigem Beispiel allen Datensatz-Feldern, die im Script angesprochen werden, den Namen der Variable voranstellen (im Beispiel „i“).
Ist 'ID OPENAPI' ein Feld im Datensatz? Wahrscheinlich, denn sonst wäre die URL ja immer dieselbe. Dann könnte ein Ansatz(!) folgender sein:
let header := { Authorization: "Bearer 65fd963xxxxxxxxxxx6be28", Accept: "application/json", 'API-NUMBER': "qkm7zxxxxxxxxxxxxwobxoh3" }; do as server for i in select DEINETABELLE do let myURL := "https://risk.openapi.com/IT-richiesta/" + i.'ID OPENAPI'; let response := http("GET", myURL, header, null); ...
Aber das ist jetzt wirklich nur eine spontane Idee, damit deine Frage nicht ganz ohne Reaktion bleibt. Immerhin ist das Thema jetzt wieder oben, und vielleicht erbarmt sich einer der API-Cracks, das zu korrigieren oder zu optimieren.
Content aside
- vor 8 MonatenZuletzt aktiv
- 2Antworten
- 61Ansichten
-
2
Folge bereits