Exemplo: validando os dados de coach em um serviço manual legado no Process Designer de área de trabalho
Este exemplo mostra como validar os dados de coach em um serviço manual legado usando um serviço do Sistema Geral de validação no Process Designer de área de trabalho.
O exemplo contém um coach de Aplicativo de Crédito que reúne informações para um aplicativo de cartão de crédito. Para simplificar o exemplo, o coach possui apenas um campo Nome, um campo Salário, um campo Limite de Crédito e um botão Enviar. Os campos Nome e Salário devem conter valores e o valor de Limite de Crédito máximo é o dobro do valor do campo Salário.
O exemplo usa um serviço do Sistema Geral para validar os dados de coach. Exceto para serviços Ajax e serviços manuais, é possível usar qualquer tipo de serviço e não há limitação na forma como o serviço realiza a validação. Porém, o serviço deve construir um objeto de negócios CoachValidation para conter as informações de validação que ele retorna para o coach como saída. Esta amostra usa a API addCoachValidationError para construir o objeto de negócios. Devido à simplicidade, o serviço no exemplo usa um script para validar os dados.
Para obter informações sobre como validar um coach em
um serviço manual legado no web Process Designer,
veja Exemplo: validando dados de coach em um serviço manual legado no Designer de processo da web. Para obter mais informações sobre como validar um
coach em um serviço manual do lado do cliente, veja Validando dados do coach sem sair de um coach.
- Crie o objeto de negócios CreditCardApplication com os seguintes parâmetros:
- nome(String)
- salary(Decimal)
- creditLimit(Decimal)
- Crie o serviço manual legado CreateCreditApplication.
- Inclua application(CreditCardApplication) como uma
variável privada.

- No diagrama, inclua o coach Criar Aplicativo e, em seguida, abra o coach.
- Na seção Variáveis da paleta, solte os parâmetros name, salary e creditLimit no coach. Rotule novamente o botão OK padrão para Enviar.

- No diagrama, conecte o coach de Aplicativo de Crédito aos nós de início e de encerramento.
- Selecione a conexão entre o coach Aplicativo de Crédito e o nó de extremidade. Configure Validação Disparar para Antes.
A conexão agora tem uma marca de seleção em seu início. O coach possui um ícone
para indicar que agora é possível conectar o coach ao serviço de validação. Essa mudança significa que quando o usuário clicar no botão Enviar , o primeiro fluxo vai para o serviço de validação para fazer a validação de dados.
Se os dados forem válidos, o fluxo então vai para o nó final. Se você deixar de validação no seu padrão de Nunca, a validação de dados não ocorrerá e o fluxo vai diretamente para o nó final. - Crie o serviço para validar os dados do coach:
- Na biblioteca, crie um serviço do sistema geral chamado CreditApplicationFormValidation.
- Na página Variáveis do serviço, inclua application(CreditCardApplication) como uma entrada do serviço. Importante: O nome e o tipo da entrada de serviço devem corresponder o nome e ao tipo da variável de coach que contém os dados que você deseja validar.Inclua validate(CoachValidation) como uma saída do serviço. O serviço deve ter somente uma saída e deve ser do tipo CoachValidation. A presença dessa saída indica que o serviço é um serviço de validação. Nesse caso, o exemplo utiliza a entrada para fornecer os dados que o serviço valida.

