Criar uma ação personalizada
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Definir a funcionalidade e a localização de uma ação personalizada.
- Criar uma classe do Apex usando código de exemplo.
- Definir permissões para a classe do Apex.
- Adicionar uma ação personalizada ao Dispatcher Console.
Exibir ações personalizadas onde os usuários precisam delas
Jacinta vai até Maria com outro pedido. Às vezes, os trabalhadores móveis entram em contato com ela para dizer que estão doentes ou que um compromisso está passando da hora. Essas mudanças de horário comprometem seus compromissos seguintes e criam o risco de não serem concluídos hoje. Jacinta quer definir o status desses compromissos como Em risco direto no Gantt. Maria pode ajudar?
Pode apostar que sim. Maria pode criar uma ação personalizada e adicioná-la ao Gantt da Jacinta para definir o status do compromisso. As ações personalizadas podem chamar uma classe do Apex ou abrir uma página do Visualforce. Elas podem ser executadas em registros em várias áreas do Dispatcher Console. Maria decide que isso é feito da melhor forma usando uma classe do Apex.
Maria pergunta a Jacinta onde ela gostaria de ver a ação personalizada. Maria lista os lugares onde um administrador pode adicionar ações personalizadas ao Dispatcher Console.
- A lista de compromissos de serviço com compromissos individuais ou múltiplos
- O Gantt com compromissos individuais ou múltiplos
- O Gantt com trabalhadores móveis individuais ou ausências de recursos
- Polígonos no mapa (a ação é executada nos compromissos dentro de um polígono)
Jacinta pede que Maria adicione a ação personalizada aos compromissos individuais de serviço no Gantt. Maria já pode passar para as próximas etapas.
- Escrever a classe do Apex.
- Atribuir permissões à classe.
- Adicionar a ação personalizada ao Dispatcher Console.
Escrever uma classe do Apex
Maria verifica se o código do pedido de Jacinta já existe. Ela fica feliz em encontrar uma amostra de código de classe do Apex que faz exatamente o que ela precisa no Guia de Desenvolvedores do Field Service. Ela usa a classe toggleServiceAppointmentJeopardy fornecida lá para fazer o trabalho.
- Clique em e selecione Developer Console.
- No menu File (Arquivo), selecione New (Novo) | Apex Class (Classe do Apex).
- Como nome da classe, insira
toggleServiceAppointmentJeopardy
e clique em OK. - Selecione todo o código no Developer Console e exclua-o.
- Insira o novo código. Maria cola a amostra de código.
global class toggleServiceAppointmentJeopardy implements FSL.CustomGanttServiceAppointmentAction { global String action(List<Id> serviceAppointmentsIds, Datetime ganttStartDate, Datetime ganttEndDate, Map<String, Object> additionalParameters) { List<ServiceAppointment> saList = [SELECT FSL__InJeopardy__c, AppointmentNumber FROM ServiceAppointment WHERE Id in: serviceAppointmentsIds]; String reply = ''; List<String> saNames = new List<String>(); for (ServiceAppointment s : saList) { s.FSL__InJeopardy__c = !s.FSL__InJeopardy__c; saNames.add(s.AppointmentNumber); } upsert saList; reply = String.join(saNames, ', '); return 'Service Appointments successfully processed: ' + Reply; } }
- Selecione File (Arquivo) | Save (Salvar).
A nova classe de Maria está salva na lista de classes do Apex.
Atribuir permissões
Embora Maria tenha criado a classe, ela não pode adicioná-la ao Dispatcher Console até definir as permissões adequadas.
Primeiro, ela estabelece permissões personalizadas para sua nova ação personalizada do Gantt.
- Clique em e selecione Setup (Configuração).
- Na caixa Quick Find (Busca rápida), insira
permissão
. - Selecione Custom Permissions (Permissões personalizadas).
- Clique em Novo.
- Insira o rótulo, o nome e a descrição. Maria insere o que segue.
- Label (Rótulo):
opção Serviço em risco
- Name (Nome):
opção_Serviço_em risco
- Descrição:
Grant permission to view and use the toggleServiceJeopardy class on the Gantt.
(Conceder permissão para visualizar e usar a classe toggleServiceJeopardy no Gantt.)
- Label (Rótulo):
- Clique em Salvar.
Em seguida, ela cria um conjunto de permissões personalizadas para seus dispatchers de lead e adiciona sua permissão recém-criada.
- Clique em e selecione Setup (Configuração).
- Na caixa Quick Find (Busca rápida), digite
permissão
e clique em Permission Sets (Conjuntos de permissões). - Clique em Novo.
- Em Label (Rótulo), digite
Dispatcher de Lead
e clique em Save (Salvar). - Nessa guia, role para baixo e clique em Custom Permissions (Permissões personalizadas).
- Clique em Edit (Editar).
- Selecione opção Serviço em risco e clique em Add (Adicionar).
- Clique em Salvar.
- Clique em Gerenciar atribuições.
- Clique em Adicionar atribuições.
- Marque a caixa ao lado de seu nome e clique em Atribuir.
Maria tem as permissões corretas para adicionar a ação ao Dispatcher Console. Falta só um passo para ela concluir.
Adicionar a ação ao Dispatcher Console
Maria está pronta para adicionar essa nova ação ao Dispatcher Console para que Jacinta possa vê-la.
- No Iniciador de aplicativos , abra Administrador do Field Service.
- Clique na guia Field Service Settings (Configurações do Field Service).
- Abra a Dispatcher Console UI (Interface do usuário do Dispatcher Console) e clique em Custom Actions (Ações personalizadas).
- Na coluna à esquerda, selecione uma categoria de ação para definir o local e o escopo da ação. Maria seleciona Gantt.
- Clique em New Action (Nova ação) e insira os detalhes. Maria insere o que segue.
- Label in Dispatcher Console (Rótulo no Dispatcher Console):
Change Jeopardy Status
(Alterar para status Em risco) - Action Type (Tipo de ação): Apex Class (Classe do Apex)
- Apex Class (Classe do Apex): toggleServiceAppointmentJeoparty
- Required Custom Permission (Permissão personalizada necessária): opção Serviço em risco
- Icon (Ícone): selecione um ícone para exibir ao lado do rótulo da ação.
- Label in Dispatcher Console (Rótulo no Dispatcher Console):
- Clique em Salvar.
Maria diz a Jacinta que sua nova ação está pronta para uso. Quando Jacinta clica com o botão direito do mouse em um compromisso de serviço existente no Gantt, ela vê uma opção para alterar o status de risco. Para selecionar vários compromissos de serviço, ela mantém a tecla Ctrl pressionada e os seleciona.
Maria acrescentou uma ação ao Gantt. Ela definiu a ação, decidiu onde colocá-la, encontrou uma amostra de código que fazia o que precisava e definiu as permissões. Em seguida, ela adicionou-a à configuração da interface do usuário do Dispatcher Console. Agora Jacinta pode mudar os status de risco de compromissos de serviço conforme a necessidade.
Maria e Jacinta personalizaram o Dispatcher Console para atender às necessidades da equipe. Lembra quando pedimos para você pensar em maneiras de personalizar seu próprio Dispatcher Console? Aposto que agora você tem ótimas ideias.