Prezados, gostaria de compartilhar…

 

O SAP Business One possui recursos para bloquear acesso a telas que não possuem esta restrição por standard.

O mesmo vale para criar autorizações a telas criadas pelo usuário (UDO).

 

Situação exemplo:

 

O cliente gostaria que usuários específicos, não tenham autorização para apropriar/sacar um adiantamento em uma nota fiscal de saída e para liberar chamar um usuário com a devida autorização.

 

Passo 1:

No local do SAP Business One onde é necessário implementar o “bloqueio”, verifique o número do formulário.

Para obter esta informação, ative no menu: Visão => Informação do Sistema

Acesse a transação e a tela que deseja-se implementar a restrição, posicione o mouse sobre a tela e visualize no rodapé o número do formulário.

Neste exemplo 60511

Adiant.jpg

 

 

Passo 2:

Acessar Administração => Inicialização do Sistema => Autorizações => Autorização adicional do criador

AutAdic02.jpg

 

Passo 3:

Clicar no botão “Inserir mesmo nível” para criar uma nova linha de autorização

No campo “ID da autorização” informar um código para identificar a autorização criada, no exemplo foi informado: “AUT-001”

No campo “Nome” informar o nome que deverá ser visível na tela de “Autorizações Gerais”

No campo “Opção” definir as opções de autorização: “Completo/Lido/Nenhum” ou “Completo/Nenhum”
AutAdic08.jpg

Depois clicar no botão processar

Será carregada uma nova tela, onde deverá ser informado o número do formulário que deseja-se implementar a autorização:

Informar o código do formulário, onde neste exemplo é 60511

Clicar em atualizar em todas as telas.

AutAdic03.jpg

 

Passo 4:

Acessar Administração => Inicialização do sistema => Autorizações => Autorizações gerais

Selecionar o usuário

Localizar o assunto “Autorização do usuário” abrir a árvore e localizar a nova autorização.

Neste caso é possível visualizar a opção “Documento marketing – Adiantamento” onde deverá ser definida a autorização para o usuário selecionado.

Para o exemplo configurado: “Sem autorização”

Atualizar as novas autorizações definidas.

/wp-content/uploads/2013/11/autadic04_312751.jpg

 

Passo 5:

Verificando a funcionalidade…

Acessar a nota fiscal de saída, lançar todos os dados pertinentes ao documento.

Ao clicar no […] Adiantamento total

Será exibida a tela informando que o usuário não possui autorização, onde em negrito é informado o nome da restrição criada.

AutAdic06.jpg

Nesta situação o usuário tem a opção de solicitar ao seu supervisor a liberação. Clicando no botão “Autorizado por um outro usuário”, será solicitado o login de liberação.

Obs.: Para esta liberação o outro usuário precisa possuir a respectiva autorização, em “Autorizações gerais”

O supervisor informa seu usuário e senha.

Clicando em ok, a tela é liberada.

AutAdic07.jpg

 

 

Ao final da sua leitura, registre seu feedback, possibilitando a melhoria do documento.

Obrigado.

Abraços,
Rodrigo da Costa Feula
#SBOBR #B1BR

To report this post you need to login first.

