Claris FileMaker Server 19
Guida alla Pubblicazione Web personalizzata© 2004-2020 Claris International Inc. Tutti i diritti riservati.
Claris International Inc.
5201 Patrick Henry Drive
Santa Clara, California 95054 Stati Uniti
FileMaker, FileMaker Cloud, FileMaker Go e il logo della cartella sono marchi di Claris International Inc. registrati negli Stati Uniti e in altri
Paesi. Claris, il logo Claris, Claris Connect e FileMaker WebDirect sono marchi di Claris International Inc. Tutti gli altri marchi sono di
proprietà dei rispettivi proprietari.
La documentazione dei prodotti FileMaker è protetta da copyright. Non è permesso fare copie o distribuire questa documentazione senzaprevia autorizzazione scritta di Claris. È possibile utilizzare la presente documentazione soltanto unitamente a una copia del software
FileMaker concessa in licenza.
Tutte le persone, le società, gli indirizzi e-mail e gli URL elencati negli esempi sono fittizi e ogni riferimento a persone, società, indirizzi
e-mail o URL esistenti è puramente casuale. Gli autori del prodotto sono elencati nel documento Riconoscimenti fornito insieme a questo
software. Gli autori della documentazione sono elencati nei Riconoscimenti per la documentazione. I prodotti di terze parti e gli URL sono
citati unicamente a scopo informativo e non costituiscono obbligo o raccomandazione. Claris International Inc. non si assume alcuna
responsabilità nei confronti delle prestazioni di questi prodotti.
Per ulteriori informazioni, visitare il nostro sito Web.
Edizione: 01

Sommario
Prefazione

8

Informazioni su questa guida
Dove reperire la documentazione del prodotto FileMaker

88

Capitolo 1
Introduzione alla Pubblicazione Web personalizzata

9Motore per la pubblicazione Web
Modalità di elaborazione di una richiesta del Motore per la pubblicazione Web
Pubblicazione Web personalizzata con XML
Pubblicazione Web personalizzata con PHP
Confronto tra XML e PHP
Motivi per scegliere XML
Motivi per scegliere PHPCapitolo 2
Preparazione dei database per la Pubblicazione Web personalizzata
Attivazione della Pubblicazione Web personalizzata in un database
Accesso ad un database protettoProtezione dei database pubblicati
Supporto del server Web per i tipi di supporto Internet (MIME)
Pubblicazione del contenuto dei campi Contenitore sul Web
Oggetti dei campi Contenitore incorporati in un database
Campi Contenitore con riferimenti ai file memorizzati
Campi Contenitore con dati memorizzati esternamente
Campi Contenitore e download progressivo
Modalità di visualizzazione dei dati dei campi Contenitore
Script FileMaker e Pubblicazione Web personalizzata
Suggerimenti e considerazioni sugli script
Comportamento degli script nelle soluzioni di Pubblicazione Web personalizzata
Trigger di script e soluzioni di Pubblicazione Web personalizzata

Capitolo 3
Pubblicazione Web personalizzata con XML
Creazione di siti Web dinamici con il Motore per la pubblicazione Web
Caratteristiche principali della Pubblicazione Web personalizzata con XML
Requisiti per la pubblicazione sul Web
Requisiti per la pubblicazione di un database mediante Pubblicazione Web personalizzata
Cosa si richiede agli utenti Web per accedere alla soluzione di Pubblicazione Web
personalizzata
Connessione a internet o a una rete intranet
Operazioni successive

10
10
11
11
11
11
12

13
13
13
14
15
16
16
16
16
17
18
18
18
19
20

21
21
22
22
22
23
23
23

Sommario

Capitolo 4
Accesso a dati XML con il Motore per la pubblicazione Web
Uso di Pubblicazione Web personalizzata con il linguaggio XML
Confronto tra il Motore per la pubblicazione Web e l’importazione e l’esportazione didati XML
Modalità di generazione di dati XML da una richiesta da parte del Motore per la
pubblicazione Web
Procedura generale per accedere a dati XML dal Motore per la pubblicazione Web
Sintassi URL per dati XML e oggetti Contenitore
Sintassi URL per dati XML
Sintassi URL per oggetti Contenitore FileMaker Pro in soluzioni XML
Codifica testo URL
Accesso a dati XML attraverso il Motore per la pubblicazione Web
Nome spazio per XML FileMaker
Codici di errore dei database FileMaker Pro
Recupero di DTD per le grammatiche FileMaker
Utilizzo della grammatica fmresultset
Descrizione degli elementi della grammatica fmresultset
Dati XML con la grammatica fmresultset
Utilizzo di altre grammatiche XML FileMaker
Descrizione degli elementi della grammatica FMPXMLRESULT
Dati XML con la grammatica FMPXMLRESULT
Descrizione degli elementi della grammatica FMPXMLLAYOUT
Dati XML con FMPXMLLAYOUT grammatica
Dati codificati nel formato UTF-8
Utilizzo di stringhe di query FileMaker per richiedere dati XML
Applicazione dei formati per una risposta XML
Elaborazione delle richieste XML
Risoluzione dei problemi di accesso a documenti XML

Capitolo 5
Nomi validi utilizzati nelle stringhe di query XML
Comandi e parametri query
Linee guida per l’utilizzo dei comandi e dei parametri query
Analisi dei comandi query
Sintassi di un nome di campo completamente qualificato
Utilizzo dei comandi query con campi portale
Sintassi per specificare un campo globale

4

24
24
24
25
26
27
27
27
29
29
30
30
30
30
31
33
34
34
35
36
38
39
39
41
42
42

43
43
44
45
46
46
48

Sommario

Riferimento comando query
Comando query –dbnames (Nomi database)
Comando query –delete (Elimina record)
Comando query –dup (Duplica record)
Comando query –edit (Modifica record)
Comandi query –find, –findall o –findany (Trova record)
Comando query –findquery (Ricerca composta)
Comando query –layoutnames (Nomi formati)
Comando query –new (Nuovo record)
Comando query –scriptnames (Nomi script)
Comando query –view (Visualizza le informazioni sul formato)
Riferimento parametro query
Parametro query –db (Nome database)Parametro query –delete.related (Elimina record portale)
Parametro query –field (Nome campo Contenitore)
Parametro query fieldname (Nome campo non Contenitore)
Parametro query fieldname.op (Operatore di confronto)
Parametro query –lay (Formato)Parametro query –lay.response (Applicazione del formato per la risposta)
Parametro query –lop (Operatore logico)
Parametro query –max (Record max)
Parametro query –modid (ID modifica)
Parametro query –query (Richiesta di ricerca composta)
Parametro query –recid (ID record)
Parametro query –relatedsets.filter (Filtra record portale)
Parametro query –relatedsets.max (Limita record portale)
Parametro query –script (Script)
Parametro query –script.param (Trasferisci parametro a script)
Parametro query –script.prefind (Script prima di trovare)Parametro query –script.prefind.param (Trasferisci parametro a script prima di trovare)Parametro query –script.presort (Script prima di ordinare)Parametro query –script.presort.param (Trasferisci parametro a script prima di ordinare)Parametro query –skip (Salta record)
Parametro query –sortfield (Campo ordinamento)
Parametro query –sortorder (Ordinamento)

Capitolo 6
Pubblicazione Web personalizzata con PHP
Caratteristiche principali della Pubblicazione Web personalizzata con PHP
Requisiti della Pubblicazione Web personalizzata
Requisiti per la pubblicazione di un database mediante Pubblicazione Web personalizzata
Cosa è richiesto agli utenti Web per accedere a una soluzione di Pubblicazione Web
personalizzata
Connessione a internet o a una rete intranet
Installazione manuale di FileMaker API per PHP
Operazioni successive

5

48
48
49
49
49
50
50
51
51
52
52
52
52
53
53
53
54
55
55
56
56
56
57
58
58
59
59
60
60
60
61
61
62
62
63

64
64
64
64
65
65
66
67

Sommario

Capitolo 7
Panoramica della Pubblicazione Web personalizzata con PHP
Utilizzo del Motore per la pubblicazione Web con soluzioni PHP
Operazioni generali per la Pubblicazione Web personalizzata con PHP

Capitolo 8
Utilizzo di FileMaker API per PHP
Dove ottenere informazioni aggiuntive
Informazioni di riferimento a FileMaker API per PHP
Supporto FileMaker API per PHP
Utilizzo della classe FileMaker
Oggetti classe FileMaker
Oggetti comando FileMaker
Decodifica dei dati per l’uso in FileMaker API
Collegarsi a un database FileMaker Pro
Utilizzo dei record
Creazione di un record
Duplicazione di un record
Modifica di un record
Eliminazione di un record
Esecuzione di script FileMaker
Recupero dell’elenco degli script disponibili
Esecuzione di uno script FileMaker
Esecuzione di uno script prima di eseguire un comando
Esecuzione di uno script prima di ordinare un gruppo di risultati
Esecuzione di uno script dopo la creazione di un gruppo di risultati
Ordine di esecuzione degli script
Utilizzo dei formati FileMaker Pro
Utilizzo dei portali
Elenco dei portali definiti in un formato specifico
Recupero dei nomi dei portali per un oggetto risultato specifico
Recupero delle informazioni sui portali per un formato specifico
Recupero delle informazioni per un portale specifico
Recupero del nome della tabella per un portale
Recupero dei record del portale per un record specifico
Creazione di un nuovo record in un portale
Eliminazione di un record da un portale
Utilizzo delle liste valori
Recupero dei nomi di tutte le liste valori per un formato specifico
Recupero di una matrice di tutte le liste valori per un formato specifico
Recupero dei valori per una lista valori indicata
Esecuzione di richieste di ricerca
Utilizzo del comando Find All
Utilizzo del comando Find Any
Utilizzo del comando Find
Utilizzo di un comando Compound Find
Elaborazione dei record in un gruppo di risultati
Limitazione delle righe del portale restituite dalle richieste di ricerca

6

68
68
68

70
70
70
70
71
71
71
72
72
73
73
73
74
74
75
75
75
75
76
76
76
77
78
78
78
78
78
79
79
79
79
80
80
80
80
81
82
82
82
83
85
86

Sommario

7

Pre-convalida di comandi, record e campi
Pre-convalida dei record in un comando
Pre-convalida dei record
Pre-convalida dei campi
Elaborazione degli errori di convalida
Gestione degli errori

86
88
88
88
88
90

Capitolo 9
Preparazione, test e monitoraggio di un sito

91

Preparazione di un sito Pubblicazione Web personalizzata
Test di un sito Pubblicazione Web personalizzata
Fogli di stile per testare l’output XML
Monitoraggio di un sito
Uso dei registri degli accessi e degli errori del server Web
Utilizzo del registro del Motore per la pubblicazione Web
Utilizzo del registro errori del Modulo Server Web
Utilizzo dei registri Tomcat

91
92
93
94
94
94
96
96

Appendice A
Codici di errore per la Pubblicazione Web personalizzata

97

Codici di errore in formato XML
Codici di errore per database FileMaker Pro

Indice979899

Prefazione
Informazioni su questa guida
Questa guida suppone che l’utente abbia esperienza con l’utilizzo di Claris™ FileMaker® Pro perla creazione di database. È necessario comprendere le nozioni di base della progettazione dei
database FileMaker Pro e i concetti di campo, relazione, formato, portale e contenitore. Per
informazioni su FileMaker Pro, consultare la Guida di FileMaker Pro.
Questa guida suppone inoltre che il lettore abbia esperienza nello sviluppo di siti Web, inparticolare nell’utilizzo di tecnologie come XML o PHP per integrare i dati FileMaker con siti Web
e applicazioni Web.
Questa guida fornisce le seguenti informazioni sulla Pubblicazione Web personalizzata con Claris
FileMaker Server:

1
1
1
1
1

cosa è richiesto per sviluppare una soluzione di Pubblicazione Web personalizzata
come pubblicare i database utilizzando XML
come ottenere dati XML da database ospitati da FileMaker Servercome pubblicare i database utilizzando PHP
come utilizzare FileMaker API per PHP per ottenere dati da database ospitati da
FileMaker Server

1 cosa è richiesto agli utenti Web per accedere a Pubblicazione Web personalizzata

Dove reperire la documentazione del prodotto FileMaker
1 La Guida di FileMaker Server è disponibile su tutte le pagine della FileMaker Server Admin
Console. Andare al fondo della pagina e fare clic su Guida.

1 La documentazione di FileMaker Server è accessibile da tutte le pagine dell’Admin Console.
Andare al fondo della pagina e fare clic su Documentazione.

1 Sul Web, visitare il centro documentazione prodotto.

Capitolo 1
Introduzione alla Pubblicazione Web
personalizzata
Con FileMaker Server, è possibile pubblicare i database FileMaker Pro su internet o su una reteintranet nei seguenti modi.
FileMaker WebDirect: Con Claris FileMaker WebDirect™, è possibile pubblicare rapidamente e
facilmente i formati da un database sul Web. Non è necessario installare un software aggiuntivo;
chiunque disponga di un browser Web compatibile e abbia accesso a internet o a una rete intranet
può connettersi alla soluzione FileMaker WebDirect per visualizzare, modificare, ordinare oeseguire ricerche all’interno dei record, a condizione che disponga dei privilegi di accesso
necessari.
Con FileMaker WebDirect, è necessario che sul computer host sia in esecuzione
FileMaker Server. L’interfaccia utente è simile all’applicazione desktop FileMaker Pro. Le pagine
Web e i moduli con cui l’utente Web interagisce dipendono dai formati e dalle visualizzazioni
definiti nel database FileMaker Pro. Vedere la Guida di FileMaker WebDirect.
Pubblicazione statica: Se i dati vengono modificati di rado oppure se non si desidera che gli
utenti si connettano dinamicamente al database, è possibile ricorrere alla pubblicazione statica.
La pubblicazione statica consente di esportare i dati di un database FileMaker Pro per creare una
pagina Web personalizzabile con HTML. La pagina Web non riflette le modifiche apportate alle
informazioni nel database e gli utenti non si connettono al database. (con FileMaker WebDirect, idati vengono aggiornati nel browser Web ogni volta che vengono aggiornati sul database). Vederela Guida di FileMaker Pro.
FileMaker Data API: Se si ha esperienza con l’utilizzo dell’architettura REST (REpresentational
State Transfer), la piattaforma Claris FileMaker fornisce un’implementazione API REST che
consente ai servizi Web di accedere ai dati nelle soluzioni ospitate. Il servizio Web chiama
FileMaker Data API per ottenere un token di autenticazione per accedere a una soluzione
ospitata, quindi utilizza questo token nelle chiamate successive per creare, aggiornare ed
eliminare record e per eseguire richieste di ricerca. FileMaker Data API restituisce i dati in formato
JSON (JavaScript Object Notation). Vedere la Guida di FileMaker Data API.
Pubblicazione Web personalizzata: Per integrare il database FileMaker Pro con un sito Web
personalizzato, utilizzare le tecnologie di Pubblicazione Web personalizzata disponibili con
FileMaker Server. FileMaker Server, che ospita i database pubblicati, non richiede che
FileMaker Pro sia installato o sia in esecuzione per rendere disponibile la Pubblicazione Web
personalizzata.
Con la Pubblicazione Web personalizzata è possibile:

1 Integrare un database in un sito Web
1 Determinare il modo in cui gli utenti interagiscono con i dati
1 Controllare il modo in cui i dati vengono visualizzati nel browser Web

Capitolo 1 | Introduzione alla Pubblicazione Web personalizzata

10

FileMaker Server provvede due tecnologie di Pubblicazione Web personalizzata:

1 Pubblicazione Web personalizzata con XML: Utilizzare la pubblicazione di dati XML per

scambiare dati FileMaker con altri siti Web e applicazioni. Utilizzando richieste HTTP URL con
comandi e parametri query specifici FileMaker, è possibile eseguire query su un databaseospitato da FileMaker Server, scaricare i dati risultanti in formato XML e utilizzare i dati XML
risultanti nel modo desiderato.

1 Pubblicazione Web personalizzata con PHP: Utilizzare FileMaker API per PHP, che fornisce

un’interfaccia PHP orientata agli oggetti per i database FileMaker Pro, per integrare i dati
FileMaker in un’applicazione Web PHP. Eseguendo direttamente la codifica delle pagine Web
PHP, si ha il controllo completo sull’interfaccia utente e sul modo in cui l’utente interagisce con
i dati.

Motore per la pubblicazione Web
Per supportare FileMaker WebDirect e Pubblicazione Web personalizzata, FileMaker Server
utilizza un insieme di componenti software definiti Motore per la pubblicazione Web di
FileMaker Server. Il Motore per la pubblicazione Web gestisce le interazioni tra il browser di unutente Web, il server Web e FileMaker Server.
Pubblicazione Web personalizzata con XML: Gli utenti Web accedono alla soluzione di
Pubblicazione Web personalizzata facendo clic su un collegamento HREF o inserendo un URL(Uniform Resource Locator) che indica l’indirizzo del server Web e una richiesta di stringa di query
FileMaker. Il Motore per la pubblicazione Web restituisce i dati XML specificati nella richiesta di
stringa di query.
Pubblicazione Web personalizzata con PHP: Quando un utente Web accede alla soluzione
Pubblicazione Web personalizzata, PHP su FileMaker Server si collega con il Motore per la
pubblicazione Web e risponde attraverso FileMaker API per PHP.

Prodotti.fmp12

12Server Web

Browser
Web

3
Motore per la
pubblicazione Web

Modulo Server Web
Codice FM API e PHP

6

Clienti.fmp12

Database
ServerWeb Publishing Core

5

4

Uso del Motore per la pubblicazione Web di FileMaker Server per la Pubblicazione Web personalizzata

Modalità di elaborazione di una richiesta del Motore per la pubblicazione Web
1. Una richiesta viene inviata da un’applicazione o da un browser Web al server Web.
2. Il server Web invia la richiesta attraverso il Modulo Server Web di FileMaker al Motore per la
pubblicazione Web.
3. Il Motore per la pubblicazione Web richiede i dati al database ospitato dal server database.
4. FileMaker Server invia i dati FileMaker richiesti al Motore per la pubblicazione Web.

Capitolo 1 | Introduzione alla Pubblicazione Web personalizzata

11

5. Il Motore per la pubblicazione Web converte i dati FileMaker per rispondere alla richiesta.

1 Per le richieste PHP, FileMaker API per PHP converte la richiesta PHP in una richiesta XML.

Il Motore per la pubblicazione Web elabora la richiesta XML e reinvia i dati XML a FileMaker
API per PHP. Quindi FileMaker API per PHP converte i dati XML in oggetti PHP che possono
essere utilizzati dall’applicazione PHP.

1 Per le richieste XML, il Motore per la pubblicazione Web invia i dati XML direttamente alserver Web.

6. Il server Web invia l’output al browser Web o al programma che lo richiedono.
Importante Quando si pubblicano dati sul Web si deve prestare particolare attenzione alla
sicurezza. Consultare le linee guida per la sicurezza contenute nella Guida per la sicurezza diFileMaker.
Per informazioni sulla preparazione di un database per la Pubblicazione Web personalizzata,vedere il capitolo 2 “Preparazione dei database per la Pubblicazione Web personalizzata”.

Pubblicazione Web personalizzata con XML
La Pubblicazione Web personalizzata con XML di FileMaker consente di inviare richieste di querya un database FileMaker Pro ospitato da FileMaker Server e di visualizzare, modificare o gestire
i dati risultanti. Utilizzando una richiesta HTTP con i parametri e i comandi query appropriati, èpossibile recuperare i dati FileMaker come documento XML. È possibile esportare i dati XML in
altre applicazioni.

Pubblicazione Web personalizzata con PHP
FileMaker API per PHP fornisce un’interfaccia PHP con il database FileMaker Pro orientata agli
oggetti. FileMaker API per PHP consente di accedere ai dati e alla logica memorizzati in un
database FileMaker Pro e di pubblicarli sul Web o di esportarli in altre applicazioni. L’API supporta
anche comandi di ricerca complessi e composti per estrarre e filtrare i dati memorizzati nei
database FileMaker Pro.
Progettato inizialmente come linguaggio di programmazione procedurale, PHP è stato migliorato
come linguaggio di sviluppo web orientato agli oggetti. PHP fornisce le funzioni del linguaggio diprogrammazione per costruire virtualmente ogni tipo di logica in una pagina web. Ad esempio è
possibile utilizzare costrutti di logica condizionale per controllare la creazione di pagine, il
percorso dei dati o il flusso di lavoro. PHP fornisce anche l’amministrazione e la sicurezza del sito.

Confronto tra XML e PHP
Le seguenti sezioni forniscono alcune direttive per stabilire la soluzione più adeguata per undeterminato sito.

Motivi per scegliere XML
1 La sintassi dei parametri delle richieste XML di FileMaker è progettata per interagire con i
database, semplificando lo sviluppo della soluzione.

1 XML è uno standard W3C.
1 XML è un formato leggibile dall’uomo e dalla macchina che supporta Unicode, consentendo lacomunicazione dei dati con ogni tipo di linguaggio scritto.

Capitolo 1 | Introduzione alla Pubblicazione Web personalizzata

12

1 XML è particolarmente adatto per la presentazione di record, elenchi e dati con struttura adalbero.

1 È possibile utilizzare FMPXMLRESULT per l’accesso ai dati XML utilizzando la Pubblicazione
Web personalizzata e per l’esportazione XML dai database FileMaker Pro.

Nota Per informazioni sulla Pubblicazione Web personalizzata con XML, vedere il capitolo 3“Pubblicazione Web personalizzata con XML”.

Motivi per scegliere PHP
1 PHP è un linguaggio di scripting procedurale più efficace e orientato agli oggetti e, nello stesso

tempo, relativamente facile da apprendere. Offre molte risorse per l’apprendimento, lo sviluppo
e il supporto.

1 FileMaker API per PHP consente di accedere ai dati e alla logica memorizzati in un database
FileMaker Pro e di pubblicarli sul Web o di esportarli in altre applicazioni.

1 PHP consente di utilizzare una logica condizionale per controllare la creazione o il flusso dellepagine.

1 PHP fornisce le funzioni del linguaggio di programmazione per costruire vari tipi di logica in una
pagina web.

1 PHP è uno dei linguaggi di scripting Web più conosciuti.
1 PHP è un linguaggio open source, disponibile sul sito php.net.
1 PHP consente di accedere ad una grande quantità di componenti di terze parti che possono
essere integrati nelle proprie soluzioni.

Nota Per informazioni sulla Pubblicazione Web personalizzata con PHP, vedere il capitolo 6“Pubblicazione Web personalizzata con PHP”.

Capitolo 2
Preparazione dei database per la Pubblicazione
Web personalizzata
Prima di utilizzare la Pubblicazione Web personalizzata con un database, è necessario preparare
il database e proteggerlo da accessi non autorizzati.

Attivazione della Pubblicazione Web personalizzata in un databaseÈ necessario attivare un privilegio esteso per la Pubblicazione Web personalizzata in ogni
database da pubblicare. Se non si attiva un privilegio esteso per la Pubblicazione Web
personalizzata nel database, gli utenti Web non saranno in grado di utilizzare la Pubblicazione
Web personalizzata per accedere al database, anche se questo è ospitato da FileMaker Serverche è configurato per supportare un Motore per la pubblicazione Web.
Per attivare la Pubblicazione Web personalizzata per un database:
1. In FileMaker Pro, aprire il database da pubblicare utilizzando un account con set di privilegi
Accesso completo. In alternativa, si può aprire il database utilizzando un account che dispone
dei privilegi di accesso Gestisci privilegi estesi.
2. Assegnare il privilegio esteso per la Pubblicazione Web personalizzata da utilizzare:

1 Per la Pubblicazione Web personalizzata con XML, utilizzare fmxml
1 Per la Pubblicazione Web personalizzata con PHP, utilizzare fmphp
3. Assegnare un set di privilegi che include il privilegio esteso per la Pubblicazione Web
personalizzata a uno o più account, o all’account Admin o Ospite.
Nota Quando si definiscono i nomi utente e le password per la Pubblicazione Web
personalizzata, si possono usare solo caratteri ASCII stampabili, ad esempio a-z, A-Z e 0-9. Per
conferire maggiore sicurezza ai nomi account e password, inserire caratteri di punteggiatura come"!" e "%," ma non i due punti. Per informazioni sulla configurazione degli account, consultare la
Guida di FileMaker Pro.

Accesso ad un database protetto
La Pubblicazione Web personalizzata consente di limitare l’accesso ai database pubblicati
proteggendoli mediante password, crittografia e connessioni sicure. Quando si usa una soluzione
Pubblicazione Web personalizzata per accedere ad un database, agli utenti Web possono essere
richiesti i dati sull’account (nome utente e password). Se l’account Ospite per il database è
disattivato o non ha un set di privilegi attivato che includa il privilegio esteso di Pubblicazione Web
personalizzata, il Motore per la pubblicazione Web usa l’autenticazione di base HTTP perrichiedere l’autenticazione agli utenti Web. Il browser dell’utente Web visualizza la finestra didialogo di autenticazione di base HTTP in cui l’utente può digitare il nome utente e la password
per un account che dispone del privilegio esteso di Pubblicazione Web personalizzata.

Capitolo 2 | Preparazione dei database per la Pubblicazione Web personalizzata

14

I seguenti punti riassumono il processo che si verifica quando un utente Web utilizza una
soluzione di Pubblicazione Web personalizzata per accedere ad un database:

1 Se per un account non è stata assegnata nessuna password, gli utenti Web specificano
soltanto il nome utente.

1 Se l’account Ospite è disattivato, agli utenti verrà richiesto il nome utente e la password quando
accedono al database. per l’account deve essere attivato il privilegio esteso di Pubblicazione
Web personalizzata.

1 Se l’account Ospite è attivato con il set di privilegi che comprende il privilegio esteso di

Pubblicazione Web personalizzata, tutti gli utenti Web aprono automaticamente il database con
i privilegi di accesso assegnati all’account Ospite. Se all’account Ospite è assegnato il privilegio
esteso Pubblicazione Web personalizzata:

1 Agli utenti Web non viene richiesto il nome utente e la password quando aprono un file.
1 Tutti gli utenti Web accedono automaticamente con l’account Ospite e dispongono dei

privilegi dell’account Ospite. È possibile permettere agli utenti di cambiare i propri accountdi accesso da un browser Web con l’istruzione di script Nuovo accesso (ad esempio, perpassare da un account Ospite a un account con più privilegi).

1 Il set di privilegi predefinito per gli account Ospite fornisce accesso di sola lettura. È possibile
cambiare i privilegi predefiniti, compresi i privilegi estesi, per questo account. Vedere la
Guida di FileMaker Pro.

1 Se un utente Web ha inserito informazioni valide sull’account, queste vengono riutilizzate finoallo scadere della sessione del browser. Quando la sessione del browser scade, all’utente Webviene nuovamente richiesto di inserire un account valido.

Nota Per impostazione predefinita, gli utenti Web non possono modificare la loro password da
un browser Web. Questa funzione può essere inserita in un database con l’istruzione di script
password Modifica password che permette agli utenti Web di modificare le password dal browser.
Vedere la Guida di FileMaker Pro.

Protezione dei database pubblicati
Quando si utilizza la Pubblicazione Web personalizzata, è possibile definire chi può accedere ai
database pubblicati.

1 Assegnare delle password agli account del database che vengono usati per la Pubblicazione
Web personalizzata.

1 Attivare un privilegio esteso per la Pubblicazione Web personalizzata solo nei set di privilegi
degli account a cui si desidera consentire l’accesso ai database pubblicati.

1 Disattivare il privilegio esteso per la Pubblicazione Web personalizzata per un determinato

database deselezionando il privilegio esteso fmxml o fmphp per tutti i set di privilegi in quel
database. Vedere la Guida di FileMaker Pro.

1 Attivare o disattivare la Pubblicazione Web personalizzata per tutte le soluzioni di

Pubblicazione Web personalizzata utilizzando l’interfaccia a riga di comando (CLI). Inoltre,
utilizzare la FileMaker Server Admin Console per avviare o arrestare il Motore per la
pubblicazione Web. Vedere la Guida di FileMaker Server.

