Attività comuni per script client
Il modello a oggetti dell'API client è ampio e supporta numerose funzionalità. Una volta acquisita familiarità con gli script client, si capirà che è possibile usare molti metodi e oggetti API per implementare la logica. Questa unità analizza alcune delle attività più comuni e le tecniche necessarie per portarle a termine.
Accesso ai dati della colonna Dataverse
Una colonna Dataverse è rappresentata come un oggetto attributo nel modello a oggetti. È possibile usare il metodo getAttribute() dell'oggetto formContext per individuare rapidamente uno specifico attributo o tutti gli attributi presenti nel modulo. Ogni oggetto attributo include alcuni metodi comuni disponibili indipendentemente dal tipo di dati. Sono inoltre disponibili altri metodi per tipi di dati specifici degli attributi (testo, numero, data e così via).
Nota
Il codice di esempio presuppone la disponibilità degli attributi e dei controlli usati. La maggior parte dei metodi restituisce null se gli oggetti non sono disponibili ed è consigliabile usare i normali controlli difensivi nella pratica.
Suggerimento
Le raccolte restituite dai metodi dell'API client contengono alcuni metodi utili che è possibile usare per scorrere gli elementi. Per altre informazioni, vedere Raccolte (riferimento API client) nelle app basate su modello - Power Apps.
| Attività | Esempio |
|---|---|
| Accedere per nome |
javascript var nameAttribute = formContext.getAttribute("name"); Assegna l'attributo per la colonna Nome account alla variabile nameAttribute. Se l'attributo non è presente nel modulo, il metodo getAttribute restituisce il valore null. |
| Accedere a tutti gli attributi |
javascript var allAttributes = formContext.getAttribute(); Assegna una matrice di tutti gli attributi nella raccolta formContext.data.entity.attributes alla variabile allAttributes. |
Uso degli attributi
| Attività | Esempio |
|---|---|
| Recuperare il valore di un attributo |
javascript var nameValue = formContext.getAttribute("name").getValue(); Assegna il valore della colonna Nome account alla variabile nameValue. |
| Impostare il valore di un attributo |
javascript formContext.getAttribute("name").setValue("new name"); Imposta il valore della colonna Nome account su "new name". |
| Recuperare l'oggetto opzione attualmente selezionato in un attributo OptionSet (colonna di scelta Dataverse) |
javascript var addressTypeOption = formContext.getAttribute("address1_addresstypecode").getSelectedOption(); Assegna l'opzione selezionata nella colonna Tipo di indirizzo alla variabile addressTypeOption. |
| Determinare se un valore dell'attributo è cambiato nell'interfaccia utente da quando il modulo è stato aperto |
javascript var isNameChanged = formContext.getAttribute("name").getIsDirty(); Assegna un valore booleano che indica se il valore della colonna Nome account è cambiato e assegna il valore alla variabile isNameChanged. |
| Modificare l'impostazione che specifica se, per salvare il record, sono necessari i dati in una colonna |
javascript formContext.getAttribute("creditlimit").setRequiredLevel("required"); Rende obbligatoria la colonna Limite credito.
javascript formContext.getAttribute("creditlimit").setRequiredLevel("none"); Rende facoltativa la colonna Limite credito. |
| Determinare se i dati in un attributo vengono inviati quando si salva il record |
javascript var nameSubmitMode = formContext.getAttribute("name").getSubmitMode(); Il valore della variabile nameSubmitModeè always, never o dirty per rappresentare submitMode per la colonna Account Name. |
| Controllare se i dati in un attributo vengono salvati quando si salva il record |
javascript formContext.getAttribute("name").setSubmitMode("always"); L'esempio forza il valore della colonna Account Name in modo che venga sempre salvato anche se non è cambiato. |
| Se la sicurezza a livello di colonna è stata applicata a un attributo, verificare se un utente ha i privilegi per eseguire le operazioni di creazione, lettura o aggiornamento sull'attributo. |
javascript var canUpdateNameAttribute = formContext.getAttribute("name").getUserPrivilege().canUpdate; Assegna un valore booleano alla variabile canUpdateNameAttribute che rappresenta il privilegio dell'utente di aggiornare la colonna Nome account. |
Accesso ai controlli del modulo
| Attività | Esempio |
|---|---|
| Accedere a tutti i controlli per un attributo specifico |
javascript var nameControls = formContext.getAttribute("name").controls.get(); Assegna una matrice di tutti i controlli per l'attributo name alla variabile nameControls. La maggior parte degli attributi è rappresentata da un controllo, ma possono essercene diversi se una colonna è stata aggiunta più volte al modulo. |
| Accedere a un controllo per nome |
javascript var nameControl = formContext.getControl("name"); Il primo controllo aggiunto a un modulo per una colonna ha lo stesso nome della colonna. Ognuno degli altri nomi di controllo ha un numero di indice aggiunto al nome. Ad esempio, i tre controlli per la colonna name saranno rispettivamente name, name1 e name2. |
| Accedere a tutti i controlli |
javascript var allControls = formContext.getControl(); Assegna una matrice di tutti i controlli nella raccolta formContext.ui.controls alla variabile allControls. |
Usare i controlli del modulo
Così come gli oggetti attributo, gli oggetti di controllo hanno un set comune di metodi indipendentemente dal tipo. Hanno anche dei metodi specializzati basati sul tipo di controllo.
| Attività | Esempio |
|---|---|
| Determinare se un controllo è visibile |
javascript var isNameVisible = formContext.getControl("name").getVisible(); Assegna a valore booleano alla variabile isNameVisible che specifica se la colonna Nome account è visibile. |
| Nascondere o mostrare un controllo |
javascript formContext.getControl("name").setVisible(false); Nasconde la colonna Nome account. |
| Recuperare un riferimento all'attributo per il controllo |
javascript var nameAttribute = formContext.getControl("name").getAttribute(); Assegna l'attributo per il controllo per la colonna Nome account alla variabile nameAttribute. |
| Disabilitare o abilitare tutti i controlli per un attributo |
javascript formContext.getAttribute("name").controls.forEach(function (control, index) { control.setDisabled(true); }); Tenere presente che tutti gli attributi possono avere più controlli. |
| Modificare l'etichetta per un controllo |
javascript formContext.getControl("name").setLabel("Company Name"); Imposta l'etichetta per la colonna Nome account sul testo Company Name. |
| Recuperare l'elemento padre di un controllo |
javascript var parentSection = formContext.getControl("name").getParent(); Assegna il controllo padre della colonna Nome account alla variabile parentSection. |
| Impostare lo stato attivo su un controllo |
javascript formContext.getControl("name").setFocus(); Imposta lo stato attivo dell'input corrente sulla colonna Nome account. |
Uso di schede e sezioni
Ogni modulo ha una raccolta di schede. Ogni scheda ha una raccolta di sezioni. Ogni sezione ha una raccolta di controlli. È possibile accedere a livello programmatico a questi elementi e usare i relativi metodi.
| Attività | Esempio |
|---|---|
| Mostrare o nascondere una scheda |
javascript formContext.ui.tabs.get("general").setVisible(false); Nasconde la scheda Generale. |
| Modificare l'etichetta per una scheda |
javascript formContext.ui.tabs.get("general").setLabel("Major"); Imposta l'etichetta della scheda general sul testo Major. |
| Nascondere o mostrare una sezione |
javascript formContext.getControl("industrycode").getParent().setVisible(false); Nasconde la sezione che contiene la colonna Codice settore. |
Uso dei dati dell'entità
La tabella seguente contiene i metodi da usare per ottenere informazioni sul record corrente.
| Attività | Esempio |
|---|---|
| Recuperare l'ID del record attuale |
javascript var recordId = formContext.data.entity.getId(); Assegna un identificatore univoco del record corrente alla variabile recordId. Se il modulo viene aperto per creare un nuovo record, viene restituito il valore Null. |
| Salvataggio del record corrente |
javascript formContext.data.entity.save(); Usa saveandclose oppure saveandnew per eseguire le azioni equivalenti di Salva e chiudi o Salva e nuovo. |
| Determinare se i dati nel record corrente sono stati modificati. |
javascript var isDirty = formContext.data.entity.getIsDirty(); Assegna un valore booleano alla variabile isDirty che indica se un qualsiasi valore della colonna nel modulo è stato modificato. |