- Inclua um script do servidor para o diagrama de serviço e conectar os nós de início e de encerramento para o script.
- Na implementação do script de servidor, inclua o código a seguir
para construir o objeto de negócios CoachValidation:
O parâmetro tw.local.validate é o objeto de negócios CoachValidation que contém as informações de validação. A primeira sequência contém o caminho da variável integral para o elemento de dados com os dados problemáticos. A segunda sequência é a mensagem para o usuário. A mensagem deve identificar o que está errado com os dados ou informe ao usuário como corrigir o problema.tw.local.validate = new tw.object.CoachValidation(); if (tw.local.application.name == ""){ tw.system.addCoachValidationError(tw.local.validate, "tw.local.application.name", "O nome não pode ficar vazio."); } if ( tw.local.application.salary <= 0){ tw.system.addCoachValidationError(tw.local.validate, "tw.local.application.salary", "O salário deve ser superior a 0."); } if (tw.local.application.creditLimit > 2 * tw.local.application.salary){ tw.system.addCoachValidationError(tw.local.validate, "tw.local.application.creditLimit", "O limite de crédito não pode ter mais do que o dobro do salário. " "O limite máximo de crédito é $" 2 * tw.local.application.salary + "."); }Importante:- Um coach pode usar somente um serviço de validação ou script de servidor para validar seus dados. No entanto, mais de um coach pode usar o mesmo serviço de validação ou script.
- Se o elemento de dados que está sendo validado não ligado a uma visualização coach, há nenhum lugar para exibir um erro de validação se um ocorrer.
- Se uma visualização de coach sendo validada contiver rich text, o serviço de validação deverá remover qualquer formatação antes de validar o conteúdo.
- Inclua o serviço CreditApplicationFormValidation no diagrama de serviços manuais legados CreateCreditApplication.
- Selecione o serviço CreditApplicationFormValidation e abra as propriedades de mapeamento de dados. Para fornecer os dados para o serviço de validação, inclua o application private da variável como um mapa de entrada. Para mapear a saída do serviço de validação para o objeto de CoachValidation , inclua a variável a seguir como um mapa de saída :
tw.system.coachValidationImportante: O mapeamento de saída para a variável do sistema é obrigatório para o coach usar o serviço como um serviço de validação. O parâmetro tw.system.coachValidation é a variável do sistema que contém as informações de validação. - Conecte o nó de validação
do coach Aplicativo de Crédito para o serviço do CreditApplicationFormValidation. - Inclua um nó Permanecer na Página no diagrama.
- Conecte o serviço do CreditApplicationFormValidation para o nó Página. Em Stay Esta construção efetuará loopback do fluxo para o coach se os dados no coach não forem válidos. O sistema transmite as informações de erro de volta para o coach e os usuários veem um indicador ao lado da visualização de coach com os dados problemáticos. Se o serviço de validação fornece mensagens de erro, os usuários vêem a mensagem apropriada quando eles pairam sobre um indicador. Se os dados forem válidos, o sistema processará o evento de limite para mover para a próxima etapa.
- Salve suas mudanças e, em seguida, execute o serviço manual legado clicando no botão
. - No navegador que exibe o coach, teste a validação fazendo o seguinte:
- Deixe o campo Nome vazio e digite um valor 1 no campo Salário e no campo Limite de Crédito. Clique em Enviar. O navegador exibe uma mensagem dizendo que o campo Nome não pode ficar vazio.
- Digite um nome no campo Nome, substitua o 1 no campo Salário por 0 e clique em Enviar. O navegador exibe uma mensagem dizendo que o salário deve ser maior que 0.
- Substitua o 0 no campo Salário por 1. Substitua o 1 no campo Limite de Crédito por 3. Clique em Enviar. O navegador exibe uma mensagem dizendo que o limite de crédito não pode ser maior que o dobro do salário.
- Substitua o 3 no campo Limite de Crédito por 2. Clique em Enviar. O serviço manual agora é concluído porque todos os três valores agora são válidos.
Preste atenção no comportamento a seguir quando depurar um coach e percorrer cada atividade no fluxo conforme o serviço de coach é executado: Se a validação de dados de coach for necessária em uma etapa, o caminho de evento fronteira de validação efetuará loopback e voltará para abrir um novo coach. Como a resposta do evento fronteira de validação não pode voltar para o coach de origem durante a depuração, você não verá um erro visual durante a depuração. É possível percorrer um treinador e ver o erro de validação na página de depuração, mas o fluxo sempre retorna para um treinador novo.
- Executar para continuar.
- Executar para o próximo ponto de interrupção que estiver definido na próxima etapa em um fluxo de evento fronteira regular. Essa opção move para a próxima etapa no fluxo de evento fronteira regular.