Capitolo 2 | Preparazione dei database per la Pubblicazione Web personalizzata

15

1 Configurare il server Web per limitare gli indirizzi IP che possono accedere ai databaseattraverso il Motore per la pubblicazione Web. Ad esempio, è possibile specificare chel’accesso ai database sia consentito esclusivamente agli utenti Web con l’indirizzo
IP 192.168.100.101. Per informazioni sulla limitazione degli indirizzi IP, vedere la
documentazione del server Web.

FileMaker Server supporta la crittografia per i dati scritti su disco e per i dati trasmessi ai client.

1 Crittografare il database utilizzando la funzione Crittografia database di FileMaker Pro. La

crittografia protegge il file di database FileMaker Pro e i file temporanei scritti sul disco. Vederela Guida all’installazione e alla configurazione di FileMaker Server e la Guida di FileMaker Pro

1 Un database crittografato ospitato su FileMaker Server viene aperto utilizzando l’Admin

Console o l’interfaccia a riga di comando. L’amministratore di FileMaker Server apre il fileutilizzando la sua password di crittografia del database, in modo da permettere ai client di
FileMaker di utilizzare il database crittografato.

1 Una volta che il database di FileMaker crittografato è stato aperto con la password di

crittografia dall’amministratore di FileMaker Server, i client di FileMaker non hanno bisogno
di una password di crittografia per accedere al database crittografato. Per informazioni
sull’apertura di un database crittografato, vedere la Guida di FileMaker Server.

1 Utilizzare la crittografia Secure Sockets Layer (SSL) per la comunicazione tra il server Web e ibrowser Web. Le connessioni SSL sono realizzate mediante una connessione HTTPS.
FileMaker Server fornisce un certificato SSL standard firmato da Claris International Inc. che
non verifica il nome del server. Il certificato predefinito di FileMaker è destinato solo ai test. Per
l’uso in un ambiente di produzione è richiesto un certificato SSL personalizzato. Vedere la
Guida all’installazione e alla configurazione di FileMaker Server.
Quando si importa un certificato SSL personalizzato, le connessioni client al server databaseutilizzano la crittografia SSL; le connessioni HTTP vengono indirizzate a una connessione
HTTPS. Con un certificato SSL personalizzato, utilizzare la directory HTTPS per ospitare i filedel sito PHP. Vedere capitolo 7 “Operazioni generali per la Pubblicazione Web personalizzata
con PHP”.

Per informazioni sulla protezione del database, vedere la Guida per la sicurezza di FileMaker.
Nota Per motivi di sicurezza, le pagine Web ospitate da altri server Web non possono utilizzare
il tag <iframe> per incorporare i contenuti di Pubblicazione Web personalizzata. Per incorporare icontenuti di Pubblicazione Web personalizzata nei tag <iframe> di pagine Web separate, anche
quelle pagine Web devono essere ospitate dal server Web FileMaker Server.

Supporto del server Web per i tipi di supporto Internet (MIME)
Il server Web determina il supporto per i tipi MIME (Multipurpose Internet Mail Extensions) correnti
registrati per Internet. Il Motore per la pubblicazione Web non cambia il supporto del server Web
per MIME. Vedere la documentazione del server Web.

Capitolo 2 | Preparazione dei database per la Pubblicazione Web personalizzata

16

Pubblicazione del contenuto dei campi Contenitore sul Web
I contenuti di un campo Contenitore possono essere incorporati nel database, collegati comeriferimento attraverso il relativo percorso o memorizzati esternamente.

Oggetti dei campi Contenitore incorporati in un database
Se nei campi Contenitore vengono memorizzati i file effettivi del database FileMaker Pro, non è
necessario eseguire nessun’operazione con i campi Contenitore se il file di database è ospitato
nella posizione appropriata ed è accessibile su FileMaker Server. Vedere “Sintassi URL per
oggetti Contenitore FileMaker Pro in soluzioni XML” a pagina 27.

Campi Contenitore con riferimenti ai file memorizzati
Se un campo Contenitore memorizza un riferimento ai file, seguire questi passi per pubblicare i
file di riferimento utilizzando il Motore per la pubblicazione Web.
1. Memorizzare i file degli oggetti Contenitore nella cartella Web all’interno della cartella
FileMaker Pro.
2. In FileMaker Pro, inserire gli oggetti nel campo Contenitore e selezionare l’opzione Memorizza
solo un riferimento al file.
3. Copiare o spostare i file degli oggetti di riferimento nella cartella Web nella stessa posizione
relativa nella cartella principale del software del server Web.

1 Per IIS (Windows):[unità]:\Programmi\FileMaker\FileMaker Server\HTTPServer\conf
dove [unità] è l’unità in cui risiede il componente Motore per la pubblicazione Web delladistribuzione di FileMaker Server.

1 Per Apache (macOS): /Libreria/FileMaker Server/HTTPServer/htdocs
Nota Per gli oggetti Contenitore memorizzati come riferimenti ai file, il server Web deve essere
configurato per supportare i tipi MIME per i file da gestire, come i filmati. Il server Web determina
il supporto per i tipi MIME (Multipurpose Internet Mail Extensions) correnti registrati per Internet.
Il Motore per la pubblicazione Web non cambia il supporto del server Web per MIME. Vedere la
documentazione del server Web.

Campi Contenitore con dati memorizzati esternamente
Se un campo Contenitore memorizza oggetti esternamente, ovvero se si è selezionato
Memorizza dati Contenitore esternamente nella finestra di dialogo Opzioni per il campo diFileMaker Pro, utilizzare FileMaker Pro per trasferire i file di database dal file system del client a
FileMaker Server. Se si utilizza FileMaker Pro per caricare un database, i dati dei campi
Contenitore memorizzati esternamente vengono caricati su FileMaker Server come parte delprocesso. Per informazioni sul trasferimento dei file di database in FileMaker Server, consultare
la Guida di FileMaker Pro.
Se si carica manualmente un database che utilizza un campo Contenitore con oggetti memorizzati
esternamente, è necessario seguire questi passi per pubblicare gli oggetti Contenitore
memorizzati esternamente utilizzando il Motore per la pubblicazione Web.

Capitolo 2 | Preparazione dei database per la Pubblicazione Web personalizzata

17

Per caricare un database manualmente:
1. Collocare il file di database nella posizione corretta sul server. Posizionare i file di database
FileMaker Pro (collegamenti (Windows) o alias (macOS) riferiti a quei file) che si desidera
aprire con FileMaker Server nelle seguenti cartelle:

1 Windows:[unità]:\Programmi\FileMaker\FileMaker Server\Data\Databases\
dove [unità] è l’unità primaria da cui viene avviato il sistema.

1 macOS: /Libreria/FileMaker Server/Data/Database/O è possibile inserire i file in una cartella aggiuntiva per i database (opzionale).
2. Nella cartella in cui è stato posizionato il database, creare una cartella RC_Data_FMS, se nonesiste già.
3. Nella cartella RC_Data_FMS, creare una cartella con un nome che corrisponda a quello deldatabase. Ad esempio, se il database si chiama Clienti, creare una cartella Clienti. Inserire gli
oggetti memorizzati esternamente nella nuova cartella creata.
Nota Quando i database sono ospitati su FileMaker Server, non è possibile per più databasecondividere una cartella di oggetti Contenitore comune. Gli oggetti Contenitore di ciascun
database devono essere in una cartella con lo stesso nome del database.
4. Per i file che verranno condivisi da macOS, modificarli in modo che appartengano al gruppo
fmsadmin.
Per informazioni sul caricamento manuale dei database, vedere la Guida di FileMaker Server.

Campi Contenitore e download progressivo
Il Motore per la pubblicazione Web supporta il download progressivo di file audio (.mp3), file video(consigliati .mov, .mp4 e .avi) e file PDF per i contenitori interattivi. Ad esempio, un utente Web
può iniziare a visualizzare un filmato anche se il relativo file non è ancora stato scaricato
completamente. Per consentire il download progressivo, può essere necessario creare i fileutilizzando opzioni che supportano lo streaming o che ottimizzano la visualizzazione sul Web. Ad
esempio, creare file PDF utilizzando l’opzione per ottimizzare la visualizzazione sul Web.
Quando si importa un certificato SSL personalizzato, le connessioni client al server databaseutilizzano la crittografia SSL; le connessioni HTTP vengono indirizzate a una connessione
HTTPS. FileMaker Server utilizza connessioni sicure per trasmettere i dati con HTTPS.

1 I dati Contenitore interattivi vengono scaricati con HTTPS.
1 La sicurezza dei dati è la stessa che avrebbero se la soluzione ospitata fosse un databaselocale, poiché non vengono creati file cache temporanei e i dati vengono crittografati durante
la trasmissione.

Se non si dispone di un certificato SSL personalizzato, le connessioni utilizzate da
FileMaker Server per trasmettere i dati non sono crittografate durante la trasmissione e i dati
vengono trasmessi con HTTP.

1 I client FileMaker visualizzano i dati Contenitore interattivi con un ritardo minimo.
1 FileMaker Server memorizza i dati dei campi Contenitore in una cartella cache sul server quando
un client FileMaker Pro, Claris FileMaker Go® o Web richiede tali dati. I dati possono rimanere
nella cartella cache sul server per due ore, limite entro il quale FileMaker Server svuota
periodicamente la cartella cache. I dati non vengono memorizzati nella cache locale del client.

Capitolo 2 | Preparazione dei database per la Pubblicazione Web personalizzata

18

Modalità di visualizzazione dei dati dei campi Contenitore
Se un database viene pubblicato utilizzando il Motore per la pubblicazione Web, agli oggetti delcampoContenitore vengono applicate le seguenti limitazioni:

1 Gli utenti Web non possono modificare o fare aggiunte al contenuto di un campo Contenitore.
Gli utenti Web non possono utilizzare campi Contenitore per caricare oggetti nel database.

1 Per i database che utilizzano un campo Contenitore con le miniature abilitate, il Motore per la
pubblicazione Web scarica l’intero file e non una miniatura.

Script FileMaker e Pubblicazione Web personalizzata
La funzione Gestisci script in FileMaker Pro consente di combinare operazioni diverse e diautomatizzare quelle eseguite più di frequente. Quando sono utilizzati con Pubblicazione Web
personalizzata, gli script FileMaker permettono agli utenti Web di eseguire altre operazioni o una
serie di operazioni.
La Piattaforma FileMaker supporta molte istruzioni di script nella Pubblicazione Web
personalizzata. Gli utenti Web possono eseguire diverse operazioni automatizzate quando si
usano gli script in una stringa di query per un URL. Per visualizzare le istruzioni di script
supportate dalla Pubblicazione Web personalizzata, nella finestra Area di lavoro script diFileMaker Pro, fare clic sul pulsante Compatibilità e selezionare Pubblicazione Web
personalizzata. Le istruzioni di script non disattivate sono supportate per la Pubblicazione Web
personalizzata. Per informazioni sulla creazione degli script, consultare la Guida di FileMaker Pro.

Suggerimenti e considerazioni sugli script
Anche se molte istruzioni di script funzionano allo stesso modo sul Web, alcune hanno un
funzionamento diverso. Vedere “Comportamento degli script nelle soluzioni di Pubblicazione Web
personalizzata” a pagina 19. Prima di condividere il database, testare tutti gli script che saranno
eseguiti da un browser Web. Eseguire l’accesso con account utente diversi per assicurarsi chequesti funzionino come previsto per tutti i client. Controllare nel file di registro del Motore per la
pubblicazione Web (wpe.log) gli eventuali errori relativi agli script. Vedere “Utilizzo del registro delMotore per la pubblicazione Web” a pagina 94.
Tenere presente quanto segue:

1 Considerare i valori che uno script può restituire. Prepararsi a gestire tutti i dati restituiti. In

FileMaker Pro, uno script può restituire tutti i record di una tabella o del gruppo trovato corrente.
Tuttavia, se uno script restituisce tutti i record di una tabella, un’applicazione Web può esaurire
la memoria nel tentativo di elaborarli. Considerare la possibilità di utilizzare il parametro query–max con le query XML o il metodo setRange() con le query PHP per limitare il numero direcord restituiti.

1 Utilizzare gli account e i privilegi per limitare il gruppo di script eseguibili da un utente Web.

Verificare che gli script contengano soltanto istruzioni di script compatibili con il Web e offrire
accesso soltanto agli script che possono essere usati da un browser Web.

1 Considerare inoltre gli effetti collaterali degli script che eseguono una combinazione di istruzioni
controllate dai privilegi di accesso. Ad esempio, se uno script contiene un’istruzione pereliminare i record e un utente Web non esegue l’accesso con un account che consente tale
operazione, lo script non eseguirà l’istruzione di script Elimina record. Tuttavia, l’esecuzionedello script potrebbe continuare, provocando risultati imprevisti.

Capitolo 2 | Preparazione dei database per la Pubblicazione Web personalizzata

19

1 Nella finestra Area di lavoro script, garantire privilegi di accesso completo a uno script perpermettere allo script di eseguire operazioni a cui non si desidera consentire l’accesso ai singoli
utenti. Ad esempio, è possibile impedire agli utenti di eliminare record con i rispettivi account e
privilegi, ma nello stesso tempo è possibile consentire loro di eseguire uno script che elimini
determinati tipi di record alle condizioni predefinite all’interno di uno script.

1 Per consentire agli script di installare i plug-in per le soluzioni di Pubblicazione Web

personalizzata e FileMaker WebDirect, utilizzare la FileMaker Server Admin Console per
attivare le impostazioni necessarie. Per Plug-in di Pubblicazione Web, impostare Plug-in di
Pubblicazione Web e Istruzione di script Installa file plug-in su Attivato. Per impedire allo
script di installare i plug-in per le soluzioni di pubblicazione Web, impostarle su Disattivato.

1 Alcuni script che utilizzano un’istruzione di un client FileMaker Pro potrebbero richiedere

un’ulteriore istruzione di script Salva record/richieste per salvare i dati sull’host. Poiché gli utenti
Web non hanno una connessione diretta con l’host, non ricevono notifica delle variazioni dei
dati. Ad esempio, le funzioni come le liste valori condizionali non sono così immediate per gli
utenti del Web perché i dati devono essere salvati sull’host prima che i loro effetti vengano
visualizzati nel campo lista valori.

1 Gli script che modificano i dati devono comprendere l’istruzione di script Salva record/richieste
perché le modifiche apportate ai dati non sono visibili nel browser finché i dati non vengono
salvati o "inviati" al server. Tra queste vi sono diverse istruzioni di script come Taglia, Copia e
Incolla. Molte azioni ad istruzione singola devono essere convertite in script per includerel’istruzione Salva record/richieste. Per creare script da eseguire da un browser Web includerel’istruzione Salva record/richieste alla fine dello script per assicurarsi che tutte le modifiche
vengano salvate.

1 Gli script che dipendono da dati che sono stati modificati, ma non ancora salvati, potrebbero

non funzionare come in un client FileMaker Pro. Ad esempio, se un campo contiene un calcolo
Get(CampiModificati), quando il record viene modificato da una query XML o una chiamata
PHP, il calcolo Get(CampiModificati) restituisce un elenco vuoto. Tuttavia, se la soluzione di
Pubblicazione Web personalizzata esegue uno script FileMaker che modifica il record, il calcolo
Get(CampiModificati) restituisce un elenco di campi modificati dallo script.

1 Per creare script condizionali in base al tipo di client, utilizzare la funzione

Get(VersioneApplicazione). Se il valore restituito comprende una stringa "Motore per la
pubblicazione Web", significa che l’utente sta accedendo al database con la Pubblicazione
Web personalizzata. Per informazioni sulle funzioni, consultare la Guida di FileMaker Pro.

1 Aprire tutti gli script che gli utenti Web potrebbero eseguire e assicurarsi che lo script venga
eseguito correttamente quando il database è ospitato come una soluzione di Pubblicazione
Web personalizzata. Verificare che lo script utilizzi solo istruzioni di script supportate per la
Pubblicazione Web personalizzata, come descritto in precedenza.

Comportamento degli script nelle soluzioni di Pubblicazione Web
personalizzata
Alcune istruzioni di script funzionano in modo diverso nelle soluzioni di Pubblicazione Web
personalizzata e in FileMaker Pro. Per informazioni sulla compatibilità, consultare la Guida diFileMaker Pro.
Gli script nelle soluzioni di Pubblicazione Web personalizzata non possono eseguire script in altri
file FileMaker Pro, a meno che i file siano ospitati sulla stessa installazione di FileMaker Server eche lo stesso privilegio esteso per la Pubblicazione Web personalizzata sia attivato negli altri file.

Capitolo 2 | Preparazione dei database per la Pubblicazione Web personalizzata

20

Trigger di script e soluzioni di Pubblicazione Web personalizzata
In FileMaker Pro, i trigger di script possono essere attivati sia dagli script che dalle azioni
dell’utente (come il clic in un campo). Nella Pubblicazione Web personalizzata, invece, solo gli
script possono attivare i trigger di script.
Per informazioni sui trigger di script, consultare la Guida di FileMaker Pro.
Nota Nelle soluzioni di Pubblicazione Web personalizzata, il trigger di script
SuAperturaPrimaFinestra non è attivato. Il trigger di script SuChiusuraUltimaFinestra è attivato solo
quando uno script chiude l’ultima finestra virtuale. È possibile eseguire manualmente gli script
utilizzando il parametro query –script per XML o il metodo newPerformScriptCommand() per PHP.

Capitolo 3
Pubblicazione Web personalizzata con XML
Creazione di siti Web dinamici con il Motore per la pubblicazione Web
Il Motore per la pubblicazione Web offre la Pubblicazione Web personalizzata per FileMaker
Server con la pubblicazione dati XML. La Pubblicazione Web personalizzata offre diversi
vantaggi:

1 Personalizzazione: Si può stabilire in che modo gli utenti Web interagiscono con i dati
FileMaker, e in che modo i dati vengono visualizzati nei browser Web.

1 Scambio dati: Utilizzando XML FileMaker, è possibile scambiare i dati FileMaker con altri siti
Web e applicazioni.

1 Integrazione dati: È possibile integrare i dati FileMaker in altri siti Web e con altre applicazioni
personalizzate e middleware. Si può fare in modo che i dati sembrino appartenere ad un altro
sito Web invece di visualizzare un intero formato FileMaker Pro nel browser Web.

1 Sicurezza: L’amministratore di FileMaker Server può attivare o disattivare Pubblicazione Web
XML per tutti i database ospitati dal server. Il proprietario del database FileMaker Pro può
controllare l’accesso degli utenti a Pubblicazione Web XML per ciascun database.

1 Controllo e filtraggio dei dati pubblicati: È possibile controllare e filtrare i dati e leinformazioni sul tipo di database che si desidera pubblicare, evitando in tal modo un uso non
autorizzato del database. Si possono anche nascondere i metadati, come i nomi dei campi e
dei database.

1 Uso di uno standard aperto: Questo permette di avere maggiore accesso a strumenti, arisorse e a personale esperto per la realizzazione di soluzioni di Pubblicazione Web
personalizzata. Se si conosce l’XML standard, è possibile partire immediatamente con lo
sviluppo di soluzioni dopo avere appreso poche nozioni di base sulla Pubblicazione Web
personalizzata con XML, come la sintassi URL e i parametri query da utilizzare.

La Pubblicazione Web personalizzata con XML permette di recuperare i dati dai database
FileMaker Pro e di utilizzare facilmente i dati in altri formati di uscita. Utilizzando una richiesta
HTTP con i parametri e i comandi query appropriati, è possibile recuperare i dati FileMaker comedocumento XML. In seguito i dati XML possono essere utilizzati in altre applicazioni. Vedere“Accesso a dati XML attraverso il Motore per la pubblicazione Web” a pagina 29.

Capitolo 3 | Pubblicazione Web personalizzata con XML

22

Caratteristiche principali della Pubblicazione Web personalizzata con XML
La Pubblicazione Web personalizzata con XML di FileMaker Server offre molte importanti funzioni:

1 I database sono ospitati su FileMaker Server e non è necessario che FileMaker Pro sia in
esecuzione.

1 È possibile utilizzare l’elaborazione lato server di XML utilizzando Javascript.
1 Come in FileMaker Pro, l’accesso ai dati, ai formati e ai campi dipende dalle impostazioni degliaccount utente definite nei privilegi di accesso del database. Per il Motore per la pubblicazione
Web sono stati inoltre introdotti altri miglioramenti per la sicurezza. Vedere “Protezione dei
database pubblicati” a pagina 14.

1 Gli utenti Web possono eseguire script complessi, a più istruzioni. La Piattaforma FileMaker
supporta molte istruzioni di script nella Pubblicazione Web personalizzata. Vedere “Script
FileMaker e Pubblicazione Web personalizzata” a pagina 18.

1 È possibile trasferire un valore di parametro ad uno script FileMaker. Vedere “Parametro query–script.param (Trasferisci parametro a script)” a pagina 60, “Parametro query–script.prefind.param (Trasferisci parametro a script prima di trovare)” a pagina 60 e “Parametro
query –script.presort.param (Trasferisci parametro a script prima di ordinare)” a pagina 61.

1 La nuova grammatica XML fmresultset permette di accedere ai campi per nome e di gestire i
dati (portale) relatedset.

1 Per accedere ai dati in un database, è necessario specificate il formato. Vedere capitolo 5“Nomi validi utilizzati nelle stringhe di query XML”.

Requisiti per la pubblicazione sul Web
Requisiti per la pubblicazione di un database mediante Pubblicazione Web
personalizzata
Per pubblicare i database che utilizzano la Pubblicazione Web personalizzata con XML è
necessario:

1 una distribuzione di FileMaker Server che comprende:
1 un server Web, Microsoft IIS (Windows) o Apache (macOS)
1 il server database di FileMaker, attivato per la Pubblicazione Web personalizzata utilizzando
l’interfaccia a riga di comando

1 il Motore per la pubblicazione Web, installato e configurato
1 uno o più database FileMaker Pro ospitati da FileMaker Server
1 l’indirizzo IP o il nome di dominio dell’host del server Web
1 un browser Web e la possibilità di accedere al server Web per sviluppare e controllare lasoluzione di Pubblicazione Web personalizzata

Vedere la Guida all’installazione e alla configurazione di FileMaker Server.

Capitolo 3 | Pubblicazione Web personalizzata con XML

23

Cosa si richiede agli utenti Web per accedere alla soluzione di Pubblicazione
Web personalizzata
Per accedere alla soluzione di Pubblicazione Web personalizzata che fa uso di XML, gli utenti
Web devono disporre di:1 un browser Web
1 accesso a internet o a una rete intranet e al server Web
1 l’indirizzo IP o il nome di dominio dell’host del server Web
Se il database è protetto da password, gli utenti Web devono anche introdurre un nome utente e
una password per l’account database.

Connessione a internet o a una rete intranet
Quando si pubblicano database su internet o su una rete intranet, è necessario che sul computer
host sia in esecuzione FileMaker Server e i database da condividere devono essere ospitati e
disponibili. Inoltre:

1 Pubblicare il database su un computer con una connessione continua a internet o a un’intranet.
È possibile pubblicare database anche in assenza di una connessione continua, ma in tal caso
i database risulteranno disponibili agli utenti solo quando il computer che li ospita è connesso
a internet o alla rete intranet.

1 Il computer host del server Web, che fa parte della distribuzione di FileMaker Server, deve

avere un nome di dominio o un indirizzo IP statico (permanente) dedicato. Se ci si collega ainternet con un provider di servizi internet (ISP), l’indirizzo IP potrebbe essere assegnato inmodo dinamico (ossia essere diverso ad ogni connessione). L’utilizzo di un indirizzo IP
dinamico rende più difficoltosa l’individuazione dei database da parte degli utenti. Se non si ècerti del tipo di accesso di cui si dispone, contattare il provider di servizi Internet ol’amministratore della rete.

Operazioni successive
Di seguito sono riportati alcuni suggerimenti per iniziare a sviluppare soluzioni di Pubblicazione
Web personalizzata:

1 Se non lo si è già fatto, utilizzare l’interfaccia a riga di comando per attivare la Pubblicazione
Web personalizzata. Vedere la Guida di FileMaker Server.

1 In FileMaker Pro, aprire il database FileMaker Pro che si desidera pubblicare e assicurarsi che
il database abbia i privilegi estesi appropriati attivati per la Pubblicazione Web personalizzata.
Vedere “Attivazione della Pubblicazione Web personalizzata in un database” a pagina 13.

1 Per sapere come accedere ai dati nei database FileMaker Pro con XML, vedere “Accesso adati XML attraverso il Motore per la pubblicazione Web” a pagina 29.

Capitolo 4
Accesso a dati XML con il Motore per la
pubblicazione WebÈ possibile ottenere e aggiornare dati FileMaker in formato XML (Extensible Markup Language)
usando il Motore per la pubblicazione Web. Numerosi utenti, organizzazioni e aziende utilizzano
XML per trasferire informazioni sui prodotti, dati di transazioni, inventari e altri dati di carattere
professionale.

Uso di Pubblicazione Web personalizzata con il linguaggio XML
Se conoscete XML standard, è possibile cominciare subito a usare il Motore per la pubblicazione
Web dopo aver appreso poche nozioni di base sulla Pubblicazione Web personalizzata con XML,
come ad esempio la sintassi URL e i parametri query da usare.
Utilizzando richieste HTTP URL con comandi e parametri query specifici FileMaker, è possibile
eseguire query su un database ospitato da FileMaker Server e scaricare i dati risultanti in formato
XML. Ad esempio è possibile eseguire query in un database per tutti i record compresi in un certo
codice postale, e usare i dati XML risultanti nel modo desiderato.
Vedere la Knowledge Base.
Nota Il Motore per la pubblicazione Web genera dati XML corretti e conformi alla specifica XML
1.0. Per informazioni dettagliate sulla corretta composizione dei dati XML, vedere le specifiche
XML all’indirizzo www.w3.org.

Confronto tra il Motore per la pubblicazione Web e l’importazione el’esportazione di dati XML
Il Motore per la pubblicazione Web e FileMaker Pro consentono entrambi di utilizzare dati XML
con database FileMaker Pro. Tuttavia, esistono alcune differenze significative tra i due metodi:

1 Per accedere ai dati XML, il Motore per la pubblicazione Web supporta le grammatichefmresultset, FMPXMLRESULT e FMPXMLLAYOUT. FileMaker Pro utilizza la grammatica
FMPXMLRESULT per l’importazione dei dati XML e la grammatica FMPXMLRESULT per
l’esportazione. Vedere “Accesso a dati XML attraverso il Motore per la pubblicazione Web” apagina 29.

1 Per accedere ai dati XML con il Motore per la pubblicazione Web, utilizzare una stringa di query
Motore per la pubblicazione Web in un URL. Per importare ed esportare i dati XML con
FileMaker Pro, utilizzare gli script o i comandi di menu di FileMaker Pro.

1 Il Motore per la pubblicazione Web è basato sul server e può essere installato sullo stesso hosto su un host diverso da FileMaker Server. L’importazione e l’esportazione dei dati XML di
FileMaker Pro sono basate sul desktop.

1 È possibile accedere in modo dinamico ai dati XML dai database FileMaker Pro utilizzando lerichieste URL con il Motore per la pubblicazione Web. La funzione di esportazione dei dati XML
di FileMaker Pro genera un file dati XML predefinito.

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web25

1 Lavorare con dati XML attraverso il Motore per la pubblicazione Web è un’operazione

interattiva. L’importazione e l’esportazione dei dati XML di FileMaker Pro sono operazioni
batch.

1 Il Motore per la pubblicazione Web può accedere ai dati XML da un portale FileMaker Pro;
FileMaker Pro no.

1 Il Motore per la pubblicazione Web può accedere ai dati in un campo Contenitore;
FileMaker Pro no.

1 Il Motore per la pubblicazione Web fornisce l’accesso in tempo reale ai dati FileMaker tramite
HTTP o HTTPS; FileMaker Pro no.