23 Comments

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

  1. Rebecka Cappello

    Bom dia Rodrigo!

    Otima documentação! fiquei apenas com a dúvida se é possível fazer isso pra um campo de usuário especifico criado dentro do formulário. fiz alguns testes e não obtive sucesso, conhece alguma forma de fazer?

    (0) 
    1. Rodrigo da Costa Feula Post author

      Olá Rebecka.

      Fico muito feliz que tenha gostado. Obrigado!

      No SAP Business One 9.1 é possível restringir o acesso a campos de determinados formulários. Escrevi um outro artigo sobre isto: SAP Business One – Funcionalidade de Configuração/Personalização da UI (interface do usuário) dá uma olhada, quem sabe atende sua necessidade.

      Em último caso, se a sua versão do SAP Business One for inferior a 9.1 é possível fazer através de uma customização (addon).

      Espero ter colaborado.

      Att,

      Rodrigo da Costa Feula

      (0) 
  2. Rebecka Cappello

    Obrigada Rodrigo!

    Conheci  esse recurso na 9.1 mas ainda não atualizei minha base,  queria resolver sem customização. Vou tentar atualizar  logo será melhor!

    Att,

    Rebecka

    (0) 
  3. Jair Oliveira

    Muito bom Rodrigo. Parabéns !!!

    O B1 tem muitos recursos interessantes que nos permite usa-los sem precisar de customização. Obrigado por mostrar mais esse.

    Att,

    Jair Oliveira

    (0) 
  4. ANDREA QUINOLE

    Feula, excelente material como sempre! Existe uma forma de criar restrições especificas a campos, por exemplo, o comercial cria o cadastro do PN e somente o financeiro teria autorização para incluir ou modificar o limite de crédito. É possível?

    (0) 
    1. Paulo Dias

      Olá Andrea.
      Para este seu caso, tratamos com Transaction.
      Você pode bloquear a alteração dos campos específicos diretamente no banco de dados.

      Atte.,

      Paulo Dias

      (0) 
        1. Paulo Dias

          Andrea.

          A transaction você encontra na listagem de Procedures do Banco de dados.

          O nome dela é SBO_SP_TransactionNotification.

          Não tenho uma regra criada especificamente para o campo que você deseja.
          Mas o código ficaria mais ou menos desta forma. Não testei, só escrevi para lhe auxiliar ok?

          –Condição para o objeto de Cadastro de PN

          IF @object_type = ‘2’

          BEGIN

               –Condição da ação. Inclusões (A) / Alterações (U) / Cancelamentos (C)

            –Caso queira apenas limitar alterações, deixe apenas o ‘U’. Neste caso a regra é para alterações apenas

               IF @transaction_type in (‘A’,’U’)

               BEGIN

            –##REGRA ———— Não permitir que usuário diferentes dos liberados efetuem a modificação

            IF (SELECT COUNT (*) FROM OCRD T0

            inner join (select TOP 1 CardCode, CreditLine from ACRD WHERE CardCode = @list_of_cols_val_tab_del order by LogInstanc desc) T1 on T0.CardCode = T1.CardCode

            WHERE T0.CardCode = @list_of_cols_val_tab_del

            AND (T0.CreditLine <> T1.CreditLine)

            and T0.UserSign2 not in (1, 2, 3) –Aqui são os códigos dos usuários que contêm permissão

            ) > 0

            BEGIN

            –código do erro que aparecerá no log

            SET @error = 9999

            –Mensagem de erro para os usuários sem permissão para alteração

            SET @error_message = ‘Você não têm permissão para alterar o limite de crédito.’

            END

               END

          END

          Para saber os códigos dos usuários, você pode pesquisar na tabela OUSR

          select * from OUSR

          Você pode evoluir isso com um campo de usuário “Permissão financeira” por exemplo na tela de Cadastro de Usuários e alterar a transaction para bloquear usuários que não estejam com Y neste campo invés de colocar cada código que pode alterar.
          Desta forma não teria mais necessidade de ir até a transaction para liberar.

          Esta é minha sugestão. Criamos vários bloqueios na transaction.

          (0) 
    2. Rodrigo da Costa Feula Post author

      Olá Andrea, a partir de agora é possível você implementar esta restrição.

      SAP Business One – Funcionalidade de Configuração/Personalização da UI (interface do usuário)

      Como vai funcionar:

      – Você define um template para o cadastro de PN por exemplo, onde o campo do limite de crédito não esteja editável.

      – Vincula os usuários que não podem editar aquele campo.

      Espero ter ajudado.

      Abraços,

      Rodrigo da Costa Feula

      (0) 

Leave a Reply