Sessão 29/09/2026 (2) — 🎉 A Joule gerou a UI Fiori!
Objetivo: executar o exercício completo no SAP Build Code: modelar dados → expor serviço → gerar UI com a Joule.
Resultado: ✅ MISSÃO CUMPRIDA! A Joule gerou o app SAP Fiori Elements (List Report + Object Page).
---
🏆 O que foi feito (passo a passo real)
| # | Passo | Como |
| 1 | Dev space atualizado | O dev space tinha parado por inatividade — reaberto pelo lobby |
| 2 | Modelo de dados | Criado db/schema.cds via terminal da IDE: namespace ai.joule.lab + entidade PurchaseOrder |
| 3 | Serviço | Criado srv/service.cds: PurchaseService expõe PurchaseOrders |
| 4 | Storyboard | Atualizou automaticamente ao detectar os arquivos CDS ✅ |
| 5 | Joule | Ctrl+Shift+P → Joule: Focus on Joule View |
| 6 | Comando | /fiori-gen-cap-ui Generate a SAP Fiori Elements list report for PurchaseOrders with all fields |
| 7 | Resultado | App gerado em app/purchaseorders/webapp/ + Page Map (List Report → Object Page) |
Prints: prints/07_joule_ui/ (5) + destaques 11 e 12.
---
🧠 Aprendizados desta sessão (importantes!)
- 1. O comando da Joule aceita (e exige) uma descrição:
/fiori-gen-cap-ui + o que você quer (ex.: "Generate a ... list report for PurchaseOrders").
Só o comando, sem descrição → "Type a prompt to get started".
- 2. O Storyboard lê o modelo dos arquivos CDS — não é preciso clicar; basta salvar
db/schema.cds + srv/service.cds que ele se atualiza.
- 3. Automação da IDE (o que funcionou):
- xdotool funciona na IDE — o segredo é usar as coordenadas da tela inteira
(a barra do Chrome ocupa ~104 px no topo) e garantir o foco na janela do Chrome.
- Minimizar o OpenCode/VS Code antes de automatizar (eles roubam o foco).
- O terminal da IDE é a forma mais confiável de criar/verificar arquivos.
- 4.
Ctrl+Sno OpenCode suspende a saída (controle de fluxo XON/XOFF do terminal);
Ctrl+Q retoma. (Boa dica para não se assustar.)
---
📂 Arquivos gerados pela Joule (no dev space)
/home/user/projects/ai-joule-lab2/
├── db/schema.cds (namespace ai.joule.lab + entity PurchaseOrder)
├── srv/service.cds (service PurchaseService + PurchaseOrders)
├── app/purchaseorders/ (app Fiori Elements gerado pela Joule)
│ └── webapp/
│ ├── i18n/i18n.properties
│ ├── test/integration/PurchaseOrdersListJourney.gen.js
│ └── test/integration/PurchaseOrdersObjectPageJourney.gen.js
├── .vscode/ (extensions, launch, settings, tasks)
├── package.json / package-lock.json
├── readme.md
└── xs-security.json
---
⏭️ Próximos passos
- 1. Rodar/preview o app gerado (botão Run /
cds watchno terminal da IDE). - 2. Refinar a UI no Page Map (títulos, colunas, ações) — e pedir ajuda à Joule de novo.
- 3. Comparar o resultado com o
exemplos/ai-lab(mesmo stack CAP + Fiori).