Collections fornisce delle API Javascript ed un editor di codice in-app.
L'API Javascript è limitata alle Fonti, puoi usare Javascript per cercare e creare documenti interrogando servizi esterni (es. Google Books). Per creare una Fonte, apri una raccolta → premi sul bottone → Modifica → Fonti.
L'API è accessibile attraverso l'oggetto app.
app.query
Questo oggetto contiene informazioni sulla query corrente. Il tipo di query dipende dal metodo di input (testo o codice a barre).
app.query.isText()bool
Restituisce vero per una query di testo.
app.query.isBarcode()bool
Restituisce vero per una query di codice a barre.
app.query.valueobject
Il valore della query. Per le query di testo o codice a barre, il valore è una stringa.
app.params
In una Fonte, questo oggetto conterrà i parameteri passati dallo script di ricerca allo script documento.
app.log(object)
Scrivi un messaggio nella console. Equivalente di console.log()
Risultato
app.result()
Questa funzione deve essere chiamata alla fine dello script per restituire un risultato. Questa funzione ha differenti dichiarazioni in base al contesto.
app.result(resultsarray of search results)
In uno script di ricerca, dovresti chiamarla passando un array di risultati di ricerca.
app.result(builderdocument builder)
In uno script documento, dovresti chiamarla passando un document builder.
app.fail()
Chiama questa funzione per terminare l'esecuzione dello script. Puoi chiamarla in un qualsiasi punto del codice.
Rete
app.request(urlstring)request
Crea una nuova richiesta HTTPS con l'URL specificato. Nota: l'app supporta solo richieste sicure HTTPS, qualsiasi URL http viene convertito in https.
request.methodstring
Imposta od ottieni il metodo per la richiesta. "GET" oppure "POST"
request.bodystring
Imposta od ottieni il body usato dalla richiesta POST.
request.addHeaderValue(valuestring, keystring)
Aggiungi un valore di header specificando un valore ed una chiave.
request.send()response
Invia la richiesta e restituisce un oggetto response.
response
La risposta ottenuta da request.send()
json()JSON object
Esegue il parsing della risposta come JSON. Restituisce undefined se l'oggetto non può essere parsato.
image()image
Esegue il parsing della risposta come immagine. Restituisce undefined se l'immagine non è valida.
xml()XML Document
Esegue il parsing della risposta come XML. Restituisce undefined se la risposta non può essere parsata. Visita Parser XML per la documentatione del parser XML.
statusCodeinteger
Ottieni lo status code della risposta. Se la richiesta fallisce, lo status code è -1.
successbool
Vero se il server invia una risposta. Falso negli altri casi (nessuna connessione).
app.image.fromURL(urlstring)image
Una scorciatoia per richiedere un'immagine dal web, restituisce un oggetto image, o undefined se la richiesta fallisce.
let request = app.request("https://www.google.com");
let response = request.send();
let data = response.json();
Storage
app.storage
Puoi usare app.storage come uno storage persistente chiave-valore. app.storage deve essere un dizionario e può immagazzinare qualsiasi oggetto serializzabile come string, number, date, array. Il dizionario è inizializzato prima di valutare uno script.
Imposta degli elementi lista (come array di suggerimenti) per il campo specificato. mergeValues è opzionale. Se mergeValues è true, i valori esistenti verranno uniti ai nuovi valori.
Imposta dei documenti (come array di builder) per il campo specificato. mergeValues è opzionale. Se mergeValues è true, i valori esistenti verranno uniti ai nuovi valori.
Imposta dei documenti gestiti (come array di builder) per il campo specificato. mergeValues è opzionale. Se mergeValues è true, i valori esistenti verranno uniti ai nuovi valori.
Imposta un gruppo (come group builder) per il campo specificato. mergeValues è opzionale. Se mergeValues è true, i valori esistenti verranno uniti ai nuovi valori.
document.setEntity(namestring)
Imposta l'entità per il documento passando il nome dell'entità.
document.setIdentifier(fieldAliasstring)
Imposta un campo come identificatore per cercare un documento esistente. Opzionale.
document.setTitle(fieldAliasstring)
Imposta un campo come titolo del suggerimento. Per impostazione predefinita, il primo campo aggiunto al builder è usato come titolo.
Per URL, Email, Telefono, Codice a barre puoi semplicemente usare setString.
Per Intervallo di tempo puoi usare setDecimal specificando il valore in secondi.
Per "Data e ora" puoi usare setDate.
Per Colore puoi usare setString specificando il valore hex (es. #00FF00).
Quando crei un documento, di solito vuoi impostare elementi di una lista o documenti già esistenti. Per risolvere questo problema, l'app usa il concetto di suggerimento.
Un suggerimento contiene un identificatore e tutti i dati necessari a creare l'elemento. L'app cercherà l'elemento corrispondente all'identificatore specificato, e se quell'elemento non esiste, ne creerà uno nuovo.
Crea un nuovo suggerimento per un elemento lista specificando un alias ed un nome. Per impostazione predefinita, l'alias viene usato come identificatore.
suggestion.aliasAsIdentifier()
Usa l'alias come identificatore.
suggestion.nameAsIdentifier()
Usa il nome come identificatore.
let listItem = app.listItem.suggest("fantasy", "Fantasy");
document.setListItem(listItem, "genre");
Suggerisci un documento
Per suggerire un documento, crea un nuovo document builder e chiama builder.setIdentifier(fieldAlias) per impostare un campo come identificatore. Se stai creando un nuovo documento, non è necessario chiamare questo metodo.
let author = app.document.builder();
author.setIdentifier("name");
author.setString("J. K. Rowling", "name");
let book = app.document.builder();
book.setString("Harry Potter", "name");
book.setDocument(author, "author");
L'esempio crea un autore con il campo name come identificatore. L'autore viene poi salvato in un libro, l'app cercherà un autore dal nome "J. K. Rowling" o ne creerà uno nuovo se questo non esiste.
Ottieni un valore del documento come value container.
valueContainer
Un value container è un contenitore astratto che offre utilità come testare l'uguaglianza, comparazione o formattazione in stringa.
getValue()Javascript object
Ottieni l'oggetto Javascript sottostante.
equals(anotherContainerValue container)bool
Ritorna vero se il valore è uguale all'altro valore.
compare(anotherContainerValue container)integer
Ritorna 0 se i valori sono uguali. -1 se il primo valore è inferiore rispetto al secondo. 1 se il primo valore è superiore rispetto al secondo.
toString()string
Ritorna il valore come stringa formattata.
// During a document update
let document = app.currentDocument;
let title = document.getValue("title");
// Find a document by short ID
let document = app.document.findById("ABC123");
let title = document.getValue("title");
Aggiornare un documento
Un documento può essere aggiornato da una fonte. Per iniziare, abilita la funzione da → Modifica → Fonti → Fonte → Abilita aggiornamento documento.
Quindi apri un documento, e dalla schermata di dettaglio, premi su → Aggiorna da... → Fonte.
app.currentDocumentdocument
Quando stai aggiornando un documento, questa proprietà contiene il documento corrente.
app.actionaction
L'azione eseguita quando dallo script (crea o aggiorna). È un valore enum-like, i valori possibili sono elencati sotto.
app.actions.CREATE
app.actions.UPDATE
Utilità
app.date.isValid(datedate)bool
Restituisce vero se l'oggetto date è valido.
app.date.fromUnixTimestamp(timestampint)date
Crea una data da un timestamp Unix. Restituisce una data oppure undefined se la data non è valida.