Nota Per informazioni sull’utilizzo di FileMaker Pro per importare ed esportare i dati in formato
XML, consultare la Guida di FileMaker Pro.

Modalità di generazione di dati XML da una richiesta da parte del Motore per la
pubblicazione Web
Quando una richiesta di dati XML viene inviata al server Web, il Motore per la pubblicazione Web
esegue una query al database FileMaker Pro e restituisce i dati sotto forma di documento XML.
BrowserWeb
1. La richiesta
HTTP o HTTPS didati XML viene
inviata dalbrowser Web odal programma
al server Web.

Motore per la
pubblicazione Web di
FileMaker Server

3. Web PublishingCore richiede dati al
database ospitato dal
server database diFileMaker.

Web Publishing Core

Database FileMaker
ServerServer Web
Modulo Server Web

2. Il server Web
invia larichiesta al
Web PublishingCore.

Motore per la
pubblicazione Web
personalizzata (CWPE)
Prodotti.fmp12

Clienti.fmp12

Ordini.fmp12

Catalogo.fmp12

La richiesta di dati XML viene inviata dal browser Web o dal programma al server database di FileMaker

I dati XML vengono reinviati dal server database di FileMaker al browser Web o al programma
BrowserWeb
6. Il server Web
invia l’output albrowser Web oal programma.

5. Web Publishing Core
converte i dati in formato
XML e li invia al server
Web.

Motore per la
pubblicazione Web di
FileMaker Server
Web Publishing Core

Server Web
Modulo Server Web

Motore per la
pubblicazione Web
personalizzata (CWPE)

4. Il server database diFileMaker invia i dati
richiesti a Web
Publishing Core.

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

26

Procedura generale per accedere a dati XML dal Motore per la
pubblicazione Web
Di seguito vi è una descrizione della procedura da seguire per usare il Motore per la pubblicazione
Web per accedere a dati XML da un database FileMaker Pro:
1. Utilizzando l’interfaccia a riga di comando, assicurarsi che la pubblicazione XML sia attivata.
Vedere la Guida di FileMaker Server.
2. In FileMaker Pro, aprire ogni database FileMaker Pro che si sta pubblicando e assicurarsi che
abbia il privilegio esteso fmxml attivato per la Pubblicazione Web personalizzata XML. Vedere“Attivazione della Pubblicazione Web personalizzata in un database” a pagina 13.
Per accedere ai dati XML di un portale, impostare la visualizzazione per il formato del databasesu Visualizza come modulo oppure Visualizza come lista. Se un utente o uno script cambia
la visualizzazione del formato del database in Visualizza come tabella, soltanto il primo record
correlato (prima riga del portale) è accessibile come dati XML.
I dati XML vengono restituiti in un ordine corrispondente a quello in cui gli oggetti dei campierano stati aggiunti al formato. Se si vuole che l’ordine dei dati XML corrisponda a quello divisualizzazione dei campi sulla schermata (dall’alto verso il basso, da sinistra verso destra),selezionare tutti i campi, raggrupparli, quindi separarli. Questa procedura permette di
ripristinare l’ordine del formato in modo che corrisponda a quello dello schermo.
3. Nella FileMaker Server Admin Console, assicurarsi che ogni database FileMaker Pro che si sta
pubblicando abbia il privilegio esteso fmxml attivato.

1 Nell’Admin Console, fare clic sulla pagina Database.
1 Selezionare Mostra privilegi estesi dal selettore di menu accanto a Tutti i database. Per i
database che hanno il privilegio esteso fmxml attivato viene visualizzato il testo FMXML.

4. Inviare una richiesta HTTP o HTTPS, sotto forma di un URL che specifichi la grammatica XML
FileMaker, un comando query e uno o più parametri query FileMaker, al Motore per la
pubblicazione Web attraverso un modulo HTML, un collegamento HREF o uno script nel
proprio programma o nella propria pagina Web. È anche possibile digitare l’URL in un browser
Web.
Per informazioni su come specificare l’URL, vedere la sezione successiva “Sintassi URL per
dati XML e oggetti Contenitore.” Per informazioni sui comandi e i parametri query, vedere“Utilizzo di stringhe di query FileMaker per richiedere dati XML” a pagina 39 e il capitolo 5 “Nomivalidi utilizzati nelle stringhe di query XML”.
5. Il Motore per la pubblicazione Web usa la grammatica specificata nell’URL per generare dati
XML che contengono i risultati della richiesta, come ad esempio un set di record dal database,e li restituisce al programma o al browser Web.
6. Il browser Web, se ha un parser XML, visualizza i dati, oppure il programma usa i dati nel modo
specificato.

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

27

Sintassi URL per dati XML e oggetti Contenitore
Questa sezione descrive la sintassi URL per utilizzare il Motore per la pubblicazione Web per
accedere ai dati XML e agli oggetti Contenitore dai database FileMaker Pro.

Sintassi URL per dati XML
La sintassi URL per utilizzare il Motore per la pubblicazione Web per accedere ai dati XML dai
database FileMaker Pro è:<schema>://<host>[:<porta>]/fmi/xml/<grammatica_xml>.xml[?<stringa diquery>]
dove:

1 <schema> può essere il protocollo HTTP o HTTPS.
1 <host> è l’indirizzo IP o il nome di dominio dell’host su cui è installato il server Web.
1 <porta> è opzionale e indica la porta utilizzata dal server Web. Se non è specificata nessuna
porta, viene utilizzata la porta predefinita del protocollo (porta 80 per HTTP o porta 443 per
HTTPS).

1 <grammatica_xml> è il nome della grammatica XML FileMaker. I valori possibili sonofmresultset, FMPXMLRESULT oppure FMPXMLLAYOUT. Vedere “Utilizzo della grammatica
fmresultset” a pagina 30 e “Utilizzo di altre grammatiche XML FileMaker” a pagina 34.

1 <stringa di query> è la combinazione di un comando query e di uno o più parametri query

per la pubblicazione XML FileMaker (il comando –dbnames non richiede alcun parametro).
Vedere “Utilizzo di stringhe di query FileMaker per richiedere dati XML” a pagina 39 e capitolo 5“Nomi validi utilizzati nelle stringhe di query XML”.

Nota La sintassi URL, compresi i nomi dei comandi e dei parametri query, fa distinzione tramaiuscole e minuscole, eccetto per parti della stringa di query. La maggior parte dell’URL è incaratteri minuscoli, con l’eccezione dei due nomi della grammatica che sono in maiuscolo:
FMPXMLRESULT e FMPXMLLAYOUT. Per informazioni sulle regole per le maiuscole/minuscole dellastringa di query, vedere “Linee guida per l’utilizzo dei comandi e dei parametri query” a pagina 44.
Esempi
http://server.company.com/fmi/xml/fmresultset.xml?-db=products&-lay=sales&-findall
http://192.168.123.101/fmi/xml/FMPXMLRESULT.xml?-db=products&-lay=sales&-findall

Sintassi URL per oggetti Contenitore FileMaker Pro in soluzioni XML
In un documento XML generato per una soluzione XML, la sintassi utilizzata per fare riferimentoa un oggetto Contenitore è diversa per i campi Contenitore che memorizzano l’oggetto effettivo
nel database e i campi Contenitore che memorizzano un riferimento all’oggetto.

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

28

Se un campo Contenitore memorizza l’oggetto effettivo nel database
L’elemento <data> del campo Contenitore utilizza la seguente sintassi URL relativa per fareriferimento all’oggetto:<data>/fmi/xml/cnt/data.<estensione>?<stringa di query></data>
dove <estensione> è l’estensione del nome del file che identifica il tipo di oggetto, come ad
esempio .jpg. L’estensione del file imposta il tipo MIME per consentire al browser Web diidentificare correttamente i dati Contenitore. Per informazioni su <stringa di query>, vederela sezione precedente “Sintassi URL per dati XML.”
Esempio<data>/fmi/xml/cnt/data.jpg?-db=products&-lay=sales&-field=product_image(1)&-recid=2</data>

Nota Nell’XML generato per un campo Contenitore, il valore del parametro query –field è unnome di campo completamente qualificato Il numero tra parentesi indica il numero di ripetizioni
per il campo Contenitore e viene generato sia per i campi multipli sia per quelli non multipli. Vedere“Sintassi di un nome di campo completamente qualificato” a pagina 46.
Per recuperare i dati Contenitore dal database, utilizzare la seguente sintassi:<schema>://<host>[:<porta>]/fmi/xml/cnt/data.<estensione>?<stringa diquery>Per informazioni su <schema>, <host> o <porta>, vedere la sezione precedente “Sintassi URL
per dati XML.”
Esempio
http://www.company.com/fmi/xml/cnt/data.jpg?-db=products&-lay=sales&-field=product_image(1)&-recid=2

Se un campo Contenitore memorizza un riferimento al file invece di un oggetto effettivo
L’elemento <data> del campo Contenitore contiene un percorso relativo che fa riferimento
all’oggetto.
Esempio<data>/images/logo.jpg</data>

Nota L’oggetto Contenitore di riferimento deve essere memorizzato nella cartella Web di
FileMaker Pro quando il record viene creato o modificato, quindi copiato o spostato in una cartella
con la stessa posizione nella cartella principale del software del server Web. Vedere“Pubblicazione del contenuto dei campi Contenitore sul Web” a pagina 16.
Se un campo Contenitore è vuoto
L’elemento <data> del campo Contenitore è vuoto.

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

29

Codifica testo URL
L’URL per accedere ai dati XML e agli oggetti Contenitore deve essere codificato in formato UTF8 (Unicode Transformation 8 Bit). Vedere “Dati codificati nel formato UTF-8” a pagina 39.
Esempio
Per impostare il valore del campo "info" su fiancée, è possibile utilizzare il seguente URL:
http://server.company.com/fmi/xml/fmresultset.xml?-db=members&-lay=relationships&-recid=2&info=fianc%C3%A9e&-edit%C3%A9 è la rappresentazione UTF-8 con codifica URL del carattere é.
Vedere le specifiche URL all’indirizzo www.w3.org.

Accesso a dati XML attraverso il Motore per la pubblicazione Web
Per accedere a dati XML attraverso il Motore per la pubblicazione Web si utilizza un URL che
specifica il nome della grammatica FileMaker da usare, un comando query FileMaker e uno o piùparametri query FileMaker. Il Motore per la pubblicazione Web genera dati XML dal databaseformattato da uno dei seguenti tipi di grammatica XML:

1 fmresultset: Questa è la grammatica consigliata per il Motore per la pubblicazione Web per

accedere a dati XML. È flessibile e ottimizzata per un accesso più semplice ai campi per nome
e per una manipolazione più semplice dei dati (portale) relatedset. Questa grammatica èanche collegata più direttamente alla terminologia FileMaker e alle funzioni come le opzioni dimemorizzazione globale e l’identificazione dei campi Riassunto e Calcolo. Per facilitare la
pubblicazione sul Web, questa grammatica è stata progettata in modo da essere più dettagliatadella grammatica FMPXMLRESULT. Vedere “Utilizzo della grammatica fmresultset” a pagina 30.

1 FMPXMLRESULT e FMPXMLLAYOUT: È anche possibile usare le grammatiche

FMPXMLRESULT e FMPXMLLAYOUT con il Motore per la pubblicazione Web per accedere ai datiXML. Per utilizzare lo stesso foglio di stile sia per l’esportazione XML sia per la Pubblicazione
Web personalizzata, è necessario usare la grammatica FMPXMLRESULT. Per accedere alle liste
valori e alle informazioni sulla visualizzazione dei campi nei formati è necessario usare lagrammatica FMPXMLLAYOUT. Vedere “Utilizzo di altre grammatiche XML FileMaker” apagina 34.

A seconda della grammatica specificata nella richiesta URL, il Motore per la pubblicazione Web
genera un documento XML usando una di queste grammatiche. Ogni documento XML contiene
una dichiarazione di namespace XML predefinita per la grammatica. Vedere la sezione
successiva “Nome spazio per XML FileMaker.” Utilizzare una di queste grammatiche nel
documento o nella pagina Web per visualizzare e utilizzare i dati FileMaker in formato XML.
Nota I dati XML generati dal Motore per la pubblicazione Web sono codificati in formato UTF-8(Unicode Transformation Format 8). Vedere “Dati codificati nel formato UTF-8” a pagina 39.

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

30

Nome spazio per XML FileMaker
I namespace XML unici servono per distinguere i tag XML dall’applicazione per cui sono stati
progettati. Ad esempio, se il documento XML contiene due elementi <DATABASE>, uno per i dati
XML FileMaker e un altro per i dati XML Oracle, i namespace identificano l’elemento <DATABASE>di ognuno.
Il Motore per la pubblicazione Web genera un namespace predefinito per ogni grammatica.
Per questa grammatica

Viene generato questo namespace predefinito

fmresultset

xmlns="http://www.filemaker.com/xml/fmresultset"

FMPXMLRESULT

xmlns="http://www.filemaker.com/fmpxmlresult"

FMPXMLLAYOUT

xmlns="http://www.filemaker.com/fmpxmllayout"

Codici di errore dei database FileMaker Pro
Il Motore per la pubblicazione Web restituisce un codice di errore negli elementi del codice dierrore all’inizio di ogni documento XML che rappresenta l’errore, se presente, nell’esecuzione
dell’ultimo comando query eseguito. Nel caso non vi siano errori, viene restituito il valore zero (0).
Per questa grammatica

Viene utilizzata questa sintassi

fmresultset<error code="0"></error>

FMPXMLRESULT<ERRORCODE>0</ERRORCODE>FMPXMLLAYOUT<ERRORCODE>0</ERRORCODE>

L’elemento del codice di errore nel documento XML indica gli errori relativi al database e alle stringhedella query. Vedere appendice A “Codici di errore per la Pubblicazione Web personalizzata”.

Recupero di DTD per le grammatiche FileMaker
È possibile recuperare le DTD (Document Type Definition) delle grammatiche FileMaker utilizzando
una richiesta HTTP.
Per questa grammatica

Utilizzare questa richiesta HTTP

fmresultset

http://<host>[:<porta]/fmi/xml/fmresultset.dtd

FMPXMLRESULT

http://<host>[:<porta]/fmi/xml/FMPXMLRESULT.dtd

FMPXMLLAYOUT

http://<host>[:<porta]/fmi/xml/FMPXMLLAYOUT.dtd

Utilizzo della grammatica fmresultset
I nomi degli elementi XML in questa grammatica usano la terminologia FileMaker, e lamemorizzazione dei campi è separata dal tipo di campo. La grammatica comprende anche lacapacità di identificare i campi Riassunto, Calcolo e globali.
Per usare la grammatica fmresultset, specificare il nome indicato di seguito della grammatica
fmresultset nell’URL che richiede il documento XML dal Motore per la pubblicazione Web:fmresultset.xml

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

31

Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=family&-findall

Nota Usare caratteri minuscoli per specificare la grammatica fmresultset.
Il Motore per la pubblicazione Web genera un documento XML usando la grammatica
fmresultset. Nel documento XML, il Motore per la pubblicazione Web fa riferimento alla DTD
della grammatica fmresultset nell’istruzione <!DOCTYPE> nella seconda riga del documento,
subito dopo l’istruzione <?xml...?>. L’istruzione <!DOCTYPE> specifica l’URL per scaricare la
DTD per la grammatica fmresultset.

Descrizione degli elementi della grammatica fmresultset
La grammatica fmresultset è costituita fondamentalmente dagli elementi <datasource>,<metadata> e <resultset>.
Elemento <datasource>
Nella grammatica fmresultset, l’elemento <datasource> contiene gli attributi table, layout,
date-format, time-format, timestamp-format, total-count e database.

1 L’attributo date-format dell’elemento <datasource> specifica il formato delle date nel
documento XML:
MM/dd/yyyy
dove:

1 MM sono le 2 cifre del mese (da 01 a 12 , dove 01 è gennaio e 12 è dicembre)
1 dd sono le 2 cifre del giorno del mese (da 01 a 31)
1 yyyy sono le 4 cifre dell’anno
1 L’attributo time-format dell’elemento <datasource> specifica il formato delle ore nel
documento XML:
HH:mm:ssdove:

1 HH sono le due cifre indicanti l’ora (da 00 a 23, nel formato a 24 ore)
1 mm sono le due cifre indicanti i minuti (da 00 a 59)
1 ss sono le 2 cifre indicanti i secondi (da 00 a 59)
1 L’attributo timestamp-format dell’elemento <datasource> combina i formati di date-format etime-format in un indicatore data e ora:
MM/dd/yyyy HH:mm:ss

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

32

Elemento <metadata>
L’elemento <metadata> della grammatica fmresultset contiene uno o più elementi <fielddefinition> e <relatedset-definition>, ognuno dei quali contiene attributi per uno dei
campi del gruppo di risultati.
Gli attributi <field-definition> specificano:

1
1
1
1
1
1

se il campo è di tipo auto-enter ("yes" o "no")se il campo è di tipo four-digit-year ("yes" o "no")se il campo è globale ("yes" o "no")il numero massimo di valori multipli (attributo max-repeat)
il numero massimo consentito di caratteri (attributo max-characters)
se il campo è di tipo not-empty ("yes" o "no")1 se è solo per dati numerici ("yes" o "no")1 il risultato ("text", "number", "date", "time", "timestamp" o "container")
1 se il campo è di tipo time-of-day ("yes" o "no")1 il tipo ("normal", "calculation" o "summary")1 e il nome del campo (completamente qualificato, se necessario)
L’elemento <relatedset-definition> rappresenta un portale. Ogni campo correlato in un
portale è rappresentato dall’elemento <field-definition> contenuto nell’elemento<relatedset-definition>. Se un portale contiene più campi correlati, le definizioni dei campi
per i campi correlati vengono raggruppate in un unico elemento <relatedset-definition>.
Elemento <resultset>
L’elemento <resultset> contiene gli elementi <record> restituiti come risultato di una query e
un attributo per il numero totale di record trovati. Ogni elemento <record> contiene i dati dei
campi di un record nel gruppo di risultati, compresi gli attributi mod-id e record-id del record
e l’elemento <data> che contiene i dati di un campo del record.
Ogni record in un portale è rappresentato da un elemento <record> all’interno di un elemento<relatedset>. L’attributo count dell’elemento <relatedset> specifica il numero di record nel
portale, mentre l’attributo table specifica la tabella associata al portale.

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

33

Dati XML con la grammatica fmresultset
Esempio<fmresultset xmlns="http://www.filemaker.com/xml/fmresultset" version="1.0"><error code="0" /><product build="03/29/2019" name="FileMaker Web Publishing Engine"version="18.0.1.0"/><datasource database="art" date-format="MM/dd/yyyy" layout="web3"
table="art" time-format="HH:mm:ss" timestamp-format="MM/dd/yyyy HH:mm:ss"
total-count="12"/><metadata><field-definition auto-enter="no" four-digit-year="no" global="no" maxrepeat="1" name="Title" not-empty="no" numeric-only="no" result="text"
time-of-day="no" type="normal"/><field-definition auto-enter="no" four-digit-year="no" global="no" maxrepeat="1" name="Artist" not-empty="no" numeric-only="no" result="text"
time-of-day="no" type="normal"/><field-definition auto-enter="no" four-digit-year="no" global="no" maxrepeat="1" name="Style" not-empty="no" numeric-only="no" result="text"
time-of-day="no" type="normal"/><field-definition auto-enter="no" four-digit-year="no" global="no" maxrepeat="1" name="length" not-empty="no" numeric-only="no"result="number" time-of-day="no" type="calculation"/><relatedset-definition table="artlocations"><field-definition auto-enter="no" four-digit-year="no" global="no" maxrepeat="1" name="artlocations::Location" not-empty="no" numericonly="no" result="text" time-of-day="no" type="normal"/><field-definition auto-enter="no" four-digit-year="no" global="no" maxrepeat="1" name="artlocations::Date" not-empty="no" numeric-only="no"result="date" time-of-day="no" type="normal"/></relatedset-definition></metadata><resultset count="1" fetch-size="1"><record mod-id="6" record-id="14"><field name="Title"><data>Spring in Giverny 3</data></field><field name="Artist"><data>Claude Monet</data></field><field name="Style"><data/></field><field name="length"><data>19</data></field><relatedset count="0" table="artlocations"/></record></resultset></fmresultset>

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

34

Utilizzo di altre grammatiche XML FileMaker
Le altre grammatiche XML FileMaker contengono informazioni sui tipi di campi, liste valori eformati. Dal punto di vista funzionale FMPXMLRESULT è equivalente a fmresultset. Per
accedere alle liste valori e alle informazioni sulla visualizzazione dei campi nei formati ènecessario usare la grammatica FMPXMLLAYOUT. Le grammatiche FMPXMLRESULT e
FMPXMLLAYOUT sono più compatte per lo scambio dei dati.
Per utilizzare la grammatica FMPXMLRESULT, specificare il seguente nome di grammatica
nell’URL che richiede il documento XML dal Motore per la pubblicazione Web:FMPXMLRESULT.xml

Esempio
http://192.168.123.101/fmi/xml/FMPXMLRESULT.xml?-db=employees&-lay=family&-findall

Per utilizzare la grammatica FMPXMLLAYOUT, specificare il seguente nome di grammatica con il
comando query –view nell’URL che richiede il documento XML dal Motore per la pubblicazione Web:FMPXMLLAYOUT.xml

Esempio
http://192.168.123.101/fmi/xml/FMPXMLLAYOUT.xml?-db=employees&-lay=family&-view

Nota I nomi delle grammatiche FMPXMLRESULT e FMPXMLLAYOUT devono essere in maiuscolo.
Nel documento XML generato, il Motore per la pubblicazione Web fa riferimento alla DTD dellagrammatica nell’istruzione <!DOCTYPE> nella seconda riga del documento, subito dopo l’istruzione<?xml...?>. L’istruzione <!DOCTYPE> specifica l’URL per scaricare la DTD per la grammatica.

Descrizione degli elementi della grammatica FMPXMLRESULT
Nella grammatica FMPXMLRESULT, l’elemento <DATABASE> contiene gli attributi NAME,
RECORDS, DATEFORMAT, LAYOUT e TIMEFORMAT.
L’attributo DATEFORMAT dell’elemento <DATABASE> specifica il formato delle date nel
documento XML. L’attributo TIMEFORMAT dell’elemento <DATABASE> specifica il formato delle
ore nel documento XML. I formati della data e dell’ora delle grammatiche FMPXMLRESULT e
fmresultset sono gli stessi. Vedere “Descrizione degli elementi della grammatica fmresultset”
a pagina 31.
L’elemento <METADATA> della grammatica FMPXMLRESULT contiene uno o più elementi<FIELD>, ognuno dei quali contiene informazioni per uno dei campi/una delle colonne del gruppo
di risultati, compresi il nome del campo definito nel database, il tipo di campo, l’autorizzazione Yes
o No per i campi vuoti (attributo EMPTYOK) e il numero massimo di valori ripetuti (attributo
MAXREPEAT). I valori validi per i tipi di campo sono TEXT, NUMBER, DATE, TIME, TIMESTAMPe CONTAINER.

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

35

L’elemento <RESULTSET> contiene tutti gli elementi <ROW> restituiti come risultato di una querye un attributo per il numero totale di record trovati. Ogni elemento <ROW> contiene i dati dei
campi/delle colonne di una riga nel gruppo di risultati. Questi dati comprendono RECORDID e
MODID per la riga (vedere “Parametro query –modid (ID modifica)” a pagina 56) e l’elemento<COL>. L’elemento <COL> contiene i dati di un campo/una colonna nella riga in cui più elementi<DATA> rappresentano uno dei valori in un campo multiplo o portale.

Dati XML con la grammatica FMPXMLRESULT
Esempio<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult"><ERRORCODE>0</ERRORCODE><PRODUCT BUILD="03/29/2019" NAME="FileMaker Web Publishing Engine"
VERSION="18.0.1.0"/><DATABASE DATEFORMAT="MM/dd/yyyy" LAYOUT="web" NAME="art" RECORDS="12"
TIMEFORMAT="HH:mm:ss"/><METADATA><FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Title" TYPE="TEXT"/><FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Artist" TYPE="TEXT"/><FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="Image" TYPE="CONTAINER"/></METADATA><RESULTSET FOUND="1"><ROW MODID="7" RECORDID="4"><COL><DATA>Village Market</DATA></COL><COL><DATA>Camille Pissarro</DATA></COL><COL><DATA>/fmi/xml/cnt/Untitled.pct?-db=art&-lay=web&-recid=4&-field=Image(1)</DATA></COL></ROW></RESULTSET></FMPXMLRESULT>

L’ordine degli elementi <COL> corrisponde all’ordine degli elementi <FIELD> nell’elemento<METADATA>; ad esempio, se i campi "Title" e "Artist" sono elencati nell’elemento<METADATA>, "Village Market" e quindi "Camille Pissarro" sono elencati nello stesso ordine
negli elementi <RESULTSET> e <ROW>.

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

36

Descrizione degli elementi della grammatica FMPXMLLAYOUT
Nella grammatica FMPXMLLAYOUT, l’elemento <LAYOUT> contiene il nome del formato, il nomedel database ed elementi <FIELD> per ogni campo trovato nel formato corrispondente nel
database. Ogni elemento <FIELD> descrive il tipo di stile del campo e contiene l’attributo
VALUELIST per qualsiasi lista valori associata del campo.
L’elemento <VALUELISTS> contiene uno o più elementi <VALUELIST> per ogni lista valoritrovata nel formato; ognuno comprende il nome della lista valori e un elemento <VALUE> per ogni
valore nella lista.
A seconda delle opzioni selezionate nella finestra di dialogo Specifica i campi per la lista valori
nel database FileMaker Pro, l’elemento <VALUE> contiene un attributo DISPLAY che contiene ilvalore solo nel primo campo, solo nel secondo campo o in entrambi i campi di una lista valori. Ad
esempio, si supponga che il primo campo in una lista valori contenga il numero ID dello stile
artistico (come ad esempio "100") e il secondo campo visualizzi il nome associato allo stile
artistico (come ad esempio "Impressionism"). Di seguito è visualizzato un riepilogo dei contenuti
dell’attributo DISPLAY quando le varie combinazioni delle opzioni sono selezionate nella finestra
di dialogo Specifica i campi per la lista valori:

1 Se Visualizza anche i valori secondo campo non è selezionato, l’attributo DISPLAY contienesolo il valore del primo campo della lista valori.

Esempio
L’attributo DISPLAY contiene solo il numero ID dello stile artistico:<VALUELISTS><VALUELIST NAME="style"><VALUE DISPLAY="100">100</VALUE><VALUE DISPLAY="101">101</VALUE><VALUE DISPLAY="102">102</VALUE></VALUELIST></VALUELISTS>

1 Se Visualizza anche i valori secondo campo e Mostra valori solo dal secondo camposono entrambi selezionati, l’attributo DISPLAY contiene solo il valore del secondo campo.

Esempio
L’attributo DISPLAY contiene solo il nome dello stile artistico:<VALUELISTS><VALUELIST NAME="style"><VALUE DISPLAY="Impressionism">100</VALUE><VALUE DISPLAY="Cubism">101</VALUE><VALUE DISPLAY="Abstract">102</VALUE></VALUELIST></VALUELISTS>

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

37

1 Se Visualizza anche i valori secondo campo è selezionato e Mostra valori solo dal

secondo campo non è selezionato, l’attributo DISPLAY contiene i valori di entrambi i campi diuna lista valori.

Esempio
L’attributo DISPLAY contiene sia il numero ID dello stile artistico che il nome dello stile
artistico:<VALUELISTS><VALUELIST NAME="style"><VALUE DISPLAY="100 Impressionism">100</VALUE><VALUE DISPLAY="101 Cubism">101</VALUE><VALUE DISPLAY="102 Abstract">102</VALUE></VALUELIST></VALUELISTS>

