Dúvida
Como é possível utilizar fórmula na solicitação de atendimento pelo Educacional e portal acadêmico?
Ambiente
TOTVS Educacional - Portal - Todas as versões
Solução
Nas configurações da solicitação pelo Educacional é possível amarrar uma fórmula para criação ou não de atendimento no portal quando o aluno faz um requerimento.
Para que seja possível buscar dados do aluno logado no portal e que está solicitando o requerimento, o processo deve todo ser feito através de consultas SQL.
Para que a consulta SQL busque os dados corretos do contexto do aluno, a Fórmula deve atribuir na memória do sistema os parâmetros a serem utilizados pela consulta SQL. Os campos a serem utilizados são os da chave primária da SMATRICPL(Codcoligada, IdHabilitacaoFilial, IdPerlet, Ra)
Além da fórmula utilizada como principal, amarrada as configurações do tipo de atendimento do Educacional, serão necessárias outras fórmulas cadastradas para alimentar os parâmetros da consulta SQL.
As funções abaixo põem na memória o contexto utilizado para ser usado na sentença SQL que busca os dados da Matricula no Período Letivo. do aluno, por exemplo.
/*Estou guardando na memória o código da Coligada que busquei da matrícula do aluno no período letivo*/
Atribui( 'CODCOLIGADA', BuscaCampoPL('CODCOLIGADA','I') );
/*Estou guardando na memória o código da matriz Aplicada que busquei da matrícula do aluno no período letivo*/
Atribui( 'IDHABILITACAOFILIAL', BuscaCampoPL('IDHABILITACAOFILIAL','I'));
/*Estou guardando na memória o id do período letivo que busquei da matrícula do aluno no período letivo*/
Atribui( 'IDPERLET', BuscaCampoPL('IDPERLET','I'));
/*Estou guardando na memória o registro acadêmico que busquei da matrícula do aluno no período letivo*/
Atribui( 'RA', BuscaCampoPL('RA','S'));
Esse procedimento fará com que o sistema grave na memória do sistema os campos chaves da SMATRICPL.
Crie mais 4 fórmulas com o seguinte conteúdo:
FORMULA1
MEMORIA ('CODCOLIGADA')
FORMULA2
MEMORIA ('IDHABILITACAOFILIAL')
FORMULA3
MEMORIA ('IDPERLET')
FORMULA4
MEMORIA ('RA')
Essas fórmulas buscarão da memória os dados gravados pela função ATRIBUI.
Após realizar esse processo, na fórmula, executa-se a consulta SQL para fazer as validações desejadas:
EXECSQL ( 'CONSULTASQL' )
A consulta SQL em questão deve pedir os parâmetros da SMATRICPL e esses parâmetros devem ser alimentados com as fórmulas (FORMULA1, FORMULA2, FORMULA3 e FORMULA4). São essas fórmulas que retornam os dados da memória que alimentam os parâmetros da consulta sql.
Exemplo:
WHERE SMATRICPL.CODCOLIGADA = :FRM_FORMULA1
AND SMATRICPL.IDHABILITACAOFILIAL = :FRM_FORMULA2
AND SMATRICPL.IDPERLET = :FRM_FORMULA3
AND SMATRICPL.RA = :FRM_FORMULA4
Dessa forma será possível fazer com que os dados desejados sejam utilizados na fórmula.
Fazendo a inserção da fórmula aos parâmetros de solicitações do Educacional. Com essa fórmula o sistema fará a análise desejada. Quando a Atribuição é feita com as chaves primárias da SMATRICPL(CODCOLIGADA, RA, IDHABILITACAOFILIAL, IDPERLET), pelo portal os parâmetros também serão automaticamente informados na Consulta SQL, conforme passado. Para funcionar, a fórmula deve ser amarrada a configuração do atendimento no Educacional.
A fórmula em questão deve possui como primeiras cláusulas as atribuições à Memória.
Atribui( 'CODCOLIGADA', BuscaCampoPL('CODCOLIGADA','I') );
Atribui( 'IDHABILITACAOFILIAL', BuscaCampoPL('IDHABILITACAOFILIAL','I'));
Atribui( 'IDPERLET', BuscaCampoPL('IDPERLET','I'));
Atribui( 'RA', BuscaCampoPL('RA','S'));
Abaixo dessas cláusulas faça todas as validações desejadas e execução das SQLs.
Como não tenho como passar ou recuperar qual é o tipo de atendimento selecionado pelo aluno, tenho que validar de forma fixa cada código de atendimento. Assim devo ter uma Consulta SQL e uma fórmula específica para cada Solicitação.
- Tipo de Atendimento Código 1
Fórmula Código 1
Consulta Código 1
- Tipo de Atendimento Código 2
Fórmula Código 2
Consulta Código 2
As validações são feitas conforme o retorno da fórmula.
IMPORTANTE: Não há como retornar os dados do Atendimento que está sendo solicitado em questão. É necessário que eu tenha uma Fórmula para cada Tipo de Atendimento do Educacional e uma consulta SQL para cada Tipo de Atendimento do Educacional.
Cada Fórmula e Cada consulta SQL fará verificação do Tipo de atendimento Fixo para validação.
Exemplo: Se estou solicitando atendimento para o Tipo de Atendimento 1, minha consulta SQL e formula deve validar fixamente o código de atendimento 1. Não posso usar a mesma consulta e fórmula para dois Tipos de Atendimentos diferentes.
0 Comentários