Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. 

  

(Obrigatório)

Informações Gerais

 

Especificação

Produto

Datasul

Módulo

MLA

Segmento Executor

Manufatura

Projeto1

D_MAN_COM002

IRM1

PCREQ-401

Requisito1

PCREQ-2860 e PCREQ-10448

Subtarefa1

PDRMAN-5370

Chamado2

 

País

( X ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (  ) Outro _____________.

Outros

 

   Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos). 

(Obrigatório)

Objetivo

Desenvolver os workflows de aprovação de documentos do MLA no Fluig, para que com isso seja possível realizar toda a parte de acompanhamento e aprovação/rejeição de documentos através do Fluig.

(Obrigatório)

Definição da Regra de Negócio

 

Requisitos que SERÃO contemplados nesta especificação:

Neste primeiro momento serão tratados os seguintes documentos do MLA (os demais serão tratados em requisitos separadamente):

  • Solicitação de compra (Item e Total) – Doc 1 e Doc 2;
  • Requisição de estoque (Item e Total) – Doc 3 e Doc 4;
  • Pedido de compra (Item e Total) – Doc 6 e Doc 7;
  • Pedido de compra Emergencial (Item e Total) – Doc 8 e Doc 19.
  • Sincronização da geração de pendências entre Fluig e MLA;
  • Implementação do processo de análise, aprovação e reprovação de pendências, diretamente no Fluig;
  • Aprovação em dispositivos móveis (formulários mobile para os documentos citados acima);
  • Possibilitar a utilização do recurso de prazo de execução de atividades para as aprovações do MLA;
  • Sincronização de atualização de pendências (alteração/eliminação) entre Fluig e MLA;
  • Sincronização de status de aprovação/reprovação de documentos entre Fluig e MLA.

Requisitos que NÃO SERÃO contemplados nesta especificação:

  • Customização da central de tarefas para contemplar filtros e colunas para facilitar a busca por documentos específicos;
  • Sincronização de usuários alternativos (substitutos) com o Fluig - O cadastro deverá ser feito de forma manual no Fluig;
  • Não serão desenhados e/ou tratados os fluxos de aprovação de cada documento/tipo de aprovação dentro do Fluig. Cada pendência de aprovação, gerará um Workflow diferente dentro do Fluig;
  • Tratamento dos documentos: 
    • Cotação de compra - Doc 5;
    • Processo de compra (Total e Item) - Doc 9 e 10;
    • Contrato de compra - Doc 13;
    • Medição de contrato - Doc 14;
    • Evento de contrato - Doc 16;
    • Solicitação de cotação - Doc 18;
    • Solicitação de Serviço - Doc 20, 
    • Aprovação de crédito – Pedido de venda - Doc 21; 
    • Documento do contas a pagar - Doc 24;
    • Antecipação - Doc 25;
    • Pagamento extra-fornecedores - Doc 26;
    • Título normal - Doc 28.
  • Este escopo contempla apenas a parte de aprovação de documentos no Fluig, considerando que a criação dos documentos será realizada pelo próprio ERP e não através do Fluig;
  • Re-análise de pendências.

 

Rotina

Tipo de Operação

Opção de Menu

Regras de Negócio

MLA0000 – Parâmetros da aprovaçãoAlteraçãoAprovação de Processos Logísticos --> CadastrosInclusão de parâmetro para habilitar e configurar a integração para empresa/estabelecimento

MLA0101 – Tipos de documento

Alteração

Aprovação de Processos Logísticos --> Cadastros

Inclusão de parâmetros para habilitar e configurar a integração por documento

MLA0171 - Réplica entre empresa/estabelecimentoAlteraçãoAprovação de Processos Logísticos --> Tarefas Inclusão do tratamento dos parâmetros novos do MLA0000 e MLA0101
MLA0170 - Substituir aprovador/Copiar permissõesAlteraçãoAprovação de Processos Logísticos --> Tarefas Troca de aprovador nos workflows do Fluig

MLA0201B – Detalhes da pendência

Alteração

Aprovação de Processos Logísticos --> Tarefas --> Aprovação de Pendências --> Detalhe

Consulta do número do workflow do Fluig

Detalhes da pendência (HTML)AlteraçãoAprovação de Processos Logísticos --> Tarefas --> Aprovar Pendências --> Selecionar o documento à Detalhar documento à Detalhe pendênciaConsulta do número do workflow do Fluig

MLA0201 - Consulta de pendências

AlteraçãoAprovação de Processos Logísticos --> Consultas Consulta do número do workflow do Fluig
MLA0205 - Pendências do aprovadorAlteraçãoAprovação de Processos Logísticos --> Consultas Consulta do número do workflow do Fluig
MLA0207 - Pendências do usuárioAlteraçãoAprovação de Processos Logísticos --> Consultas Consulta do número do workflow do Fluig
Geração de pendências Alteração

Compras --> Tarefas --> Manutenção de pedidos

 

Compras --> Tarefas --> Manter Requisições Compra/Estoque
Integração da pendência gerada na inclusão dos documentos com o Fluig
Aprovação de pendênciasAlteraçãoAprovação de Processos Logísticos --> Tarefas --> Aprovação de pendências

Integração de aprovação/rejeição com o Fluig

WFMLA001 – Workflow de solicitação de compra (Item)

Novo Utilização através do Fluig Permitir a análise e aprovação/reprovação de solicitação de compra (por item)
WFMLA002 – Workflow de solicitação de compra (Total) Novo Utilização através do Fluig Permitir a análise e aprovação/reprovação de solicitação de compra (por total)
WFMLA003 – Workflow de requisição de estoque (Item)Novo Utilização através do Fluig Permitir a análise e aprovação/reprovação de requisição de estoque (por item)
WFMLA004 – Workflow de requisição de estoque (Total) Novo Utilização através do Fluig Permitir a análise e aprovação/reprovação de requisição de estoque (por total)
WFMLA006 – Workflow de pedido de compra (Item) Novo Utilização através do Fluig Permitir a análise e aprovação/reprovação de pedido de compra (por item)
WFMLA007 – Workflow de pedido de compra (Total)Novo Utilização através do Fluig Permitir a análise e aprovação/reprovação de pedido de compra (por total)
WFMLA008 – Workflow de pedido emergencial (Total) Novo Utilização através do Fluig Permitir a análise e aprovação/reprovação de pedido emergencial (por total)
WFMLA019 – Workflow de pedido emergencial (Item) Novo Utilização através do Fluig Permitir a análise e aprovação/reprovação de pedido emergencial (por item)

 

Exemplo de Aplicação:

html.mla0172 - Pendências de integração MLA x FluigNovoAprovação de Processos Logísticos --> Tarefas Permitir o re-processamento de pendências que tiveram erros no momento do envio para o Fluig
mla0173 - Limpeza Histórico Integração FluigNovoAprovação de Processos Logísticos --> Tarefas Limpeza de histórico de documentos utilizado pelo Fluig

 

Exemplo de Aplicação:

Os usuários do Datasul não têm a possibilidade de utilizar o Fluig para visualizar e aprovar pendências geradas através do módulo do MLA. Somente com a utilização do módulo do MLA, sem integração com o Fluig, também não é possível estabelecer prazos para a execução das aprovações.

 

Detalhamento das regras de negócio

 

A solução proposta prevê o cenário de que toda a parte de configurações do MLA, será mantida no próprio ERP. Somente serão geradas pendências “individuais” dentro do Fluig. Ou seja, não haverá um “fluxo” desenhado dentro do Fluig para demonstrar os níveis de aprovação de cada documento.

Por exemplo, um documento que passa por três níveis de aprovação, no Fluig, gerará três Workflows distintos com uma única atividade de “Aprovação”.

O objetivo é que o usuário possa gerar as pendências para poder aprová-las pelo Fluig, mas possa continuar utilizando os programas que já existem atualmente para realizar esse processo também. Ou seja, ele escolhe aonde vai fazer as aprovações, seja no Fluig, no ERP (programas progress), por e-mail ou no portal HTML.

A ideia é que cada documento do MLA seja um workflow separado. Dessa forma, será possível identificar mais facilmente as atividades pendentes da Central de tarefas do Fluig por processo de workflow. O cliente poderá também implantar somente os workflows de documentos que são utilizados pela empresa.

 

1) Habilitar e configurar a integração

Como o Fluig é um produto vendido separadamente, deverá haver um local no ERP para dizer que o MLA deverá ser tratado também pelo Fluig (para indicar que existe esta integração). Este ponto será no programa de parâmetros da aprovação (MLA0000 - Aba "Parâmetros II"). Para isso deverá ser inserido o parâmetro “Integração Fluig”, conforme apresentado no protótipo. Como os parâmetros do MLA são por empresa/estabelecimento, significa que o cliente poderá optar por enviar para o Fluig as pendências de apenas alguns estabelecimentos. Por padrão o parâmetro deve vir desmarcado.

Se o parâmetro “Integração Fluig” for marcado, os demais parâmetros contidos neste agrupador deverão ser habilitados em tela, caso contrário permanecerão desabilitados. Sobre os demais parâmetros:

  • Prazo de conclusão: Se marcado, indica que as pendências desse estabelecimento utilizarão o controle de prazo de conclusão, que indica o tempo em que cada pendência deve ser aprovada (informada em horas);
  • Código rejeição padrão: Esse campo somente será utilizado para o caso de reprovações em lote pelo Fluig, onde não será possível informar um código de rejeição manualmente. Neste caso o sistema utilizará o código informado neste programa. Se informado, deverá ser validado se existe.

 

Ao efetivar os dados dessa tela, deverá ser questionado ao usuário se deseja replicar as informações de integração com o Fluig para os documentos do estabelecimento (MLA0101). Se o usuário confirmar, as informações de “Integração Fluig”, “Prazo de conclusão” e “Horas” deverão ser replicados para os documentos do estabelecimento em questão. Somente não deve ser replicada a informação de “Integração Fluig” para os documentos que não serão liberados neste primeiro momento (mais informações abaixo). 

Como os workflows serão diferentes para cada tipo de documento no Fluig, o cliente poderá optar, por integrar com o Fluig somente os documentos que desejar, neste caso poderá informar no programa Tipos de documentos (MLA0101) quais deverão ou não ser integrados e o nome do workflow no Fluig. Esses parâmetros só poderão ser habilitados se o estabelecimento estiver parametrizado para integrar com o Fluig (MLA0000 – Parâmetro “Integração Fluig”).

Para isso será inserido um parâmetro “Integração Fluig” para indicar que o documento deve ser integrado com o Fluig (por padrão, na inclusão de documentos deve vir marcado conforme o parâmetro do MLA0000 – com exceção dos documentos não liberados agora. Para esses sempre deve vir desmarcado). O nome do workflow será sugerido conforme o número do documento informado, no seguinte padrão:

WFMLA + código do documento com 3 dígitos. Exemplo: WFMLA001 - Para o documento de Solicitação de compra (Doc 1).

 

O campo ficará disponível para alteração. Isso é necessário para o caso de que o cliente tenha, por exemplo, criado um Workflow novo para o documento com um nome diferenciado.

Os parâmetros do MLA0101B, ficarão dispostos conforme protótipo abaixo:

 

Para que seja possível utilizar o recurso de prazo na execução das tarefas, será possível definir por tipo de documento qual será o prazo de aprovação para cada pendência gerada.

  • No caso dos documentos que possuem prioridade de aprovação (1, 3, 5, 6, 14, 16, 18, 19), o prazo de aprovação poderá ser definido conforme a prioridade, se estiver parametrizado para sua utilização (MLA0000, parâmetro “Prioridade Aprovação Docto”). Neste caso, se tiver valor informado por prioridade ele deverá ser utilizado, ao invés do prazo “genérico”;
  • Para os documentos que possuem prazo de conclusão, mas o mesmo está desabilitado no MLA0000, os campos de prioridade devem permanecer desabilitados em tela;
  • Para os documentos que não possuem prioridade de aprovação, estes campos de prioridade de aprovação não devem ser apresentados em tela;

Obs.: Todos esses campos novos deverão ser desabilitados para os seguintes documentos: 5, 9, 10, 13, 14, 16, 18, 20, 21, 24, 25, 26, 28. Na medida que esses documentos forem sendo liberados para integração, os parâmetros serão habilitados.