Per i campi Data, Ora e Indicatore data e ora, i dati per le liste valori sono formattati con il formato"fm" per quel tipo di campo. I formati "fm" sono MM/DD/YYYY per la data, hh:mm:ss per l’ora e
MM/DD/YYYY hh:mm:ss per l’indicatore data e ora. Per esempio, se la lista valori "birthdays" èutilizzata per il menu a tendina di un campo "birthdate" di un formato, e il campo "birthdate" è ditipo Data, i valori risultanti da tale lista valori saranno tutti in formato data "fm".
Nota Se in un formato due campi di tipo diverso condividono la stessa lista valori, il tipo del primo
campo determina il formato dei dati della lista valori.

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

Dati XML con FMPXMLLAYOUT grammatica
Esempio<FMPXMLLAYOUT xmlns="http://www.filemaker.com/fmpxmllayout"><ERRORCODE>0</ERRORCODE><PRODUCT BUILD="03/29/2019" NAME="FileMaker Web Publishing Engine"
VERSION="18.0.1.0"/><LAYOUT DATABASE="art" NAME="web2"><FIELD NAME="Title"><STYLE TYPE="EDITTEXT" VALUELIST=""/></FIELD><FIELD NAME="Artist"><STYLE TYPE="EDITTEXT" VALUELIST=""/></FIELD><FIELD NAME="Image"><STYLE TYPE="EDITTEXT" VALUELIST=""/></FIELD><FIELD NAME="artlocations::Location"><STYLE TYPE="EDITTEXT" VALUELIST=""/></FIELD><FIELD NAME="artlocations::Date"><STYLE TYPE="EDITTEXT" VALUELIST=""/></FIELD><FIELD NAME="Style"><STYLE TYPE="POPUPMENU" VALUELIST="style"/></FIELD></LAYOUT><VALUELISTS><VALUELIST NAME="style"><VALUE DISPLAY="Impressionist">Impressionist</VALUE><VALUE DISPLAY="Modern">Modern</VALUE><VALUE DISPLAY="Abstract">Abstract</VALUE></VALUELIST></VALUELISTS></FMPXMLLAYOUT>38

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

39

Dati codificati nel formato UTF-8
Tutti i dati XML generati dal Motore per la pubblicazione Web sono codificati in formato UTF-8(Unicode Transformation 8 Bit). Questo formato comprime i dati dal formato standard Unicode a
16 bit nel formato a 8 bit per i caratteri ASCII. Per supportare la codifica Unicode e UTF-8, sononecessari parser XML.
La codifica UTF-8 comprende una rappresentazione diretta dei caratteri usati nella lingua ingleseche utilizzano i valori 0-127 del set di caratteri standard ASCII e fornisce la codifica a più byte peri caratteri Unicode con valori superiori.
Nota Usare un browser Web o un editor di testo che supporti file UTF-8.
Di seguito sono descritte le caratteristiche del formato di codifica UTF-8.

1 Tutti i caratteri ASCII sono caratteri UTF-8 a 1 byte. Una stringa ASCII valida è una stringa
UTF-8 valida.

1 Qualsiasi carattere non ASCII (qualsiasi carattere con gruppo di bit di ordine elevato) fa partedi un carattere a più byte.

1 Il primo byte di un carattere UTF-8 qualsiasi indica il numero di ulteriori byte nel carattere.
1 Il primo byte di un carattere a più byte si riconosce facilmente dai byte successivi; pertanto èfacile individuare l’inizio di un carattere da una posizione qualsiasi in un flusso di dati.

1 La conversione tra UTF-8 e Unicode è un’operazione facile.
1 La codifica UTF-8 effettua una discreta compressione. È più efficace dell’Unicode per i testi con
un’alta percentuale di caratteri ASCII. Nella peggiore delle ipotesi, una stringa UTF-8 è più
grande della stringa Unicode corrispondente solo del 50%.

Utilizzo di stringhe di query FileMaker per richiedere dati XML
Per richiedere dati XML ad un database FileMaker Pro usare i comandi e i parametri query
FileMaker in una stringa di query.
EsempioÈ possibile utilizzare il comando query –findall nella seguente stringa di query in un URL
per richiedere un elenco di tutti i prodotti in un database FileMaker Pro "products":
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=products&-lay=sales&-findall

Una stringa di query deve contenere un solo comando query, come –new. La maggior parte deicomandi query richiede diversi parametri query corrispondenti nella stringa di query. Ad esempio,
tutti i comandi query tranne –dbnames necessitano del parametro –db, che specifica il databasein cui eseguire la query.
È anche possibile usare comandi e parametri query in un URL.

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

40

Questa sezione contiene un riepilogo dei comandi e dei parametri query FileMaker. Per
informazioni sul loro utilizzo in una stringa di query, vedere “Nomi validi utilizzati nelle stringhe diquery XML” a pagina 43.
Utilizzare questo nome di comando query Per eseguire questo comando–dbnames

Recuperare i nomi di tutti i database ospitati e condivisi sul Web.

–deleteEliminare il record.

–dup

Duplicare il record.

–edit

Modificare il record.

–find

Trovare uno o più record.

–findall

Trovare tutti i record.

–findany

Trovare un record a caso.

–findquery

Eseguire una richiesta di ricerca complessa o composta.

–layoutnames

Recuperare i nomi di tutti i formati disponibili per un database ospitato e condiviso sul
Web.

–new

Aggiungere un nuovo record.

–scriptnames

Recuperare i nomi di tutti gli script disponibili per un database ospitato e condiviso sul
Web.

–view

Recuperare le informazioni sul formato da un database se è specificata la grammatica
FMPXMLLAYOUT. Recuperare la sezione <metadata> del documento XML e un
gruppo di record vuoto se è specificata la grammatica fmresultset o
FMPXMLRESULT.

Utilizzare questi nomi di parametri query Con questi comandi query–db (nome database)

Necessario con tutti i comandi query, tranne –dbnames–delete.related

Opzionale con –edit–fieldNecessario per specificare un campo in un URL per richieste contenitore. Vedere“Sintassi URL per oggetti Contenitore FileMaker Pro in soluzioni XML” a pagina 27.

fieldnameCon –edit è necessario il nome di almeno un campo. Opzionale con –find. Vedere“Parametro query fieldname (Nome campo non Contenitore)” a pagina 53.

fieldname.op (operatore)

Opzionale con –find–lay (nome formato)

Necessario con tutti i comandi query, tranne –dbnames,–layoutnames e–scriptnames–lay.response (passaggio ad altro
formato per la risposta XML)

Opzionale con tutti i comandi query, tranne –dbnames,–layoutnames e–scriptnames–lop (operatore logico)Opzionale con –find–max (record max)

Opzionale con –find, –findall e –findquery–modid (ID modifica)

Opzionale con –edit–queryNecessario con le richieste di ricerca composita -findquery–recid (ID record)

Necessario con –edit, –delete, –dup. Opzionale con –find–relatedsets.filter

Opzionale con –find, –findall, –findany, –edit, –new, –dup e –findquery–relatedsets.max

Opzionale con –find, –edit, –new , –dup e –findquery

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

41

Utilizzare questi nomi di parametri query Con questi comandi query–script (eseguire lo script)

Opzionale con –find, –findall, –findany, –new, –edit, –delete, –dup,–view e –findquery–script.param (trasferire il valore di un
parametro allo script specificato da–script)

Opzionale con –script e –findquery–script.prefind (eseguire lo script
prima di –find, –findany e –findall)

Opzionale con –find, –findany, –findall e –findquery–script.prefind.param (trasferire il
Opzionale con –script.prefind e –findquery
valore di un parametro allo script specificato
da –script.prefind)–script.presort (eseguire lo script
prima dell’ordinamento)

Opzionale con –find, –findall e –findquery–script.presort.param (trasferire il
Opzionale con –script.presort e –findquery
valore di un parametro allo script specificato
da –script.presort)–skip (saltare i record)

Opzionale con –find, –findall e –findquery–sortfield.[1-9] (campo diordinamento)

Opzionale con –find, –findall e –findquery–sortorder.[1-9] (criterio di
ordinamento)

Opzionale con –find, –findall

Applicazione dei formati per una risposta XML
Il parametro query –lay specifica il formato da usare per richiedere dati XML. Spesso, lo stesso
formato è adatto per elaborare i dati prodotti dalla richiesta. In alcuni casi, si potrebbe voler
cercare i dati utilizzando un formato che contiene campi che, per motivi di sicurezza, non esistono
in un altro formato che si desidera utilizzare per visualizzare i risultati (per ricercare dati in un
campo, il campo deve trovarsi sul formato specificato nella richiesta XML).
Per specificare un formato diverso per visualizzare una risposta XML anziché il formato usato per
elaborare la richiesta XML, è possibile usare il parametro query opzionale –lay.response.
Esempio
La richiesta di seguito ricerca i valori superiori a 100.000 nel campo "Salary" nel formato"Budget". I dati risultanti vengono visualizzati usando il formato "ExecList", che noncomprende il campo "Salary".
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=Budget&Salary=100000&Salary.op=gt&-find&-lay.response=ExecList

Capitolo 4 | Accesso a dati XML con il Motore per la pubblicazione Web

42

Elaborazione delle richieste XML
Esistono diversi parametri query che incidono sull’elaborazione di una richiesta XML e sulla
generazione di un documento XML.
L’ordine in cui FileMaker Server e il Motore per la pubblicazione Web elaborano una richiesta XML
è:
1. Elaborazione del parametro query –lay.
2. Impostazione di valori campo globali specificati nella query (parte ".global=" di un URL).
3. Elaborazione del parametro query –script.prefind, se specificato.
4. Elaborazione dei comandi query, quali –find o –new.
5. Elaborazione del parametro query –script.presort, se specificato.
6. Ordinamento dei dati risultanti, se è stato specificato un ordinamento.
7. Elaborazione del parametro query –script, se specificato.
8. Elaborazione del parametro query –lay.response per passare ad un formato diverso, sequesto è specificato.
9. Generazione del documento XML.
Se una delle fasi elencate sopra genera un codice di errore, l’elaborazione delle richieste siarresta; tutte le fasi successive non vengono eseguite. Vengono tuttavia eseguite tutte le fasi
precedenti della richiesta.
Esempio: una richiesta che elimina il record corrente, ordina i record, quindi esegue uno script. Se
il parametro –sortfield specifica un campo che non esiste, la richiesta elimina il record
corrente e restituisce il codice di errore 102 ("Manca un campo"), ma non esegue lo script.

Risoluzione dei problemi di accesso a documenti XML
In caso di problemi di accesso a documenti XML con il Motore per la pubblicazione Web, verificareche:

1 I privilegi estesi nel database siano impostati per la Pubblicazione Web personalizzata XML eassegnati ad un account utente. Vedere “Attivazione della Pubblicazione Web personalizzata
in un database” a pagina 13.

1 Il database sia ospitato sul componente server database della distribuzione diFileMaker Server e venga aperto da FileMaker Server. Vedere la Guida di FileMaker Server.

1 Gli eventuali nomi utente e password utilizzati per il database siano corretti.
1 Il componente server Web della distribuzione di FileMaker Server sia in esecuzione.
1 Il componente Motore per la pubblicazione Web della distribuzione di FileMaker Server sia in
esecuzione.

1 La pubblicazione XML sia attivata utilizzando l’interfaccia a riga di comando. Vedere la Guida
di FileMaker Server.

Capitolo 5
Nomi validi utilizzati nelle stringhe di query XML
Questo capitolo descrive i nomi validi dei comandi e dei parametri query utilizzabili in una stringa
di query XML quando si accede ai dati FileMaker utilizzando il Motore per la pubblicazione Web.

Comandi e parametri query
Di seguito è riportato un elenco completo dei nomi dei comandi e dei parametri query:
Nomi comandi query

Nomi parametri query–dbnames (vedere pagina 48.)–delete (vedere pagina 49.)
–dup (vedere pagina 49.)
–edit (vedere pagina 49.)
–find, –findall, –findany (vedere
pagina 50.)
–findquery (vedere pagina 50.)
–layoutnames (vedere pagina 51.)
–new (vedere pagina 51.)
–scriptnames (vedere pagina 52.)
–view (vedere pagina 52.)

–db (vedere pagina 52.)
–field (vedere pagina 53.)
fieldname (vedere pagina 53.)
fieldname.op (vedere pagina 54.)
–lay (vedere pagina 55.)
–lay.response (vedere pagina 55.)
–lop (vedere pagina 56.)
–max (vedere pagina 56.)
–modid (vedere pagina 56.)
–query (vedere pagina 57.)
–recid (vedere pagina 58.)
–relatedsets.filter (vedere pagina 58.)
–relatedsets.max (vedere pagina 59.)
–script (vedere pagina 59.)
–script.param (vedere pagina 60.)
–script.prefind (vedere pagina 60.)
–script.prefind.param (vedere pagina 60.)
–script.presort (vedere pagina 61.)
–script.presort.param (vedere pagina 61.)
–skip (vedere pagina 62.)
–sortfield.[1-9] (vedere pagina 62.)
–sortorder.[1-9] (vedere pagina 63.)

Importante Il parametro –lay per specificare un formato è necessario con tutti i comandi query,tranne –dbnames, –layoutnames e –scriptnames.

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

44

Linee guida per l’utilizzo dei comandi e dei parametri query
Durante l’uso dei comandi e dei parametri query in una stringa di query, tenere a mente le seguentilinee guida:

1 Una stringa di query deve contenere un solo comando query; né uno di più né uno di meno. Ad
esempio, una stringa di query può contenere –new per aggiungere un nuovo record, ma nonpuò contenere –new e –edit nella stessa stringa.

1 Per la maggior parte dei comandi query sono necessari parametri query corrispondenti nella
stringa di query. Ad esempio, tutti i comandi query tranne –dbnames necessitano delparametro –db, che specifica il database in cui eseguire la query. Consultare la tabella dei
parametri necessari in “Utilizzo di stringhe di query FileMaker per richiedere dati XML” apagina 39.

1 Per i parametri query e i nomi dei campi, specificare il valore particolare da utilizzare, come ad

esempio-db=employees. Per i comandi query, non specificare un segno o un valore uguale ("=") dopo
il nome del comando, come ad esempio –findall.

1 Il Motore per la pubblicazione Web converte tutte le parole riservate in lettere minuscole,

compresi i comandi query, i parametri query e i valori dei comandi dove si prevedono valori
specifici (ad esempio: –lop=and, –lop=or, –sortorder=ascend, –sortorder=descend,–max=all).

1 I nomi dei database, i nomi dei formati e i nomi dei campi utilizzati nelle stringhe di query non

fanno differenza tra maiuscole e minuscole, come ad esempio –lay=mylayout utilizzato per
indicare il nome di formato MyLayout.

1 Si raccomanda di non utilizzare punti o parentesi nei nomi dei campi. In alcuni casi, i nomi dei

campi contenenti punti possono funzionare, ma i nomi dei campi con le seguenti eccezioni non
possono mai essere utilizzati:

1 Il punto non può essere seguito da un numero. Ad esempio, myfield.9 è un nome dicampo non valido.

1 Il punto non può essere seguito dalla stringa di testo op (dalle lettere "op"). Ad esempio,
myfield.op è un nome di campo non valido.

1 Il punto non può essere seguito dalla stringa di testo global (la parola "global"). Ad
esempio, myfield.global è un nome di campo non valido.

Non è possibile accedere attraverso XML ai nomi dei campi che contengono queste
eccezioni utilizzando una query HTTP. Questi costrutti sono riservati agli ID dei record, comedescritto nella sezione “Sintassi di un nome di campo completamente qualificato” apagina 46.

1 Per il comando –find, per il valore di un campo non si fa differenza tra maiuscole e minuscole.
Per esempio, è possibile utilizzare Field1=Blue o Field1=blue. Per i comandi –new e–edit, le maiuscole e le minuscole utilizzate per il valore di un campo vengono mantenute e
memorizzate nel database esattamente nel modo in cui sono specificate nella stringa di query.
Ad esempio, LastName=Doe.

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

45

Analisi dei comandi query
Il Motore per la pubblicazione Web analizza i comandi query nel seguente ordine e, al primoerrore, interrompe l’analisi delle query XML. Se viene restituito un codice di errore, questo
corrisponde al primo errore identificato.
1. La query ha un comando e il comando query è valido?
Si ha un errore se la query non ha il comando o utilizza un comando sconosciuto.
Esempio-database
2. La query ha due comandi?
Esempio-find&-edit
3. La query ha un valore non valido per un comando o un parametro?
Esempio-lop=amd
4. La query non ha il parametro del nome del database richiesto (parametro –db)?
5. La query non ha il parametro del nome del formato richiesto (parametro –lay)?
6. La query ha un ordinamento non valido?
7. La query ha parametri di campo non validi?
Nota Se una query contiene informazioni valide ma estranee, viene elaborata senza errori. Ad
esempio, se si specifica il parametro –lop in un comando –delete, il parametro –lop viene
ignorato poiché non compromette la validità della query e non la rende ambigua.
Per informazioni sugli specifici codici di errore restituiti, vedere l’appendice A “Codici di errore perla Pubblicazione Web personalizzata”.

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

46

Sintassi di un nome di campo completamente qualificato
Un nome di campo completamente qualificato identifica un’istanza esatta di un campo. Poiché i
campi con nomi comuni possono essere basati su diverse tabelle, in alcuni casi è necessario
utilizzare nomi completamente qualificati per evitare errori.
La sintassi per specificare un nome di campo completamente qualificato è:
nome-tabella::nome-campo(numero-ripetizioni).id-record
dove:

1 nome-tabella è il nome della tabella che contiene il campo. Il nome della tabella ènecessario solo se il campo non si trova nella tabella sottostante del formato specificato nella
stringa di query.

1 nome-campo(numero-ripetizioni) è il valore specifico in un campo multiplo; ènecessario soltanto per i campi multipli. Il numero di ripetizioni comincia a contare dal numero
1. Ad esempio, nome-campo(2) indica il secondo valore nel campo multiplo. Se non si
specifica un numero di ripetizioni per un campo multiplo, viene utilizzato il primo valore delcampo multiplo. Il numero-ripetizioni è necessario per i comandi query –new e –edit che
coinvolgono campi multipli, ma non è necessario per il comando –find.

1 id-record è l’ID del record, ed è necessario soltanto se si usa una stringa di query per

aggiungere o modificare record nei campi portale. Vedere le sezioni “Aggiunta di record a un
portale” e “Modifica dei record in un portale.” di seguito. id-record è necessario per i comandi
query –new e –edit che coinvolgono campi portale, ma non è necessario per il comando–find.

Nota Per poter essere accessibili, i campi devono trovarsi sul formato specificato nella stringa diquery.

Utilizzo dei comandi query con campi portale
Le seguenti sezioni descrivono il modo in cui i comandi query funzionano con i campi portale.
Aggiunta di record a un portale
Per aggiungere un nuovo record ad un portale mentre si aggiunge un record principale, usare ilcomando query –new ed eseguire le seguenti operazioni nella stringa di query per la richiesta:

1 Utilizzare il nome di campo completamente qualificato per il campo del portale correlato.
1 Specificare 0 per ID record dopo il nome del campo del portale correlato.
1 Specificare almeno uno dei campi per il record principale prima di specificare il campo delportale correlato.

1 Specificare i dati per il campo di confronto (campo chiave) nel record principale.

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

Esempio
L’URL di seguito aggiunge contemporaneamente un nuovo record principale Employee perJohn Doe e un nuovo record correlato per Jane nel portale. Il nome della tabella correlata è
Dependents e il nome del campo correlato nel portale è Names. Il campo di confronto, ID,memorizza il codice di un dipendente.
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=family&FirstName=John&LastName=Doe&ID=9756&Dependents::Names.0=Jane&-new

Nota Per ogni richiesta è possibile aggiungere un solo record correlato ad un portale.
Modifica dei record in un portale
Per modificare uno o più record in un portale, usare il comando –edit e un ID record per
specificare il record principale che contiene i record del portale da modificare. Specificare ilparticolare record del portale da modificare utilizzando il suo ID record in un nome di campo
completamente qualificato. È possibile determinare un ID record dall’attributo ID recorddell’elemento <record> nell’elemento <relatedset> nei dati XML. Vedere “Utilizzo dellagrammatica fmresultset” a pagina 30.
Esempi
L’URL di seguito modifica un record in un portale dove l’ID del record principale è 1001.
Dependents è il nome della tabella correlata, Names è il nome del campo correlato nel portalee il 2 in Names.2 è l’ID di un record del portale.
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=family&-recid=1001&Dependents::Names.2=Kevin&-edit

Come utilizzare una richiesta per modificare i record di più portali attraverso il record
principale:
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=family&-recid=1001&Dependents::Names.2=Kevin&Dependents::Names.5=Susan&-edit

È anche possibile utilizzare il comando –edit e specificare 0 come ID del record del portale
per aggiungere un nuovo record correlato nel portale per un record principale esistente.
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=family&-recid=1001&Dependents::Names.0=Timothy&-edit

Eliminazione dei record del portale
Per eliminare i record del portale, utilizzare il parametro –delete.related con il comando–edit al posto del comando –delete.

47Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

48

Esempi
L’URL di seguito elimina il record "1001" dalla tabella "employees":
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=family&-recid=1001&-delete

Il seguente URL, invece, elimina un record del portale con un ID record "3" dalla tabellacorrelata "Dependents" con ID record principale "1001".
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=family&-recid=1001&-delete.related=Dependents.3&-edit

Vedere “Parametro query –delete.related (Elimina record portale)” a pagina 53.
Interrogazione dei campi del portale
In una soluzione con molti record correlati, l’interrogazione e l’ordinamento dei record del portale
potrebbe richiedere molto tempo. Per limitare il numero di record e di righe da visualizzare nel set
correlato, utilizzare i parametri –relatedsets.filter e –relatedsets.max con richieste di
ricerca. Vedere “Parametro query –relatedsets.filter (Filtra record portale)” a pagina 58 e
“Parametro query –relatedsets.max (Limita record portale)” a pagina 59.

Sintassi per specificare un campo globale
La sintassi per specificare un campo globale è:
nome-tabella::nome-campo(numero-ripetizioni).global
dove global identifica un campo che usa la memorizzazione globale. Per informazioni su nometabella e nome-campo(numero-ripetizioni), vedere “Sintassi di un nome di campo
completamente qualificato” a pagina 46. Per informazioni sui campi globali, consultare la Guida diFileMaker Pro.
È necessario usare la sintassi .global per identificare un campo globale in una stringa di query.
Il Motore per la pubblicazione Web imposta i valori dei parametri per i campi globali prima dieseguire il comando query o impostare qualsiasi altro valore di parametro nella stringa di query.
Per le richieste XML dirette, i valori globali scadono immediatamente dopo l’invio della richiesta.
Se non si usa la sintassi .global per identificare un campo globale in una stringa di query, il
Motore per la pubblicazione Web valuta il campo globale insieme con il resto della stringa di query
senza impostare prima il valore del campo globale.
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&Country.global=USA&-recid=1&-edit

Riferimento comando query
Questa sezione contiene informazioni sui comandi query disponibili per le richieste XML.

Comando query –dbnames (Nomi database)
Recupera i nomi di tutti i database ospitati da FileMaker Server e attivati per la Pubblicazione Web
personalizzata con XML.
Parametri query obbligatori: (nessuno)Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

Esempio
Per recuperare i nomi dei database:
http://192.168.123.101/fmi/xml/fmresultset.xml?-dbnames

Comando query –delete (Elimina record)
Elimina il record specificato dal parametro –recid.
Parametri query obbligatori: –db, –lay, –recid
Parametro query opzionale: –script
Esempio
Per eliminare un record:
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-recid=4&-delete

Comando query –dup (Duplica record)
Duplica il record specificato dal parametro –recid.
Parametri query obbligatori: –db, –lay, –recid
Parametro query opzionale: –script
Esempio
Per duplicare il record specificato:
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-recid=14&-dup

Comando query –edit (Modifica record)
Aggiorna il record specificato dal parametro –recid, popolando i campi con il contenuto diqualsiasi coppia nome/valore campo. Il parametro –recid indica il record da modificare.
Parametri query obbligatori: –db, –lay, –recid, uno o più nomi di campo
Parametro query opzionale: –modid, –script, nome di campo
Nota Il comando –edit può essere utilizzato per modificare i record in un portale. Vedere“Modifica dei record in un portale” a pagina 47.
Esempio
Per modificare un record:
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-recid=13&Country=USA&-edit

49Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

50

Comandi query –find, –findall o –findany (Trova record)
Invia una richiesta di ricerca utilizzando determinati criteri.
Parametri query obbligatori: –db, –layParametri query opzionali: –recid, –lop, –op, –max, –skip, –sortorder, –sortfield,–script, –script.prefind, –script.presort, nome di campo
EsempiPer trovare un record in base al nome del campo:
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=family&Country=USA&-find

Per trovare un record in base all’ID:
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=family&-recid=427&-find

Per trovare tutti i record del database, utilizzare –findall:
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=family&-findall

Per trovare un record a caso, utilizzare –findany:
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=family&-findanyNote

1 Non è possibile specificare più volte il nome di un campo in una singola richiesta;
FileMaker Server analizza tutti i valori, ma utilizza solo l’ultimo valore analizzato.

1 Quando si utilizza il comando –findall, evitare problemi di sovraccarico della memoria delcomputer specificando un numero massimo predefinito di record da restituire per pagina
utilizzando il parametro query –max.

Comando query –findquery (Ricerca composta)
Invia una richiesta di ricerca utilizzando più richieste di ricerca e richieste di omissione record.
Parametri query obbligatori: –db, –lay, –query
Parametri query opzionali: –max, –skip, –sortorder, –sortfield, –script,–script.prefind, –script.presort
Esempio
Ricercare i record per gatti o cani che non hanno il nome "Fluffy":
http://host/fmi/xml/fmresultset.xml?-db=vetclinic&-lay=animals&-query=(q1);(q2);!(q3)&-q1=typeofanimal&-q1.value=Cat&-q2=typeofanimal&-q2.value=Dog&-q3=name&-q3.value=Fluffy&-findquery

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

51

Utilizzo del comando -findquery per le ricerche composte
Un’istruzione –findquery è costituita da quattro parti nel seguente ordine:

1 Parametro –query.
1 Dichiarazioni di richiesta query, costituite dalle dichiarazioni dell’identificatore di query e dalle
operazioni della richiesta.

1 Definizioni del valore e del campo di ricerca per tutti gli identificativi delle query.
1 Definire gli identificatori di query. Un identificatore di query è la lettera "q" seguita da un
numero. Ad esempio: -q1

1 Definire i valori degli identificatori di query con il parametro. Ad esempio:-q1.value=fieldvalue

1 Definire gli operatori degli identificatori di query includendoli come parte dell’espressione
fieldvalue. Ad esempio, per utilizzare un asterisco come operatore "inizia con":-q1.value=fieldvalue*

1 Comando –findquery, alla fine dell’istruzione completa.
Per informazioni sull’utilizzo del parametro –query, vedere “Parametro query –query (Richiesta
di ricerca composta)” a pagina 57.

Comando query –layoutnames (Nomi formati)
Recupera i nomi di tutti i formati disponibili per un determinato database ospitato da
FileMaker Server e attivato per la Pubblicazione Web personalizzata con XML.
Parametri query obbligatori: –db
Esempio
Per recuperare i nomi dei formati disponibili:
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-layoutnames

Comando query –new (Nuovo record)
Crea un nuovo record e lo popola con il contenuto di qualsiasi coppia nome/valore campo.
Parametri query obbligatori: –db, –layParametro query opzionale: uno o più nomi di campo, –script
Nota Per informazioni su come aggiungere nuovi dati in un portale, vedere “Aggiunta di record
a un portale” a pagina 46.
Esempio
Per aggiungere un nuovo record:
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&Country=Australia&-newCapitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

52

Comando query –scriptnames (Nomi script)
Recupera i nomi di tutti gli script disponibili per un determinato database ospitato da
FileMaker Server e attivato per la Pubblicazione Web personalizzata con XML.
Parametri query obbligatori: –db
Esempio
Per recuperare i nomi di tutti gli script:
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-scriptnames

