Olá pessoal,

Hoje vou escrever um pouco sobre modelos de autorização. Passei por uma situação recente com essa funcionalidade e gostaria de compartilhar minha experiência.

Recentemente no espaço do SAP B1 SDK, surgiu uma questão solicitando uma ajuda para fazer uma query para modelo de autorização no nível da linha do documento. Ao ler um pouco sobre procedimento de autorização, vi em muitas outras questões nos espaços de SAP B1, comentários de que não é possível utilizar informações do nível da linha para modelos de autorização. Na empresa onde trabalho, sabia que já haviam feito modelos de autorização no nível da linha, então fui verificar esta recurso e cheguei nas seguintes considerações:

É possível usar modelos de autorização no nível da linha?

Sim, é possível.

É possível fazer uma query para modelo de autorização usando informações de cabeçalho e linha?

Sim, é possível.

Um exemplo real: Modelo de autorização para pedido de venda

Ex.: Nivel da linha

Nessa query não quero que seja permitido a efetivação de documentos que contenham alguma linha onde o desconto é maior que 20%


SELECT CASE WHEN $[$38.15.NUMBER] > 20 THEN 'TRUE' ELSE 'FALSE' END





Ex.: Nivel de cabeçalho

Nessa query não quero que seja permitido a efetivação de documentos que desconto maior que 20%


SELECT CASE WHEN $[$24.0.NUMBER] > 20 THEN 'TRUE' ELSE 'FALSE' END





Ex.: Nivel de linha e cabeçalho


Nessa query não quero que seja permitido a efetivação de documentos que contenham alguma linha onde o desconto é maior que 20% para o parceiro C00001


SELECT CASE WHEN $[$38.15.NUMBER] > 20 AND $[$4.0.0] = 'C00001'  THEN 'TRUE' ELSE 'FALSE' END


É possível agrupar valores das linhas nas queries de modelos de autorização?

Não. A query será executada uma vez para cada linha, e se alguma delas retornar ‘TRUE’, o procedimento será iniciado. Devido a essa execução linha a linha, não é possível a execução da funcionalidade como SUM(valor), por exemplo.

Obs.: Com alguns testes, pude notar também que a sintaxe $[TABELA.CAMPO] não funciona corretamente em modelos de autorização no nível da linha, nesse cenários que mencionei, deve sempre usar a sintaxe $[$ITEM.COL].

As informações compartilhadas foram testadas no SAP B1 9.0 PL 11 e 9.1 PL 12.

Era isso pessoal, espero que possa ser útil!

Não deixe de registrar seu feedback e compartilhar suas experiências sobre este assunto.


Atenciosamente,

Diego Lother


View Diego Lother's profile on LinkedIn

To report this post you need to login first.

4 Comments

You must be Logged on to comment or reply to a post.

    1. DIEGO LOTHER Post author

      Olá Rodrigo,

      Efetuei sim. Se você criar uma modelo de aprovação com essa query que olha o campo desconto da linha:

      SELECT CASE WHEN $[$38.15.NUMBER] > 20 THEN ‘TRUE’ ELSE ‘FALSE’ END

      e criar um documento de 5 linhas por exemplo.Se uma ou mais linhas independente da posição tiver um desconto maior que 20% o procedimento de aprovação será iniciado.

      O que percebi e não funciona realmente é usar a sintaxe $[TABELA.CAMPO], nesse caso realmente não sei dizer o que acontece, mas o modelo não funciona.


      Abraço,

      Diego Lother


      View Diego Lother's profile on LinkedIn

      (0) 
      1. Rodrigo da Costa Feula

        Muito bom Diego, você fez os testes em qual versão?

        Se tiver a oportunidade de verificar entre as versões 9.0, 9.1 e 9.2 seria legal, pois não lembro da query usada à época mas eu e o “pessoal das antigas” já tentamos de várias formas e até então não haviamos conseguido, então seria muito interessante descobrirmos se isto foi ajustado a partir de determinada versão.

        Abraços,

        Rodrigo da Costa Feula

        (0) 
        1. DIEGO LOTHER Post author

          Rodrigo,

          As versões que tinha em mão para teste eram:

          9.0 PL 11

          9.1 PL 12

          Em ambas funcionaram corretamente. Não saberia dizer se na 9.0 em PL anterior a 11 funcionaria. Também no momento não tenho nenhuma instalação na versão 9.2, mas quando tiver farei o teste.

          P.S: O tópico que motivou o texto foi esse aqui Approval template query for GRPO Qty greater than PO Qty e a query passada como solução para o tópico também funcionou sem problemas no meu ambiente e no do Danilo(9.1 PL 8) outro membro da SCN.


          Abraço,

          Diego Lother


          View Diego Lother's profile on LinkedIn

          (0) 

Leave a Reply