Informações técnicas sobre habilitar e configurar a integração:

  • No MLA0000: 
    • O novo parâmetro “Integração Fluig” deverá referenciar o campo mla-param-aprov.xxxxxxxxxxxxlog-integr-fluig;
    • O novo parâmetro "Prazo de conclusão" deverá referenciar o campo mla-param-aprov.xxxxxxxxxlog-praz-conclus;
    • O novo campo de "Horas de conclusão" deverá referenciar o campo mla-param-aprov.xxxxxxxxxhra-execucao;
    • O novo campo "Código de rejeição padrão" deverá referenciar o campo mla-param-aprov.xxxxxxxxxcdn-rej;
    • Para a réplica de dados, criar uma procedure na boin784.p (pi-replica-integracao-fuig), recebendo os seguintes parâmetros: empresa, estabelecimento, se integra com fluig, se utiliza prazo de conclusão, horas de conclusão. A procedure deverá ler todos os documentos (mla-tipo-doc-aprov) da empresa e estabelecimento em questão, e atualizar os dados conforme os parâmetros recebimentos;
    • Lembrar de atualizar os novos campos para gerar os log's de transação (inclusão, alteração e eliminação);

  • No MLA0101B:
    • Ajustar os parâmetros existentes em tela para que seja possível inserir os novos;
    • O novo parâmetro "Integração Fluig" deverá referenciar o campo mla-tipo-doc-aprov.xxxxxxxlog-integr-fluig;
    • O novo campo "Processo" deverá referenciar o campo mlacampo mla-tipo-doc-aprov.xxxxxxxxxxcod-proces;
    • O novo parâmetro "Prazo de conclusão" deverá referenciar o campo mlacampo mla-tipo-doc-aprov.xxxxxxxxxxlog-praz-conclus;
    • O novo campo de "Horas de conclusão" deverá referenciar o campo mlacampo mla-tipo-doc-aprov.xxxxxxxxxxhra-execucao;
    • Os novos campos de horas por prioridade deverão referenciar: Baixa: mla-tipo-doc-aprov.xxxxxxxxxxhra-exec-priorid-baixa, Média: mla mla-tipo-doc-aprov.xxxxxxxxxxhra-exec-priorid-media, Alta: mla mla-tipo-doc-aprov.xxxxxxxxxx e hra-exec-priorid-alta e Muito Alta: mla mla-tipo-doc-aprov.xxxxxxxxxxhra-exec-prioridad-altssmo; 
    • Para saber se os campos poderão ser habilitados, lembrar de localizar os parâmetros do MLA pelo estabelecimento e empresa (mla-param-aprov.cod-estabel = mla-tipo-doc-aprov.cod-estabel AND mla-param-aprov.ep-codigo = mla-tipo-doc-aprov.ep-codigo). 
    • O código do documento, que é utilizado em muitas regras de negócio é representado pelo campo mla-tipo-doc-aprov.cod-tip-doc;
    • Para saber se o estabelecimento está configurado para utilizar a prioridade de aprovação: mla-param-aprov.log-priorid-aprova-docto;

 

2) Sincronização da geração de pendências entre Fluig e MLA

Nos pontos onde são geradas as pendências de aprovação, na primeira geração de pendência para o documento, caso esteja configurado a empresa/estabelecimento/documento para integrar com o Fluig, será necessário iniciar o workflow do respectivo documento no Fluig (Obs.: Essa inicialização será de forma automática pelo ERP).

Caso haja algum erro de integração, ou problema na comunicação entre ERP e Fluig, o documento e pendências deverão ser criados normalmente no ERP, somente alertando que não houve a integração com o Fluig. Para verificação dos erros ocorridos, e possibilitar o re-envio de documentos para o Fluig, será criado um programa que servirá como um “monitor” desta integração. O objetivo deste monitor será controlar os documentos pendentes de integração (que houve algum problema ao integrar com o Fluig). O monitor será detalhado posteriormente.

Assim que a solicitação for iniciada no Fluig será necessário armazenar o número dela no ERP para sincronização de alterações, cancelamentos e aprovações. O número da solicitação ficará armazenado na tabela de pendências de aprovação do MLA, e poderá ser visualizado através das telas de detalhe de pendência, tanto no progress, quanto no HTML, assim como em algumas consultas:

MLA0201 - Consulta de pendências (Será a última coluna do browser)
MLA0205 - Pendências do aprovador (Será a última coluna do browser)
MLA0207 - Pendências do usuário (Será a última coluna do browser)

 

Protótipo da MLA0201B com o campo novo “WF Fluig”:

 

Protótipo da tela HTML com o novo campo “Workflow Fluig”:

Alguns pontos de atenção neste processo:

  • Para o caso dos documentos por item total (que possuem a geração de uma nova pendência a cada "item"), para a integração com o Fluig, deve-se considerar somente a última geração. Como é feito para o envio de e-mail de notificação. Ou seja, não deve ser gerada uma pendência a cada item incluso;
  • Quando houver aprovação automática da pendência, o workflow NÃO será gerado no Fluig, somente se houver a geração uma pendência o próximo aprovador (da hierarquia, por exemplo), neste caso será gerado um novo workflow de aprovação.