Comando query –view (Visualizza le informazioni sul formato)Se è specificata la grammatica FMPXMLLAYOUT, recupera le informazioni sul formato da un
database e le visualizza nella grammatica FMPXMLLAYOUT. Se è stata specificata una grammatica
di dati (fmresultset o FMPXMLRESULT), recupera la sezione di metadati del documento XML e
un gruppo di record vuoto.
Parametri query obbligatori: –db, –layParametro query opzionale: –script
EsempiPer recuperare informazioni sul formato:
http://192.168.123.101/fmi/xml/FMPXMLLAYOUT.xml?-db=employees&-lay=departments&-view

Per recuperare informazioni sui metadati:
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-view

Riferimento parametro query
Questa sezione contiene informazioni sui parametri query disponibili per le richieste XML.

Parametro query –db (Nome database)Specifica il database a cui è applicato il comando query.
Valore: Nome del database senza l’eventuale estensione del nome del file.
Nota Per specificare il nome del database per il parametro –db nelle stringhe di query, noncomprendere l’estensione del nome del file. Il nome effettivo del database può includere
un’estensione; tuttavia le estensioni non sono consentite come valori per il parametro –db.
Obbligatorio con: Tutti i comandi query eccetto –dbnames
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-findall

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

53

Parametro query –delete.related (Elimina record portale)
Elimina un record dal un campo del portale.
Opzionale con: Comando query –edit
Richiede: Un nome tabella correlato e un id record
Esempio
L’esempio di seguito elimina il record di un portale con ID "20" dalla tabella correlata "jobtable"con ID record principale "7".
http://host/fmi/xml/fmresultset.xml?-db=career&-lay=applications&-recid=7&-delete.related=jobtable.20&-edit

Parametro query –field (Nome campo Contenitore)
Specifica il nome di un campo Contenitore.
Obbligatorio con: Richieste di dati in un campo Contenitore
Vedere “Sintassi URL per dati XML e oggetti Contenitore” a pagina 27.

Parametro query fieldname (Nome campo non Contenitore)
I nomi dei campi sono utilizzati per controllare i criteri del comando query –find o per modificare
il contenuto di un record. Per specificare un valore per un campo non Contenitore per un comando
o un parametro query, usare il nome del campo senza il trattino (-) come porzione del nome dellacoppia nome/valore.
Nome: Nome del campo nel database FileMaker Pro. Se il campo non è nella tabella sottostantedel formato specificata nella stringa di query, il nome del campo deve essere completamentequalificato.
Si raccomanda di non utilizzare punti o parentesi nei nomi dei campi. In alcuni casi, i nomi dei
campi contenenti punti possono funzionare, ma i nomi dei campi con le seguenti eccezioni non
possono mai essere utilizzati:

1 Il punto non può essere seguito da un numero. Ad esempio, myfield.9 è un nome dicampo non valido.

1 Il punto non può essere seguito dalla stringa di testo op (dalle lettere "op"). Ad esempio,
myfield.op è un nome di campo non valido.

1 Il punto non può essere seguito dalla stringa di testo global (la parola "global"). Ad
esempio, myfield.global è un nome di campo non valido.

Non è possibile accedere attraverso XML ai nomi dei campi che contengono queste eccezioni
utilizzando una query HTTP. L’utilizzo dei punti nei nomi dei campi dovrebbe essere riservato agli
ID dei record, come descritto in “Sintassi di un nome di campo completamente qualificato” apagina 46.
Valore: Per i comandi query –new e –edit, specificare il valore da memorizzare nel campo nel
record corrente. Per i comandi query –find, specificare il valore da ricercare nel campo. I valoridei campi Data, Ora o Indicatore data e ora devono essere indicati nel formato "fm" per quel tipo
di campo. I formati "fm" sono MM/DD/YYYY per la data, hh:mm:ss per l’ora e MM/DD/YYYY
hh:mm:ss per l’indicatore data e ora.
Obbligatorio con: Comando query –edit
Opzionale con: Comandi query –new e –findCapitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

54

Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-op=eq&FirstName=Sam&-max=1&-findNota Non è possibile specificare più volte il nome di un campo in una singola richiesta;
FileMaker Server analizza tutti i valori, ma utilizza solo l’ultimo valore analizzato.

Parametro query fieldname.op (Operatore di confronto)
Specifica l’operatore di confronto da applicare al nome del campo che precede l’operatore. Gli
operatori di confronto sono usati con il comando query –find.
Valore: L’operatore che si desidera utilizzare. Gli operatori validi sono:
Parola chiave

Operatore FileMaker Pro equivalenteeq=parolacn*parola*bw

parola*ew*parolagt> parolagte>= parolalt< parolalte<= parolaneqometti, parola

Opzionale con: Comando query –findRichiede: Un nome di campo e un valore
La sintassi per specificare un operatore di confronto è:
nome-tabella::nome-campo=nome-valore&tabella::nome-campo.op=simbolo-op
dove:

1 nome-tabella è la tabella che contiene il campo; è necessario soltanto se il campo non si
trova nella tabella di origine del formato specificato nella stringa di query.

