Gerenciador de transações: Layouts - Efeitos de IU
Saiba como adicionar funcionalidade a um botão programando efeitos de IU em YAML ou JSON.
No Gerenciador de transações, os efeitos de IU são elementos de layout que adicionam funcionalidades a um botão. Os usuários podem personalizar os efeitos de IU CPQ estabeleceu. No entanto, os usuários não podem criar novos efeitos de IU como fazem eventos.
Se um efeito de IU e um evento estiverem presentes no mesmo botão, o efeito de IU será executado após a execução do evento.
Exemplo: Abrir uma lista
Por exemplo, um efeito de IU pode permitir que um botão abra uma lista pesquisável de produtos que podem ser adicionados a uma transação. Veja como isso pode ser escrito no layout:
...
{
"type": "button",
"event": "productSearch",
"label": "Add Products",
"uiEffect": {
"type": "productSearch",
"target": "slideout"
},
"columnOrder": 6,
"variableName": "productSearch"
},
...
Veja como esse botão pode aparecer na IU resultante:
Efeitos de IU de programação
Um efeito de IU é definido por uma combinação de parâmetros. Todos os efeitos de IU têm um tipo e alguns podem ter um destino, local ou opções.
Cada parâmetro tem os seguintes valores possíveis:
- type: url, anchor, productSearch, lineDetail, reconfigure, addFavorite, manageFavorites, refreshSession, showTier
- target: inline, tab, window, modal, slideout, lineDrawer, fullScreen
- location: [Uma URL ou um ID de elemento]
- options: [depende do tipo]
Análise de tipos
- url Requer um local na forma de um URL. Pressionar o botão leva os usuários para a URL por meio de um destino específico (em linha, guia, janela, iframe modal ou iframe deslizante). Usando chaves, os administradores podem passar dinamicamente valores de campo para o URL. Os casos de uso comuns são passar um valor para um documento de saída ou abrir uma página de registro no Salesforce.
- anchor Requer um local como um ID de elemento no layout. Pressionar o botão focaliza ou rola para o elemento. Os elementos primários relacionados são abertos em guias ou em uma estrutura acordeão. O destino deve estar em linha.
- productSearch abre o catálogo de produtos no destino em uma janela deslizante ou modal. Um nome de variável é obrigatório. O efeito de IU deve ser adicionado ao elemento gridHeaderButtons. As opções incluem o seguinte:
- Mostrar lista de produtos: products- true(mostrar), false(ocultar)
- Mostrar lista de favoritos: favorites- true(mostrar), falso (ocultar)
- Local do posicionamento do botão: actionLocation- footer, header, ou ambos
- O padrão é footerse não for especificado
- Os botões incluem "Cancelar", "Adicionar linha", "Configurar" e "Configuração concluída"
O código a seguir mostra produtos, oculta favoritos e coloca botões somente no cabeçalho:
... "options": { "products": true, "favorites": false, "actionLocation": header }, ... - lineDetail deve estar em um botão de nível de linha. Pressionar o botão abre o layout de detalhe de linha no destino ( modal, slideout, ou lineDrawer).
- exportLines deve estar em um botão no nível do cabeçalho. Pressionar o botão exporta as linhas de transação para um arquivo CSV.
- reconfigure pode estar em um botão de nível de linha ou de cabeçalho. Se o botão estiver no nível do cabeçalho, será necessária uma seleção de linhas. . reconfigureo tipo abre configurações no destino ( modal, slideout, ou lineDrawer). reconfigureinclui a opção para definir o local dos botões. Para obter mais detalhes, consulte productSearchacima.
- addFavorites pode estar em um botão de nível de linha ou em um botão de nível de cabeçalho. Se o botão estiver no nível do cabeçalho, será necessária uma seleção de linhas. addFavoritesabre uma janela para descrever e criar um favorito a partir da seleção. Nenhuma outra propriedade é compatível.Nota:Para compartilhar favoritos, uma configuração de locatário deve estar habilitada. Para habilitar o compartilhamento de favoritos, envie um tíquete de suporte.
- manageFavoritesAbre o Gerenciador de favoritos no destino especificado ( modal, slideout, ou inline).
- refreshSession verifica se a sessão foi modificada. Em caso afirmativo, refreshSessionAtualiza o SessionID e mescla as mudanças.
- showTierAbre a grade de item de linha em tela cheia se
Tela cheiae.Items de linha. showTierfunciona com qualquer camada, mas para os fins deste recurso, o local deve ser preenchido com o nome da variável de camada dos itens de linha.
Atualmente, os JSONs de layout não são validados e algumas combinações de propriedades não são compatíveis. Combinações incompatíveis provavelmente falharão sem indicar erros.
Chamadas de evento implícitas
Alguns efeitos de IU envolvem a execução de eventos relacionados. Por exemplo, acionar o productSearchEfeito de IU ou o. reconfigureO efeito de IU executa o. upsertLinesevento.
Condições de acesso
A capacidade de um usuário acessar um efeito de IU não pode ser controlada da mesma maneira que os eventos. Não há configuração comparável às seguintes configurações de evento:
No entanto, as condições de acesso para um efeito de IU podem ser alteradas por seu contexto na transação ou por eventos relacionados.
Quando um efeito de IU tem um evento implícito associado a ele, as condições de acesso do evento determinam as condições de acesso do botão e, por sua vez, o efeito de IU. Portanto, se um administrador quiser limitar as condições sob as quais um productSearchO efeito de IU pode ser acionado, eles podem adicionar essas limitações ao upsertLinesevento.
Um botão na grade de linhas que tem reconfigureO efeito de IU está oculto em linhas que não são configuráveis. No nível do cabeçalho, ele é habilitado somente quando cada linha selecionada é configurável.
Se um evento e um efeito de IU estiverem presentes em um botão, o acesso para ambos será determinado pela interseção de suas configurações de acesso individuais. Para que o botão esteja acessível, o efeito de IU e o evento devem estar acessíveis. Se um estiver desabilitado ou oculto, o botão inteiro será desabilitado ou oculto.
Casos comuns
- Pesquisa de produto (o.
AddLinesO efeito de IU chama implicitamente o.UpsertLinesevento):- Snippet de código JSON
{ "type": "button", "variableName": "addLines", "label": "Add Lines", "uiEffect": { "type": "productSearch", "target": "slideout" } } - Snippet de código YAML
type: button variableName: addLines label: Add Lines uiEffect: type: productSearch target: slideout
- Snippet de código JSON
- Gaveta de detalhes da linha:
- Snippet de código JSON
"lineLevelButtons": [ { "icon": "settings", "label": "reconfig", "uiEffect": { "type": "lineDetail", "target": "lineDrawer" }, "variableName": "reconfig" } - Snippet de código YAML
lineLevelButtons: -icon: settings label: reconfig uiEffect: type: lineDetail target: lineDrawer variableName: reconfig
- Snippet de código JSON
- Pesquisa de produtos com favoritos habilitados:
- Snippet de código JSON
{ "type": "button", "variableName": "addLines", "label": "Add Lines", "uiEffect": { "type": "productSearch", "target": "slideout" "options": { "products": true, "favorites": true, } } } - Snippet de código YAML
type: button variableName: addLines label: Add Lines uiEffect: type: productSearch target: slideout options: products: true favorites: true
- Snippet de código JSON
- Abrir link de URL em uma nova guia:
- Snippet de código JSON
{ "columnorder": 1, "label": "Google it", "type": "event", "variableNane": "LinkToSite", "uieffect": { "type": "url", "target": "tab", "location": "https://google.com/search?q=I{txn.search}" } } - Snippet de código YAML
columnorder: 1 label: Google it type: event variableName: LinkToSite uieffect: type: url target: tab location: "https://google.com/search?q=I{txn.search}"
- Snippet de código JSON
- Sessão de atualização:
- Snippet de código JSON
{ "type": "button", "variableName": "Refresh", "label": "Refresh", "uiEffect": { "type": "refreshSession" } } - Snippet de código YAML
type: button variableName: Refresh label: Refresh uiEffect: type: refreshSession
- Snippet de código JSON
- Reconfigurar:
- Snippet de código JSON
"lineLevelButtons": [ { "icon": "settings", "label": "Reconfigure", "uiEffect": { "type": "reconfigure", "target": "modal" }, "variableName": "reconfig" } - Snippet de código YAML
lineLevelButtons: -icon: settings label: Reconfigure uiEffect: type: reconfigure target: modal variableName: reconfig
- Snippet de código JSON
- Adicionar aos favoritos:
- Snippet de código JSON
{ "label": "Add To Favorites", "uiEffect": { "type": "addFavorite" }, "variableName": "addFavorites" } - Snippet de código YAML
label: Add To Favorites uiEffect: type: addFavorite variableName: addFavorites
- Snippet de código JSON
- Gerenciar favoritos:
- Snippet de código JSON
{ "label": "Manage Favorites", "uiEffect": { "type": "manageFavorites", "target": "modal" }, "variableName": "manageFavorites" } - Snippet de código YAML
label: Manage Favorites uiEffect: type: manageFavorites target: slideout variableName: manageFavorites
- Snippet de código JSON
- Snippet YAML de linhas de exportação:
label: Export Lines uiEffect: type: exportLines variableName: exportLines