Este tópico lista as características do WebService Json de gravação das notas de alunos em uma determinada avaliação.
Este método deverá ser chamado para gravar as notas de alunos para uma determinada avaliação.
Em caso de algum erro ocorrer, no retorno (detalhe) é enviada uma lista com os alunos inconsistentes. Em alguns casos, não é necessário interromper o processo de gravação de notas, retornando os alunos inconsistentes somente para notificação, porém, deve-se analisar a tabela de retornos pra verificar se as notas foram gravadas ou não.
Nome do método: gravaNotaAvaliacaoParcialParaListaDeAlunos
Parâmetros para chamada do WebService
Parâmetros | Descrição | Obrigatório | Tipo | Observação |
---|---|---|---|---|
Parâmetro 1 → ctx | Sim | Objeto Json | Objeto Json que contém as informações necessárias para autenticação no MentorWeb via integração. | |
usuario | Usuário para autenticação no MentorWeb. | Sim | Inteiro | Usuário da aplicação do MentorWeb criado para realização da integração. |
unidade | Unidade do MentorWeb | Não | Inteiro | Unidade do MentorWeb na qual estará logado |
modulo | Módulo do MentorWeb | Não | Inteiro | Módulo do MentorWeb na qual estará logado |
Parâmetro 2 → avaliacaoParcialDTO | Sim | Objeto Json | Objeto Json que contém as informações necessárias para a gravação das notas | |
idAvaliacao | Identificador da avaliação parcial | Não ¹ | Inteiro | Informar o identificador da avaliação no MentorWeb. Se for informado codigoIntegracaoAvaliacao passar valor null. |
codigoIntegracaoAvaliacao | Código de integração da avaliação | Não ¹ | String | Informar o código de integração da avaliação (caso o MentorWeb tenha conhecimento deste código). |
—————————————— Detalhes —————————————— | ||||
Parâmetro 2.1 → Detalhe: Lista de alunos com a respectiva nota (listAlunoNota) | Deverá mandar uma lista com os alunos e suas respectivas notas. | Sim | Deverá mandar uma lista com os alunos e suas respectivas notas para que o MentorWeb possa registrá-las no sistema. Atente-se ao formado da nota. | Detalhe 1: Lista de conceitos de nota (listaConceitoNota) |
idAluno | Identificador do aluno | Não ² | Inteiro | Informar o identificador do aluno no MentorWeb. Se for informado codigoIntegracaoAluno passar valor null. |
codigoIntegracaoAluno | Código de integração do aluno | Não ² | String | Informar o código de integração do aluno (caso o MentorWeb tenha conhecimento deste código) |
nota | Informar a nota do aluno | Sim | String | Informar a nota do aluno. Dependendo da configuração do critério de avaliação, poderá ser utilizado um conceito, ou seja, uma nota com caracteres alfanuméricos, cujo MentorWeb transformará para nota decimal desde que tenha conhecimento deste valor. Se for um formato numérico, deverá seguir o padrão: - Numérico, separando a parte decimal da parte inteira por ponto. A quantidade de casas decimais varia de acordo com o atributo numeroCasasDecimais retornado no WebService Consulta de critério de avaliação da turma/disciplina. Exemplo: 9.35 / 9.00 |
¹ Pelo menos um dos parâmetros para identificar a avaliação é obrigatório. O MentorWeb vai utilizar apenas um dos valores, na ordem informada. | ||||
² Pelo menos um dos parâmetros para identificar o aluno é obrigatório. O MentorWeb vai utilizar apenas um dos valores, na ordem informada. | ||||
Atenção: Caso o parâmetro inteiro não contiver valor, deverá ser enviado null, sem aspas. Os parâmetros deverão ser codificados na maneira application/x-www-form-urlencoded. Ou seja, todos os caracteres não-alfanuméricos com exceção de -_. são substituídos com um sinal de porcento (%) seguido por dois dígitos hexadecimais e espaços codificados como um sinal de (+). As linguagens de programação já possuem método para realizar essa codificação. Verificar exemplo na linguagem PHP mais abaixo. |
Atributos retornados do WebService para o chamador
Campo | Descrição | Tipo | Observação |
---|---|---|---|
→ codigoRetornoIntegracao | Código do retorno da integração | Inteiro | Código de retorno da integração. Verifique a lista de códigos possíveis. |
→ descricaoRetornoIntegracao | Descrição do retorno da integração | String | Quando ocorrer sucesso, a descrição será: Sucesso. Quando ocorrer um erro, a descrição será o erro ocorrido, com possíveis detalhes. |
→ observacaoRetornoIntegracao | Observação referente a integração | String | Poderá conter os detalhe do retorno da integração, geralmente quando ocorre um erro. |
→ idAvaliacao | Identificador da avaliação | Inteiro | Identificador da avaliação no MentorWeb. |
→ codigoIntegracaoAvaliacao | Código de integração da avaliação | String(20) | Código de integração da avaliação (seu código). |
—————————————— Detalhes —————————————— | |||
Detalhe 1: Lista de alunos com inconsistência (listAlunoNotaComInconsistencia) | Lista com os alunos que possuem inconsistência | – | Listará os alunos que possuem inconsistência, detalhando cada uma. |
→ codigoRetornoIntegracao | Código do retorno da integração | Inteiro | Código de retorno da integração. Verifique a lista de códigos possíveis. |
→ descricaoRetornoIntegracao | Descrição do retorno da integração | String | Descrição será o erro ocorrido, com possíveis detalhes. |
→ observacaoRetornoIntegracao | Observação referente a integração | String | Poderá conter os detalhe do retorno da integração, geralmente quando ocorre um erro. |
→ idAluno | Identificador do aluno | Inteiro | Identificador do aluno no MentorWeb. |
→ codigoIntegracaoAluno | Código de integração do aluno | String | Código de integração do aluno (seu código). |
→ nota | Nota informada para o aluno na avaliação | String | Nota que foi informada para o aluno referente a avaliação. |
Possíveis retornos para o chamador do WebService
Código | Descrição | Observação |
---|---|---|
ICA_00000 | Sucesso | Obteve sucesso na chamada e retorno do WebService. |
ICA_00800 | Ocorreu uma inconsistência, porém não necessitou interromper o processo. | Ocorre quando houve uma inconsistência na integração, porém, não houve a necessidade de interromper todo o processo por conta deste registro. |
ICA_00400 | Parâmetros inválidos | Ocorre quando são passados parâmetros inválidos para a execução do método. Exemplo: Passar uma String onde está sendo solicitado Integer, ou até mesmo não passar nenhum parâmetro. Solução: Verificar a documentação do WebService e conferir os parâmetros que estão sendo passados. |
ICA_00402 | Critério de avaliação não encontrado | Ocorre quando não conseguiu recuperar o critério de avaliação com base no identificador. |
ICA_00405 | Nenhum aluno encontrado | Ocorre quando não foi encontrado o aluno no MentorWeb. |
ICA_00406 | Nenhuma avaliação encontrada | Ocorre quando não é encontrada a avaliação no MentorWeb. |
ICA_00407 | Nota inválida | Ocorre quando uma das notas é inválida. Por favor, verifique o detalhe de cada aluno, pra saber em qual aluno está a inconsistência. Nenhuma nota foi gravada! |
ICA_00408 | Tipo de digitação de notas inválido. | O tipo de digitação de notas do critério de avaliação não permite realizar a digitação de notas via integração. Os únicos tipos de digitação permitidos na integração são: ZERO_DEZ = Digita e imprime notas de zero a dez ZERO_DEZCO = Digita notas de zero a dez e imprime conceitos ZERO_CEM = Digita e imprime notas de zero a cem CONCEITO = Digita e imprime conceitos |
ICA_00409 | Aluno não encontrado | Ocorre quando determinado aluno não foi encontrado no MentorWeb. |
ICA_00410 | Avaliação não encontrada | Ocorre quando determinada avaliação não foi encontrada no MentorWeb. |
ICA_00411 | Diário fechado | Ocorre quando o diário está fechado. |
ICA_00413 | Ocorreu um erro no detalhe de alunos | Ocorreu um erro no detalhe de alunos, por ser por conta de um ou mais alunos. Por favor, verifique-os, para analisar os detalhes do erro. Nenhuma nota foi integrada. |
ICA_00414 | Erro interno gerado pelo MentorWeb. | Ocorre quando acontece um erro tratado que não é nenhum dos que estão descritos acima. Verificar a observação do retorno da integração conforme atributo observacaoRetornoIntegracao. |
ICA_00415 | A nota desta avaliação não pode ser gravada via integração. | Ocorre quando foi informada uma avaliação que não possui um código de integração. Ou seja, é uma avaliação criada no próprio MentorWeb, não veio por integração. |
ICA_00417 | Fora do prazo de avaliação | Ocorre quando o diário está fora do prazo de avaliação |
ICA_00418 | Fora do prazo de digitação | Ocorre quando o diário está fora do prazo de digitação |
Exemplo de chamada do WebService
URL: http://IP:PORTA/APLICACAO/rest/ICorujaACA/gravaNotaAvaliacaoParcialParaListaDeAlunos
Exemplo da passagem de parâmetros por Json:
/*ctx:*/ {"usuario": 28} /*avaliacaoParcialDTO:*/ { "idAvaliacao":null, "codigoIntegracaoAvaliacao":"123", "listAlunoNota":[ { "idAluno":null, "codigoIntegracaoAluno":"230", "nota":"vinte" }, { "idAluno":11868, "codigoIntegracaoAluno":"", "nota":"IMP" }, { "idAluno":94667, "codigoIntegracaoAluno":"", "nota":"10" } ] }
Atenção: O parâmetro usuario deve ser solicitado para a instituição de ensino. Orientamos a instituição a criar um usuário com o nome/login da empresa que está fazendo a integração.
Exemplo do retorno do WebService Json:
{ "codigoRetornoIntegracao":"ICA_00000", "descricaoRetornoIntegracao":"Sucesso.", "observacaoRetornoIntegracao":null, "idAvaliacao":54133, "codigoIntegracaoAvaliacao":"123", "listAlunoNotaComInconsistencia":null }
Quando o valor do atributo codigoRetornoIntegracao é diferente de ICA_00000 e ICA_00800, significa que ocorreu algum erro no WebService e não foi possível realizar a gravação das notas.
Para identificar melhor o erro, deve-se analisar a lista de alunos inconsistentes retornadas no atributo listAlunoNotaComInconsistencia que conterá todos os alunos que estão inconsistentes. Deve-se consultar o código retornado no atributo descrito acima na documentação, e ainda observar os atributos descricaoRetornoIntegracao e observacaoRetornoIntegracao que conterão maiores detalhes sobre o ocorrido.
O código de retorno ICA_00800 indica que o registro atual não foi gravado, porém, não interferiu no processo e os demais registros foram gravados com sucesso.
Segue abaixo um exemplo de erro retornado, onde uma das notas foi informada com valor inválido, interrompendo todo o processo:
{ "codigoRetornoIntegracao":"ICA_00407", "descricaoRetornoIntegracao":"Nota inválida", "observacaoRetornoIntegracao":"Foi informada alguma nota inválida, e o processo foi interrompido. Nenhuma nota foi gravada, por favor, analise o retorno dos detalhes pra verificar quais as notas que estão incorretas, e realize a correção.", "idAvaliacao":54133, "codigoIntegracaoAvaliacao":"123", "listAlunoNotaComInconsistencia":[ { "codigoRetornoIntegracao":"ICA_00407", "descricaoRetornoIntegracao":"Nota inválida", "observacaoRetornoIntegracao":"Nota não informada ou não está no formato numérico. Se é utilizada a digitação por conceito, não foi encontrado a nota respectiva ao conceito informado.", "idAluno":null, "codigoIntegracaoAluno":"230", "nota":"vinte" } ] }
Exemplo de chamada do WebService na linguagem PHP
<?php header("Content-Type: text/html; charset=utf-8"); $curl = curl_init(); //realizar o urlencode de cada VALOR de parâmetro. O valor de cada parâmetro já deve estar no formato Json pra fazer o urlencode. $paramCtx = "ctx=".urlencode('{"usuario":28}'); $paramAvaliacaoParcialDTO = "avaliacaoParcialDTO=".urlencode('{"idAvaliacao":null,"codigoIntegracaoAvaliacao":"123","listAlunoNota":[{"idAluno":null,"codigoIntegracaoAluno":"230","nota":"vinte"},{"idAluno":11868,"codigoIntegracaoAluno":"","nota":"IMP"},{"idAluno":94667,"codigoIntegracaoAluno":"","nota":"10"},{"idAluno":87558,"codigoIntegracaoAluno":"","nota":"9"},{"idAluno":94597,"codigoIntegracaoAluno":"","nota":"8"},{"idAluno":41503,"codigoIntegracaoAluno":"","nota":"7"},{"idAluno":946.20,"codigoIntegracaoAluno":"","nota":"6"},{"idAluno":47496,"codigoIntegracaoAluno":"","nota":"5"},{"idAluno":87621,"codigoIntegracaoAluno":"","nota":"4"},{"idAluno":95265,"codigoIntegracaoAluno":"","nota":"3"},{"idAluno":94672,"codigoIntegracaoAluno":"","nota":"1.558"},{"idAluno":40228,"codigoIntegracaoAluno":"","nota":"2"},{"idAluno":94784,"codigoIntegracaoAluno":"","nota":"5.5"},{"idAluno":95016,"codigoIntegracaoAluno":"","nota":"0"},{"idAluno":87612,"codigoIntegracaoAluno":"","nota":"7.5"}]}'); $parametros = $paramCtx."&".$paramAvaliacaoParcialDTO; curl_setopt_array($curl, array( CURLOPT_PORT => "8080", CURLOPT_URL => "http://192.168.0.66:8080/ICoruja/rest/ICorujaACA/gravaNotaAvaliacaoParcialParaListaDeAlunos", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => $parametros, CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/x-www-form-urlencoded", "postman-token: 2635cd9e-ae8b-2db0-92d0-3eba7b19524c" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ?>
Atenção: Conforme descrito acima, os valores dos parâmetros deverão ser codificados na forma application/x-www-form-urlencoded. No exemplo acima, o método urlencode é responsável por essa codificação.
Caso ocorra um erro parecido com o erro abaixo, a requisição não chegou até o método que realiza a gravação das notas das avaliações, muito provavelmente por conta de ter sido passado um parâmetro inválido, ou seja, geralmente uma String onde esperava-se um Inteiro.
{"central":false,"causaRaiz":{"causaRaizMsg":"RESTEASY003320: Failed processing arguments of org.jboss.resteasy.spi.metadata.ResourceMethod@3341b456","causaRaizStackTrace".........}