1 simbolo-op è una delle parole chiave nella tabella precedente, come ad esempio cn.
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&name=Tim&name.op=cn&-findNota La parola chiave bw non funziona con stringhe data, ora o indicatore data e ora o con
l’operatore di ricerca data corrente (//).

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML55È possibile utilizzare qualsiasi operatore di ricerca di FileMaker Pro includendolo come parte dei
criteri di ricerca invece di specificare la parola chiave operatore fieldname.op. Ad esempio, pertrovare una serie di valori utilizzando l’operatore di ricerca intervallo (...), non specificare
nessuna parola chiave operatore. Utilizzare invece i caratteri "..." tra i valori dell’intervallo nei
criteri di ricerca.
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&IDnum=915...925&-find

Per informazioni sugli operatori che è possibile utilizzare per trovare il testo, consultare la Guida
di FileMaker Pro.

Parametro query –lay (Formato)Specifica il formato del database da utilizzare.
Valore: Nome del formato
Obbligatorio con: Tutti i comandi query tranne –dbnames, –layoutnames e –scriptnames
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-view

Parametro query –lay.response (Applicazione del formato per la risposta)
Specifica che FileMaker Server deve usare il formato specificato dal parametro –lay perl’elaborazione di una richiesta e applicare il formato specificato dal parametro –lay.response
per l’elaborazione della risposta XML.
Se non si include il parametro –lay.response , FileMaker Server usa il formato specificato dalparametro –lay durante l’elaborazione simultanea della richiesta e della risposta.
È possibile usare il parametro –lay.response per le richieste XML.
Valore: Nome del formato
Opzionale con: Tutti i comandi query eccetto –dbnames, –layoutnames e –scriptnames.
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=Budget&Salary=100000&Salary.op=gt&-find&-lay.response=ExecList

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

56

Parametro query –lop (Operatore logico)Specifica il modo in cui i criteri di ricerca nel comando query –find sono combinati come ricerca"and" oppure "or".
Valore: and o or
Se il parametro query –lop non è compreso , il comando query –find utilizza il valore "and".
Opzionale con: Comando query –findNota Non supportato dal comando query -findquery.
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&Last+Name=Smith&Birthdate=2/5/1972&-lop=and&-findParametro query –max (Record max)
Specifica il numero massimo di record restituiti.
Valore: Un numero, oppure utilizzare il valore all per fare in modo che vengano restituiti tutti irecord. Se –max non è specificato, vengono restituiti tutti i record.
Opzionale con: Comandi query –find, –findall e -findquery
Nota Il parametro query –max non influisce sui valori restituiti per i record del portale. Per limitare
il numero delle righe restituite per i record del portale, vedere “Parametro query –relatedsets.max(Limita record portale)” a pagina 59.
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-max=10&-findall
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-max=all&-findall

Parametro query –modid (ID modifica)
L’ID modifica è un contatore incrementale che specifica la versione corrente di un record.
Specificando un ID modifica quando si usa una comando query –edit, è possibile essere certi dimodificare la versione corrente di un record. Se il valore ID modifica specificato non corrisponde
al valore ID modifica corrente del database, il comando query –edit non viene accettato e viene
restituito un codice di errore.
Valore: Un ID modifica, che è un identificatore univoco della versione corrente di un record in un
database FileMaker Pro.
Opzionale con: Comando query –edit
Richiede: Parametro –recid
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-recid=22&-modid=6&last_name=Jones&-edit

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

57

Parametro query –query (Richiesta di ricerca composta)
Specifica i nomi delle query e i criteri di ricerca per una richiesta di ricerca composta. Vedere“Comando query –findquery (Ricerca composta)” a pagina 50.
Valore: Un’espressione query.
Obbligatorio con: Comando query –findquery
La sintassi per una richiesta di ricerca composta è:-query=<dichiarazioni-richiesta><definizioni-richiesta>&-findquerydove:<dichiarazioni-richiesta> è per due o più dichiarazioni di richiesta.

1 Ogni dichiarazione di richiesta è costituita da uno o più identificatori di query separati da virgole
e racchiusi tra parentesi. Un identificatore di query è la lettera "q" seguita da un numero. Ad
esempio: q1

1 Racchiuse tra parentesi, più query funzionano come ricerche AND logiche che limitano il

gruppo trovato. Ad esempio, (q1, q2) restituisce i record che corrispondono a q1 e q2.

Nota Si raccomanda di non utilizzare gli stessi campi per più variabili q nello stesso criterio diricerca "and".

1 Come per FileMaker Pro, ogni richiesta può essere una richiesta di ricerca o una richiesta diomissione. Una richiesta di ricerca aggiunge i record corrispondenti al gruppo trovato; una
richiesta di omissione elimina i record corrispondenti dal gruppo trovato. L’impostazione
predefinita è una richiesta di ricerca. Per una richiesta di omissione, inserire un punto
esclamativo (!) davanti alla parentesi di apertura.
Esempio(q1);!(q2)

q1 è una richiesta di ricerca; q2 è una richiesta di omissione perché è preceduta da un
punto esclamativo.

1 Le richieste sono separate da punti e virgola. Più ricerche di richiesta funzionano come ricerche
OR logiche che ampliano il gruppo trovato. Ad esempio, (q1);(q2) restituisce i record che
corrispondono a q1 o q2. Le richieste di omissione non funzionano come ricerche logiche OR
dato che le richieste di omissione rimuovono i record dal gruppo trovato.

1 Le richieste vengono eseguite nell’ordine specificato; il gruppo trovato comprende i risultati ditutte le richieste di ricerca composte.

<definizioni-richiesta> è una definizione di richiesta per ogni dichiarazione di richiesta.
Ogni definizione di richiesta è costituita da un campo di ricerca e da una definizione del valore. Il
segno meno (-) avvia la definizione di richiesta.
Sintassi:-<id-query>=<nomecampo>&-<id-query>.value=<valore>

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

58

Esempi-q1=typeofanimal&-q1.value=Cat-q2=name&-q2.value=Fluffy

Ricercare i record per i gatti grigi che non hanno il nome "Fluffy":
http://host/fmi/xml/fmresultset.xml?-db=petclinic&-lay=Patients&-query=(q1, q2);!(q3)&-q1=typeofanimal&-q1.value=Cat&-q2=color&-q2.value=Gray&-q3=name&-q3.value=Fluffy&-findquery

Parametro query –recid (ID record)
Specifica il record che si desidera elaborare. È utilizzato principalmente dai comandi query –edit
e –delete. Utilizzato dal comando –view per recuperare i dati della lista valori correlata nella
grammatica FMPXMLLAYOUT.
Valore: L’ID di un record, cioè l’indicatore univoco del record in un database FileMaker Pro
Obbligatorio con: Comandi query –edit, –delete e –dup
Opzionale con: Query –find e comandi –view
Esempi
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-recid=22&-delete
http://localhost/fmi/xml/FMPXMLLAYOUT.xml?-db=test&-lay=empty&-view&-recid=9

Parametro query –relatedsets.filter (Filtra record portale)
Specifica se limitare i record del portale da restituire nei risultati di questa query.
Valore: layout o none

1 Se –relatedsets.filter è impostato su layout, viene rispettata l’impostazione Riga
iniziale specificata nella finestra di dialogo Impostazione portale di FileMaker Pro.

1 Se l’impostazione Consenti scorrimento verticale è selezionata nella finestra di dialogo

Impostazione portale, utilizzare l’opzione –relatedsets.max per specificare il numero
massimo di record da restituire. Vedere “Parametro query –relatedsets.max (Limita record
portale)” di seguito.

1 Se l’impostazione Consenti scorrimento verticale non è selezionata o se non si utilizza
l’opzione –relatedsets.max, l’impostazione Numero di righe nella finestra di dialogo
Impostazione portale determina il numero di record del portale da restituire.

1 Il valore predefinito è none se questo parametro non è indicato. Se –relatedsets.filterè impostato su none, il Motore per la pubblicazione Web restituisce tutti i record del portale. I
valori Riga iniziale e Numero di righe specificati nella finestra di dialogo Impostazione portale
vengono ignorati.

Note

1 Il parametro –relatedsets.filter non influisce sull’ordinamento dei record del portale

nelle query XML. L’ordinamento specificato in FileMaker Pro viene rispettato se il valore delparametro –relatedsets.filter è layout o none.

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML59

1 L’impostazione Filtra record portale nella finestra di dialogo Impostazione portale non è

supportata per le query XML. I calcoli specificati per l’impostazione Filtra record portale sono
ignorati.

Opzionale con: –find, –edit, –new, –dup e –findquery.
Esempi
http://localhost/fmi/xml/fmresultset.xml?-db=FMPHP_Sample&-lay=English&-relatedsets.filter=none&-findany
http://localhost/fmi/xml/fmresultset.xml?-db=FMPHP_Sample&-lay=English&relatedsets.filter=layout&-relatedsets.max=all&-findany
http://localhost/fmi/xml/fmresultset.xml?-db=FMPHP_Sample&-lay=English&-relatedsets.filter=layout&-relatedsets.max=10&-findany

Parametro query –relatedsets.max (Limita record portale)
Specifica il numero massimo di record portale da restituire nei risultati della query.
Valore: Un intero o all.

1 Il parametro –relatedsets.max viene rispettato solo se l’impostazione Consenti

scorrimento verticale è selezionata nella finestra di dialogo Impostazione portale diFileMaker Pro e il parametro –relatedsets.filter è layout.

1 Se il parametro –relatedsets.max specifica un numero intero, il Motore per la

pubblicazione Web restituisce un numero di record portale pari a quel numero a partire dallariga iniziale.

1 Se il parametro –relatedsets.max specifica all, il Motore per la pubblicazione Web
restituisce tutti i record del portale.

Nota Per informazioni sul filtro di record portale, vedere “Parametro query –relatedsets.filter(Filtra record portale)” sopra.
Opzionale con: –find, –edit, –new, –dup e –findquery.
Esempi
http://localhost/fmi/xml/fmresultset.xml?-db=FMPHP_Sample&-lay=English&relatedsets.filter=layout&-relatedsets.max=all&-findany
http://localhost/fmi/xml/fmresultset.xml?-db=FMPHP_Sample&-lay=English&-relatedsets.filter=layout&-relatedsets.max=10&-findany

Parametro query –script (Script)
Specifica lo script FileMaker da eseguire dopo l’esecuzione del comando query e l’ordinamento.
Vedere “Elaborazione delle richieste XML” a pagina 42.
Valore: Nome script
Opzionale con: Tutti i comandi query tranne –dbnames, –layoutnames e –scriptnames
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-script=myscript&-findall

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

60

Parametro query –script.param (Trasferisci parametro a script)
Trasferisce un parametro allo script FileMaker specificato da –script.
Valore: Un parametro di testo singolo.

1 Per trasferire più parametri, è possibile creare una stringa che delimita i parametri e fare inmodo che lo script analizzi il singolo parametro. Ad esempio, trasferire“param1|param2|param3” come lista con il carattere “|” con codifica URL come questo:
param1%7Cparam2%7Cparam3

1 Per trattare il parametro di testo come valore che non sia testo, lo script può convertire il valoredel testo. Ad esempio, per convertire il valore di testo in un numero, lo script potrebbe
comprendere i seguenti elementi: RicavaComeNumero(Get(ParametroScript))

1 Se la query contiene –script.param senza –script, –script.param viene ignorato.
1 Se la query contiene più di un –script.param, il Motore per la pubblicazione Web utilizza
l’ultimo valore analizzato.

Opzionale con: –script
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-script=myscript&-script.param=Smith%7CChatterjee%7CSu&-findallParametro query –script.prefind (Script prima di trovare)Specifica lo script FileMaker da eseguire prima della ricerca e dell’ordinamento dei record (sespecificati) durante l’elaborazione del comando query –find.
Valore: Nome script
Opzionale con: Tutti i comandi query tranne –dbnames, –layoutnames e –scriptnames
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-script.prefind=myscript&-findall

Parametro query –script.prefind.param (Trasferisci parametro a script prima ditrovare)Trasferisce un parametro allo script FileMaker specificato da –script.prefind.
Valore: Un parametro di testo singolo.

1 Per trasferire più parametri, è possibile creare una stringa che delimita i parametri e fare inmodo che lo script analizzi il singolo parametro. Ad esempio, trasferire“param1|param2|param3” come lista con il carattere “|” con codifica URL come questo:
param1%7Cparam2%7Cparam3

1 Per trattare il parametro di testo come valore che non sia testo, lo script può convertire il valoredel testo. Ad esempio, per convertire il valore di testo in un numero, lo script potrebbe
comprendere i seguenti elementi: RicavaComeNumero(Get(ParametroScript))

1 Se la query contiene –script.prefind.param senza –script.prefind,–script.prefind.param viene ignorato.

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

61

1 Se la query contiene più di un –script.prefind.param, il Motore per la pubblicazione Web
utilizza l’ultimo valore analizzato.

Opzionale con: –script.prefind
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-script.prefind=myscript&-script.prefind.param=payroll&-findallParametro query –script.presort (Script prima di ordinare)Specifica lo script FileMaker da eseguire dopo la ricerca dei record (se specificata) e primadell’ordinamento dei record durante l’elaborazione del comando query –find.
Opzionale con: Tutti i comandi query tranne –dbnames, –layoutnames e –scriptnames
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-script.presort=myscript&-sortfield.1=dept&-sortfield.2=rating&-findall

Parametro query –script.presort.param (Trasferisci parametro a script prima diordinare)Trasferisce un parametro allo script FileMaker specificato da –script.presort.
Valore: Un parametro di testo singolo.

1 Per trasferire più parametri, è possibile creare una stringa che delimita i parametri e fare inmodo che lo script analizzi il singolo parametro. Ad esempio, trasferire“param1|param2|param3” come lista con il carattere “|” con codifica URL come questo:
param1%7Cparam2%7Cparam3

1 Per trattare il parametro di testo come valore che non sia testo, lo script può convertire il valoredel testo. Ad esempio, per convertire il valore di testo in un numero, lo script potrebbe
comprendere i seguenti elementi: RicavaComeNumero(Get(ParametroScript))

1 Se la query contiene –script.presort.param senza –script.presort,–script.presort.param viene ignorato.

1 Se la query contiene più di un –script.presort.param, il Motore per la pubblicazione Web
utilizza l’ultimo valore analizzato.

Opzionale con: –script.presort
Esempio
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-script.presort=myscript&-script.presort.param=18%7C65&-sortfield.1=dept&-sortfield.2=rating&-findall

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

62

Parametro query –skip (Salta record)
Specifica il numero di record da saltare nel gruppo trovato.
Valore: Un numero. Se il valore è maggiore del numero di record nel gruppo trovato, non viene
visualizzato nessun record. Il valore predefinito è 0.
Opzionale con: Comando query –findEsempio
I primi 10 record nel gruppo trovato vengono saltati e vengono restituiti i record da 11 a 15:
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=departments&-skip=10&-max=5&-findall

Parametro query –sortfield (Campo ordinamento)
Specifica il campo da utilizzare per l’ordinamento.
Valore: Nome di campo
Opzionale con: Comandi query –find o –findall
Il parametro –sortfield può essere usato più volte per eseguire diversi ordinamenti. La sintassi
per specificare la precedenza dei campi di ordinamento è:-sortfield.numero-precedenza=nome-campo-completamente-qualificato

dove numero-precedenza nel parametro query –sortfield.numero-precedenza è unnumero che specifica la precedenza da usare per più campi di ordinamento. Il valore per numeroprecedenza:

1 deve iniziare da 1
1 deve incrementarsi sequenzialmente
1 non deve essere maggiore di 9
Esempio
Il campo "dept" viene ordinato per primo, seguito dal campo "rating". Entrambi i campi
vengono ordinati in ordine crescente perché il parametro query –sortorder non è
specificato.
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=performance&-sortfield.1=dept&-sortfield.2=rating&-findall

Capitolo 5 | Nomi validi utilizzati nelle stringhe di query XML

63

Parametro query –sortorder (Ordinamento)
Indica il criterio di un ordinamento.
Valore: Il criterio di ordinamento. Di seguito sono riportati i criteri di ordinamento validi, dove<nome-lista-valori> è il nome di una lista valori come ad esempio Custom:
Parola chiave

Operatore FileMaker Pro equivalente

ascendOrdinamento da a a z, da –10 a 10

descendOrdinamento da z a a, da 10 a -10<nome-listavalori>

L’ordinamento usa la lista valori associata al campo nel formato

Opzionale con: Comandi query –find o –findall
Richiede: Parametro query –sortfield
Il parametro query –sortorder può essere usato con il parametro –sortfield per specificare
il criterio di ordinamento di più campi di ordinamento. La sintassi per specificare il criterio di
ordinamento di un campo è:-sortorder.numero-precedenza=metodo-ordinamento

dove:

1 numero-precedenza nel parametro –sortorder.numero-precedenza è un numero

compreso tra 1 e 9 che specifica il parametro query –sortfield a cui è applicato il parametro
query –sortorder

1 metodo-ordinamento è una delle parole chiave nella tabella precedente per specificare il
criterio di ordinamento, come ad esempio ascend

Esempio
Il criterio di ordinamento del campo di ordinamento con la precedenza più alta (dept) ècrescente e il criterio di ordinamento del campo di ordinamento con la seconda precedenza(rating) è decrescente. Il numero-precedenza 2 in -sortorder.2 indica che il parametro
query -sortorder.2=descend viene applicato al parametro query sortfield.2=rating.
http://192.168.123.101/fmi/xml/fmresultset.xml?-db=employees&-lay=performance&-sortfield.1=dept&-sortorder.1=ascend&-sortfield.2=rating&-sortorder.2=descend&-findall

Nota Se per un campo di ordinamento non è specificato un parametro query –sortorder,
viene usato il criterio di ordinamento crescente predefinito.

Capitolo 6
Pubblicazione Web personalizzata con PHP
La Pubblicazione Web personalizzata con PHP consente di utilizzare il linguaggio di scripting PHP
per integrare i dati dei database FileMaker Pro con i formati delle pagine Web personalizzate. La
Pubblicazione Web personalizzata con PHP fornisce FileMaker API per PHP che è una classe
PHP che consente di accedere ai database ospitati da FileMaker Server. Questa classe PHP sicollega al Motore per la pubblicazione Web di FileMaker Server e rende disponibili i dati sul
motore PHP del server Web.

Caratteristiche principali della Pubblicazione Web personalizzata con PHP
1 Creare le applicazioni Web che utilizzano il linguaggio di scripting open source PHP. Utilizzare
la versione di PHP supportata da FileMaker Server o utilizzare la propria versione di PHP. (Sesi sceglie di utilizzare la propria versione di PHP, vedere “Installazione manuale di FileMaker
API per PHP” a pagina 66.)

1 Ospitare i database su FileMaker Server. FileMaker Pro non è necessario per la Pubblicazione
Web personalizzata perché FileMaker Server ospita i database.

1 Scrivere il codice PHP che consente di creare, eliminare, modificare e duplicare i record in un
database FileMaker Pro ospitato. Il codice può eseguire la convalida dei campi e dei record
prima di salvare le modifiche nel database ospitato.

1 Scrivere il codice PHP con cui si accede ai formati, ai portali, alle liste valori e ai campi correlati.
Come in FileMaker Pro, l’accesso ai dati, ai formati e ai campi dipende dalle impostazioni degliaccount utente definite nei privilegi di accesso del database. Per il Motore per la pubblicazione
Web sono stati inoltre introdotti altri miglioramenti per la sicurezza. Vedere “Protezione dei
database pubblicati” a pagina 14.

1 Scrivere il codice PHP con cui vengono eseguiti script complessi, a più istruzioni. La

piattaforma FileMaker supporta molte istruzioni di script nella Pubblicazione Web
personalizzata. Vedere “Script FileMaker e Pubblicazione Web personalizzata” a pagina 18.

1 Scrivere il codice PHP con cui vengono eseguiti script complessi.

Requisiti della Pubblicazione Web personalizzata
Questa sezione spiega quali sono i requisiti per sviluppare una soluzione di Pubblicazione Web
personalizzata utilizzando PHP, ciò di cui gli utenti Web hanno bisogno per accedere allasoluzione di Pubblicazione Web personalizzata e l’impatto che può avere l’hosting di una
soluzione di pubblicazione Web sul server.

Requisiti per la pubblicazione di un database mediante Pubblicazione Web
personalizzata
Per pubblicare i database che utilizzano la Pubblicazione Web personalizzata con PHP è necessario:

1 una distribuzione di FileMaker Server che comprende tre componenti:
1 un server Web, Microsoft IIS (Windows) o Apache (macOS) — Il Modulo Server Web di
FileMaker è installato sul server Web

Capitolo 6 | Pubblicazione Web personalizzata con PHP

65

1 il Motore per la pubblicazione Web di FileMaker
1 il server database di FileMaker
1 uno o più database FileMaker Pro ospitati da FileMaker Server
1 l’indirizzo IP o il nome di dominio dell’host del server Web
1 un browser Web e la possibilità di accedere al server Web per sviluppare e controllare lasoluzione di Pubblicazione Web personalizzata

1 PHP installato sul server Web — FileMaker Server installa la versione supportata di PHP; inalternativa, è possibile utilizzare la propria versione

1 Per la versione minima richiesta di PHP, vedere le specifiche tecniche di FileMaker Server.
1 Per informazioni su PHP, visitare il sito php.net.
1 La versione di PHP installata sul server Web deve supportare le funzioni cURL (client URL
library). Per informazioni su cURL, visitare il sito php.net/curl.

Importante Quando si installa FileMaker Server, la versione supportata di PHP non viene
visualizzata nello strumento Server Admin di macOS; presumibilmente non è nell’elenco. Se si
utilizza lo strumento Server Admin di macOS per attivare PHP, viene disattivata la versione di
PHP supportata da FileMaker Server e attivata la propria versione di PHP.
Vedere la Guida all’installazione e alla configurazione di FileMaker Server.

Cosa è richiesto agli utenti Web per accedere a una soluzione di Pubblicazione
Web personalizzata
Per accedere alla soluzione di Pubblicazione Web personalizzata che fa uso di PHP, gli utenti Web
devono disporre di:1 un browser Web
1 accesso a internet o a una rete intranet e al server Web
1 l’indirizzo IP o il nome di dominio dell’host del server Web
Se il database è protetto da password, gli utenti Web devono anche introdurre un nome utente e
una password per l’account database.

Connessione a internet o a una rete intranet
Quando si pubblicano database su internet o su una rete intranet, è necessario che sul computer
host sia in esecuzione FileMaker Server e i database da condividere devono essere ospitati e
disponibili. Inoltre:

1 Pubblicare il database su un computer con una connessione continua a internet o a un’intranet.
È possibile pubblicare database anche in assenza di una connessione continua, ma in tal caso
i database risulteranno disponibili agli utenti solo quando il computer che li ospita è connesso
a internet o alla rete intranet.

1 Il computer host del server Web, che fa parte della distribuzione di FileMaker Server, deve avere un
nome di dominio o un indirizzo IP statico (permanente) dedicato. Se ci si collega a Internet con unprovider di servizi internet (ISP), l’indirizzo IP potrebbe essere assegnato in modo dinamico (ossia
essere diverso ad ogni connessione). L’utilizzo di un indirizzo IP dinamico rende più difficoltosa
l’individuazione dei database da parte degli utenti. Se non si è certi del tipo di accesso di cui si
dispone, contattare il provider di servizi Internet o l’amministratore della rete.

Capitolo 6 | Pubblicazione Web personalizzata con PHP

66

Installazione manuale di FileMaker API per PHP
Quando si installa FileMaker Server, viene installata la versione di PHP supportata da FileMaker.
Se è stato installato e configurato un motore PHP diverso e si desidera aggiungere solo FileMaker
API per PHP, installare manualmente la classe FileMaker API per PHP per renderla disponibile
per gli script PHP. Utilizzare l’interfaccia a riga di comando per disattivare la versione di PHP
supportata da FileMaker. Vedere la Guida CLI.
Se si utilizza il proprio motore PHP, assicurarsi di eseguire le seguenti operazioni di configurazione
sulla propria versione del motore PHP:

1 Attivare il modulo cURL in php.ini.
1 Selezionare la posizione di FileMaker API per PHP nella variabile include_path in php.ini.
1 Se si accede a database che contengono date e ore, installare il pacchetto pear date.
Nota Per la versione minima richiesta di PHP, vedere le specifiche tecniche di FileMaker Server.
Per ottenere i migliori risultati, utilizzare la versione di PHP appropriata.
Per rendere accessibile FileMaker API per PHP agli script PHP
Se è stato installato FileMaker Server, il pacchetto FileMaker API per PHP è compreso sotto formadi file .zip nella seguente posizione:

1 Per IIS (Windows):[unità]:\Programmi\FileMaker\FileMaker Server\Web
Publishing\FM_API_for_PHP_Standalone.zip
dove [unità] è l’unità in cui risiede il componente server Web della distribuzione diFileMaker Server.

1 Per Apache (macOS):/Libreria/FileMaker Server/Web
Publishing/FM_API_for_PHP_Standalone.zip
Il file FM_API_for_PHP_Standalone.zip contiene un file chiamato FileMaker.php e una cartellachiamata FileMaker. Dezippare il file e copiare il file FileMaker.php e la cartella FileMaker in una
di queste posizioni:

1 la cartella in cui risiedono gli script PHP.
1 Per IIS (Windows) con HTTP o HTTPS:[unità]:\Programmi\FileMaker\FileMaker Server\HTTPServer\Confdove [unità] è l’unità in cui risiede il componente Motore per la pubblicazione Web delladistribuzione di FileMaker Server.

1 Per Apache (macOS) con HTTP: /Libreria/FileMaker
Server/HTTPServer/htdocs

1 Per Apache (macOS) con HTTPS: /Libreria/FileMaker
Server/HTTPServer/htdocs/httpsRoot
Nota Quando si importa un certificato SSL personalizzato, le connessioni client al server
database utilizzano la crittografia SSL; le connessioni HTTP vengono indirizzate a una
connessione HTTPS. Con un certificato SSL personalizzato sul server, utilizzare la directory
HTTPS per ospitare i file del sito PHP.

1 una delle directory include_path dell’installazione PHP. La posizione predefinita per macOS è/usr/lib/php.

Capitolo 6 | Pubblicazione Web personalizzata con PHP

67

Operazioni successive
1 Utilizzare l’interfaccia a riga di comando per attivare la Pubblicazione Web personalizzata.
Vedere la Guida di FileMaker Server.

1 In FileMaker Pro, aprire il database FileMaker che si desidera pubblicare e assicurarsi che ildatabase abbia i privilegi estesi appropriati attivati per la Pubblicazione Web personalizzata.
Vedere “Attivazione della Pubblicazione Web personalizzata in un database” a pagina 13.

1 Per sapere come accedere ai dati nei database FileMaker Pro utilizzando FileMaker API per
PHP, vedere il capitolo 8 “Utilizzo di FileMaker API per PHP”.

Capitolo 7
Panoramica della Pubblicazione Web
personalizzata con PHP
FileMaker API per PHP aiuta a integrare i dati dei database FileMaker Pro nelle soluzioni PHP.
Questo capitolo descrive il modo in cui PHP lavora con il Motore per la pubblicazione Web
personalizzata di FileMaker Server. Per ulteriori informazioni su FileMaker API per PHP, vedere ilcapitolo 8 “Utilizzo di FileMaker API per PHP”.

Utilizzo del Motore per la pubblicazione Web con soluzioni PHP
FileMaker Server è costituito da tre componenti: un server Web, il Motore per la pubblicazione
Web e il server database. Vedere la Guida all’installazione e alla configurazione diFileMaker Server. Per supportare le soluzioni PHP, con il server Web sulla macchina primaria
viene installato un motore PHP. FileMaker Server ospita una soluzione PHP quando i file PHP
vengono posizionati sul server Web della macchina primaria.

1 Quando un utente Web apre una soluzione PHP, il server Web invia la richiesta al motore PHP
che elabora il codice PHP.

1 Se il codice PHP contiene dei richiami a FileMaker API per PHP, questi vengono interpretati einviati come richieste al Motore per la pubblicazione Web.

1 Il Motore per la pubblicazione Web richiede i dati ai database ospitati sul server database.
1 Il server database invia i dati richiesti al Motore per la pubblicazione Web.
1 Il Motore per la pubblicazione Web invia i dati al motore PHP sul server Web in risposta alla
chiamata API.

1 La soluzione PHP elabora i dati e li visualizza per l’utente Web.

Operazioni generali per la Pubblicazione Web personalizzata con PHP
1. Utilizzare FileMaker Pro per attivare la Pubblicazione Web personalizzata per un database.
Vedere capitolo 2 “Preparazione dei database per la Pubblicazione Web personalizzata”.
Nota Assicurarsi di utilizzare set di privilegi del database FileMaker Pro equivalenti quando si
sviluppano soluzioni PHP che verranno consegnate all’utente finale. In caso contrario, si
potrebbe avere l’accesso a formati e funzioni nel database FileMaker Pro che non saràdisponibile all’utente finale, provocando un comportamento incoerente.
2. Utilizzare la CLI di FileMaker Server per attivare la Pubblicazione Web personalizzata con
PHP. Vedere la Guida di FileMaker Server.
3. Nell’Admin Console, assicurarsi che ogni database FileMaker Pro che si sta pubblicando abbia
il privilegio esteso fmphp attivato.

1 Nell’Admin Console, fare clic sulla pagina Database.
1 Selezionare Mostra privilegi estesi dal selettore di menu accanto a Tutti i database. Per i
database che hanno il privilegio esteso fmphp attivato viene visualizzato il testo FMPHP.

Capitolo 7 | Panoramica della Pubblicazione Web personalizzata con PHP

69

4. Utilizzare gli strumenti di authoring PHP per creare la propria soluzione PHP, incorporando lefunzioni FileMaker API nel codice PHP per accedere ai dati FileMaker. Vedere capitolo 8“Utilizzo di FileMaker API per PHP”.
5. Copiare o spostare la struttura di directory del sito e i file nella seguente cartella sul server Web
della macchina primaria.

1 Per IIS (Windows) con HTTP o HTTPS:[unità]:\Programmi\FileMaker\FileMaker Server\HTTPServer\Conf dove
[unità] è l’unità sulla macchina primaria in cui risiede la distribuzione di FileMaker Server.

1 Per Apache (macOS) con HTTP:/Libreria/FileMaker Server/HTTPServer/htdocs

1 Per Apache (macOS) con HTTPS:/Libreria/FileMaker Server/HTTPServer/htdocs/httpsRoot
Nota Quando si importa un certificato SSL personalizzato, le connessioni client al server
database utilizzano la crittografia SSL; le connessioni HTTP vengono indirizzate a una
connessione HTTPS. Con un certificato SSL personalizzato, utilizzare la directory HTTPS per
ospitare i file del sito PHP.
6. Se un campo Contenitore del database contiene un riferimento al file anziché il file effettivo,
l’oggetto Contenitore di riferimento deve essere memorizzato nella cartella Web di
FileMaker Pro quando il record viene creato o modificato. Copiare o spostare l’oggetto in una
cartella con la stessa posizione relativa nella cartella principale del software del server Web.
Vedere “Pubblicazione del contenuto dei campi Contenitore sul Web” a pagina 16.
7. Assicurarsi che i meccanismi della sicurezza per il sito o per il programma siano a posto.
8. Controllare il sito utilizzando gli stessi account e gli stessi privilegi definiti per gli utenti Web.
9. Rendere il sito disponibile e noto agli utenti. L’URL che l’utente Web inserisce ha il seguente
formato:http://<server>/<percorso_sito>

1 <server> è la macchina in cui risiede FileMaker Server.
1 <percorso_sito> è il percorso relativo alla home page del sito, determinato dalla struttura
di directory utilizzata al passo 5 sopra.

Esempio
Se il server Web è 192.168.123.101 e la home page del sito si trova sul server Web nel
percorso c:\Inetpub\wwwroot\customers\index.php, l’utente Web deve inserire l’URL:
http://192.168.123.101/customers/index.php

Nota PHP utilizza la codifica Latin-1 (ISO-8859-1). FileMaker Server restituisce dati Unicode(UTF-8). Utilizzare l’interfaccia a riga di comando per specificare la codifica caratteri predefinita.
Vedere la Guida CLI. Per i siti PHP, è possibile indicare UTF-8 o ISO-8859-1; si raccomanda di
impostare UTF-8. Indicare la stessa impostazione per l’attributo charset nella sezione <HEAD>
dei file PHP del sito.
Per informazioni sulla distribuzione e sull’utilizzo di una soluzione PHP, vedere il capitolo 9“Preparazione, test e monitoraggio di un sito”.

Capitolo 8
Utilizzo di FileMaker API per PHP
FileMaker API per PHP implementa una classe PHP—la classe FileMaker—che fornisce
un’interfaccia orientata agli oggetti per i database FileMaker Pro. FileMaker API per PHP consente
di accedere ai dati e alla logica memorizzati nei database FileMaker Pro e di pubblicarli sul Web
o di esportarli in altre applicazioni.
FileMaker API per PHP permette al codice PHP di eseguire lo stesso tipo di funzioni già disponibili
nei database FileMaker Pro:

1 creare, eliminare, modificare e duplicare i record
1 eseguire richieste di ricerca
1
1
1
1
1

convalidare campi e record
utilizzare formati
eseguire script FileMaker
visualizzare portali e record correlati
utilizzare liste valori

Questo capitolo descrive come utilizzare gli oggetti classe FileMaker e i metodi per aggiungere
queste funzioni comuni a una soluzione PHP. Questo capitolo non tratta tutti gli argomenti relativi
a FileMaker API per PHP, ma introduce le nozioni ed i metodi più importanti.

Dove ottenere informazioni aggiuntive
Per ulteriori informazioni su FileMaker API per PHP, consultare le seguenti risorse.
Se il motore PHP è già stato installato e configurato e si desidera aggiungere solo FileMaker API
per PHP, vedere “Installazione manuale di FileMaker API per PHP” a pagina 66.

Informazioni di riferimento a FileMaker API per PHP
Se si è installato FileMaker API per PHP, è possibile trovare informazioni di riferimento sul
componente server Web della distribuzione di FileMaker Server.

1 Per IIS (Windows):[unità]:\Programmi\FileMaker\FileMaker Server\Documentation\PHP API
Documentation\index.html
dove [unità] è l’unità in cui risiede il componente server Web della distribuzione diFileMaker Server.

1 Per Apache (macOS): /Libreria/FileMaker Server/Documentation/PHP API
Documentation/index.html

Supporto FileMaker API per PHP
Per ulteriori informazioni su FileMaker API per PHP, visitare la pagina del supporto di FileMaker.

Capitolo 8 | Utilizzo di FileMaker API per PHP

71

Utilizzo della classe FileMaker
Per utilizzare la classe FileMaker nella soluzione PHP, aggiungere al codice PHP la seguente
istruzione:
require_once (’FileMaker.php’);

Oggetti classe FileMaker
La classe FileMaker definisce gli oggetti classe che è possibile utilizzare per recuperare i dati dai
database FileMaker Pro.
Oggetto classe

Utilizzare l’oggetto per

Database FileMaker Pro

Definire le proprietà del database
Collegarsi a un database FileMaker Pro
Ottenere informazioni su FileMaker API per PHP

ComandoCreare comandi per aggiungere, eliminare, duplicare e modificare i record, eseguirerichieste di ricerca ed eseguire script

FormatoLavorare con i formati di database

RecordLavorare con i dati dei record

Campo

Lavorare con i dati dei campi

Set correlato

Lavorare con i record del portale

Risultato

Elaborare i record restituiti da una richiesta di ricerca

ErroreControllare se si è verificato un errore
Elaborare eventuali errori

Oggetti comando FileMaker
La classe FileMaker definisce un oggetto comando base utilizzato per creare l’istanza di un
comando specifico e indicare i parametri del comando. Per eseguire il comando, richiamare il
metodo execute().
La classe FileMaker definisce i seguenti comandi specifici:

1
1
1
1
1
1
1
1

Comando Add
Comando Compound Find
Comando Delete
Comando Duplicate
Comando Edit
Comando Find, comando Find All, comando Find Any
Comando Find Request, che ottiene delle aggiunte al comando di ricerche composte
Comando Esegui script

Importante I comandi restituiscono valori differenti, come definito dalla classe
FileMaker.php. Ad esempio, alcuni comandi restituiscono il valore booleano VERO o un
oggetto FileMaker_Error. Altri comandi restituiscono un oggetto FileMaker_Result che puòcontenere un intero "gruppo trovato" di record in un formato. Per evitare problemi di sovraccaricodella memoria del computer, considerare i valori restituiti previsti dai comandi utilizzati. Per
informazioni dettagliate sui valori restituiti da ciascun comando, vedere “Informazioni diriferimento a FileMaker API per PHP” a pagina 70.

Capitolo 8 | Utilizzo di FileMaker API per PHP

72

Le operazioni base che la maggior parte delle applicazioni PHP devono eseguire sono descritte
nelle seguenti sezioni:

1 “Utilizzo dei record” a pagina 73
1 “Esecuzione di script FileMaker” a pagina 75
1 “Esecuzione di richieste di ricerca” a pagina 81

Decodifica dei dati per l’uso in FileMaker API
Se l’applicazione PHP recupera i dati da un sito Web, questi potrebbero avere una codifica URL.
FileMaker API per PHP si aspetta che i dati siano stringhe decodificate, non stringhe con codifica
URL. Come prassi generale, si potrebbe voler richiamare la funzione urldecode() quando sirecuperano i dati nell’applicazione PHP.
Esempio$user = urldecode($_GET[’user’]);$event = urldecode($_GET[’event’]);

Nota Evitare di utilizzare stringhe contenenti e commerciali (&) con FileMaker API per PHP.
Utilizzare una barra rovesciata come carattere di escape prima dei caratteri speciali nelle stringhe
passate a FileMaker API per PHP.

Collegarsi a un database FileMaker Pro
La classe FileMaker definisce un oggetto del database sul quale viene creata un’istanza percollegarsi a un server o a un database. Definire le proprietà dell’oggetto con il costruttore dellaclasse o richiamando il metodo setProperty().
EsempiCollegamento a un server per ricavare un elenco di database:$fm = new FileMaker();$databases = $fm->listDatabases();Collegamento a un database specifico su un server:$fm = new FileMaker();$fm->setProperty(’database’, ’questionnaire’);$fm->setProperty(’hostspec’, ’http://192.168.100.110’);$fm->setProperty(’username’, ’web’);$fm->setProperty(’password’, ’web’);

Le proprietà di username e password determinano il set di privilegi per la connessione.
Nota La proprietà hostspec è preimpostata sul valore http://localhost. Poiché il motore
PHP è installato con il componente server Web della macchina primaria, non è necessario
specificare la proprietà hostspec.

Capitolo 8 | Utilizzo di FileMaker API per PHP

73

Utilizzo dei record
La classe FileMaker definisce un oggetto record sul quale viene creata un’istanza per utilizzare irecord. L’istanza di un oggetto record rappresenta un record di un database FileMaker Pro.
Utilizzare un oggetto record con i comandi Add, Delete, Duplicate e Edit per modificare i dati delrecord. I comandi di ricerca —Find, Find All, Find Any e Compound Find—restituiscono una
matrice di oggetti record.

Creazione di un record
Esistono due modi per creare un record:

1 Utilizzare il metodo createRecord(), specificando un nome formato e, opzionalmente, una
matrice dei valori di campo. È inoltre possibile impostare i valori singolarmente nel nuovo
oggetto record.

Il metodo createRecord() non consente di salvare il nuovo record nel database. Per salvare
il record nel database, utilizzare il metodo commit().
Esempio$rec = $fm->createRecord(’Form View’, $values);$result = $rec->commit();Se si utilizza il metodo commit() FileMaker_Record, alla variabile $result viene assegnato
il valore booleano VERO e, se non si verificano errori, il nuovo record viene creato nel database
FileMaker Pro.
Se si verifica un errore, la variabile $result contiene un oggetto FileMaker_Error. Dopo aver
eseguito il metodo commit(), eseguire una verifica degli errori.

1 Utilizzare il comando Add. Utilizzare il metodo newAddCommand() per creare un oggetto

FileMaker_Command_Add, indicando il nome del formato e una matrice con i dati del record.
Per salvare il record nel database, utilizzare il metodo execute().

Esempio$newAdd = $fm->newAddCommand(’Respondent’, $respondent_data);$result = $newAdd->execute();Se si utilizza il metodo execute() FileMaker_Command, se non si verificano errori, lavariabile $result contiene un oggetto FileMaker_Result con tutte le informazioni sul record
creato.
Se si verifica un errore, la variabile $result contiene un oggetto FileMaker_Error. Dopo aver
eseguito il metodo execute(), eseguire una verifica degli errori.

Duplicazione di un record
Duplicare un record esistente utilizzando il comando Duplicate. Utilizzare il metodo
newDuplicateCommand() per creare un oggetto FileMaker_Command_Duplicate, indicando ilnome del formato e l’ID del record da duplicare. Quindi duplicare il record utilizzando il metodo
execute().

Capitolo 8 | Utilizzo di FileMaker API per PHP

74

Esempio$newDuplicate = $fm->newDuplicateCommand(’Respondent’, $rec_ID);$result = $newDuplicate->execute();Modifica di un record
Esistono due modi per modificare un record:

1 Utilizzando il comando Edit. Utilizzare il metodo newEditCommand() per creare un oggetto

FileMaker_Command_Edit, indicando il nome del formato, l’ID del record da modificare e una
matrice di valori da aggiornare. Quindi modificare il record utilizzando il metodo execute().
Esempio$newEdit = $fm->newEditCommand(’Respondent’, $rec_ID, $respondent_data);$result = $newEdit->execute();1 Utilizzando un oggetto record. Recuperare un record dal database, cambiare i valori campo emodificare il record utilizzando il metodo commit().
Esempio$rec = $fm->getRecordById(’Form View’, $rec_ID);$rec->setField(’Name’, $nameEntered);$result = $rec->commit();Eliminazione di un record
Esistono due modi per eliminare un record:

1 Recuperare un record dal database e utilizzare il metodo delete().
Esempio$rec = $fm->getRecordById(’Form View’, $rec_ID);$rec->delete();1 Eliminare un record esistente utilizzando il comando Delete. Utilizzare il metodo

newDeleteCommand() per creare un oggetto FileMaker_Command_Delete, indicando ilnome del formato e l’ID del record da eliminare. Quindi eliminare il record utilizzando il metodo
execute().
Esempio$newDelete = $fm->newDeleteCommand(’Respondent’, $rec_ID);$result = $newDelete->execute();Capitolo 8 | Utilizzo di FileMaker API per PHP

75

Esecuzione di script FileMaker
Uno script FileMaker è un set denominato di istruzioni di script. La classe FileMaker definisce vari
metodi che consentono di utilizzare gli script FileMaker definiti in un database FileMaker Pro. Per
informazioni sulle istruzioni di script compatibili con il Web (istruzioni di script che possono essere
eseguite in una soluzione Web), vedere “Script FileMaker e Pubblicazione Web personalizzata” apagina 18.

Recupero dell’elenco degli script disponibili
Utilizzare il metodo listScripts() per ottenere una lista degli script disponibili dal database al
momento collegato. Il metodo listScripts() restituisce una matrice di script che può essere
eseguita con il nome utente e la password indicati quando è stato definito il collegamento con il
database. (Vedere “Collegarsi a un database FileMaker Pro” a pagina 72.)
Esempio$scripts = $fm->listScripts();

Esecuzione di uno script FileMaker
Utilizzare il metodo newPerformScriptCommand() per creare un oggetto
FileMaker_Command_PerformScript, specificando il formato, il nome dello script ed eventuali
parametri di script. Quindi, eseguire lo script utilizzando il metodo execute().
Importante Quando si esegue uno script FileMaker, le dimensioni dell’oggetto FileMaker_Result
restituito variano in base al comportamento dello script FileMaker. Ad esempio, se uno script
FileMaker passa a un formato specificato, il gruppo trovato potrebbe contenere tutti i record dellatabella di quel formato, e l’oggetto FileMaker_Result potrebbe restituire tutti i record di quel gruppo
trovato. Per evitare problemi di sovraccarico della memoria del computer, considerare i dati
restituiti da uno script FileMaker prima di eseguirlo in un’applicazione PHP.
Esempio$newPerformScript = $fm->newPerformScriptCommand(’Order Summary’,’ComputeTotal’);$result = $newPerformScript->execute();Esecuzione di uno script prima di eseguire un comando
Utilizzare il metodo setPreCommandScript() per indicare uno script che viene eseguito primache venga eseguito un comando. Nell’esempio seguente viene utilizzato un comando Find, ma
può essere utilizzato il metodo setPreCommandScript() con un comando qualsiasi.
Esempio$findCommand = $fm->newFindCommand(’Students’);$findCommand->addFindCriterion(’GPA’, $searchValue);$findCommand->setPreCommandScript(’UpdateGPA’);$result = $findCommand->execute();Capitolo 8 | Utilizzo di FileMaker API per PHP

76

Esecuzione di uno script prima di ordinare un gruppo di risultati
Utilizzare il metodo setPreSortScript()per specificare uno script che viene eseguito dopoche è stato generato un gruppo di risultati Find, ma prima che tale gruppo venga ordinato. Vedere“Utilizzo del comando Find” a pagina 82.
Esempio$findCommand = $fm->newFindCommand(’Students’);$findCommand->setPreSortScript(’RemoveExpelled’);Esecuzione di uno script dopo la creazione di un gruppo di risultati
Utilizzare il metodo setScript() per specificare uno script eseguito dopo la creazione di un
gruppo di risultati Find. Vedere “Utilizzo del comando Find” a pagina 82.
Esempio$findCommand = $fm->newFindCommand(’Students’);$findCommand->setScript(’myScript’,’param1|param2|param3’);

Ordine di esecuzione degli script
Per un singolo comando si possono indicare i metodi setPreCommandScript(),
setPreSortScript() e setScript() insieme ai metodi setResultLayout() e
addSortRule().
Di seguito è indicato l’ordine in cui FileMaker Server e il Motore per la pubblicazione Web
elaborano questi metodi:
1. Eseguire lo script indicato con il metodo setPreCommandScript(), se specificato.
2. Elaborare il comando come un comando Find o Delete Record.
3. Eseguire lo script indicato con il metodo setPreSortScript(), se specificato.
4. Ordinare il gruppo di risultati Find, se è stato indicato il metodo addSortRule().
5. Elaborare il metodo setResultLayout() per passare ad un formato diverso, se specificato.
6. Eseguire lo script indicato con il metodo setScript(), se specificato.
7. Restituire il gruppo di risultati Find finale.
Se in uno dei passi indicati in precedenza viene generato un codice di errore, l’esecuzione delcomando viene arrestata; eventuali passi successivi non vengono eseguiti. Vengono tuttavia
eseguite tutte le fasi precedenti della richiesta.
Ad esempio, considerare un comando che elimina il record corrente, ordina i record e poi esegue
uno script. Se il metodo addSortRule() specifica un campo inesistente, la richiesta elimina il
record corrente e restituisce il codice di errore 102 ("Manca un campo"), ma non esegue lo script.
Il formato specificato per il metodo newFindCommand() viene utilizzato durante l’elaborazionedella richiesta di ricerca. Quando il metodo setResultLayout() passa a un altro formato,l’oggetto errore per la richiesta di ricerca basata sul formato originale non è più disponibile. Per
testare l’oggetto errore dalla richiesta di ricerca basata sul formato originale, controllare l’oggetto
errore prima di cambiare il formato.

Capitolo 8 | Utilizzo di FileMaker API per PHP

77

Esempiorequest = $fm->newFindCommand(’Students’);$request->addFindCriterion(’Day’, ’Wednesday’);// Eseguire la ricerca$result = $request->execute();if (FileMaker::isError($result)) {if ($result->code = 401) {$findError = ’There are no Records that match that request: ’. ’ (’ .
$result->code . ’)’;
} else {$findError = ’Find Error: ’. $result->getMessage(). ’ (’ . $result->code. ’)’;}}$request->setResultLayout(’Teachers’);// Passare al formato del risultato$result = $request->execute();Utilizzo dei formati FileMaker Pro
Un formato è un insieme di campi, oggetti, immagini e sezioni che rappresenta il modo in cui leinformazioni vengono organizzate e presentate durante l’utilizzo, la visualizzazione in anteprimae la stampa dei record. La classe FileMaker definisce vari metodi che consentono di utilizzare iformati definiti in un database FileMaker Pro. Molti oggetti classe FileMaker consentono diottenere informazioni sui formati.
Con questo oggetto
classeUtilizzare questi metodi

Database

1 listLayouts() consente di ottenere una lista di nomi formato disponibili.
1 getLayout() consente di ottenere un oggetto del formato indicando un nome formato.

Formato1 getName() recupera il nome formato di un determinato oggetto del formato.
1 listFields() recupera una matrice di tutti i nomi dei campi utilizzati in un formato.
1 getFields() recupera una matrice associativa con i nomi di tutti i campi come chiave
e gli oggetti FileMaker_Field associati come valori di matrice.

1 listValueLists() recupera una matrice di nomi lista valori.
1 listRelatedSets() recupera una matrice dei nomi dei set correlati.
1 getDatabase() restituisce il nome del database.
Record1 getLayout() restituisce l’oggetto del formato associato ad un record specifico.

Campo

1 getLayout() restituisce l’oggetto del formato contenente un campo specifico.

Comando1 setResultLayout() restituisce i risultati del comando in un formato diverso da quellocorrente.

Capitolo 8 | Utilizzo di FileMaker API per PHP

78

Utilizzo dei portali
Un portale è una tabella che visualizza righe di dati di uno o più record correlati. La classe
FileMaker definisce un oggetto set correlato e vari metodi che consentono di utilizzare i portali
definiti in un database FileMaker Pro.
Un oggetto set correlato è una matrice di oggetti record del portale a cui si fa riferimento; ogni
oggetto record rappresenta una riga di dati del portale.

Elenco dei portali definiti in un formato specifico
Per un determinato oggetto del formato, utilizzare il metodo listRelatedSets() per
recuperare una lista dei nomi tabella per tutti i portali definiti in questo formato.
Esempio$tableNames = $currentLayout->listRelatedSets();

Recupero dei nomi dei portali per un oggetto risultato specifico
Per un determinato oggetto FileMaker_Result, usare il metodo getRelatedSets() per
recuperare i nomi di tutti i portali di questo record.
Esempio$relatedSetsNames = $result->getRelatedSets();

Recupero delle informazioni sui portali per un formato specifico
Per un determinato oggetto del formato, utilizzare il metodo getRelatedSets() per recuperare
una matrice di oggetti FileMaker_RelatedSet che descrivono i portali del formato. La matrice
restituita è una matrice associativa con i nomi tabella come chiavi di matrice e gli oggetti associati
FileMaker_RelatedSet come valori di matrice.
Esempio$relatedSetsArray = $currentLayout->getRelatedSets();

Recupero delle informazioni per un portale specifico
Per un determinato oggetto del formato, utilizzare il metodo getRelatedSet() per recuperare
l’oggetto FileMaker_RelatedSet che descrive uno specifico portale.
Esempio$relatedSet = $currentLayout->getRelatedSet(’customers’);Capitolo 8 | Utilizzo di FileMaker API per PHP

