Sessão 27–28/09/2026 — "Do zero à Joule"
Objetivo da sessão: instalar as ferramentas SAP (btp, cf), configurar o BTP trial
e chegar a um exemplo de aplicação com IA — preferencialmente com a Joule.
Resultado: ✅ objetivo alcançado — ambiente completo + Joule habilitada + app de
exemplo (CAP+IA) publicado + 14 aulas documentadas.
---
✅ Entregas
| Entregável | Onde está |
| btp CLI, cf CLI (+multiapps), Node 24, cds-dk, mbt, git | máquina (~/.local) |
App ai-lab (CAP + UI5 + adaptador IA) publicado no CF | exemplos/ai-lab/ |
| Caderno com 14 aulas | docs/caderno_de_estudos.md |
| 131 prints organizados + 10 destaques | prints/ |
| Automação de navegador (segundo plano) | automacao/cdp.mjs + docs/automacao_cdp.md |
| SAP Build Code com Joule funcionando | dev space ws-0msl7, projeto ai-joule-lab2 |
---
🗺️ Linha do tempo (marcos)
| # | Marco | |
| 1 | Instalação do btp CLI + login SSO | — |
| 2 | Instalação do cf CLI + login (passcode SSO) | logs/04-cf-login-sso.log |
| 3 | App ai-lab (CAP+UI5+IA) publicado no Cloud Foundry | logs/01-cf-deploy-sucesso-ai-lab.log |
| 4 | Descoberta do cockpit trial (feature set A / ?region=trial) | prints/destaques/01-... |
| 5 | Execução do booster "Get Started with SAP Build Code" (2x) | prints/destaques/02-... |
| 6 | Lobby liberado (fim do Access denied) | prints/destaques/03-... |
| 7 | Desinscrição do BAS → descoberta do dev space "Interrompido" | prints/destaques/06-... |
| 8 | Dev space NOVO (BuildCode_FullStack → ws-0msl7) | prints/destaques/07-... |
| 9 | IDE + Storyboard do projeto ai-joule-lab2 | prints/destaques/08-... |
| 10 | Joule habilitada (comandos /fiori-gen-cap-ui etc.) | prints/destaques/09-... |
---
🔧 Decisões técnicas
| Decisão | Motivo |
| SQLite em produção (em vez de HANA) | Trial não tinha banco HANA no space; HDI falhou |
| Criar dev space novo em vez de consertar o "Interrompido" | O dev space antigo era do BAS (desinscrito); recriar é mais simples e limpo |
| Automação via Chrome headless + CDP com cookies copiados | Operar o navegador sem roubar foco e sem digitar senha |
| Ler o código SSO da página de passcode | Renovar sessão do cf sem intervenção humana |
| Registrar tudo em prints + caderno didático | Conhecimento reutilizável para o time |
---
🧱 Bloqueios e soluções (o ouro da sessão)
| Bloqueio | Causa raiz | Solução |
| "Access denied" no Lobby | Setup incompleto (booster não executado) | Rodar o booster; ele cria roles + service instances |
| "Nenhuma conta global associada" | Cockpit errado (feature set B) | Usar cockpit.btp.cloud.sap/cockpit/?region=trial |
| Joule "not enabled" | Dev space no plano BAS | Dev space novo no plano build-code |
cf/btp token expirado | Sessões curtas | Relogar (--sso); passcode automatizado |
| IDE não aceita input sintético | Workbench em iframes | Último passo (digitar na Joule) é humano |
---
⏭️ Próximos passos
- 1. Na Joule: gerar data model + service (prompt no README) e depois
/fiori-gen-cap-ui. - 2. Rodar/preview do app dentro do dev space.
- 3. Evoluir o
exemplos/ai-labpara o cenário corporativo (AI Core quando houver entitlement). - 4. Atualizar este arquivo/
README.mda cada nova sessão (regra emdocs/organizacao.md).