Informações técnicas sobre sincronização da geração de pendências entre Fluig e MLA:

  • O campo para armazenar o número do processo no Fluig será o mla-doc-pend-aprov.xxxxxxxxxxxxxxxx;
  • Todos os pontos que criam pendências no MLA, acabam chamando uma única API (mlaapi001.p) que faz a geração de pendência e ela que deverá integrar com o Fluig.
  • Neste caso, na mlaapi001.p, os pontos de integração serão nos mesmos pontos que existe a chamada da procedure "pi-chama-epc-geracao-pendencia", pode ser colocado antes dela. No local onde a pi-chama-epc-geracao-pendencia passa o Rowid direto da tabela mla-doc-pend-aprov, somente chamar a integração com o Fluig, se a variável "l-proces-compl" estiver com valor YES (que garante que para os documentos por Item, somente chamará na última vez);
  • Para a integração com o Fluig, a ser chamada pela mlaapi001.p, deve-se criar uma nova api (lap/mlaapi014.p) para tratar essas integrações:
    • ;
    • No ERP será gravado um histórico "congelado" dos detalhes do documento, para que o Fluig possa utilizar para mostrar as informações. Isso é necessário, pois um documento pode ter passado por aprovação (Workflow 1), e depois ser alterado e passar por aprovação novamente (Workflow 2), neste caso, ao consultar o Workflow 1 no fluig, o usuário terá exatamente as informações que aprovou no Workflow 1.

      Exemplo
      1) Criação do pedido de compra
      2) Geração do Workflow no Fluig:

      Workflow 1 - Pedido de compra - Item 1 - Qtd 1 - R$ 50,00
                                                           Item 2 - Qtd 1 - R$ 1000,00

      3) Rejeição do Workflow 1 
      4) Comprador elimina o Item 2 do pedido
      5) Geração de um novo Workflow para o Fluig:

      Workflow 2 - Pedido de compra - Item 1 - Qtd 1 - R$ 50,00

      6) Usuário consulta o Workflow 1 no Fluig --> Com essa estrutura criada, ele poderá ainda visualizar os dois itens no pedido de compra, mesmo que esses não existam mais no ERP.

    Informações técnicas sobre sincronização da geração de pendências entre Fluig e MLA:

    • O campo para armazenar o número do processo no Fluig será o mla-doc-pend-aprov.cdn-workflow-fluig;
    • Todos os pontos que criam pendências no MLA, acabam chamando uma única API (mlaapi001.p) que faz a geração de pendência e ela que deverá integrar com o Fluig.
    • Neste caso, na mlaapi001.p, os pontos de integração serão nos mesmos pontos que existe a chamada da procedure "pi-chama-epc-geracao-pendencia", pode ser colocado antes dela. No local onde a pi-chama-epc-geracao-pendencia passa o Rowid direto da tabela mla-doc-pend-aprov, somente chamar a integração com o Fluig, se a variável "l-proces-compl" estiver com valor YES (que garante que para os documentos por Item, somente chamará na última vez);
    • Para a integração com o Fluig, a ser chamada pela mlaapi001.p, deve-se criar uma nova api (lap/mlaapi014.p) para tratar essas integrações:
      • Criar a procedure "startProcessFluig" com os parâmetros: Número da transação (INPUT), Aprovador (INPUT), Número do Workflow gerado (OUTPUT) e RowErrors (OUTPUT);
      • A procedure deverá localizar o registro da "mla-doc-pend-aprov" com o número da transação recebido por parâmetro - Validar se existe, caso contrário inserir um erro na RowErrors e retornar;
      • Verificar se o estabelecimento/empresa da pendência está configurado para integrar com o Fluig. Se não estiver, retornar sem executar mais nenhuma ação;
      • Verificar se o documento está configurado para integrar com o Fluig. Se não estiver, retornar sem executar mais nenhuma ação;
      • Ao ler a tabela do documento (mla-tipo-doc-aprov - considerar empresa, estabelecimento e código do documento), identificar o código do Workflow (mla-tipo-doc-aprov.cod-proces) (ele será utilizado para envio para API do Fluig);
      • O aprovador para quem será enviado o workflow, será o mla-doc-pend-aprov.cod-usuar (neste caso, verificar se para a API do fluig deve ser enviado o código ou e-mail - no caso do Identity);
      • Antes de enviar para o Fluig, será necessário gravar um registro com um "espelho" do documento na tabela mla-docto-pend-aprovac-det. Para isso serão criados 3 registros:
        • Número da transação + Tipo de detalhe = 1: Gravar as informações de detalhe "genérico" da pendência;
        • Número da transação + Tipo de detalhe = 2: Gravar as informações de histórico da pendência;
        • Número da transação + Tipo de detalhe = 3: Gravar as informações de detalhes da pendência (neste caso, pode ser necessário quebrar em diversos registros, devido a limitação do campo caracter)Para a busca das informações deve-se enviar o número da transação e através das laphtml/mlahtml <número doc>p.p para buscar as informações específicas de cada documento.
        • Para a nova tabela deverá ser criada uma BO com todos os métodos padrões e procedure para gravar as informações, fazendo as quebras necessárias;
        • O formato de gravação deverá em JSON para facilitar a leitura posteriormente;
      • A API para integração com o Fluig a ser utilizada neste caso será a utp/ut-integra-ecm.p (chamar a procedure startProcess);
      • Para que seja possível tratar a questão das prioridades de aprovação, será necessário enviar essa informação para o Fluig também, para que seja tratada no workflow, para localizar se há prazo de execução, verificar:
        • Se o estabelecimento está configurado para utilizar prazo de conclusão, se estiver,
        • Verificar se o documento está configura para utilizar prazo de conclusão, se estiver,
        • Verificar se existe prioridade informada para a prioridade do documento em questão, se tiver, enviá-la, senão enviar a genérica. Obs.: Para saber os valores e lógicas das prioridades consultar no mla0301.w - procurar pelo campo num-priorid-aprova-docto.
      • Para gerar as informações de cardData, para cada "item", criar uma função que receba "Informação" e "Valor" e retorne o trecho: 

        <item>
            <item>Informação</item>
            <item>Valor</item>
        </item>

      • Para o cardData enviar as informações que serão necessárias utilizar no formulário, como número da transação, chave do documento, aprovador, tempo de aprovação, código de rejeição padrão, entre outras que houver necessidade;
      • No comentário de criação do workflow pode-se utilizar "Abertura do Workflow <processo> via ERP Datasul";
      • Todos os erros que podem ocorrer (pelo Fluig não estar configurado, código do workflow inválido, etc.) devem ter as mensagens cadastradas para serem inclusas na RowErrors.
      • Após ter sido criada a pendência no Fluig deve-se gravar o número do workflow gerado na tabela mla-doc-pend-aprov e retornar para a procedure;
      • Caso ocorra algum erro, deve-se gerar um registro de erro de criação na tabela mla-docto-pend-fluig. Mais detalhes nos tópicos a seguir.
      • Com relação aos erros retornados da procedure nova, a mlaapi001.p após essa chamada, deve verificar se há algum erro na RowErrors, se houver, criar apenas um registro (de warning) na tt-erro, que será retornada pela API com o seguinte conteúdo: "Não foi possível integrar a pendência de aprovação com o Fluig", help: "Para mais informações sobre os erros ocorridos e re-processamento, consulte o programa Pendências de integração MLA x Fluig (html.mla0172)".

     

    3) Workflows e Formulários

    Cada workflow de aprovação de documento, possuirá um formulário que permitirá visualizar os detalhes do documento que está sendo aprovado, o formulário de aprovação das pendências será no mesmo formato (com as mesmas informações) que é utilizado para o Portal do MLA (HTML).

    Por padrão, na parte inferior de cada formulário deve conter:

    • Um agrupador com detalhes da pendência (mesmas informações que são apresentadas no detalhe da pendência no HTML) - Por padrão o agrupador deve vir fechado;
    • Um agrupador com as informações de histórico de aprovação (como já mostra no detalhe da pendência no HTML) - Por padrão o agrupador deve vir fechado;
    • Campos para que o usuário indique se está realizando uma aprovação ou rejeição. Haverá um campo para selecionar se é uma aprovação ou rejeição, com as opções “Aprovar” e “Reprovar” (por padrão a Aprovar deverá vir selecionada). Abaixo deverá conter o campo de narrativa. Caso selecionada a opção de “Reprovar” deverá ser apresentado uma lista com os códigos de rejeição para que o usuário possa selecionar o código.

     

    Image Added

     

    O workflow terá o seguinte "desenho" do Fluig:

    Image Added

    Será necessário que existam as duas atividades, uma para aprovação e outra para rejeição, para que seja possível utilizar a aprovação/rejeição em lote no Fluig, onde o usuário seleciona os workflows que deseja movimentar e escolhe qual a tarefa para que vai mover:

    Image Added

    No caso de aprovações em lote, no comentário da aprovação deverá ser colocado como o seguinte: "Aprovação realizada através do Fluig (em lote)".

    No caso de rejeições em lote, o comentário da rejeição deverá ser colocado como o seguinte: "Rejeição realizada através do Fluig (em lote)". O código de rejeição a ser utilizado neste caso será o código definido no programa MLA0000 para o estabelecimento da pendência em questão.

    Importante: Os Workflows de aprovação não poderão ser iniciados diretamente pelo Fluig, somente através do ERP. Dessa forma, se o usuário tentar iniciar através do Fluig, deverá ser apresentada a mensagem "Processo deve ser iniciado pelo ERP.".

     

    Informações técnicas sobre Workflows e Formulários:

    • Criar os formulários no fluig, com o mesmo layout que o portal do MLA, deve-se seguir a mesma ideia do portal, ou seja, se existem dois documentos que utilizam o mesmo formulário, os workflows no Fluig seguirão a mesma ideia, ou seja, deve apenas referenciar o formulário do outro documento;

    • Os formulários não deverão receber todas as informações da pendência do ERP para serem apresentadas. Devem recebem apenas algumas informações essenciais da pendência, como o número da transação, chave da pendência, usuário aprovador, etc.;

    • Para a busca das informações deve-se enviar o número da transação e buscar através da tabela mla-docto-pend-aprovac-det, de informações "congeladas", os detalhes a serem apresentados. Lembrando que o detalhe da pendência pode estar quebrado em mais de um registro.

    • Para a busca do histórico de aprovação e também dos detalhes "genéricos" da pendência, deverá ser sob demanda, ou seja, somente se o usuário abrir o "agrupador" as informações deverão ser buscadas (também da tabela congelada);

     

    4)

  • Criar a procedure "startProcessFluig" com os parâmetros: Número da transação (INPUT), Aprovador (INPUT), Número do Workflow gerado (OUTPUT) e RowErrors (OUTPUT);
  • A procedure deverá localizar o registro da "mla-doc-pend-aprov" com o número da transação recebido por parâmetro - Validar se existe, caso contrário inserir um erro na RowErrors e retornar;
  • Verificar se o estabelecimento/empresa da pendência está configurado para integrar com o Fluig. Se não estiver, retornar sem executar mais nenhuma ação;
  • Verificar se o documento está configurado para integrar com o Fluig. Se não estiver, retornar sem executar mais nenhuma ação;
  • Ao ler a tabela do documento (mla-tipo-doc-aprov - considerar empresa, estabelecimento e código do documento), identificar o código do Workflow (mla-tipo-doc-aprov.xxxxxxxxxx) (ele será utilizado para envio para API do Fluig);
  • O aprovador para quem será enviado o workflow, será o mla-doc-pend-aprov.cod-usuar (neste caso, verificar se para a API do fluig deve ser enviado o código ou e-mail - no caso do Identity);
  • A API para integração com o Fluig a ser utilizada neste caso será a utp/ut-integra-ecm.p (chamar a procedure startProcess);
  • Para que seja possível tratar a questão das prioridades de aprovação, será necessário enviar essa informação para o Fluig também, para que seja tratada no workflow, para localizar se há prazo de execução, verificar:
    • Se o estabelecimento está configurado para utilizar prazo de conclusão, se estiver,
    • Verificar se o documento está configura para utilizar prazo de conclusão, se estiver,
    • Verificar se existe prioridade informada para a prioridade do documento em questão, se tiver, enviá-la, senão enviar a genérica. Obs.: Para saber os valores e lógicas das prioridades consultar no mla0301.w - procurar pelo campo num-priorid-aprova-docto.
  • Para gerar as informações de cardData, para cada "item", criar uma função que receba "Informação" e "Valor" e retorne o trecho: 
    <item>
        <item>Informação</item>
        <item>Valor</item>
    </item>
  • Para o cardData enviar as informações que serão necessárias utilizar no formulário, como número da transação, chave do documento, aprovador, tempo de aprovação, código de rejeição padrão, entre outras que houver necessidade;
  • No comentário de criação do workflow pode-se utilizar "Abertura do Workflow <processo> via ERP Datasul";
  • Todos os erros que podem ocorrer (pelo Fluig não estar configurado, código do workflow inválido, etc.) devem ter as mensagens cadastradas para serem inclusas na RowErrors.
  • Após ter sido criada a pendência no Fluig deve-se gravar o número do workflow gerado na tabela mla-doc-pend-aprov e retornar para a procedure;
  • Caso ocorra algum erro, deve-se gerar um registro de erro de criação na tabela xxxxxxxxxxxx. Mais detalhes nos tópicos a seguir.
  • Com relação aos erros retornados da procedure nova, a mlaapi001.p após essa chamada, deve verificar se há algum erro na RowErrors, se houver, criar apenas um registro (de warning) na tt-erro, que será retornada pela API com o seguinte conteúdo: "Não foi possível integrar a pendência de aprovação com o Fluig", help: "Para mais informações sobre os erros ocorridos e re-processamento, consulte o programa xxxxxxxxxxxxxxxx".
  •  

    3) Workflows e Formulários

    Cada workflow de aprovação de documento, possuirá um formulário que permitirá visualizar os detalhes do documento que está sendo aprovado, o formulário de aprovação das pendências será no mesmo formato (com as mesmas informações) que é utilizado para o Portal do MLA (HTML).

    Por padrão, na parte inferior de cada formulário deve conter:

    • Um agrupador com detalhes da pendência (mesmas informações que são apresentadas no detalhe da pendência no HTML) - Por padrão o agrupador deve vir fechado;
    • Um agrupador com as informações de histórico de aprovação (como já mostra no detalhe da pendência no HTML) - Por padrão o agrupador deve vir fechado;
    • Campos para que o usuário indique se está realizando uma aprovação ou rejeição. Haverá um campo para selecionar se é uma aprovação ou rejeição, com as opções “Aprovar” e “Reprovar” (por padrão a Aprovar deverá vir selecionada). Abaixo deverá conter o campo de narrativa. Caso selecionada a opção de “Reprovar” deverá ser apresentado uma lista com os códigos de rejeição para que o usuário possa selecionar o código.

     

    Image Removed

     

    O workflow terá o seguinte "desenho" do Fluig:

    Image Removed

    Será necessário que existam as duas atividades, uma para aprovação e outra para rejeição, para que seja possível utilizar a aprovação/rejeição em lote no Fluig, onde o usuário seleciona os workflows que deseja movimentar e escolhe qual a tarefa para que vai mover:

    Image Removed

    No caso de aprovações em lote, no comentário da aprovação deverá ser colocado como o seguinte: "Aprovação realizada através do Fluig (em lote)".

    No caso de rejeições em lote, o comentário da rejeição deverá ser colocado como o seguinte: "Rejeição realizada através do Fluig (em lote)". O código de rejeição a ser utilizado neste caso será o código definido no programa MLA0000 para o estabelecimento da pendência em questão.

     

    Informações técnicas sobre Workflows e Formulários:

    • Criar os formulários no fluig, com o mesmo layout que o portal do MLA, deve-se seguir a mesma ideia do portal, ou seja, se existem dois documentos que utilizam o mesmo formulário, os workflows no Fluig seguirão a mesma ideia, ou seja, deve apenas referenciar o formulário do outro documento;

    • Os formulários não deverão receber todas as informações da pendência do ERP para serem apresentadas. Devem recebem apenas algumas informações essenciais da pendência, como o número da transação, chave da pendência, usuário aprovador, etc.;

    • Para a busca das informações deve-se enviar o número da transação e através das laphtml/mlahtml <número doc>p.p para buscar as informações específicas de cada documento.

     

    4) Análise, aprovação e reprovação de pendências, diretamente no Fluig

     

    A partir do momento que o Workflow da aprovação de um documento é inicializado no Fluig, todo o processo de análise, aprovação e reprovação de pendências poderá ser executado pelo Fluig.

    Sobre o fluxo e suas interações com o ERP:

    Image Removed

     
    • A movimentação (Criação ou alteração Solicitação de compra, pedido de compra, etc.) será realizada no ERP, como é feito atualmente (somente a pendência de aprovação que irá para o Fluig);
    • Caso o documento deva passar pelo processo de aprovações do MLA no Fluig, ao iniciar o Workflow o ERP vai enviar as informações para geração da pendência de aprovação. 
    • Deverão ser enviadas juntamente com as informações da atividade a ser gerada, o número da transação e a chave o documento que está sofrendo aprovação, para que sejam carregadas as informações do documento no formulário vinculado ao workflow.
    • Caso ocorram erros na integração com o Fluig, deverá ser gerado um registro na tabela de pendências de integração com o Fluig, nesta tabela ficará armazenada as informações da pendência que não foi enviada, os erros que ocorreram e o processo que estava sendo realizado (envio, aprovação/reprovação, cancelamento). Através do monitor de pendências, detalhado posteriormente, será possível reenviar essas pendências.
    • Ao realizar a ação de aprovar ou reprovar um documento, deverão ser feitas todas as validações do ERP referente a permissões de aprovação do usuário em questão, se estiver tudo OK, o ERP é atualizado, e o workflow é finalizado. Para essa rotina, será utilizada a mesma API de aprovação que é utilizada para o Portal do MLA.
    • Quando for uma reprovação, o usuário terá que informar o código de rejeição conforme as regras do ERP;
    • Toda vez que ocorrer uma aprovação ou reprovação, o status do documento deverá ser atualizado no ERP, e o workflow será encerrado. Obs.: Se houver mais aprovações a serem realizadas serão gerados novos Workflows.
    Informações técnicas sobre

    Análise, aprovação e reprovação de pendências, diretamente no Fluig

    :

     

  • Para realizar a aprovação de aprovação ou rejeição pelo Portal, utilizar a mesma API já utilizada para o Portal do MLA a lap/mla0007.p (procedure aprovaPendPortal);
  • Para a busca dos códigos de rejeição utilizar a lap/mla0007.p (procedute getCodRejeita).

     

  • 5) Sincronização de atualização de pendências (alteração/eliminação/aprovação) entre MLA e Fluig

    Cada vez que ocorrer uma alteração de documento no ERP, todas as pendências de aprovação são eliminadas no ERP e re-geradas. Dessa forma, será necessário cancelar a solicitação no Fluig, e iniciar um novo processo. Ao cancelar o Workflow, deverá ser enviado o seguinte conteúdo: “Workflow cancelado devido a eliminação ou alterações no documento que originou a pendência”. O Fluxo desse processo é apresentado na sequência.

    Image Removed

     

    Se um documento for eliminado no ERP, e estiver integrado com o Fluig, será necessário cancelar a solicitação de aprovação no Fluig também. Fluxo é apresentado na sequência.

    Image Removed

    Se um documento for aprovado ou reprovado pelo ERP, o Fluig deverá ser atualizado também, conforme fluxo apresentado na sequência.

    Image Removed

    Informações técnicas sobre Sincronização de atualização de pendências (alteração/elimininação/aprovação) entre MLA e Fluig:

    • Para realizar os cancelamentos de workflow no Fluig, será necessário criar uma procedure (cancelProcessFluig) na API lap/mlaapi014.p criada anteriormente;
    • Ela deverá ser chamada de dentro da mlaapi001.p (na procedure pi-elimina-documentos-pendentes);
    • A procedure deverá ter os seguintes parâmetros: Número da transação (INPUT) e RowErrors (OUTPUT);
    • Ela deverá localizar o registro da "mla-doc-pend-aprov" com o número da transação recebido por parâmetro - Validar se existe, caso contrário inserir um erro na RowErrors e retornar;
    • Verificar se o estabelecimento/empresa da pendência está configurado para integrar com o Fluig. Se não estiver, retornar sem executar mais nenhuma ação;
    • Verificar se o documento está configurado para integrar com o Fluig. Se não estiver, retornar sem executar mais nenhuma ação;
    • A API para integração com o Fluig a ser utilizada neste caso será a utp/ut-integra-ecm.p (chamar a procedure cancelInstance)
    • Caso ocorra algum erro, deve-se gerar um registro de erro de cancelamento na tabela xxxxxxxxxxxx. Mais detalhes nos tópicos a seguir.
    • Com relação aos erros retornados da procedure nova, a mlaapi001.p após essa chamada, deve verificar se há algum erro na RowErrors, se houver, criar apenas um registro (de warning) na tt-erro, que será retornada pela API com o seguinte conteúdo: "Não foi possível integrar o cancelamento da pendência de aprovação com o Fluig", help: "Para mais informações sobre os erros ocorridos e re-processamento, consulte o programa xxxxxxxxxxxxxxxx";
    • Para a sincronização das aprovações/rejeições, será necessário criar uma procedure (changeStateFluig) na API lap/mlaapi014.p criada anteriormente;
    • Ela deverá ser chamada de dentro da inbo/boin767c.p (na procedure setAnalysPend);
    • A procedure deverá ter os seguintes parâmetros: Número da transação (INPUT) e RowErrors (OUTPUT);
    • Ela deverá localizar o registro da "mla-doc-pend-aprov" com o número da transação recebido por parâmetro - Validar se existe, caso contrário inserir um erro na RowErrors e retornar;
    • Verificar se o estabelecimento/empresa da pendência está configurado para integrar com o Fluig. Se não estiver, retornar sem executar mais nenhuma ação;
    • Verificar se o documento está configurado para integrar com o Fluig. Se não estiver, retornar sem executar mais nenhuma ação;
    • A API para integração com o Fluig a ser utilizada neste caso será a utp/ut-integra-ecm.p (chamar a procedure saveAndSendTaskECM);
    • O aprovador para quem será "enviado" o workflow, será o mla-doc-pend-aprov.cod-usuar (neste caso, verificar se para a API do fluig deve ser enviado o código ou e-mail - no caso do Identity);
    • Para movimentar o Workflow para a atividade correta se basear na ação realizada. Aprovação: mla-doc-pend-aprov.ind-situacao = 2 / Rejeição: mla-doc-pend-aprov.ind-situacao = 3;
    • Para o comentário de aprovação/rejeição, enviar o campo mla-doc-pend-aprov.narrativa-apr ou mla-doc-pend-aprov.narrativa-rej conforme o que ocorreu;
    • Caso ocorra algum erro, deve-se gerar um registro de erro de movimentação na tabela xxxxxxxxxxxx. Mais detalhes nos tópicos a seguir.
    • Com relação aos erros que puderem ser retornados para a boin767c.p, se houver algum registro na RowErrors, criar um registro (de warning) na RowErrors com o seguinte conteúdo: "Não foi possível integrar a aprovação/rejeição da pendência com o Fluig", help: "Para mais informações sobre os erros ocorridos e re-processamento, consulte o programa xxxxxxxxxxxxxxxx" (Como a mensagem é basicamente a mesma de cancelamento, criar uma única, com parâmetros).
    • Ainda será necessário, no caso de aprovações/rejeições, gerar pendências para os próximos aprovadores (se houver). Neste caso, deverá ser criado um novo workflow no Fluig, nos mesmos pontos onde hoje há os pontos de epc (são dois locais), com o nome de "aprovacao-pendente".

    6) Re-análise de documentos 

    No MLA é possível que os aprovadores realizem a re-análise de documentos “Rejeitados”, fazendo uma "re-aprovação". No Fluig não é possível que o usuário faça uma análise de documentos “Rejeitados”, pois o Workflow já estará finalizado. Por isso, quando a pendência de aprovação estiver integrada com o Fluig, no ERP serão bloqueadas as ações de “Reaprovação”, ou seja, deverá ser apresentada a mensagem "Reaprovação não permitida para pendências integradas com o Fluig".

    Informações técnicas sobre Re-análise de documentos:

    A validação citada deverá ser inserida na inbo/boin767c.p (procedure setAssignPend, na parte de re-aprovação - neste caso criar um erro na RowErrors e retorno "NOK");

    7) Usuário mestre

     No Fluig os usuários mestres serão considerados os gestores do processo. Eles deverão ser definidos através de um mecanismo de atribuição customizado, que irá buscar do ERP quais são esses usuários para que possam ser atribuídos como gestores de processo no Fluig. 

    Obs.: lembrando que eles serão buscados no momento que o Workflow é criado, se o usuário for tornado mestre e já existirem Workflows em andamento, ele somente será mestre/gestor, dos próximos workflows criados.

    Informações técnicas sobre Usuário mestre:

    • Criar uma procedure (getGestoresProcesso) na lap/mlaapi014.p para retornar os usuários mestres.
    • A tabela é a mla-usuar-aprov, e os usuários mestre são representados pelo campo: mla-usuar-aprov.usuar-mestre.

    8) Aprovadores alternativos

    Os aprovadores alternativos do MLA não serão integrados com o Fluig neste momento. Dessa forma, se for necessário utilizá-los no Fluig, eles devem ser configurados manualmente, como usuários substitutos. No momento de realizar as aprovações o Fluig fará as validações para saber se o usuário é um aprovador alternativo válido.

    9) Bloqueio de cancelamento de workflow

     Será necessário criar um bloqueio de cancelamento do Workflow, pois pendências de aprovação não podem ser “canceladas”, somente se o documento for eliminado, e neste caso o ERP que fará o cancelamento. Neste caso apresentar uma mensagem "Workflow não pode ser cancelado manualmente".

     

    10) Monitor de pendências de integração com o Fluig

     

    Para que não haja a necessidade de bloquear a inclusão de documentos no ERP, caso ocorra algum erro de integração com o Fluig, ou perda de conexão, a ideia é que o processo não seja interrompido, para não causar transtornos nas atividades do cliente. Dessa forma, o documento será incluso normalmente no ERP, apenas alertando que não houve a integração com o Fluig. Será mantido um registro desses erros de integração para que possam ser re-enviados ao Fluig posteriormente.

    Os registros de problemas de integração, poderão ser de tipos diferentes:

    • Erro de envio (integração inicial);
    • Erro de movimentação (aprovações/reprovações);
    • Erro de cancelamento (eliminações de pendência).

    O monitor deverá ser desenvolvido conforme protótipo apresentado na sequência:

    Image Removed

    Ele apresentará além dos três tipos de erros citados acima, mais uma situação, que serão pendências não integradas, ou seja, por exemplo, ao implantar os workflows do MLA, se já haviam pendências geradas no módulo, elas poderão ser integradas através dessa opção. Por padrão o programa virá somente as três opções de "erro" marcadas, a opção de "Não integrada" deve vir desmarcada.

    As informações que serão apresentadas por esse programa serão as seguintes:

  • Tipo de documento e descrição (Será o "título" do registro - Ao clicar nele deverá abrir a tela de aprovação de pendência - Abrirá com as opções de aprovação, porém, se não for o aprovador do documento, o sistema valida);
  • Tipo de pendência: é apresentado com as cores na lateral;
  • Transação;
  • Chave do documento (deverá aparecer formatada para cada tipo de documento;
  • Workflow: número do workflow gerado no Fluig. Obs.: Esse campo não deverá aparecer para pendências "Não integradas" e com "Erro de envio";
  • Data de Geração;
  • Data de Aprovação: Somente apresentar para pendências com "Erro de movimentação";
  • Data de Rejeição: Somente apresentar para pendências com "Erro de movimentação";
  • Aprovador;
  • Data de Cancelamento: Somente apresentar para pendências com "Erro de cancelamento";
  • Erro: Situação ocorrido que impossibilitou a integração com o Fluig.

    Quando o usuário usar a opção "Exibir detalhes..." terá acesso as seguintes informações:

    • Re-processado por: Se a pendência já sofreu re-processamento, pelo monitor, esse campo conterá o usuário que fez esse re-processamento;
    • Data/hora re-processamento: Data e hora de re-processamento, cada o documento já tenha sido re-processado;

     

    Importante: Quando é feita a leitura das pendências, caso o monitor identifique que não faz mais sentido integrar com o Fluig, neste caso, ele mesmo faz a eliminação desses registros de erros de integração.

    Essa situação irá ocorrer quando: 

  • Houve a tentativa de integrar com o Fluig a pendência na criação de um documento e gerou um "erro de envio";
  • Antes que essa pendência de "erro de envio"  pudesse ser reprocessada no monitor, houve o cancelamento da pendência, ou seja, há também um "erro de cancelamento" no monitor;
  • Neste caso, a pendência não existe mais no ERP, e por isso não faz sentido enviá-las ao Fluig.

    Existirá uma busca avançada que deverá permitir ao usuário informar:

  • Situação das pendências: Com erro de envio, Com erro de movimentação, Com erro de cancelamento e Não integrada. Obs.: Deverá permitir a seleção de todas as situações simultaneamente, por padrão só não deve vir selecionada a opção de "Não integrada";
  • Transação: Deverá permitir informar uma faixa de número de transação para visualização das pendências. Obs.: Por padrão a faixa deve vir aberta.
  • Código documento: Deverá permitir informar uma faixa de códigos de tipo de documento para visualização das pendências. Obs.: Por padrão a faixa deve vir aberta.
  • Geração: Deverá permitir informar uma faixa de datas de geração das pendências para visualização das mesmas. Obs.: Por padrão a faixa deve vir aberta.
  • Aprovação: Deverá permitir informar uma faixa de datas de aprovação das pendências para visualização das mesmas. Obs.: Por padrão a faixa deve vir aberta.
  • Rejeição: Deverá permitir informar uma faixa de datas de rejeição das pendências para visualização das mesmas. Obs.: Por padrão a faixa deve vir aberta.
  • Aprovador: Deverá permitir informar uma faixa de código de usuários aprovadores das pendências para visualização das mesmas. Obs.: Por padrão a faixa deve vir aberta. 
  • Chave do documento: Caso o usuário tenha informado na faixa de seleção, somente um documento (ou seja, inicial e final iguais), deverá ser possível que ele informe uma chave para esse documento. Neste caso o sistema deverá disponibilizar em tela os campos da chave para que sejam informados (semelhante ao "vá para" do programa MLA0201 - Consulta de Pendências). Com essa informação será possível que o usuário consulte especificamente as pendências de um integração para um determinado documento.
  • Parâmetro "Processa pendências relacionadas": Indica que deve processar pendências relacionadas, mesmo que elas não estejam selecionadas em tela. Ex.: Se o usuário tentar processar uma pendência de "erro de movimentação", e existir uma pendência de "erro de envio", a pendência de "erro de envio" será processada antes. Caso contrário, ocorrerá apresentará uma validação indicando que existem pendências relacionadas não integradas. Obs.: Por padrão o parâmetro deve vir marcado.

    A pesquisa simples deverá permitir a busca por:

    • Transação (busca por igualdade);
    • Chave do documento (busca por "contém");

     

    O usuário terá a opção de ordenar por:

  • Data Geração;
  • Documento;
  • Tipo de pendência;
  • Chave;

    Para integrar as pendências, o usuário terá a opção de realizar a ação individualmente ou em lote, neste caso o comportamento deverá ser o seguinte:

    • O processamento sempre irá ocorrer das pendências mais antigas para as mais recentes, neste caso se houverem duas pendências (uma de envio e outra de aprovação), garantimos que a de "envio" será re-processada antes;
    • Ao processar cada pendência deverá ser feita a seguinte verificação:
      • Quando se trata de uma pendência de movimentação ou cancelamento que está sendo processada:
        • Se o parâmetro "Processa pendências relacionadas" estiver marcado, e houver uma pendência de "erro de envio" referente a mesma pendência do MLA, a pendência de erro de envio deve ser re-processada antes da pendência selecionada;
        • Se o parâmetro "Processa pendências relacionadas" não estiver marcado, e houver uma pendência de "erro de envio" referente a mesma pendência do MLA, deverá ser apresentada uma mensagem e a pendência não deve ser re-processada: Existem pendências relacionadas (de envio) ainda não integradas. Help: Realize a integração da pendência de envio ou marque o parâmetro "Processa pendências relacionadas".

     

      • Caso a pendência seja processada com sucesso, ela deve ser eliminada (e não aparece mais no monitor), e o número do workflow é armazenado, caso ainda não exista.
      • Se houver algum erro de re-processamento, deve-se atualizar o registro de pendência de erro com o erro ocorrido, usuário que fez o re-processamento e data/hora de re-processamento.
      • No final do processamento, apresentar a mensagem: "Re-processamento finalizado, pendências não integradas permanecem no monitor".

    Informações técnicas sobre monitor de pendências de integração com o Fluig

      • Criar uma BO para a nova tabela criada, com os métodos padrões;
      • Para criação dos erros de envio, movimentação ou cancelamento, deverá ser feito através da BO;
        • Criar uma procedure na BO (pi-cria-erro-processamento), que deverá criar um erro baseado na mla-doc-pend-aprov:
          • Parâmetros:
            • Número da transação;
            • Tipo de erro: 1 – envio, 2 – movimentação, 3 – cancelamento;
            • Erro: erro ocorrido no processamento
            • Reprocessamento: (indica se trata-se de um reprocessamento);
          • Para gravação na tabela xxxxxxxxx:
            • Localizar a mla-doc-pend-aprov pelo número da transação e gravar as informações conforme abaixo;
            • Número da transação: mla-doc-pend-aprov.nr-trans
            • Chave: mla-doc-pend-aprov.chave-doc
            • Workflow: mla-doc-pend-aprov.xxxxxxxxxxx
            • Geração: mla-doc-pend-aprov.dt-geracao
            • Aprovação: mla-doc-pend-aprov.dt-aprova (Somente gravar se for uma movimentação)
            • Rejeição: mla-doc-pend-aprov.dt-rejeita (Somente gravar se for uma movimentação)
            • Cancelamento: data atual (Somente gravar se for um cancelamento)
            • Aprovador: mla-doc-pend-aprov.cod-usuar
            • Erro: erro ocorrido no processo
            • Reprocessado por: usuário logado (Somente passar se for re-processamento)
            • Data/hora re-processamento: data e hora atual (Somente passar se for re-processamento)
      • Criar uma API (ccapi360.p) para busca de dados semelhante a ccapi354.p (procedure REST_POST_getListRequests), que deverá:
        • Ler os registros da tabela xxxxxxxxxxx, conforme os parâmetros selecionados/informados em tela;
        • Se o parâmetro “Não integrada” estiver marcado, será necessário, ler os registros da mla-doc-pend-aprov, que estão pendentes (ind-situacao = 1) e que não possuem código de workflow do Fluig (xxxxxxx = “”). Considerar também os parâmetros de tela para essa leitura. Neste caso as informações virão da mla-doc-pend-aprov. Como as informações a serem apresentadas no monitor podem vir de duas tabelas diferentes, deverá ser retornada uma temp-table com essas informações;
      • Para o re-processamento, criar uma API bem isolada (ccapi361.p) que possa ser utilizada, por exemplo por um programa para re-processamento em batch;
      • Os processamentos de criação, envio de aprovação/rejeição e cancelamento devem ser feitos conforme já citado nos tópicos acima, só será necessário criar o tratamento para a questão de re-processamentos (gravando os campos de usuário e data de reprocessamento).

     

    11) Formulários mobile

    xxxxxxxxxxxxxxxxx

    12) Réplica de parametrizações entre empresas e estabelecimentos

    Como foram inseridos campos novos no cadastro de parâmetros MLA0000 – Parâmetros da Aprovação e MLA0101 – Tipos de Documentos será necessário que esses campos sejam previstos no programa de réplica de parametrizações entre empresas e estabelecimentos (MLA0171).

     

    Para o parâmetro “Parâmetros da aprovação”, deverá ser previsto:

    • A exportação/importação e réplica dos campos: Integração Fluig (Label: Integ. Fluig), Prazo Conclusão (Label: Prazo Conc.), Horas de Conclusão (Label: Horas Conc.), Código de rejeição padrão (Label: Cod. Rej. Padrão). Obs.: No arquivos, inserir os novos campos como as últimas colunas.

    Para o parâmetro de “Tipos de documentos”, deverá ser previsto:

    A exportação/importação e réplica dos campos: Integração Fluig (Label: Integ. Fluig), Processo, Prazo Conclusão (Label: Prazo Conc.), Horas de Conclusão (Label: Horas Conc.), Prazo da prioridade Baixa (Label: Prazo prior. Baixa), Prazo da prioridade Média (Label: Prazo prior. Média), Prazo da prioridade Alta (Label: Prazo prior. Alta), Prazo da prioridade Muito Alta (Label: Prazo prior. Muito Alta). Obs.: No arquivos, inserir os novos campos como as últimas colunas.

    Informações técnicas sobre Réplica de parametrizações entre empresas e estabelecimentos:

    • Parâmetros da aprovação, campos: mla-param-aprov.xxxxxxxxxxxx, mla-param-aprov.xxxxxxxxxxxx, mla-param-aprov.xxxxxxxxxxxx, mla-param-aprov.xxxxxxxxxxxx.
    • Tipos de documentos, campos: mla-tipo-doc-aprov.xxxxxxxxxxx, mla-tipo-doc-aprov.xxxxxxxxxxx, mla-tipo-doc-aprov.xxxxxxxxxxx, mla-tipo-doc-aprov.xxxxxxxxxxx, mla-tipo-doc-aprov.xxxxxxxxxxx, mla-tipo-doc-aprov.xxxxxxxxxxx, mla-tipo-doc-aprov.xxxxxxxxxxx, mla-tipo-doc-aprov.xxxxxxxxxxx.
    • Lembrar de tratar os log’s de alteração dos registros (inclusão, alteração e eliminação).

    - Criação de campos e tabela

    - Ver questão das notificações

    - Informações genéricas para pendência e histórico 

    - Questão do histórico --> gravar nova tabela de histórico

    Opcional

    Protótipo de Tela

     Apresentados juntamente com as regras de negócio.

     

    Opcional

    Fluxo do Processo

     Apresentados juntamente com as regras de negócio.

    A partir do momento que o Workflow da aprovação de um documento é inicializado no Fluig, todo o processo de análise, aprovação e reprovação de pendências poderá ser executado pelo Fluig.

    Sobre o fluxo e suas interações com o ERP:

    Image Added


     
    • A movimentação (Criação ou alteração Solicitação de compra, pedido de compra, etc.) será realizada no ERP, como é feito atualmente (somente a pendência de aprovação que irá para o Fluig);
    • Caso o documento deva passar pelo processo de aprovações do MLA no Fluig, ao iniciar o Workflow o ERP vai enviar as informações para geração da pendência de aprovação. 
    • Deverão ser enviadas juntamente com as informações da atividade a ser gerada, o número da transação e a chave o documento que está sofrendo aprovação, para que sejam carregadas as informações do documento no formulário vinculado ao workflow.
    • Caso ocorram erros na integração com o Fluig, deverá ser gerado um registro na tabela de pendências de integração com o Fluig, nesta tabela ficará armazenada as informações da pendência que não foi enviada, os erros que ocorreram e o processo que estava sendo realizado (envio, aprovação/reprovação, cancelamento). Através do monitor de pendências, detalhado posteriormente, será possível reenviar essas pendências.
    • Ao realizar a ação de aprovar ou reprovar um documento, deverão ser feitas todas as validações do ERP referente a permissões de aprovação do usuário em questão, se estiver tudo OK, o ERP é atualizado, e o workflow é finalizado. Para essa rotina, será utilizada a mesma API de aprovação que é utilizada para o Portal do MLA.
    • Quando for uma reprovação, o usuário terá que informar o código de rejeição conforme as regras do ERP;
    • Toda vez que ocorrer uma aprovação ou reprovação, o status do documento deverá ser atualizado no ERP, e o workflow será encerrado. Obs.: Se houver mais aprovações a serem realizadas serão gerados novos Workflows.


    Informações técnicas sobre Análise, aprovação e reprovação de pendências, diretamente no Fluig:
     
    • Para realizar a aprovação de aprovação ou rejeição pelo Portal, utilizar a mesma API já utilizada para o Portal do MLA a lap/mla0007.p (procedure aprovaPendPortal);
    • Para a busca dos códigos de rejeição utilizar a lap/mla0007.p (procedute getCodRejeita).

       

    5) Sincronização de atualização de pendências (alteração/eliminação/aprovação) entre MLA e Fluig


    Cada vez que ocorrer uma alteração de documento no ERP, todas as pendências de aprovação são eliminadas no ERP e re-geradas. Dessa forma, será necessário cancelar a solicitação no Fluig, e iniciar um novo processo. Ao cancelar o Workflow, deverá ser enviado o seguinte conteúdo: “Workflow cancelado devido a alterações no documento que originou a pendência”. O Fluxo desse processo é apresentado na sequência.

    Image Added

     

    Se um documento for eliminado no ERP, e estiver integrado com o Fluig, será necessário cancelar a solicitação de aprovação no Fluig também. Fluxo é apresentado na sequência.

    Image Added

     Ao cancelar o Workflow, deverá ser enviado o seguinte conteúdo: “Workflow cancelado devido a eliminação do documento que originou a pendência”. 

     

    No caso de cancelamento através do ERP, pode ocorrer a situação de que a pendência não foi integrada inicialmente com o Fluig. Se identificada essa situação, o sistema deverá:

     

    • Eliminar a pendência de erro de "envio", pois neste caso que a pendência já foi cancelada, não faz sentido mais integrá-la com o Fluig.

     

    Se um documento for aprovado ou reprovado pelo ERP, o Fluig deverá ser atualizado também, conforme fluxo apresentado na sequência.

    Image Added

    No caso de aprovação/rejeição através do ERP, pode ocorrer a situação de que a pendência não foi integrada inicialmente com o Fluig. Se identificada essa situação, o sistema deverá:

    • Tentar enviar primeiramente a pendência com "erro de envio":
      • Se for integrada com sucesso --> Integrar a aprovação/rejeição;
      • Se não for integrada com sucesso --> Apenas criar um registro de erro, com o erro "Pendência não está integrada com o Fluig".

     

    Ao executar o programa MLA0170 (Substituir aprovador/Copiar permissões) no ERP, se a pendência a ser alterada está integrada com o Fluig, deve-se enviar uma integração para troca de usuário responsável no Fluig. Se ocorrer erro neste processo, no monitor de pendências esse tipo de integração, aparecerá também como “movimentação”.

     

    Informações técnicas sobre Sincronização de atualização de pendências (alteração/elimininação/aprovação) entre MLA e Fluig:

    • Para realizar os cancelamentos de workflow no Fluig, será necessário criar uma procedure (cancelProcessFluig) na API lap/mlaapi014.p criada anteriormente;
    • Ela deverá ser chamada de dentro da mlaapi001.p (na procedure pi-elimina-documentos-pendentes);
    • A procedure deverá ter os seguintes parâmetros: Número da transação (INPUT), tipo da transação (INPUT) e RowErrors (OUTPUT);
    • Ela deverá localizar o registro da "mla-doc-pend-aprov" com o número da transação recebido por parâmetro - Validar se existe, caso contrário inserir um erro na RowErrors e retornar;
    • Verificar se o estabelecimento/empresa da pendência está configurado para integrar com o Fluig. Se não estiver, retornar sem executar mais nenhuma ação;
    • Verificar se o documento está configurado para integrar com o Fluig. Se não estiver, retornar sem executar mais nenhuma ação;
    • A API para integração com o Fluig a ser utilizada neste caso será a utp/ut-integra-ecm.p (chamar a procedure cancelInstance) - Conforme o tipo de transação (se for modificação ou eliminação - enviar o comentário correto para cancelamento do WF).
    • Caso ocorra algum erro, deve-se gerar um registro de erro de cancelamento na tabela mla-docto-pend-fluig. Mais detalhes nos tópicos a seguir.
    • Com relação aos erros retornados da procedure nova, a mlaapi001.p após essa chamada, deve verificar se há algum erro na RowErrors, se houver, criar apenas um registro (de warning) na tt-erro, que será retornada pela API com o seguinte conteúdo: "Não foi possível integrar o cancelamento da pendência de aprovação com o Fluig", help: "Para mais informações sobre os erros ocorridos e re-processamento, consulte o programa Pendências de integração MLA x Fluig (html.mla0172)";
    • Para a sincronização das aprovações/rejeições, será necessário criar uma procedure (changeStateFluig) na API lap/mlaapi014.p criada anteriormente;
    • Ela deverá ser chamada de dentro da inbo/boin767c.p (na procedure setAnalysPend);
    • A procedure deverá ter os seguintes parâmetros: Número da transação (INPUT) e RowErrors (OUTPUT);
    • Ela deverá localizar o registro da "mla-doc-pend-aprov" com o número da transação recebido por parâmetro - Validar se existe, caso contrário inserir um erro na RowErrors e retornar;
    • Verificar se o estabelecimento/empresa da pendência está configurado para integrar com o Fluig. Se não estiver, retornar sem executar mais nenhuma ação;
    • Verificar se o documento está configurado para integrar com o Fluig. Se não estiver, retornar sem executar mais nenhuma ação;
    • A API para integração com o Fluig a ser utilizada neste caso será a utp/ut-integra-ecm.p (chamar a procedure saveAndSendTaskECM);
    • O aprovador para quem será "enviado" o workflow, será o mla-doc-pend-aprov.cod-usuar (neste caso, verificar se para a API do fluig deve ser enviado o código ou e-mail - no caso do Identity);
    • Para movimentar o Workflow para a atividade correta se basear na ação realizada. Aprovação: mla-doc-pend-aprov.ind-situacao = 2 / Rejeição: mla-doc-pend-aprov.ind-situacao = 3;
    • Para o comentário de aprovação/rejeição, enviar o campo mla-doc-pend-aprov.narrativa-apr ou mla-doc-pend-aprov.narrativa-rej conforme o que ocorreu;
    • Caso ocorra algum erro, deve-se gerar um registro de erro de movimentação na tabela mla-docto-pend-fluig. Mais detalhes nos tópicos a seguir.
    • Com relação aos erros que puderem ser retornados para a boin767c.p, se houver algum registro na RowErrors, criar um registro (de warning) na RowErrors com o seguinte conteúdo: "Não foi possível integrar a aprovação/rejeição da pendência com o Fluig", help: "Para mais informações sobre os erros ocorridos e re-processamento, consulte o programa Pendências de integração MLA x Fluig (html.mla0172)" (Como a mensagem é basicamente a mesma de cancelamento, criar uma única, com parâmetros).
    • Ainda será necessário, no caso de aprovações/rejeições, gerar pendências para os próximos aprovadores (se houver). Neste caso, deverá ser criado um novo workflow no Fluig, nos mesmos pontos onde hoje há os pontos de epc (são dois locais), com o nome de "aprovacao-pendente".
    • Sobre a alteração a ser realizada referente a troca de aprovador:
       
      • Deve ser na boin767.p (procedure piSubstituiAprovador). A integração com o Fluig, deve ser a última coisa a ser realizada dentro do FOR EACH tt-mla-doc-pend-aprov.
      • Para integração com o Fluig, deve-se utilizar o método saveAndSendTaskECM da ut-integra-ecm.p, para isso criar uma nova procedure na API de integração com o Fluig que foi criada.
      • Para saber se deve enviar o troca para o Fluig, verificar se a integração está ativa e se a pendência possui número de processo.
      • Se ocorrerem erros na mudança do aprovador, deve-se gravar na tabela de erro de integração com a situação 4 (que será apresentada juntamente com os erros de movimentação.


    6) Re-análise de documentos 

    No MLA é possível que os aprovadores realizem a re-análise de documentos “Rejeitados”, fazendo uma "re-aprovação". No Fluig não é possível que o usuário faça uma análise de documentos “Rejeitados”, pois o Workflow já estará finalizado. Por isso, quando a pendência de aprovação estiver integrada com o Fluig, no ERP serão bloqueadas as ações de “Reaprovação”, ou seja, deverá ser apresentada a mensagem "Reaprovação não permitida para pendências integradas com o Fluig".


    Informações técnicas sobre Re-análise de documentos:

    • A validação citada deverá ser inserida na inbo/boin767c.p (procedure setAssignPend, na parte de re-aprovação - neste caso criar um erro na RowErrors e retorno "NOK");

    7) Usuário mestre

     No Fluig os usuários mestres serão considerados os gestores do processo. Eles deverão ser definidos através de um mecanismo de atribuição customizado, que irá buscar do ERP quais são esses usuários para que possam ser atribuídos como gestores de processo no Fluig. 

    Obs.: lembrando que eles serão buscados no momento que o Workflow é criado, se o usuário for tornado mestre e já existirem Workflows em andamento, ele somente será mestre/gestor, dos próximos workflows criados.


    Informações técnicas sobre Usuário mestre:

    • Criar uma procedure (getGestoresProcesso) na lap/mlaapi014.p para retornar os usuários mestres.
    • A tabela é a mla-usuar-aprov, e os usuários mestre são representados pelo campo: mla-usuar-aprov.usuar-mestre.


    8) Aprovadores alternativos

    Os aprovadores alternativos do MLA não serão integrados com o Fluig neste momento. Dessa forma, se for necessário utilizá-los no Fluig, eles devem ser configurados manualmente, como usuários substitutos. No momento de realizar as aprovações o Fluig fará as validações para saber se o usuário é um aprovador alternativo válido.


    9) Bloqueio de cancelamento de workflow

     Será necessário criar um bloqueio de cancelamento do Workflow, pois pendências de aprovação não podem ser “canceladas”, somente se o documento for eliminado, e neste caso o ERP que fará o cancelamento. Neste caso apresentar uma mensagem "Workflow não pode ser cancelado manualmente".

     

    10) Monitor de pendências de integração com o Fluig

     

    Para que não haja a necessidade de bloquear a inclusão de documentos no ERP, caso ocorra algum erro de integração com o Fluig, ou perda de conexão, a ideia é que o processo não seja interrompido, para não causar transtornos nas atividades do cliente. Dessa forma, o documento será incluso normalmente no ERP, apenas alertando que não houve a integração com o Fluig. Será mantido um registro desses erros de integração para que possam ser re-enviados ao Fluig posteriormente.

    Os registros de problemas de integração, poderão ser de tipos diferentes:

    • Erro de envio (integração inicial);
    • Erro de movimentação (aprovações/reprovações e troca de aprovador);
    • Erro de cancelamento (eliminações de pendência).

    O monitor deverá ser desenvolvido conforme protótipo apresentado na sequência:

    Image Added

    Ele apresentará além dos três tipos de erros citados acima, mais uma situação, que serão pendências não integradas, ou seja, por exemplo, ao implantar os workflows do MLA, se já haviam pendências geradas no módulo, elas poderão ser integradas através dessa opção. Por padrão o programa virá somente as três opções de "erro" marcadas, a opção de "Não integrada" deve vir desmarcada.

    As informações que serão apresentadas por esse programa serão as seguintes:

    • Tipo de documento e descrição (Será o "título" do registro - Ao clicar nele deverá abrir a tela de aprovação de pendência - Abrirá com as opções de aprovação, porém, se não for o aprovador do documento, o sistema valida);
    • Tipo de pendência: é apresentado com as cores na lateral;
    • Transação;
    • Chave do documento (deverá aparecer formatada para cada tipo de documento;
    • Workflow: número do workflow gerado no Fluig. Obs.: Esse campo não deverá aparecer para pendências "Não integradas" e com "Erro de envio";
    • Data de Geração;
    • Data de Aprovação: Somente apresentar para pendências com "Erro de movimentação";
    • Data de Rejeição: Somente apresentar para pendências com "Erro de movimentação";
    • Aprovador;
    • Data de Cancelamento: Somente apresentar para pendências com "Erro de cancelamento";
    • Erro: Situação ocorrido que impossibilitou a integração com o Fluig.

    Quando o usuário usar a opção "Exibir detalhes..." terá acesso as seguintes informações:

    • Re-processado por: Se a pendência já sofreu re-processamento, pelo monitor, esse campo conterá o usuário que fez esse re-processamento;
    • Data/hora re-processamento: Data e hora de re-processamento, cada o documento já tenha sido re-processado;

     

    Importante: Quando é feita a leitura das pendências, caso o monitor identifique que não faz mais sentido integrar determinadas pendências com o Fluig, neste caso, ele mesmo faz a eliminação desses registros de erros de integração.


    Essa situação irá ocorrer quando: 

    • Houve a tentativa de integrar com o Fluig a pendência na criação de um documento e gerou um "erro de envio";
    • Antes que essa pendência de "erro de envio"  pudesse ser reprocessada no monitor, houve o cancelamento da pendência, ou seja, há também um "erro de cancelamento" no monitor;
    • Neste caso, a pendência não existe mais no ERP, e por isso não faz sentido enviá-las ao Fluig.


    Existirá uma busca avançada que deverá permitir ao usuário informar:

    • Situação das pendências: Com erro de envio, Com erro de movimentação, Com erro de cancelamento e Não integrada. Obs.: O usuário deverá optar por visualizar em tela pendências com erro (podendo selecionar se deseja ver as com erro e envio, e/ou de movimentação e/ou de cancelamento) ou se visualizar pendências não integradas.
    • Transação: Deverá permitir informar uma faixa de número de transação para visualização das pendências. Obs.: Por padrão a faixa deve vir aberta.
    • Código documento: Deverá permitir informar uma faixa de códigos de tipo de documento para visualização das pendências. Obs.: Por padrão a faixa deve vir aberta.
    • Geração: Deverá permitir informar uma faixa de datas de geração das pendências para visualização das mesmas. Obs.: Por padrão a faixa deve vir aberta.
    • Aprovação: Deverá permitir informar uma faixa de datas de aprovação das pendências para visualização das mesmas. Obs.: Por padrão a faixa deve vir aberta.
    • Rejeição: Deverá permitir informar uma faixa de datas de rejeição das pendências para visualização das mesmas. Obs.: Por padrão a faixa deve vir aberta.
    • Aprovador: Deverá permitir informar uma faixa de código de usuários aprovadores das pendências para visualização das mesmas. Obs.: Por padrão a faixa deve vir aberta. 
    • Chave do documento: Caso o usuário tenha informado na faixa de seleção, somente um documento (ou seja, inicial e final iguais), deverá ser possível que ele informe uma chave para esse documento. Neste caso o sistema deverá disponibilizar em tela os campos da chave para que sejam informados (semelhante ao "vá para" do programa MLA0201 - Consulta de Pendências). Com essa informação será possível que o usuário consulte especificamente as pendências de um integração para um determinado documento.

    A pesquisa simples deverá permitir a busca por:

    • Transação (busca por igualdade);
    • Chave do documento (busca por "contém");

     

    O usuário terá a opção de ordenar por:

    • Data Geração;
    • Documento;
    • Tipo de pendência;
    • Chave;

    Para integrar as pendências, o usuário terá a opção de realizar a ação individualmente ou em lote, neste caso o comportamento deverá ser o seguinte:

    • O processamento sempre irá ocorrer das pendências mais antigas para as mais recentes, neste caso se houverem duas pendências (uma de envio e outra de aprovação), garantimos que a de "envio" será re-processada antes;
    • Ao processar cada pendência deverá ser feita a seguinte verificação:
      • Se existirem outros erros para o mesma transação, deverá ser re-processa também, sempre em ordem da menor sequência para a maior.
      • Caso a pendência seja processada com sucesso, ela deve ser eliminada (e não aparece mais no monitor), e o número do workflow é armazenado, caso ainda não exista.
      • Se houver algum erro de re-processamento, deve-se atualizar o registro de pendência de erro com o erro ocorrido, usuário que fez o re-processamento e data/hora de re-processamento.
      • No final do processamento, apresentar a mensagem: "Re-processamento finalizado, pendências não integradas permanecem no monitor".


    Informações técnicas sobre monitor de pendências de integração com o Fluig

      • Criar uma BO para a nova tabela criada, com os métodos padrões;
      • Para criação dos erros de envio, movimentação ou cancelamento, deverá ser feito através da BO;
        • Criar uma procedure na BO (pi-cria-erro-processamento), que deverá criar um erro baseado na mla-doc-pend-aprov:
          • Parâmetros:
            • Número da transação;
            • Tipo de erro: 1 – envio, 2 – movimentação, 3 – cancelamento por alteração, 4 - cancelamento por eliminação, 5 - Troca de aprovador (Usado apenas internamente, pois em tela é tratado como tipo 2);
            • Erro: erro ocorrido no processamento
            • Reprocessamento: (indica se trata-se de um reprocessamento);
          • Para gravação na tabela mla-docto-pend-fluig:
            • Localizar a mla-doc-pend-aprov pelo número da transação e gravar as informações conforme abaixo;
            • Número da transação: mla-doc-pend-aprov.nr-trans
            • Chave: mla-doc-pend-aprov.chave-doc
            • Workflow: mla-doc-pend-aprov.cdn-workflow-fluig
            • Geração: mla-doc-pend-aprov.dt-geracao
            • Aprovação: mla-doc-pend-aprov.dt-aprova (Somente gravar se for uma movimentação)
            • Rejeição: mla-doc-pend-aprov.dt-rejeita (Somente gravar se for uma movimentação)
            • Cancelamento: data atual (Somente gravar se for um cancelamento)
            • Aprovador: mla-doc-pend-aprov.cod-usuar
            • Erro: erro ocorrido no processo
            • Reprocessado por: usuário logado (Somente passar se for re-processamento)
            • Data/hora re-processamento: data e hora atual (Somente passar se for re-processamento)
      • Criar uma API (mlaapi016.p) para busca de dados semelhante a ccapi354.p (procedure REST_POST_getListRequests), que deverá:
        • Ler os registros da tabela mla-docto-pend-fluig, conforme os parâmetros selecionados/informados em tela;
        • Se o parâmetro “Não integrada” estiver marcado, será necessário, ler os registros da mla-doc-pend-aprov, que estão pendentes (ind-situacao = 1) e que não possuem código de workflow do Fluig (cdn-workflow-fluig = “”). Considerar também os parâmetros de tela para essa leitura. Neste caso as informações virão da mla-doc-pend-aprov. Como as informações a serem apresentadas no monitor podem vir de duas tabelas diferentes, deverá ser retornada uma temp-table com essas informações;
      • Para o re-processamento, criar uma API bem isolada (mlaapi017.p) que possa ser utilizada, por exemplo por um programa para re-processamento em batch;
      • Os processamentos de criação, envio de aprovação/rejeição e cancelamento devem ser feitos conforme já citado nos tópicos acima, só será necessário criar o tratamento para a questão de re-processamentos (gravando os campos de usuário e data de reprocessamento).

     

    11) Formulários mobile

    Os formulários mobile, possuirão menos campos que os formulários padrões a serem executados em desktop, em função das restrições existentes.

    Para a solicitação de compra/ requisição de estoque, serão apresentados os seguintes campos:

    Cabeçalho:

    • Número da solicitação/requisição
    • Estabelecimento (código e descrição)
    • Requisitante (código e nome)
    • Valor
    • Opção "Ver narrativa": deve mostrar a narrativa 

    Itens:

    • Sequência e Código do item
      • Serão apresentados para cada item da solicitação como agrupador.
      • Ao abrir o agrupador deve ser mostrado:
        • Descrição do item
        • UM
        • Quantidade requisitada
        • Quantidade atender
        • Valor Unitário
        • Valor Total
        • Data entrega
        • Conta e Centro de Custo
        • Opção "Ver narrativa": deve mostrar a narrativa o item da solicitação.

    Para o pedido de compra, serão apresentados os seguintes campos:

     

    Cabeçalho:

    • Número do pedido;
    • Fornecedor (código e nome abreviado)
    • Estabelecimento (código e descrição)
    • Responsável (código e nome)
    • Condição de pagamento (código e descrição)
    • Valor
    • Opção "Ver detalhes": deve mostrar a Razão social do fornecedor, Natureza do pedido, Frete, Transportador, Via de Transporte e Comentários.

     

    Itens:

    • Ordem e código do item
      • Serão apresentados para cada ordem do pedido como agrupador.
      • Ao abrir o agrupador deve ser mostrado:
        • Descrição do item
        • UM
        • Data Entrega
        • Quantidade requisitada
        • Quantidade Saldo
        • Preço Unitário
        • Valor Total
        • Opção "Ver Detalhe Ordem": deve mostrar Situação da ordem, Estabelecimento (Código e descrição), requisitante (código e nome), comprador (código e nome), Ordem de investimento, ordem de serviço, conta, centro de custo e narrativa.
        • Opção "Ver Detalhe Entregas": deve mostrar Parcela, Data Entrega, UM, Quantidade, Quantidade Saldo, Quantidade Recebida, Quantidade Devolvida.
        • Opção "Ver Detalhe Cotação": deve mostrar (somente da cotação aprovada): Moeda, UM Fornecedor, Contato, Preço Fornecedor, IPI Incluso, % IPI, Valor IPI, %ICMS, %Desconto, Valor Desconto, Frete incluso, Valor do frete, Enc. Financeiros, Taxa Financeira, Dias Taxa, Preço Líquido, Preço Total e Narrativa.
        • Opção "Ver Última Compra": Fornecedor (código e nome abrev), Pedido, Data, Natureza, UM, Moeda (código e descrição), Preço Unit Fornec, Quantidade, % IPI, % ICMS.
        • Opção "Ver Alterações deve mostrar (Ordem / Parcela): Data Alteração, Hora, Usuário, Ordem, Parcela, Quantidade, Nova Quantidade, Preço, Novo Preço, Data Entrega, Nova Data, Cond. Pagamento, Nova cond pag, Observação, Comentários.


    Informações técnicas sobre formulários Mobile:

    • Para apresentação dessas informações no mobile, a ideia é fazer a leitura do histórico de aprovação, e em um API intermediária filtrar para retornar somente o que for preciso no momento;
    • Para a questão dos campos nas opções de "Detalhes", criá-los dinamicamente para não ficar muito pesado o carregamento.

    12) Réplica de parametrizações entre empresas e estabelecimentos

    Como foram inseridos campos novos no cadastro de parâmetros MLA0000 – Parâmetros da Aprovação e MLA0101 – Tipos de Documentos será necessário que esses campos sejam previstos no programa de réplica de parametrizações entre empresas e estabelecimentos (MLA0171).

     

    Para o parâmetro “Parâmetros da aprovação”, deverá ser previsto:

    • A exportação/importação e réplica dos campos: Integração Fluig (Label: Integ. Fluig), Prazo Conclusão (Label: Prazo Conc.), Horas de Conclusão (Label: Horas Conc.), Código de rejeição padrão (Label: Cod. Rej. Padrão). Obs.: No arquivos, inserir os novos campos como as últimas colunas.

    Para o parâmetro de “Tipos de documentos”, deverá ser previsto:

    • A exportação/importação e réplica dos campos: Integração Fluig (Label: Integ. Fluig), Processo, Prazo Conclusão (Label: Prazo Conc.), Horas de Conclusão (Label: Horas Conc.), Prazo da prioridade Baixa (Label: Prazo prior. Baixa), Prazo da prioridade Média (Label: Prazo prior. Média), Prazo da prioridade Alta (Label: Prazo prior. Alta), Prazo da prioridade Muito Alta (Label: Prazo prior. Muito Alta). Obs.: No arquivos, inserir os novos campos como as últimas colunas.

    Informações técnicas sobre Réplica de parametrizações entre empresas e estabelecimentos:

    • Parâmetros da aprovação, campos: mla-param-aprov.log-integr-fluig, mla-param-aprov.log-praz-conclus, mla-param-aprov.hra-execucao, mla-param-aprov.cdn-rej.
    • Tipos de documentos, campos: mla-tipo-doc-aprov.log-integr-fluig, mla-tipo-doc-aprov.log-praz-conclus, mla-tipo-doc-aprov.cod-proces, mla-tipo-doc-aprov.hra-execucao, mla-tipo-doc-aprov.hra-exec-priorid-baixa, mla-tipo-doc-aprov.hra-exec-priorid-media, mla-tipo-doc-aprov.hra-exec-priorid-alta, mla-tipo-doc-aprov.hra-exec-prioridad-altssmo.
    • Lembrar de tratar os log’s de alteração dos registros (inclusão, alteração e eliminação).


    13) Programa para limpeza de histórico de pendências de aprovação (mla0173)

    Como serão gerados os históricos dos documentos que geraram pendências no MLA para toda pendência integrada com o Fluig, esse programa deve permitir a eliminação desses registros para que não haja um volume muito grande de informações na base de dados.

    O programa deverá ser no estilo relatório/execução, com as seguintes características:

     

    Seleção (faixas de):

    • Transação;
    • Geração;
    • Processo Fluig;
    • Documento; (código)

    Parâmetro:

    • Deverá possui um parâmetro para que o usuário informe a partir de um período de existência das pendências na base que devem ser eliminadas.
      Exemplo: Eliminar histórico com mais de XXXXX dias
    • Quando esse parâmetro for marcado, deve-se desabilitar a faixa de seleção de “Geração”, pois ele estará sobrepondo essa informação.
    • O objetivo desse parâmetro é facilitar a inclusão do programa em rotinas RPW, onde o usuário não precisa de preocupar com a data informada, o programa considerará o período com base na data de execução.

    Execução:

    • Somente serão considerados os registros de pendência de aprovação já aprovados/rejeitados, ou seja, não será possível eliminar o histórico de um registro ainda pendente de aprovação;
    • O relatório deverá apenas apresentar a lista de histórico eliminado com as seguintes informações: Transação, chave documento, data geração e o número do processo no Fluig.
    • Se o usuário eliminar o histórico de um documento que ainda possui WF no Fluig, o que vai ocorrer, é que ao consultá-lo não será possível visualizar as informações.

    Informações técnicas sobre programa para limpeza de histórico de pendências de aprovação:

    • Para cada registro da tabela de histórico, deve-se verificar se a pendência já  está aprovada/rejeitada: mla-doc-pend-aprov.ind-situacao <> 1;

     

    Opcional

    Protótipo de Tela

     Apresentados juntamente com as regras de negócio.

     

    Opcional

    Fluxo do Processo

     Apresentados juntamente com as regras de negócio.

    Opcional

    Dicionário de Dados

    Campos novos em tabelas já existentes:

    Tabela

    mla-param-aprov

    mla-param-aprovmla-param-aprovmla-param-aprovmla-doc-pend-aprov
    Campolog-integr-fluiglog-praz-conclushra-execucao

    cdn-rej

    cdn-workflow-fluig

    Tipo

    Logical

    LogicalCharacterIntegerInteger

    Formato

    Sim/Não

    Sim/Nãox(6)>9->>>>>>>>>9

    Valor Inicial

    no

    no 00

    Mandatório

    Sim (  ) Não (x )

    Sim (  ) Não (x )Sim (  ) Não (x )Sim (  ) Não (x )Sim (  ) Não (x )

    Descrição

    Integra Fluig

    Prazo ConclusãoHoras ConclusãoCódigo Rejeição PadrãoWorkflow Fluig
    Label colunaInteg FluigPrazo ConcHrs ConcCod RejWF Fluig

    Help de Campo

    Indica que o estabelecimento possui integração com o Fluig

    Indica a utilização de prazo de conclusão de atividade nos workflows do FluigIndica a quantidade de horas que o aprovador tem para concluir a aprovaçãoRepresenta o código de rejeição padrão (utilizado na aprovação por lote no Fluig)Número do Workflow no Fluig referente a pendência

      

    Tabela

    mla-tipo-doc-aprov

    mla-tipo-doc-aprovmla-tipo-doc-aprovmla-tipo-doc-aprov
    Campolog-integr-fluigcod-proceslog-praz-conclushra-execucao

    Tipo

    Logical

    CharacterLogicalCharacter

    Formato

    Sim/Não

    x(20)Sim/Nãox(6)

    Valor Inicial

    no

     no 

    Mandatório

    Sim (  ) Não (x )

    Sim (  ) Não (x )Sim (  ) Não (x )Sim (  ) Não (x )

    Descrição

    Integra Fluig

    ProcessoPrazo ConclusãoHoras Conclusão
    Label colunaInteg FluigProcessoPrazo ConcHrs Conc

    Help de Campo

    Indica que o documento possui integração com o Fluig

    Código do processo workflow (Fluig) referente ao documentoIndica a utilização de prazo de conclusão de atividade nos workflows do FluigIndica a quantidade de horas que o aprovador tem para concluir a aprovação

      

    Tabela

    mla-tipo-doc-aprovmla-tipo-doc-aprovmla-tipo-doc-aprovmla-tipo-doc-aprov
    Campohra-exec-priorid-baixahra-exec-priorid-mediahra-exec-priorid-altahra-exec-prioridad-altssmo

    Tipo

    CharacterCharacterCharacterCharacter

    Formato

    x(6)x(6)x(6)x(6)

    Valor Inicial

        

    Mandatório

    Sim (  ) Não (x )Sim (  ) Não (x )Sim (  ) Não (x )Sim (  ) Não (x )

    Descrição

    Horas Conclusão Prioridade BaixaHoras Conclusão Prioridade MédiaHoras Conclusão Prioridade AltaHoras Conclusão Prioridade Muito Alta
    Label colunaHrs Conc BaixaHrs Conc MédiaHrs Conc AltaHras Conc M. Alta

    Help de Campo

    Indica a quantidade de horas que o aprovador tem para concluir a aprovação de prioridade baixaIndica a quantidade de horas que o aprovador tem para concluir a aprovação de prioridade médiaIndica a quantidade de horas que o aprovador tem para concluir a aprovação de prioridade altaIndica a quantidade de horas que o aprovador tem para concluir a aprovação de prioridade muito alta

      

    Tabelas novas:

    Obs.: Lembrar de gerar e efetivar as triggers das tabelas novas.

    Tabela

    mla-docto-pend-aprovac-det

    Banco

    movind

    Descrição

    Detalhes da pendência de aprovação

    Índice

    Chave

    Tipo

    mldctpna_id2

    nr-trans, cdn-tip-det, cdn-seq

    Primário e único
    mldctpna_ix2nr-trans, cdn-tip-detSimples

    Campo

    cdn-seq

    nr-transcdn-tip-detdes-det-pend

    Tipo

    Integer

    IntegerIntegerCharacter

    Formato

    >>>>>>>>9

    >>>,>>>,>>9>>9x(2000)

    Valor Inicial

    1

    01 

    Mandatório

    Sim (X) Não (  )

    Sim (X) Não (  )Sim (X) Não (  )Sim (X) Não ( )

    Descrição

    Sequência

    TransaçãoTipo DetalheDetalhe da pendência

    Label Coluna

    Seq

    TransaçãoTip DetDetalhe

    Help de Campo

    Sequência do detalhe

     
    Número da TransaçãoTipo de detalha da pendênciaDetalhe da pendência de aprovação

    Mais campos livres.

     

    Tabela

    mla-docto-pend-fluig

    Banco

    movind

    Descrição

    Pendências de integração com o Fluig

    Índice

    Chave

    Tipo

    mldctpnb_id2

    cdn-seq

    Primário e único
    mldctpnb_ix2cdn-tip-erroSimples
    mldctpnb_ix3  cdn-tip-doctoSimples
    mldctpnb_ix4nr-transSimples

    Campo

    cdn-seq

    nr-transcdn-tip-doctocod-chave-doctocdn-tip-errocdn-sit

    Tipo

    Integer

    IntegerIntegerCharacterIntegerInteger

    Formato

    >>>>>>>>>9

    >>>,>>>,>>9>>9X(40)>>9>>9

    Valor Inicial

    0

    00 11

    Mandatório

    Sim (X) Não (  )

    Sim (X) Não (  )Sim (X) Não (  )Sim (X) Não (  )Sim (X) Não (  )Sim (X) Não (  )

    Descrição

    Sequência

    TransaçãoDocumentoChave DocumentoTipo Erro IntegraçãoSituação

    Label Coluna

    Seq

    TransaçãoDocChaveErroSit

    Help de Campo

    Sequência da pendência

     
    Número da TransaçãoCódigo do documentoChave do documentoTipo de erro de integração com o FluigSituação da pendência

    Campo

    cdn-workflow-fluigcdn-mensagemdes-mensagemdt-geracaodt-aprovdat-rej

    Tipo

    IntegerIntegerCharacterDateDateDate

    Formato

    ->>>>>>>>>9>>>>>>>>9x(2000)99/99/999999/99/999999/99/9999

    Valor Inicial

    00 ???

    Mandatório

    Sim () Não ( X )Sim () Não ( X )Sim ( X ) Não ( )Sim (X) Não (  )Sim () Não ( X )Sim () Não ( X )

    Descrição

    Workflow FluigCódigo ErroDescrição ErroData geraçãoData aprovaçãoData rejeição

    Label Coluna

    WF FluigCod ErroErroGeraçãoAprovRejeita

    Help de Campo

    Número do Workflow no Fluig referente a pendência Código do erro ocorridoDetalhamento do erro ocorridoData de geração da pendênciaData de aprovação da pendênciaData de rejeição da pendência

     

     

    Campo

    dat-cancelcod-usuarcod-usuar-reprocesdtm-reprocescod-usuar-orig

    Tipo

    DateCharacterCharacterDatetimeCharacter

    Formato

    99/99/9999x(12)x(12)99/99/99 hh:mm:ssx(12)

    Valor Inicial

    ?  ? 

    Mandatório

    Sim () Não ( X )Sim (X) Não (  )Sim () Não ( X )Sim () Não ( X )Sim () Não ( X )

    Descrição

    Data CancelamentoAprovadorUsuário ReprocessamentoData/Hora ReprocessamentoUsuário Origem

    Label Coluna

    CancelaAprovadorUsuar ReprocesDt/Hr ReprocesUsuário Origem

    Help de Campo

    Data de cancelamento da pendênciaAprovador da pendênciaUsuário responsável pelo reprocessamento da pendênciaData e Hora que foi realizado o reprocessamentoUsuário Origem

    Mais campos livres.

    Opcional

    Dicionário de Dados

     

    Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/

      

    Índice

    Chave

    01

    <FI9_FILIAL+FI9_IDDARF+FI9_STATUS>

    02

    <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF>

    03

    <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO>

    Campo

    <AAA_PERESP>

    Tipo

    <N>

    Tamanho

    <6>

    Valor Inicial

    <Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. 

    Mandatório

    Sim (  ) Não (  )

    Descrição

    <Referência Mínima para Cálculo>

    Título

    <Ref.Calc.>

    Picture

    <@E999.99>

    Help de Campo

    <Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação>

     

    (Opcional)

    Grupo de Perguntas

     Não se aplica.

    (Opcional)

    Consulta Padrão

    Não se aplica.

     

    (Opcional)

    Estrutura de Menu

     

    <Informações utilizadas na linha Datasul>.

     

    Procedimentos

     

    Procedimento 

     html.mla0172

     mla0173 

     

    Descrição

    (Max 40 posições)

    (Max 40 posições)

    Pendências de Integração MLA x Fluig

    Limpeza Histórico Integração Fluig(Max 40 posições)

    Módulo

     MLA

     

     MLA

    Programa base 

     html.mla0172

      mla0173 

     

    Nome Menu

    (Max 32 posições)

    (Max 32 posições)

    (Max 32 posições)

    Interface

    GUI/WEB/ChUI/Flex

    GUI/WEB/ChUI/Flex

    GUI/WEB/ChUI/Flex

    Pendências de Integração MLA x Fluig

    Limpeza Histórico Integ. Fluig

    Interface

    WEB

    GUI

    Registro padrão

    Registro padrão

    Sim

    Sim

    Sim

    Visualiza Menu

    Sim/Não

    Sim/Não

    Sim/Não

    Release de Liberação

     

     12.1.12

    12.1.12  

     

     

     

     

    Programas 

    Programa 

     html.mla0172

      mla0173

     

    Descrição

    (Max 40 posições)

    (Max 40 posições)

    Pendências de Integração MLA x Fluig

    Limpeza Histórico Integração Fluig(Max 40 posições)

    Nome Externo

     

     

     dts/mla/fluigmonitor

     lap/mla0173.w 

    Nome Menu/Programa

    (Max 32 posições)

    (Max 32 posições)

    Pendências de Integração MLA x Fluig

    Limpeza Histórico Integ. Fluig(Max 32 posições)

    Nome Verbalizado[1]

    (Max 254 posições)

    (Max 254 posições)

    (Max 254 posições)

    Procedimento

     

     

     

    Monitorar Pendências de Integração MLA x Fluig

    Realizar Limpeza de Histórico de Integração com Fluig

    Procedimento

     html.mla0172

     mla0173

    Template

    Programa HTML

    Relatório

    Template

    (Verificar lista de opções no man01211)

    (Verificar lista de opções no man01211)

    (Verificar lista de opções no man01211)

    Tipo[2]Consulta/Manutenção/ Relatório/TarefasConsulta/Manutenção/ Relatório/

    Tarefas

    Consulta/Manutenção/ Relatório/Tarefas

    Interface

    GUI/WEB/ChUI/Flex

    GUI/WEB/ChUI/FlexGUI/WEB/ChUI/Flex

    Categoria[3]

     

     

     

     Não se aplica

     Não se aplica

    Executa via RPC

    Sim/NãoSim/

    Não

    Sim/Não

    Registro padrãoSim

    Sim

    Sim

    Outro Produto

    Não

    Não

    Não

    Visualiza Menu

    Sim/NãoSim/Não

    Sim/Não

    Query on-line

    Sim/NãoSim/

    Não

    Sim/Não

    Log Exec.

    Sim/Não

    .

    Sim/NãoSim/

    Não

    Rotina (EMS)

     

     

     

     Não se aplica

     Não se aplica

    Sub-Rotina (EMS)

     

     

     Não se aplica

     Não se aplica 

    Localização dentro da Sub Rotina (EMS)

     

     

     Não se aplica

     Não se aplica 

    Compact[4]

    Sim/Não se aplicaSim/

    Não se aplica

    Sim/Não

    Home[5]

    Sim/Não

    Sim/Não

    Sim/Não

    Não se aplica

    Não se aplica

    Posição do Portlet[6]

    Não se aplica

    Não se aplica

    Posição do Portlet[6]

    0 – Top Left

    1 – Top Right

    2 – Bottom Left

    3 – Bottom Right

    0 – Top Left

    1 – Top Right

    2 – Bottom Left

    3 – Bottom Right

    0 – Top Left

    1 – Top Right

    2 – Bottom Left

    3 – Bottom Right

    Informar os papeis com os quais o programa deve ser vinculado

     

     Não se aplica

    Não se aplica  

     

     

    Cadastro de Papéis

    <O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.

    <Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.

     

    Código Papel

    (máx 3 posições)

    Descrição em Português*

     

    Descrição em Inglês*

    Não se aplica.

     

    [1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.

    [2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante

    [3] Categorias são obrigatórias para os programas FLEX.

    [4] Obrigatório quando o projeto for FLEX

    [5] Obrigatório quando o projeto for FLEX

    [6] Obrigatório quando o projeto for FLEX

     Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.