79

Recupero del nome della tabella per un portale
Per un oggetto set correlato, utilizzare il metodo getName() per ottenere il nome tabella delportale.
Esempio$tableName = $relatedSet->getName();Recupero dei record del portale per un record specifico
Per un determinato oggetto record, utilizzare il metodo getRelatedSet() per recuperare una
matrice di record correlati per un portale specifico su tale record.
Esempio$relatedRecordsArray = $currentRecord->getRelatedSet(’customers’);

Creazione di un nuovo record in un portale
Utilizzare il metodo newRelatedRecord() per creare un nuovo record nel set correlato indicato
e salvare le modifiche nel database utilizzando il metodo commit().
Esempio//creare una nuova riga del portale nel portale ’customer’$new_row = $currentRecord->newRelatedRecord(’customer’);//impostare i valori dei campi nella nuova riga del portale$new_row->setField(’customer::name’, $newName);$new_row->setField(’customer::company’, $newCompany);$result = $new_row->commit();Eliminazione di un record da un portale
Utilizzare il metodo delete() per eliminare un record di un portale.
Esempio$relatedSet = $currentRecord->getRelatedSet(’customers’);/* Viene eseguito in ciascuna riga del portale */foreach ($relatedSet as $nextRow) {$nameField = $nextRow->getField(’customer::name’)if ($nameField == $badName ) {$result = $newRow->delete();}}Capitolo 8 | Utilizzo di FileMaker API per PHP

80

Utilizzo delle liste valori
Una lista valori è un set di scelte predefinite. La classe FileMaker definisce vari metodi checonsentono di utilizzare le liste valori definite in un database FileMaker Pro.

Recupero dei nomi di tutte le liste valori per un formato specifico
Per un determinato oggetto del formato, utilizzare il metodo listValueLists() per recuperare
una matrice che contiene i nomi delle liste valori.
Esempio$valueListNames = $currentLayout->listValueLists();

Recupero di una matrice di tutte le liste valori per un formato specifico
Per un determinato oggetto del formato, utilizzare il metodo getValueListsTwoFields() per
recuperare una matrice che contiene i valori di tutte le liste valori. La matrice restituita è una matriceassociativa. Le chiavi della matrice sono nomi della lista valori e i valori della matrice sono matrici
associative che elencano i nomi da visualizzare e le scelte corrispondenti di ciascuna lista valori.
Esempio$valueListsArray = $currentLayout->getValueListsTwoFields();

Nota Sebbene il metodo getValueLists() sia ancora supportato in FileMaker API per PHP,è obsoleto. Utilizzare invece il metodo getValueListsTwoFields().

Recupero dei valori per una lista valori indicata
Per un determinato oggetto del formato, utilizzare il metodo getValueListTwoFields() per
ottenere una matrice di scelte definite per la lista valori indicata. La matrice restituita è una matriceassociativa che contiene i valori visualizzati del secondo campo della lista valori come chiavi, e ivalori memorizzati associati del primo campo, come valori della matrice.
A seconda delle opzioni selezionate nella finestra di dialogo Specifica i campi per la lista valori nel
database FileMaker Pro, il metodo getValueListTwoFields() restituisce, come valori
memorizzati e visualizzati, il valore solo nel primo campo, solo nel secondo campo o in entrambi
i campi di una lista valori.

1 Se non è selezionato Visualizza anche i valori secondo campo, il metodo

getValueListTwoFields() restituisce il valore del primo campo della lista valori sia comevalore memorizzato che come valore visualizzato.

1 Se Visualizza anche i valori secondo campo e Mostra valori solo dal secondo camposono entrambi selezionati, il metodo getValueListTwoFields() restituisce il valore delprimo campo come valore memorizzato e il valore del secondo campo come valorevisualizzato.

1 Se è selezionato Visualizza anche i valori secondo campo, ma non Mostra valori solo dal
secondo campo, il metodo getValueListTwoFields() restituisce il valore del primo
campo come valore memorizzato ed entrambi i valori sia del primo che del secondo campo
come valore visualizzato.

Per trovare il valore visualizzato e il valore memorizzato, utilizzare un iteratore con il metodo
getValueListTwoFields().

Capitolo 8 | Utilizzo di FileMaker API per PHP

81

Esempio$layout = $fm->getLayout(’customers’);$valuearray = $layout->getValueListTwoFields("region", 4);foreach ($valuearray as $displayValue => $value) {
....
}

Note

1 Sebbene il metodo getValueList() sia ancora supportato in FileMaker API per PHP, èobsoleto. Utilizzare invece il metodo getValueListTwoFields().

1 Quando si utilizza il metodo getValueListTwoFields(), assicurarsi di utilizzare un cicloforeach per scorrere attraverso la matrice associativa. Non utilizzare un ciclo for dato chepuò restituire risultati non previsti.

Esecuzione di richieste di ricerca
La classe FileMaker definisce quattro tipi di oggetti comando Find:

1
1
1
1

Comando Find All. Vedere “Utilizzo del comando Find All” a pagina 82.
Comando Find Any. Vedere “Utilizzo del comando Find Any” a pagina 82.
Comando Find. Vedere “Utilizzo del comando Find” a pagina 82.
Comando Compound Find. Vedere “Utilizzo di un comando Compound Find” a pagina 83.

La classe FileMaker definisce anche vari metodi che possono essere utilizzati per tutti e quattro i
tipi di comando Find:

1 Utilizzare il metodo addSortRule() per aggiungere una regola che definisce il modo in cui
ordinare il gruppo di risultati. Utilizzare il metodo clearSortRules() per cancellare tutti icriteri di ordinamento definiti.

1 Utilizzare il metodo setLogicalOperator() per scegliere ricerche con operatore logico
AND oppure OR.

1 Utilizzare il metodo setRange() per richiedere solo una parte del gruppo di risultati. Utilizzare
il metodo getRange() per recuperare la definizione dell’intervallo corrente.

Usando il metodo setRange() si possono migliorare le prestazioni della soluzione riducendo
il numero di record restituiti dalla richiesta di ricerca. Ad esempio, se una richiesta di ricerca
restituisce 100 record, è possibile suddividere il gruppo di risultati in cinque gruppi da 20 record
piuttosto che elaborare tutti i 100 record insieme.

1 È possibile eseguire script FileMaker insieme a comandi Find.
1 Per eseguire uno script prima di eseguire il comando Find, utilizzare il metodo
setPreCommandScript().

1 Per eseguire uno script prima di ordinare il gruppo di risultati, utilizzare il metodo
setPreSortScript().

1 Per eseguire uno script dopo che un gruppo di risultati è stato generato, ma non ancora
ordinato, utilizzare il metodo setScript().

Capitolo 8 | Utilizzo di FileMaker API per PHP

82

Utilizzo del comando Find All
Utilizzare il comando Find All per recuperare tutti i record di un determinato formato. Utilizzare il
metodo newFindAllCommand(), indicando un formato specifico, per creare un oggetto
FileMaker_Command_FindAll. Quindi, eseguire la richiesta di ricerca utilizzando il metodo
execute().
Esempio$findCommand = $fm->newFindAllCommand(’Form View’);$result = $findCommand->execute;

Nota Quando si utilizza il comando Find All, evitare problemi di sovraccarico della memoria delcomputer specificando un numero massimo predefinito di record da restituire per pagina.

Utilizzo del comando Find Any
Utilizzare il comando Find Any per recuperare un record a caso da un determinato formato.
Utilizzare il metodo newFindAnyCommand(), indicando un formato specifico, per creare un
oggetto FileMaker_Command_FindAny. Quindi, eseguire la richiesta di ricerca utilizzando il
metodo execute().
Esempio$findCommand = $fm->newFindAnyCommand(’Form View’);$result = $findCommand->execute;

Utilizzo del comando Find
Utilizzare il metodo newFindCommand(), indicando un formato specifico, per creare un oggetto
FileMaker_Command_Find. Quindi, eseguire la richiesta di ricerca utilizzando il metodo
execute().
Nota Assicurarsi che il nome del formato sia univoco. Se il database ha due formati con lo stessonome, FileMaker API per PHP non riesce a distinguerli. Inoltre, l’API non fa distinzione tramaiuscole e minuscole. Ad esempio, se il database ha un formato Sitiweb e un altro formato
SitiWeb, l’API non riesce a distinguerli.
Utilizzare il metodo addFindCriterion() per aggiungere dei criteri alla richiesta di ricerca.
Utilizzare il metodo clearFindCriteria() per cancellare tutti i criteri di ricerca definiti.

Capitolo 8 | Utilizzo di FileMaker API per PHP

Esempi
Ricerca di un record in base al nome del campo:$findCommand = $fm->newFindCommand(’Form View’);$findCommand->addFindCriterion(’Questionnaire ID’,$active_questionnaire_id);$result = $findCommand->execute();Aggiunta di un criterio di ordinamento:$findCommand = $fm->newFindCommand(’Customer List’);$findCommand->addSortRule(’Title’, 1, FILEMAKER_SORT_ASCEND);$result = $findCommand->execute();Utilizzo di un comando Compound Find
Il comando Compound Find consente di combinare più oggetti Find Request in un singolo
comando. Esistono vari modi per creare un comando Compound Find:

1 Creare un oggetto FileMaker_Command_CompoundFind utilizzando il metodo
newCompoundFindCommand().

1 Creare uno o più oggetti FileMaker_Command_FindRequest utilizzando il metodo
newFindRequest().

1 Utilizzare il metodo add() per aggiungere oggetti Find Request a un oggetto comando
Compound Find.

1 Eseguire il comando Compound Find utilizzando il metodo execute().

83

Capitolo 8 | Utilizzo di FileMaker API per PHP

Esempio
Comando Compound Find:// Creare l’oggetto comando Compound Find
$compoundFind = $fm->newCompoundFindCommand(’Form View’);// Creare la prima richiesta di ricerca$findreq1 = $fm->newFindRequest(’Form View’);// Creare la seconda richiesta di ricerca$findreq2 = $fm->newFindRequest(’Form View’);// Creare la terza richiesta di ricerca$findreq3 = $fm->newFindRequest(’Form View’);// Indicare un criterio di ricerca per la prima richiesta di ricerca$findreq1->addFindCriterion(’Quantity in Stock’, ’<100’);// Indicare un criterio di ricerca per la seconda richiesta di ricerca$findreq2->addFindCriterion(’Quantity in Stock’, ’0’);// Indicare un criterio di ricerca per la terza richiesta di ricerca$findreq3->addFindCriterion(’Cover Photo Credit’, ’The London Morning
News’);// Aggiungere le richieste di ricerca al comando Compound Find
$compoundFind->add(1,$findreq1);$compoundFind->add(2,$findreq2);$compoundFind->add(3,$findreq3);// Impostare il criterio di ordinamento$compoundFind->addSortRule(’Title’, 1, FILEMAKER_SORT_DESCEND);// Eseguire il comando Compound Find
$result = $compoundFind->execute();// Ottenere i record dal gruppo trovato$records = $result->getRecords();// Stampare il numero di record trovati
echo ’Found ’. count($records). " results.<br><br>";84

Capitolo 8 | Utilizzo di FileMaker API per PHP

85

Elaborazione dei record in un gruppo di risultati
1 Recuperare una matrice contenente tutti i record del gruppo di risultati utilizzando il metodo

getRecords(). Ogni elemento della matrice è un oggetto FileMaker_Record o un’istanza delnome classe impostato nell’API per creare un’istanza di record. La matrice può essere vuota
se il gruppo di risultati non contiene nessun record.

1 Ottenere una lista dei nomi dei campi per tutti i campi del gruppo di risultati utilizzando il metodo
getFields(). Il metodo restituisce solo i nomi dei campi. Per ottenere ulteriori informazioni
sui campi, utilizzare l’oggetto del formato associato.

1 Ottenere il numero di record di tutto il gruppo trovato utilizzando il metodo
getFoundSetCount().

1 Ottenere il numero di record del gruppo trovato filtrato utilizzando il metodo

getFetchCount(). Se nel comando Find non sono stati indicati dei parametri di intervallo,
questo valore è uguale al risultato ottenuto con il metodo getFoundSetCount(). È sempre
uguale al valore di count($response->getRecords()).

1 Per un determinato record, utilizzare il metodo getField() per restituire i contenuti di un
campo sotto forma di stringa.

1 Per un record specifico utilizzare il metodo getFieldAsTimestamp() per restituire icontenuti di un campo sotto forma di indicatore data e ora Unix (rappresentazione interna PHP
di una data).

1 Se il campo è un campo data, l’indicatore data e ora per la data del campo è impostato su
mezzanotte.

1 Se il campo è un campo ora, l’indicatore data e ora per l’ora è impostato su 1 gennaio 1970.
1 Se il campo è un campo indicatore data e ora, il valore dell’indicatore data e ora FileMaker
applica direttamente i valori dell’indicatore data e ora Unix.

1 Se il campo indicato non è un campo data o ora o se l’indicatore data e ora generato non ècompreso nell’intervallo, il metodo getFieldAsTimestamp() restituisce un oggetto
FileMaker_Error.

1 Per un record specifico, utilizzare il metodo getContainerData() per restituire un oggettodel campo Contenitore come dati binari:<IMG src="img.php?-url=<?php echo urlencode($record->getField(’CoverImage’)); ?>">
echo $fm->getContainerData($_GET[’-url’]);1 Per un record specifico, utilizzare il metodo getContainerDataURL() per restituire un URL
completamente qualificato per l’oggetto del campo Contenitore:// Per le immagini, utilizzare il tag HTML img
echo ’<img src="’.$fm->
getContainerDataURL($record->getField(’container’)) .’">’;// Per i filmati e i file PDF, utilizzare il tag HTML embed//echo ’<embed src="’.$fm->
getContainerDataURL($record->getField(’container’)) .’">’;

Capitolo 8 | Utilizzo di FileMaker API per PHP

86

Limitazione delle righe del portale restituite dalle richieste di ricerca
In una soluzione con molti record correlati, l’interrogazione e l’ordinamento dei record del portale
potrebbe richiedere molto tempo. Per limitare il numero di record da visualizzare in un gruppo
correlato, utilizzare il metodo setRelatedSetsFilters() con le richieste di ricerca. Il metodo
setRelatedSetsFilters() comprende due argomenti:

1 valore del filtro dei set correlati: layout o none
1 Indicando il valore none, il Motore per la pubblicazione Web restituisce tutte le righe delportale e i record del portale non vengono preordinati.

1 Indicando il valore layout vengono applicate le impostazioni specificate nella finestra didialogo Impostazione portale di FileMaker Pro. I record sono ordinati in base all’ordinamento
definito nella finestra di dialogo Impostazione portale, con il gruppo di record filtrato in mododa partire con la riga iniziale specificata.

1 il numero minimo di record del portale restituito: un valore intero o all
1 Questo valore è utilizzato solo se l’impostazione Consenti scorrimento verticale èselezionata nella finestra di dialogo Impostazione portale. Se viene indicato un valore intero,viene restituito un numero di righe pari a quel numero a partire dalla riga iniziale. Indicando
all, il Motore per la pubblicazione Web restituisce tutti i record correlati.

1 Se l’impostazione Consenti scorrimento verticale non è selezionata, l’impostazione
Numero di righe nella finestra di dialogo Impostazione portale determina il numero
massimo di record correlati restituiti.

Nota L’impostazione Filtra record portale nella finestra di dialogo Impostazione portale non è
supportata per le query PHP. Eventuali calcoli specificati per l’impostazione Filtra record portale
vengono ignorati.

Pre-convalida di comandi, record e campi
La classe FileMaker consente di pre-convalidare i dati dei campi in una soluzione PHP sul server
Web prima di salvare i dati nel database.
Per impostazione predefinita, la pre-convalida è disattivata. Utilizzare l’interfaccia a riga dicomando per attivare la pre-convalida. Vedere la Guida CLI.
Nel decidere se utilizzare la pre-convalida, considerare il numero di valori di dati che l’utente Web
sta inserendo. Se l’utente sta aggiornando un numero ridotto di campi, è possibile migliorare leprestazioni decidendo di non utilizzare la pre-convalida. Al contrario, se l’utente sta inserendo dati
in molti campi, la pre-convalida può aiutare a evitare che un record venga respinto dal databasea causa di errori di convalida.
Con la classe FileMaker, il motore PHP pre-convalida le seguenti limitazioni di campo:

1 Non vuoto
I dati validi sono una stringa di caratteri non vuota. I dati devono contenere almeno un carattere.

1 Solo numerico
I dati validi contengono solo caratteri numerici.

1 Numero massimo di caratteri
I dati validi contengono per lo più il numero massimo di caratteri specificato.

Capitolo 8 | Utilizzo di FileMaker API per PHP

87

1 Anno a quattro cifre
I dati validi sono una stringa di caratteri che indica una data con un anno a quattro cifre nelformato m/g/aaaa, dove m è un numero tra 1 e 12 compreso, g è un numero tra 1 e 31
compreso e aaaa è un numero a quattro cifre tra 0001 e 4000 compreso. Ad esempio,
1/30/3030 è un valore anno a quattro cifre valido. Al contrario, 4/31/2019 è un valore anno
a quattro cifre non valido perché aprile non ha 31 giorni. La convalida della data supporta comedelimitatori i caratteri barra (/), barra rovesciata (\) e trattino (-). Tuttavia la stringa non può
contenere una combinazione di delimitatori. Ad esempio, 1\30-2019 non è valido.

1 Ora del giorno
I dati validi sono una stringa di caratteri che indica un valore ora da 12 ore in uno di questi
formati:

1 h
1 h:m
1 h:m:s
1 h:m:s AM/PM
1 h:m AM/PM
dove h è un numero tra 1 e 12 compresi; m e s sono numeri tra 1 e 60 compresi.
La pre-convalida del motore PHP supporta il controllo implicito dei dati dei campi in base al tipo dicampo:

1 DataUn campo definito come campo Data è convalidato in base al criterio "anno a quattro cifre",fatta eccezione per il valore anno che può contenere da 0 a 4 cifre (il valore dell’anno può
essere vuoto). Ad esempio 1/30 è una data valida anche se non viene specificato nessun
anno.

1 Ora
Un campo definito come campo Ora è convalidato in base al criterio "ora del giorno", fatta
eccezione per il componente ora (H) che può essere un numero tra 1 e 24 compreso, persupportare i valori dei formati a 24 ore.

1 Indicatore data e ora
Un campo definito come campo Indicatore data e ora è convalidato in base al criterio "ora" peril componente ora e in base al criterio "data" per il componente data.
La classe FileMaker non può pre-convalidare tutte le opzioni di convalida dei campi disponibili in
FileMaker Pro. Le seguenti opzioni di convalida non possono essere pre-convalidate perché
dipendono dallo stato di tutti i dati del database al momento del salvataggio dei dati:

1
1
1
1
1

valore unico
valore esistenteda-aelemento della lista valoriverifica mediante calcolo

Capitolo 8 | Utilizzo di FileMaker API per PHP

88Pre-convalida dei record in un comando
Per un oggetto comando, utilizzare il metodo validate() per convalidare un campo o l’intero
comando in base ai criteri di pre-convalida applicati dal motore PHP. Se viene utilizzato
l’argomento del nome di campo opzionale, viene pre-convalidato solo quel campo.
Se la pre-convalida riesce, il metodo validate() restituisce TRUE. Se la pre-convalida fallisce,
il metodo validate() restituisce un oggetto FileMaker_Error_Validation che contiene
informazioni su ciò che non ha reso possibile la convalida.

Pre-convalida dei record
Per un oggetto record, utilizzare il metodo validate() per convalidare un campo o tutti i campidel record in base ai criteri di pre-convalida applicati dal motore PHP. Se viene utilizzato
l’argomento del nome di campo opzionale, viene pre-convalidato solo quel campo.
Se la pre-convalida riesce, il metodo validate() restituisce TRUE. Se la pre-convalida fallisce,
il metodo validate() restituisce un oggetto FileMaker_Error_Validation che contiene
informazioni su ciò che non ha reso possibile la convalida.

Pre-convalida dei campi
Per un oggetto campo, utilizzare il metodo validate() per stabilire se un determinato valore èvalido per un campo oppure no.
Se la pre-convalida riesce, il metodo validate() restituisce TRUE. Se la pre-convalida fallisce,
il metodo validate() restituisce un oggetto FileMaker_Error_Validation che contiene
informazioni su ciò che non ha reso possibile la convalida.

Elaborazione degli errori di convalida
Se la pre-convalida fallisce, l’oggetto FileMaker_Error_Validation restituito contiene una matricea tre elementi per ogni errore di convalida:
1. L’oggetto campo che non ha superato la pre-convalida
2. Un valore di convalida costante che indica il criterio di convalida che ha provocato l’errore:
1 - FILEMAKER_RULE_NOTEMPTY
2 - FILEMAKER_RULE_NUMERICONLY
3 - FILEMAKER_RULE_MAXCHARACTERS
4 - FILEMAKER_RULE_FOURDIGITYEAR
5 - FILEMAKER_RULE_TIMEOFDAY
6 - FILEMAKER_RULE_TIMESTAMP_FIELD
7 - FILEMAKER_RULE_DATE_FIELD
8 - FILEMAKER_RULE_TIME_FIELD
3. Il valore effettivo inserito nel campo che non ha superato la pre-convalida

Capitolo 8 | Utilizzo di FileMaker API per PHP89

È inoltre possibile utilizzare i seguenti metodi con un oggetto FileMaker_Error_Validation:

1 Utilizzare il metodo isValidationError() per verificare se l’errore è un errore di convalida.
1 Utilizzare il metodo numErrors() per ottenere il numero di criteri di convalida che hanno dato
errore.

Esempio//Creare una richiesta Add$addrequest = $fm->newAddCommand(’test’, array(’join’ => ’added’, ’maxchars’=> ’abcx’, ’field’ => ’something’ , ’numericonly’ => ’abc’));//Convalidare tutti i campi$result = $addrequest->validate();//Se il metodo validate() restituisce degli errori, stampare il nome delcampo, il numero dell’errore e il valore che ha restituito l’errore.
if(FileMaker::isError($result)){echo ’Validation failed:’. "\n";$validationErrors= $result->getErrors();
foreach ($validationErrors as $error) {$field =$error[0];echo ’Field Name: ’ .

$field->getName(). "\n";echo ’Error Code: ’ .

$error[1]. "\n";echo ’Value: ’ .

$error[2]. "\n";}}Risultato
Validation failed:
Field Name: numericonly
Error Code: 2
Value: abc
Field Name: maxchars
Error Code: 3
Value: abcx

Capitolo 8 | Utilizzo di FileMaker API per PHP

90

Gestione degli errori
La classe FileMaker definisce l’oggetto FileMaker_Error per supportare la gestione degli errori che
si verificano in una soluzione PHP.
L’errore può verificarsi durante l’esecuzione di un comando. Se si verifica un errore, il comando
restituisce l’oggetto FileMaker_Error. Si consiglia di controllare l’errore che viene restituito quando
viene eseguito un comando.
Utilizzare i seguenti metodi per avere ulteriori informazioni sull’errore indicato nell’oggetto
FileMaker_Error.

1 Controllare se una variabile è un oggetto FileMaker Error utilizzando il metodo isError().
1 Ricavare il numero di errori che si sono verificati utilizzando il metodo numErrors().
1 Recuperare una matrice di matrici che descrivono gli errori che si sono verificati utilizzando il
metodo getErrors().

1 Visualizzare un messaggio di errore utilizzando il metodo getMessage().
Esempio$result = $findCommand->execute();if (FileMaker::isError($result)) {echo "<p>Error: " . $result->getMessage() . "</p>";exit;}

Per informazioni sui codici di errore restituiti con l’oggetto FileMaker Error, vedere l’appendice A“Codici di errore per la Pubblicazione Web personalizzata”.

Capitolo 9
Preparazione, test e monitoraggio di un sito
In questo capitolo sono contenute le istruzioni per preparare e testare un sito Pubblicazione Web
personalizzata prima della sua distribuzione in un ambiente di produzione. Sono anche presenti
le istruzioni per utilizzare i file di registro per controllare il sito durante il test o dopo la sua
distribuzione.

Preparazione di un sito Pubblicazione Web personalizzata
Prima di poter testare correttamente il sito, è necessario copiare o spostare i file richiesti nelle
posizioni corrette sul/sui server di preparazione.
1. Completare tutti i passi riportati nel capitolo 2 “Preparazione dei database per la Pubblicazione
Web personalizzata”.
2. Controllare che la Pubblicazione Web personalizzata sia stata attivata e configurata
correttamente utilizzando l’interfaccia a riga di comando. Vedere la Guida di FileMaker Server.
3. Verificare che il server Web e il Motore per la pubblicazione Web siano in esecuzione.
4. Copiare o spostare i file del sito sul componente server Web della distribuzione diFileMaker Server.
Copiare o spostare i file del sito nella seguente directory:

1 IIS (Windows) con HTTP o HTTPS:[unità]:\Programmi\FileMaker\FileMaker Server\HTTPServer\Confdove [unità] è l’unità della macchina primaria FileMaker Server.

1 Apache (macOS) con HTTP:/Libreria/FileMaker Server/HTTPServer/htdocs

1 Apache (macOS) con HTTPS:/Libreria/FileMaker Server/HTTPServer/htdocs/httpsRoot
Nota Quando si importa un certificato SSL personalizzato, le connessioni client al server
database utilizzano la crittografia SSL; le connessioni HTTP vengono indirizzate a una
connessione HTTPS. Con un certificato SSL personalizzato, utilizzare la directory HTTPS per
ospitare i file del sito PHP.

Capitolo 9 | Preparazione, test e monitoraggio di un sito

92

5. Se non lo si è già fatto, copiare o spostare eventuali oggetti dei campi Contenitore di riferimento
nella directory corretta sulla macchina primaria.

1 Se il file di database è correttamente ospitato e accessibile sul componente server databasedella distribuzione di FileMaker Server e se i campi Contenitore memorizzano i file effettivi nel
database FileMaker Pro, non è necessario riposizionare i contenuti dei campi Contenitore.

1 Se un campo Contenitore del database contiene un riferimento al file anziché il file effettivo,
l’oggetto Contenitore di riferimento deve essere memorizzato nella cartella Web di
FileMaker Pro quando il record viene creato o modificato. Per preparare il sito, copiare ospostare i contenitori a cui si fa riferimento ad una cartella con la stessa posizione relativa
nella cartella principale del software del server Web.

1 Se si utilizza FileMaker Pro per caricare un database con campi Contenitore chememorizzano oggetti esternamente, i dati dei campi Contenitore memorizzati esternamente
vengono caricati su FileMaker Server come parte del processo. Per informazioni sul
trasferimento dei file di database in FileMaker Server, consultare la Guida di FileMaker Pro.

1 Se si carica manualmente un database che utilizza un campo Contenitore con oggetti

memorizzati esternamente, è necessario copiare o spostare gli oggetti a cui fa riferimento in
una sottocartella della cartella RC_Data_FMS, come descritto in “Campi Contenitore con
dati memorizzati esternamente” a pagina 16.

6. Copiare eventuali componenti aggiuntivi dell’applicazione Web sulla macchina primaria. Per la
Pubblicazione Web personalizzata con XML, l’applicazione Web elabora i dati XML prima diinviarli a un’altra applicazione o al client.

Test di un sito Pubblicazione Web personalizzata
Prima di comunicare agli utenti che un sito Pubblicazione Web Immediata è disponibile, è
importante verificare che abbia il layout desiderato e che funzioni nel modo previsto.

1 Testare le funzioni come ad esempio la ricerca, l’aggiunta, l’eliminazione e l’ordinamento dei
record con account e set di privilegi diversi.

1 Verificare che i set di privilegi funzionino come previsto eseguendo l’accesso con accountdiversi. Assicurarsi che gli utenti non autorizzati non possano accedere o modificare i dati.

