Creare applicazioni personalizzate per Workfront con Adobe App Builder
Le estensioni dell’interfaccia utente di Workfront, basate su Adobe App Builder, consentono a clienti e partner di creare esperienze utente personalizzate. Questi strumenti migliorano l’efficienza, forniscono esperienze integrate e connesse, migliorano in modo significativo la soddisfazione degli utenti e aiutano le aziende a realizzare la loro visione unica.
Ad esempio, senza le estensioni dell’interfaccia utente di Workfront, un project manager potrebbe dover passare da Workfront a un sistema di tracciamento del tempo separato per registrare le ore. Con le estensioni dell’interfaccia utente, il tracciamento del tempo può essere integrato direttamente nell’esperienza Workfront, semplificando il flusso di lavoro e risparmiando tempo. Inoltre, puoi aggiungere componenti personalizzati per migliorare l’usabilità, automatizzare attività ripetitive e migliorare la gestione dei contenuti con funzioni quali l’assegnazione di tag dei metadati e le anteprime dei contenuti. Adobe App Builder offre anche scalabilità e gestione affidabile delle identità (IMS), garantendo una personalizzazione sicura ed efficiente su qualsiasi scala.
Le estensioni dell’interfaccia utente di Workfront offrono diversi vantaggi chiave:
- Personalizzazione precisa: le interfacce software standard spesso non soddisfano tutti i requisiti aziendali. Le estensioni dell’interfaccia utente consentono agli sviluppatori di modificare ed estendere l’interfaccia utente predefinita per soddisfare esigenze aziendali specifiche.
- Integrazione del sistema: le estensioni dell’interfaccia utente facilitano l’integrazione di altri sistemi, garantendo flussi di lavoro fluidi e la coerenza dei dati.
- Scalabilità: con la crescita delle aziende, è possibile sviluppare estensioni dell’interfaccia utente per aggiungere nuove funzionalità senza la necessità di una revisione completa del sistema.
- Riduzione dei tempi di sviluppo: i punti di estensione e gli strumenti predefiniti riducono notevolmente il tempo e l’impegno necessari per implementare funzioni personalizzate.
- Migliore adozione da parte dell'utente: un'esperienza utente ottimizzata può favorire in modo significativo l'adozione di software. Gli elementi personalizzati dell’interfaccia utente progettati per corrispondere alle preferenze dell’utente possono migliorare i tassi di adozione e la soddisfazione complessiva.
- Sfruttando le estensioni dell’interfaccia utente di Workfront, le aziende possono creare esperienze utente personalizzate che aumentano l’efficienza, l’integrazione e la soddisfazione degli utenti.
Dopo aver creato un’applicazione in Adobe App Builder, un amministratore di Workfront può aggiungerla al menu principale e al pannello di navigazione a sinistra di Workfront utilizzando i modelli di layout. L’utente con il modello di layout che fa clic sull’applicazione visualizza quest’ultima incorporata in Workfront, invece di aprirla separatamente.
Questo articolo descrive come accedere ad App Builder e utilizzare un modello per creare un’applicazione.
Per informazioni sull'aggiunta di un'applicazione personalizzata ai modelli di layout, vedere Personalizzare il menu principale utilizzando un modello di layout e Personalizzare il pannello sinistro utilizzando un modello di layout.
Prerequisiti
Devi avere i seguenti:
- Un account Workfront abilitato per IMS
- Una macchina di sviluppo con nodi v18 e npm
- Licenza App Builder
Accedere ad Adobe App Builder
Per creare le estensioni dell’interfaccia utente, devi avere accesso ad Adobe App Builder in Adobe Developer Console.
Ulteriori istruzioni sono disponibili nel sito Adobe Developer.
Aggiungere sviluppatori a Adobe Admin Console
-
Passa a Produzione: https://adminconsole.adobe.com/
-
Nella sezione Utenti, fai clic su Sviluppatori > Aggiungi sviluppatori.
note note NOTE Se non trovi un’opzione per la gestione degli sviluppatori, non disponi di un prodotto che consenta l’accesso agli sviluppatori. -
Aggiungi l’e-mail dell’utente. Deve eseguire ricerche negli utenti esistenti che sono già stati aggiunti dall’interno di Admin Console.
-
Aggiungi i prodotti necessari al profilo sviluppatore e fai clic su Salva.
Accedere ad App Builder
Per acquistare App Builder, le organizzazioni devono collaborare con i rispettivi account manager.
Se AppBuilder è configurato correttamente, come parte della creazione di un nuovo progetto dovresti vedere Crea progetto da modello.
Creare un nuovo progetto in Adobe Developer Console
Per creare l’estensione dell’interfaccia utente, devi utilizzare Adobe Developer Console.
Ulteriori istruzioni sono disponibili nel sito Adobe Developer.
-
Accedi a Adobe Developer Console con il tuo Adobe ID.
-
Scegli il tuo account e il tuo profilo o organizzazione.
-
Fare clic su Crea progetto da modello nell'area Guida rapida oppure fare clic su Crea nuovo progetto > Progetto da modello.
note important IMPORTANT Se non trovi l’opzione per creare un progetto da un modello, significa che sei configurato in modo errato in Admin Console e non hai accesso al catalogo App Builder. Questa opzione è visibile solo quando si ha accesso ad AppBuilder.
-
Seleziona App Builder.
-
Immetti un Titolo progetto e un Nome app. Entrambi hanno valori predefiniti, ma è più facile identificare il progetto desiderato in un secondo momento se si personalizza il valore.
-
Lascia selezionata Includi runtime.
-
Fai clic su Salva.
Utilizzare Adobe Developer (aio) CLI
Adobe fornisce una CLI open source che puoi utilizzare per creare l’applicazione App Builder.
Ulteriori istruzioni sono disponibili su GitHub e sul sito Adobe Developer:
- https://github.com/adobe/aio-cli
- https://developer.adobe.com/app-builder/docs/getting_started/first_app/
-
Per installare lo strumento (verificare di essere al primo posto sul nodo v18) eseguire:
npm install -g @adobe/aio-cli. -
Avviare il terminale e accedere all'AIO con il comando:
aio login. In caso di problemi di accesso all’organizzazione IMS corretta, provaaio login -fper forzare un prompt di accesso. Utilizzaaio whereper vedere quale organizzazione hai effettuato l’accesso all’organizzazione IMS corretta. per ulteriori dettagli, utilizzareaio config. -
Inizia a configurare l'app eseguendo:
aio app init example-appassicurati di sostituire "example-app" con il nome della tua app. Se non si è sicuri dei nomi di app, è possibile visualizzare un elenco di nomi di app con il comandoaio console project list. -
Seleziona l’organizzazione e il progetto dalle opzioni fornite.
-
Sfoglia tutti i modelli disponibili e scegli @adobe/workfront-ui-ext-tpl per il tuo progetto.
-
Seleziona e immetti il nome del progetto creato in Adobe Developer Console.
-
Rispondere alle richieste dell'applicazione:
- Denomina l'estensione.
- Fornisci un riepilogo descrittivo delle funzionalità dell'estensione.
- Seleziona un numero di versione iniziale con cui iniziare.
- Il modello crea il codice per un pulsante di navigazione principale se si seleziona "Aggiungi un pulsante personalizzato alla voce del menu principale" quando viene richiesto "Come procedere?".
-
Conferma il completamento selezionando Ho finito. È in corso la generazione del codice dal modello.
-
Attendi che venga visualizzato un messaggio indicante che l’inizializzazione dell’app è terminata. È quindi possibile aprire il progetto in un IDE (si consiglia Visual Studio Code) e accedere alla cartella src.
Per ulteriori informazioni sulle cartelle e i file del progetto, visitare il sito per sviluppatori Adobe.
Per ulteriori informazioni sulle cartelle e sui file del progetto, visitare il sito Adobe Developer.
Creare le estensioni in VSCode
La configurazione del file App.js è necessaria per abilitare la navigazione tramite il menu principale di Workfront o la navigazione secondaria (pannello a sinistra).
Per visualizzare le estensioni nei modelli di layout di Workfront è necessaria la configurazione del file ExtensionRegistration.js.
Gli esempi seguenti mostrano come aggiungere applicazioni personalizzate al menu principale di Workfront e al pannello sinistro di un oggetto, utilizzando le estensioni dell’interfaccia utente.
Configurare ExtensionRegistration.js
Per consentire applicazioni personalizzate nel menu principale di Workfront:
-
Vai a ExtensionRegistration.js.
Nella funzione ExtensionRegistration dovrebbe essere visualizzato il seguente codice. Questo codice è stato creato automaticamente dal modello. Questo codice può essere aggiunto per creare altre voci di menu. Assicurati di sostituire ID e URL.
code language-none mainMenu: { getItems() { return [ { id: 'main-menu-label', url: '/index.html#/main-menu-label', label: 'Main menu label', icon: icon1, }, ]; }, } -
Aggiungi il seguente frammento di codice:
Questo esempio mostra una voce del menu principale. È necessario aggiornare ID, etichetta, icona e URL ai nomi corretti per l'applicazione. Quando aggiungi più elementi, accertati che l’ID sia univoco.
-
Salvare i dati.
Consenti applicazioni personalizzate nel pannello di navigazione a sinistra di Workfront
Per consentire l’utilizzo di applicazioni personalizzate nel pannello di navigazione a sinistra di Workfront:
-
Vai a ExtensionRegistration.js.
-
Nella funzione ExtensionRegistration, aggiungi il seguente snippet di codice:
code language-none secondaryNav: { TASK: { getItems() { return [ { id: "TASK", label: "My TASK", icon: metricsIcon, url: "/myTask", }, ]; }, }, },
- Questo esempio mostra un elemento del pannello di navigazione sinistro denominato My Task. È necessario aggiornare ID, etichetta, icona e URL ai nomi corretti per l'applicazione.
- In questo esempio viene visualizzato un elemento del pannello di navigazione sinistro per il tipo di oggetto Project. È necessario creare questi elementi separatamente per ogni oggetto in cui sono supportati in Workfront. Sono disponibili i seguenti oggetti: progetto, attività, problema, portfolio e programma.
-
Salvare i dati.
Incorporare un’app utilizzando un modulo personalizzato Workfront
Il punto di estensione dei widget per moduli è una funzionalità di estensione dell’interfaccia utente di Adobe Workfront che consente di creare widget personalizzati da incorporare nei moduli personalizzati di Workfront. A differenza di altri punti di estensione che aggiungono elementi di navigazione o opzioni di menu, i widget consentono di visualizzare contenuto personalizzato in pannelli dedicati all’interno di campi modulo personalizzati.
I widget sono componenti dell’interfaccia utente modulari che possono essere aggiunti ai moduli personalizzati di Workfront come campi modulo. Offrono un modo per far emergere funzionalità personalizzate, visualizzazioni di dati o contenuti esterni direttamente all’interno delle interfacce dei moduli personalizzati, consentendo agli utenti di interagire con la logica personalizzata durante la compilazione dei moduli.
Configurare un'estensione widget
Analogamente ai punti di estensione dell'interfaccia utente per il menu principale e la navigazione secondaria, il punto di estensione "widget" è configurato all'interno dell'oggetto metodi del componente ExtensionRegistration in genere nel campo ExtensionRegistration.js. Ciò significa che l'utilizzo del widget moduli richiede solo l'aggiunta di un elemento "widget" in extesionregistration con un percorso valido nell'app.js:
javascript
Apply to ExtensionReg...
widgets: {
getItems() {
return [
{
id: "test2",
url: "/index.html#/widgets1",
label: "Test Widget with dimensions",
dimensions: {
height: 450,
width: 300,
maxHeight: 600,
maxWidth: 400,
},
},
{
id: "test",
url: "/index.html#/widgets1",
label: "Test Widget without dimensions",
},
];
},
},
Proprietà configurazione widget
Proprietà obbligatorie
-
id (stringa): identificatore univoco del widget. Deve essere univoco su tutti i widget nell'estensione.
-
url (stringa): percorso URL del contenuto del widget. Questo dovrebbe puntare a una route nell'estensione che esegue il rendering del componente widget.
-
etichetta (stringa): nome visualizzato per il widget visualizzato nell'interfaccia di selezione dei campi modulo personalizzato.
Proprietà facoltative
-
dimension (object): specifica le dimensioni di visualizzazione del widget. Tutte le proprietà sono facoltative e queste sono le uniche dimensioni possibili:
-
altezza (numero): altezza del widget in pixel
-
larghezza (numero): larghezza del widget in pixel
-
maxHeight (number): altezza massima del widget in pixel
-
maxWidth (number): larghezza massima del widget in pixel
Proprietà Dimension
L'oggetto dimensioni consente di controllare le dimensioni e i vincoli di layout del widget:
-
height and width: imposta la dimensione iniziale/preferita del widget
-
maxHeight e maxWidth: imposta i limiti superiori per evitare che il widget diventi troppo grande
-
Comportamento reattivo: i widget possono essere reattivi entro questi vincoli
-
Integrazione modulo: le dimensioni consentono di garantire che il widget sia adatto ai layout dei campi modulo
Esempio di configurazioni Dimension
// Fixed size widget
dimensions: {
height: 300,
width: 250,
}
// Flexible height with width constraint
dimensions: {
width: 300,
maxHeight: 500,
}
// Height constraint only
dimensions: {
height: 400,
maxWidth: 350,
}
// No dimensions - uses default sizing
{}
Dati contestuali
I widget hanno accesso allo stesso contesto condiviso di altri punti di estensione, tra cui:
-
auth: informazioni di autenticazione incluso il token IMS
-
objCode: codice del tipo di oggetto (TASK, PROJECT, ISSUE, ecc.)
-
objID: Identificatore oggetto
-
hostname: nome host dell’istanza Workfront
-
protocollo: protocollo di connessione
-
utente: informazioni sull'utente corrente
-
isLoginAs: indica se l'utente ha eseguito l'accesso come altro utente
-
isInBulkEditing: se il modulo è attualmente in modalità di modifica in blocco. In tal caso, il contesto include più valori per ID oggetto.
Aggiungere un widget a un modulo personalizzato di Workfront
Un’app può essere incorporata in un modulo personalizzato Workfront utilizzando il tipo di campo "Estensioni dell’interfaccia utente". Dopo aver aggiunto il campo, seleziona un widget moduli, l'elenco dei widget si basa sulle app attive nell'organizzazione IMS o nell'applicazione attiva a livello locale quando extensionoverride=TRUE.
Configurare App.js
-
Passa a App.js.
-
Nel modello viene visualizzata un'opzione del menu principale. Una route definisce la mappatura tra i percorsi URL e i componenti sottoposti a rendering per tali percorsi. Per aggiungere una route, utilizza il seguente frammento di codice, assicurati di sostituire il percorso e l'elemento esatti con il tuo.
code language-none <Route exact path="custom-application" element={<Customapplication />} />
-
Salvare i dati.
Per ulteriori informazioni sullo sviluppo e l'esecuzione dell'applicazione, visitare il sito per sviluppatori Adobe.
Contesto condiviso
Il contesto condiviso viene utilizzato per condividere i dati da Workfront a un’estensione dell’interfaccia utente. I dati disponibili nel contesto condiviso includono i dati utente e il contesto dell'applicazione.
Utente
Le estensioni dell’interfaccia utente di Workfront condividono i dati degli utenti. L’oggetto utente disponibile tramite il contesto condiviso include un ID utente Workfront e l’indirizzo e-mail dell’utente.
user = (conn?.sharedContext?.get("user")); // {ID: '1', email: 'test@aaa.com'} userID = user.ID userEmail = user.email
Contesto dell’applicazione
Quando si aggiunge un’applicazione personalizzata utilizzando un punto di estensione Navigazione secondaria, in genere l’applicazione personalizzata utilizza dati contestuali come un ID progetto o un ID documento. Per questi dati, il contesto condiviso include un codice oggetto e un ID oggetto.
Esempio per ottenere il contesto dell'applicazione per i documenti:
context = conn?.sharedContext; // Using the connection created above, grab the document details from the host tunnel. // conn?.host?.document?.getDocumentDetails().then(setDocDetails);
Testare l’app in Workfront
Durante lo sviluppo dell’applicazione App Builder per Workfront, potrebbe essere necessario testare l’app all’interno di Workfront senza pubblicarla.
Nell'app App Builder puoi avviare aio app run per lo sviluppo locale. Questo fornisce un URL, in genere qualcosa come https://localhost:9080. In alternativa, è possibile eseguire aio app deploy per ottenere un dominio Adobe statico. Assicurati di prendere nota di questi URL per utilizzi futuri.
Quindi, passa alla pagina specifica su cui desideri sviluppare nel browser. Apri gli strumenti per sviluppatori e accedi all’archiviazione locale per workfront.com o workfront.adobe.com. In questo caso, devi aggiungere una voce. Utilizza extensionOverride come chiave e l'URL App Builder indicato in precedenza come valore.
Se la configurazione è stata completata correttamente, quando ricarichi la pagina del modello di layout in Workfront, verranno visualizzati i pulsanti dell’applicazione App Builder. Aggiungi i pulsanti dell’app al menu principale e al pannello sinistro per un oggetto e verifica che vengano visualizzati correttamente in tali aree.
Istruzioni aggiuntive sono disponibili sul sito Adobe Developer, utilizzando un esempio da AEM: https://developer.adobe.com/uix/docs/guides/preview-extension-locally/
Disattiva il flag per consentire i test locali su Chrome versione 142 e successive
In Chrome versione 142 sono state introdotte le limitazioni di accesso alla rete locale. Queste restrizioni possono interferire con gli ambienti di test locali.
Per risolvere il problema, è necessario disabilitare il controllo dell'accesso alla rete locale disattivando il flag corrispondente nelle impostazioni di Chrome: chrome://flags/#local-network-access-check.
Per disattivare il flag
- Aprire Chrome e digitare
chrome://flagsnella barra degli indirizzi, quindi premere Invio. - Nella barra di ricerca nella parte superiore, digitare Controlli dell'accesso alla rete locale.
- Fai clic sul menu a discesa accanto al flag Local Network Access Checks e seleziona Disabled (Disattivato).
- Fare clic sul pulsante Riavvia visualizzato nella parte inferiore della schermata per applicare le modifiche.
Pubblicare le applicazioni e approvare l’invio
Per pubblicare l'applicazione e approvarla, seguire le istruzioni del sito Adobe Developer.