1 Controllare tutti gli script per verificare che producano il risultato previsto. Per informazioni su
come progettare script compatibili con il Web, vedere “Script FileMaker e Pubblicazione Web
personalizzata” a pagina 18.

1 Testare il sito con sistemi operativi e browser Web diversi.
1 Quando si creano soluzioni che utilizzano FileMaker API per PHP, si consiglia di crearle con il

supporto dei cookie attivato. Con i cookie attivati, infatti, FileMaker API per PHP ha tempi dirisposta migliori. I cookie non sono necessari per utilizzare le funzioni della Pubblicazione Web
personalizzata, ma permettono al Motore per la pubblicazione Web di memorizzare nella cache
le informazioni della sessione.
Nota È possibile visualizzare e testare il sito sulla macchina primaria senza utilizzare una
connessione di rete, inserendo http://127.0.0.1/ nell’URL.

1 Per le soluzioni PHP, utilizzare http://127.0.0.1/<percorso_sito>

dove <percorso_sito> è il percorso relativo alla home page del sito.

1 Per informazioni sulla sintassi URL nelle soluzioni XML, vedere “Sintassi URL per dati XML eoggetti Contenitore” a pagina 27.

Capitolo 9 | Preparazione, test e monitoraggio di un sito

Fogli di stile per testare l’output XML
EsempiDi seguito vi sono due esempi di fogli di stile XSLT utili per testare l’output XML.
L’esempio di foglio di stile che segue genera i dati XML richiesti senza fare nessuna
trasformazione. Questo foglio di stile è utile per visualizzare i dati XML che il Motore per la
pubblicazione Web sta effettivamente utilizzando.
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fmrs="http://www.filemaker.com/xml/fmresultset"><xsl:output method="xml"/><xsl:template match="/"><xsl:copy-of select="."/></xsl:template></xsl:stylesheet>

Per eseguire il debug di un foglio di stile, è possibile utilizzare il seguente esempio di un tag<textarea> HTML per visualizzare il documento origine XML al quale è stato eseguito
l’accesso dal foglio di stile in un’area di testo a scorrimento.
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fmrs="http://www.filemaker.com/xml/fmresultset"><xsl:output method="html"/><html><body><xsl:template match="/fmrs:fmresultset"><textarea rows="20" cols="100"><xsl:copy-of select="."/></textarea><br/></xsl:template></body></html></xsl:stylesheet>93

Capitolo 9 | Preparazione, test e monitoraggio di un sito

94

Monitoraggio di un sito
È possibile utilizzare i seguenti tipi di file registro per monitorare un sito Pubblicazione Web
personalizzata e raccogliere informazioni sugli utenti Web che visitano il sito:

1
1
1
1

Registri degli accessi e degli errori del server Web
Registro Motore per la pubblicazione Web
Registro errori Modulo Server Web
Registri Tomcat

Uso dei registri degli accessi e degli errori del server Web
IIS (Windows): Il server Web Microsoft IIS genera file di registro degli accessi e mostra gli errori
nel Visualizzatore eventi di Windows anziché registrarli in un file di registro. Il file di registro degli
accessi, incluso per impostazione predefinita nel formato di file registro esteso W3C, è un registro
di tutte le richieste HTTP in ingresso sul server Web. È anche possibile usare il formato di fileregistro comune W3C per il registro degli accessi. Consultare la documentazione del server Web
Microsoft IIS.
Apache (macOS): Il server Web Apache genera un file di registro degli accessi e un file di registro
degli errori. Il file di registro degli accessi Apache, incluso per impostazione predefinita nel formato
di file registro comune W3C, è un registro di tutte le richieste HTTP in ingresso sul server Web. Il
registro errori Apache è un registro dei problemi che riguardano richieste HTTP di elaborazione.
Consultare la documentazione del server Web Apache.
Nota Per informazioni sul formato di file di registro comune W3C e sul formato di file di registro
esteso W3C, vedere il sito Web del World Wide Web Consortium all’indirizzo www.w3.org.

Utilizzo del registro del Motore per la pubblicazione Web
Il Motore per la pubblicazione Web genera un file di registro wpe.log contenente una registrazione
di tutti gli errori del Motore per la pubblicazione Web, compresi errori dell’applicazione, errori diutilizzo ed errori di sistema.
Il file wpe.log viene generato se il Motore per la pubblicazione Web è in esecuzione (per verificare
se il Motore per la pubblicazione Web è in esecuzione, vedere l’Admin Console).
Il file wpe.log si trova sul componente Motore per la pubblicazione Web della distribuzione diFileMaker Server:

1 Windows: [unità]:\Programmi\FileMaker\FileMaker Server\Logs\wpe.log
dove [unità] è l’unità principale da cui viene avviato il sistema.

1 macOS: /Libreria/FileMaker Server/Logs/wpe.log
Formato del registro del Motore per la pubblicazione Web
Il file wpe.log utilizza la seguente formattazione per ogni voce:[TIMESTAMP_GMT] [WPC_HOSTNAME] [CLIENT_IP:PORT] [ACCOUNT_NAME] [MODULE_TYPE][SEVERITY] [FM_ERRORCODE] [RETURN_BYTES] [MESSAGE]

dove:

1 [TIMESTAMP_GMT] è la data e l’ora dell’inserimento, ora di Greenwich (GMT).
1 [WPC_HOSTNAME] è il nome della macchina primaria.
1 [CLIENT_IP:PORT] è l’indirizzo IP e la porta del client dove è stata originata la richiesta XML.

Capitolo 9 | Preparazione, test e monitoraggio di un sito

95

1 [ACCOUNT_NAME] è il nome dell’account utilizzato per l’accesso al database FileMaker Pro
ospitato.

1 [MODULE_TYPE] è: XML, per la Pubblicazione Web personalizzata con richieste XML, oppure
PHP, per la Pubblicazione Web personalizzata con le richieste PHP.

1 [SEVERITY] è INFO, che indica un messaggio informativo, oppure ERROR, che indica un
messaggio di errore.

1 [FM_ERROR_CODE] è il numero dell’errore restituito per un messaggio di errore. Il numero

dell’errore può essere un codice di errore per i database FileMaker Pro (vedere “Codici di errore
per database FileMaker Pro” a pagina 98).
Inoltre, il numero dell’errore può essere un numero di errore HTTP, preceduto da una stringa"HTTP:".

1 [RETURN_BYTES] è il numero dei byte restituiti dalla richiesta.
1 [MESSAGE] fornisce informazioni aggiuntive sulla voce di registro.
Messaggio del registro del Motore per la pubblicazione Web
EsempiGli esempi di seguito mostrano i tipi di messaggio che possono essere inclusi nel file wpe.log.
Quando il Motore per la pubblicazione Web viene avviato e arrestato:
02/06/2019 15:15:31 -0700
Web Publishing Engine started.

-

-

INFO

-

-

FileMaker Server

02/06/2019 15:46:52 -0700
Web Publishing Engine stopped.

-

-

INFO

-

-

FileMaker Server

Richieste query XML riuscite o fallite:
02/06/2019 15:21:08 -0700 WPC_SERVER 192.168.100.101:0 jdoe XML INFO
03964"/fmi/xml/fmresultset.xml?-db=Contacts&-lay=Contact_Details&findall"
02/06/2019 15:26:31 -0700
WPC_SERVER
192.168.100.101:0
ERROR
5
596
"/fmi/xml/fmresultset.xml?-db=Contacts&layout=Contact_Details&-findall"

jdoe

XML

Errori di script:
02/06/2019 17:33:12 -0700 WPC_SERVER 192.168.100.101:0 jdoe - ERROR
4 - Web Scripting Error: 4, File: "10b_MeetingsUpload", Script: "OnOpen",
Script Step: "Show Custom Dialog"

Modifiche alle impostazioni della Pubblicazione Web personalizzata:
09/06/2019 10:59:49 -0700 WPC_SERVER 192.168.100.101:0
XML Web Publishing Engine is enabled.

jdoe

-

INFO

Errori di sistema:
02/06/2019 15:30:42 -0700
WPC_SERVER
ERROR- Communication failed

192.168.100.101:0

jdoe

XML

Capitolo 9 | Preparazione, test e monitoraggio di un sito

96

Utilizzo del registro errori del Modulo Server Web
Se il server Web non è in grado di connettersi al Motore per la pubblicazione Web, il Modulo
Server Web genera un file di registro che è un registro di tutti gli errori che si sono verificati inquesta operazione. Questo file si chiama web_server_module_log.txt e si trova nella cartella Logs
all’interno della cartella FileMaker Server sull’host del server Web.

Utilizzo dei registri Tomcat
Quando FileMaker Server ha un problema provocato da un errore nel server Web interno,
potrebbe essere utile visualizzare i registri Tomcat. I registri Tomcat si trovano sul componente
server Web della distribuzione di FileMaker Server:

1 Windows: [unità]:\Programmi\FileMaker\FileMaker Server\Web
Publishing\publishing-engine\jwpc-tomcat\logs
dove [unità] è l’unità primaria da cui viene avviato il sistema.

1 macOS: /Libreria/FileMaker Server/Web Publishing/publishingengine/jwpc-tomcat/logs

Appendice A
Codici di errore per la Pubblicazione Web
personalizzata
Il Motore per la pubblicazione Web genera codici di errore per errori di database e stringhe diquery che possono verificarsi durante una richiesta dati XML.
Per un elenco dei codici di errore aggiornati, vedere la Knowledge Base.

Codici di errore in formato XML
Il Motore per la pubblicazione Web genera un codice di errore per i database pubblicati in formato
XML ogni volta che si verifica una richiesta di dati. Questo tipo di valore di codice di errore èinserito all’inizio del documento XML nell’elemento <error code> per la grammatica
fmresultset, oppure nell’elemento <ERRORCODE> per le grammatiche FMPXMLRESULT o
FMPXMLLAYOUT. Un codice di errore 0 indica che non si è verificato nessun errore.
Esempi
Codice di errore database nella grammatica fmresultset:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE fmresultset PUBLIC "-//FMI//DTD fmresultset//EN""http://192.168.123.101/fmi/xml/fmresultset.dtd"><fmresultset xmlns="http://www.filemaker.com/xml/fmresultset"
version="1.0"><error code="0"></error>

Codice di errore database nella grammatica FMPXMLRESULT:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE FMPXMLRESULT PUBLIC "-//FMI//DTD FMPXMLRESULT//EN""http://192.168.123.101/fmi/xml/FMPXMLRESULT.dtd"><fmpxmlresult xmlns="http://www.filemaker.com/fmpxmlresult"><ERRORCODE>0</ERRORCODE>

Spetta allo sviluppatore della soluzione di Pubblicazione Web personalizzata controllare il valoredell’elemento <error code> o <ERRORCODE> e gestirlo opportunamente. Il Motore per la
pubblicazione Web non gestisce gli errori di database.

Appendice A | Codici di errore per la Pubblicazione Web personalizzata

98

Codici di errore per database FileMaker Pro
Per i codici di errore di FileMaker Pro, consultare la Guida di FileMaker Pro.
FileMaker Server restituisce il codice di errore 959 per indicare che una tecnologia è stata
disabilitata.
Ad esempio, se l’amministratore server disattiva la Pubblicazione Web personalizzata utilizzando
l’interfaccia a riga di comando, le query XML restituiscono il codice di errore 959.
Esempio
Codice di errore 959 nella grammatica FMPXMLLAYOUT:<FMPXMLLAYOUT><ERRORCODE>959</ERRORCODE><LAYOUT DATABASE="" NAME=""/><VALUELISTS/></FMPXMLLAYOUT>

IndiceAaccount e privilegi
account Ospite 14
attivazione per Pubblicazione Web personalizzata 13
script 18
account Ospite
attivazione 14
con Pubblicazione Web personalizzata 14
disattivazione 14
Admin Console 14
applicazione dei formati per una risposta XML 41
attivazione della Pubblicazione Web personalizzata in un
database 13
attributo auto-enter 32
attributo four-digit-year 32
attributo max-characters 32
attributo max-repeat 32
attributo name 32
attributo not-empty 32
attributo numeric-only 32
attributo result 32
attributo time-of-day 32
attributo type 32
autenticazione di base per utenti Web 13
autenticazione di utenti Web 13C
campi
anno a quattro cifre 87
attributi 32
calcolo 29, 30
contenitore 16, 27, 34
correlati in PHP 78
correlati in XML 32, 47
data 34, 37, 87
globali 30
indicatore data e ora 34, 37, 87
multipli 28, 46
nomi di campo completamente qualificati 46
non vuoti 86
numero 34
numero massimo di caratteri 86
ora 34, 37, 87
ora del giorno 87
portale 32
portali 46
riassunto 29, 30
solo numerici 86
testo 34

campi Contenitore
accesso ai dati da parte degli utenti Web 18
con dati memorizzati esternamente 16
con file di riferimento 16
download progressivo 17
pubblicazione dei contenuti di 16
sintassi URL per accedere a soluzioni XML 27
campi globali
nella definizione del campo 32
sintassi 48
campo anno a quattro cifre 87
campo Data 87
campo Indicatore data e ora 85, 87
campo non vuoto 86
campo numero massimo di caratteri 86
campo Ora 87
campo Ora del giorno 87
campo solo numerico 86
caratteri ASCII, in documenti XML 39
cartella Web, copia degli oggetti campo Contenitore 16
classe FileMaker 71
CLI, interfaccia a riga di comando 14
client URL library 65
codici di errore database 30, 97
codifica
dati PHP 69
dati XML 29, 39
URL 29codifica Latin-1 69
codifica testo
dati XML generati 29
URL 29codifica testo URL 29
codifica UTF-8 69
comandi per le query. Vedere stringhe di querycomando Add 73
comando Delete 74
comando Duplicate 73
comando Edit 74
comando Find 82
comando Find All 82
comando Find Any 82
comando query –dbnames 48
comando query –delete 49
comando query –dup 49
comando query –edit 49
comando query –find 50
comando query –findall 50
comando query –findany 50
comando query –findquery 50
comando query –layoutnames 51
comando query –new 51
comando query –scriptnames 52

Indicecomando query –view 52
Compound Find
comando 83
esempio 84
confronto tra grammatiche XML 29
connessione a un database FileMaker Pro con PHP 72
convalidaanno a quattro cifre 87
campi 88
comandi 86
data 87
indicatore data e ora 87
non vuoto 86
numero massimo di caratteri 86
ora 87ora del giorno 87
record 88
solo numerico 86
convalida da-a 87
convalida elemento della lista valori 87
convalida valore esistente 87
convalida valore univoco 87
creazione di un record
con PHP 73
con XML 51
crittografia SSL (Secure Sockets Layer) 15
cURL 65

D
database, protezione dei database pubblicati 14<datasource> element 31
determinazione del formato per richiedere dati XML 41
directory HTTP per PHP 69
directory HTTPS per PHP 69
documentazione di FileMaker Server 8
documentazione online 8
documentazione, prodotto FileMaker 8
download progressivo 17
DTD (Document Type Definition) 30, 34
duplicazione di un record 73

E
e commerciali, in PHP 72
elaborazione di un gruppo di risultati 85
elaborazione di una richiesta del Motore per la pubblicazione
Web 10elementi
codice di errore database 30
nella grammatica FMPXMLLAYOUT 36
nella grammatica FMPXMLRESULT 34
nella grammatica fmresultset 31
elementi <error code> e <ERRORCODE> 97
elemento <field-definition> 32
elemento <metadata> 32
elemento <relatedset-definition> 32
elemento <resultset> 32
eliminazione dei record del portale 47

100

eliminazione di un record 74
errore memoria esaurita 18
erroricodici di errore database 97
descrizione 97
elementi codice di errore database 30
file registro per server Web 94
gestione 90
esecuzione di richieste di ricerca 81
esempi didati generati con la grammatica FMPXMLLAYOUT 38
dati generati con la grammatica FMPXMLRESULT 35
dati generati con la grammatica fmresultset 33
esportazione di dati XML 24

F
file registro 92
accesso server Web 94
descrizione 94
Tomcat 96
web_server_module_log.txt 96
file registro accessi per server Web, descrizione 94
file registro web_server_module_log.txt 96
FileMaker API per PHP 11
informazioni di riferimento 70
installazione manuale 66
FileMaker Server Admin Console 14
FileMaker Pro, contrasti con Motore per la pubblicazione
Web 24FileMaker WebDirect 9
filtro dei record campo portale 58
fogli di stile, test 92
formatiapplicazione per una risposta XML 41
utilizzo in PHP 77
formati database disponibili 51
formato UTF-8 (Unicode Transformation a 8 bit) 29, 39

Ggestione degli errori 90
grammatica FMPXMLLAYOUT 24, 29, 36–38
grammatica FMPXMLRESULT 24, 29, 34–35
grammatica fmresultset 24, 29, 30–33
grammatiche per XML, descrizione 29
gruppo di risultati 85
gruppo fmsadmin 17Hhome page del sito PHP 69
HTTPS 15con campi Contenitore 17
directory sicura per macOS 66
protocollo nella sintassi URL 27

I
importazione di dati XML 24

Indice

impostazione Consenti scorrimento verticale 58, 86
impostazione Filtra record portale 59, 86
impostazione Numero di righe 58, 86
impostazione Riga iniziale 58
indicatore data e ora Unix 85
indirizzo IP dinamico 65
indirizzo IP statico 65
informazioni di riferimento 70
installazione di FileMaker API per PHP 66
installazione manuale del FileMaker API per PHP 66
interfaccia a riga di comando (CLI) 14
interrogazione dei campi del portale 48
istruzione di script Nuovo accesso 14
istruzioni di script
modifica password 14
nuovo accesso 14

Llimitazione dei record campo portale 59
liste valoriutilizzo in PHP 80
utilizzo in XML 36

M
metodiadd() 83
addSortRule() 81
clearSortRules() 81
commit() 73
createRecord() 73
delete() 74, 79
getContainerData() 85
getContainerDataURL() 85
getDatabase() 77
getErrors() 90
getFetchCount() 85
getField() 85
getFieldAsTimestamp() 85
getFields() 77, 85
getFoundSetCount() 85
getLayout() 77
getMessage() 90
getName() 77, 79
getRange() 81
getRecords() 85
getRelatedSet() 78
getRelatedSets() 78
getValueListsTwoFields() 80
getValueListTwoFields() 80
isError() 90
isValidationError() 89
listFields() 77
listLayouts() 77
listRelatedSets() 77, 78
listScripts() 75
listValueLists() 77, 80
newAddCommand() 73
newCompoundFindCommand() 83
newDeleteCommand() 74

101

newDuplicateCommand() 73
newEditCommand() 74
newFindAllCommand() 82
newFindAnyCommand() 82
newFindCommand() 82
newFindRequest() 83
newPerformScriptCommand() 75
newRelatedRecord() 79
numErrors() 89, 90
setLogicalOperator() 81
setPreCommandScript() 75, 81
setPreSortScript() 76, 81
setProperty() 72
setRange() 81
setRelatedSetsFilters() 86
setResultsLayout() 77
setScript() 76, 81
validate() 88
metodo add() 83
metodo addSortRule() 81
metodo clearSortRules() 81
metodo commit() 73
metodo createRecord() 73
metodo delete() 74, 79
metodo getContainerData() 85
metodo getContainerDataURL() 85
metodo getDatabase() 77
metodo getErrors() 90
metodo getFetchCount() 85
metodo getField() 85
metodo getFieldAsTimestamp() 85
metodo getFields() 77, 85
metodo getFoundSetCount() 85
metodo getLayout() 77
metodo getMessage() 90
metodo getName() 77, 79
metodo getRange() 81
metodo getRecords() 85
metodo getRelatedSet() 78
metodo getRelatedSets() 78
metodo getValueListsTwoFields() 80
metodo getValueListTwoFields() 80
metodo isError() 90
metodo isValidationError() 89
metodo listFields() 77
metodo listLayouts() 77
metodo listRelatedSets() 77, 78
metodo listScripts() 75
metodo listValueLists() 77, 80
metodo newAddCommand() 73
metodo newCompoundFindCommand() 83
metodo newDeleteCommand() 74
metodo newDuplicateCommand() 73
metodo newEditCommand() 74
metodo newFindAllCommand() 82
metodo newFindAnyCommand() 82
metodo newFindCommand() 82
metodo newFindRequest() 83

Indice

metodo newPerformScriptCommand() 75
metodo newRelatedRecord() 79
metodo numErrors() 89, 90
metodo setLogicalOperator() 81
metodo setPreCommandScript() 75, 81
metodo setPreSortScript() 76, 81
metodo setProperty() 72
metodo setRange() 81
metodo setRelatedSetsFilters() 86
metodo setResultsLayout() 77
metodo setScript() 76, 81
metodo validate() 88
modifica di un record 74
moduli HTML per richieste XML 26
monitoraggio di siti Web 94
motore per la pubblicazione Web
codici di errore generati 97
descrizione 10
elaborazione di una richiesta 10
generazione di dati XML 25
generazione di documenti XML 26
registro dell'applicazione 94
vantaggi del 21
motore per la pubblicazione Web personalizzata (CWPE) 25

N
namespace per XML 30
nome di campo completamente qualificato, sintassi di 46
nomi dei campi, completamente qualificati, sintassi 46
nomi utente
autenticazione di base per utenti Web 13
definizione per la Pubblicazione Web personalizzata 13
nuove funzioni nella Pubblicazione Web personalizzata 22

O
oggetti classe FileMaker
database 72
definizione 71
record 73
set correlato 78
oggetti comando FileMaker
add 73Compound Find 83
delete 74
duplicate 73
edit 74
find 81, 82
find All 82
find Any 82
oggetti comando Find 81
oggetto del database 72
oggetto record 73
oggetto set correlato 78
operatori di confronto per i campi 54
operatori, di confronto 54
ordinamento dei record campo portale 58
ordine di elaborazione delle richieste XML 42

102

P
panoramica
passi per accedere ai dati XML 26
Pubblicazione Web personalizzata 9
parametri per le query. Vedere stringhe di queryparametro query –db 52
parametro query –delete.related 47
parametro query –field (contenitore) 53
parametro query fieldname (non Contenitore) 53
parametro query –fieldname.op 54
parametro query –lay 41, 55
parametro query –lay.response 41, 55
parametro query –lop 56
parametro query –max 56
parametro query –modid 56
parametro query –query 57
parametro query –recid 58
parametro query –relatedsets.filter 58
parametro query –relatedsets.max 59
parametro query –script 59
parametro query –script.param 60
parametro query –script.prefind 60
parametro query –script.prefind.param 60
parametro query –script.presort 61
parametro query –script.presort.param 61
parametro query –skip 62
parametro query –sortfield 62
parametro query –sortorder 63
parola chiave fmphp per l'attivazione della pubblicazione
PHP 13parola chiave fmxml per l'attivazione della pubblicazione
XML 13, 26
parole chiave per l'attivazione di Pubblicazione Web
personalizzata 13, 26
password
autenticazione di base per utenti Web 13
definizione per la Pubblicazione Web personalizzata 13
password non necessaria per l'accesso 14
script Modifica password 14
PDF 8
PHP
attivazione in un database 13
home page del sito 69
Pubblicazione Web personalizzata, descrizione 11
versione supportata 66
plug-in 19
portaliaggiunta dei record 46
eliminazione dei record 47
formato 58
modifica dei record 47
numero di record 58
ordinamento dei record 58
riga iniziale 58
utilizzo in PHP 78

Indicepre-convalidaanno a quattro cifre 87
campi 88
comandi 86
data 87
indicatore data e ora 87
non vuoto 86
numero massimo di caratteri 86
ora 87ora del giorno 87
record 88
solo numerico 86
privilegi di accesso 14
privilegio esteso per la Pubblicazione Web personalizzata 13
proprietà hostspec per PHP 72
protezione dei database pubblicati 14
pubblicazione statica, descrizione 9
pubblicazione sul Web
codici di errore database 97
con XML 26
connessione a internet o intranet 23
oggetti campo Contenitore 16
protezione dei database 14
requisiti per 22
Pubblicazione Web personalizzata
accesso a soluzioni da parte di utenti Web 13
account Ospite 14
attivazione in un database 13
attivazione nel Motore per la pubblicazione Web 14
con PHP 11
con XML 11, 24
definizione 9
limitazione dell'accesso degli indirizzi IP nel server Web 15
nuove funzioni 22
panoramica 9
plug-in per le soluzioni di pubblicazione Web 19
privilegio esteso per 13
requisiti per 22
script 19
utilizzo degli script 18
utilizzo di un indirizzo IP statico 23

Q
query campo portale 58, 59

Rrappresentazione della data 85
recordcreazione in PHP 73
creazione in XML 51
duplicazione in PHP 73
duplicazione in XML 49
eliminazione in PHP 74
eliminazione in XML 49
modifica in PHP 74
modifica in XML 49
ricerca in PHP 81
ricerca in XML 50
salto in XML 62

103

recupero
informazioni sul formato 52
nomi degli script disponibili 52
nomi dei formati 51
registro dell'applicazione 94
requisiti per la Pubblicazione Web personalizzata
22
requisiti server 64
ricerca composta
comando query 50
parametro query 57
richieste di dati XML 26
riepilogo dei passi per accedere ai dati XML 26
risoluzione dei problemi
accesso a documenti XML 42
siti Web Pubblicazione Web personalizzata 92
ruolo del browser Web nelle richieste XML 25

S
SAT. Vedere FileMaker Server Admin Console
scriptaccount e privilegi 18
nella Pubblicazione Web personalizzata 18
suggerimenti e considerazioni 18
utilizzo in PHP 75
utilizzo nelle richieste XML 26
script disponibili 52
script Modifica password 14
Server Admin di macOS 65
server Web
file registro 94
ruolo nelle richieste XML 25
supporto tipo MIME 15
set di privilegi, assegnazione per la Pubblicazione Web
personalizzata 13
sicurezza
account e password 15
documentazione 11
limitazione dell'accesso dagli indirizzi IP 15
linee guida per la protezione dei database pubblicati 14
sintassi URL per
oggetti Contenitore in soluzioni XML 27
richieste XML 27
siti Web
creazione con Motore per la pubblicazione Web 21
monitoraggio 94
pagine di supporto 8
test 92
stringhe di query
aggiunta dei record a un portale 46
campi globali, sintassi 48
comandi e parametri 39, 43
linee guida per 44
modifica dei record nei portali 47
nome di campo completamente qualificato, sintassi 46
richiesta dati XML 39, 43
strumento Server Admin. Vedere Server Admin di macOS

IndiceT
test
output XML 93
siti Web 92
tipi MIME (Multipurpose Internet Mail Extensions) 15
Tomcat, utilizzo dei file registro 96
trigger di script 20

U
UAC. Vedere FileMaker Server Admin Console
Unicodecaratteri utilizzati nei parser XML 39
formato data restituito da FileMaker Server 69
utenti Web
accesso ai database protetti 13
requisiti per accedere alle soluzioni di Pubblicazione Web
personalizzata 23
utilizzo dei dati dei campi Contenitore 18

Vvantaggi PHP 12
verifica mediante calcolo 87
versione di PHP 65

W
Web Publishing Core, illustrazione 25

X
XML
attivazione in un database 13
codifica nel formato UTF-8 29, 39
codifica testo URL 29
DTD (Document Type Definition) 30, 31, 34
fmresultset grammar<datasource> element 31
generazione di dati XML da una richiesta 25
grammatica FMPXMLLAYOUT 36
grammatica FMPXMLRESULT 34
grammatica fmresultset 31
elemento <field-definition> 32
elemento <metadata> 32
elemento <relatedset-definition> 32
elemento <resultset> 32
grammatiche a confronto 29
namespace per 30
ordine di elaborazione delle richieste 42parser 26, 39
Pubblicazione Web personalizzata, descrizione 11
richiesta di dati 26
richiesta, determinazione del formato 41
riepilogo dei passi per accedere ai dati XML 26
risoluzione dei problemi di accesso a documenti XML 42
risposta, applicazione del formato 41
specifica XML 1.0 24
stringhe di query 39, 43
vantaggi 11

104

XML (Extensible Markup Language). Vedere XML<xsl:stylesheet> element 93<xsl:template> element 93