Forum
See question

Impedir a entrada no ERP devido ao VBA   

21 views
1
0

Há alguma maneira de impedir a entrada no ERP quando o VBA não é inicializado?

Na v9, quando o VBA não é inicializado corretamente ou entra em “break mode” devido a um erro, há alguma maneira de impedir a utilização do ERP?

 

Faça login para poder traduzir
Plataforma
Marked as spam
Criado há 4 anos e 7 meses jorgeoliveira
jorgeoliveira Responsiveness Member
2 answers
3
Private answer

Podes iniciar o ERP sem o VBA:

No atalho do erp, acrescentar o parametro /VBA no caminho:

EX: "C:\PRIMAVERA\V9\SG900\Apl\Erp900LE.exe" /VBA

Iniciar o ERP

Em PREFERENCIAS/SISTEMA escolher a opção "Bloquear abertura da empresa se ocorrer um erro ao iniciar o VBA"

 

OBS: Essa opção é por utilizador. tem de ser feito para todos os utilizador

Faça login para poder traduzir
Marked as spam
Criado há 4 anos e 7 meses jliofortes
jliofortes Responsiveness Member
    1
    Private answer

    Para ultrapassar esta situação da seguinte forma:

    Para proteção do VBA será necessário criar um CDU na tabela do VBA (CDU_PermiteAlterar)

     

    Devem executar o trigger seguinte:

    Para fazer alterações no VBA a Flag tem que estar a 1, caso contrário não grava.

     

    /****** Object: Trigger [dbo].[CDU_ValidaVBA] ******/
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    CREATE TRIGGER [dbo].[CDU_ValidaVBA]
    ON [dbo].[VBA]
    INSTEAD OF UPDATE
    AS
    IF EXISTS (SELECT * FROM VBA As I WHERE I.Apl='ERP' AND I.CDU_PermiteAlterar=1) OR UPDATE(CDU_PermiteAlterar)
    BEGIN
    UPDATE VBA SET VBA.Projecto=Inserted.Projecto, VBA.Password=inserted.Password,vba.CDU_PermiteAlterar=inserted.CDU_PermiteAlterar FROM Inserted WHERE VBA.Apl=Inserted.Apl
    end
    ELSE if EXISTS (SELECT * FROM VBA As I WHERE I.Apl='ERP' AND I.CDU_PermiteAlterar=0)
    Begin
    RAISERROR ('CDU - Não gravou o VBA na empresa!!' ,16 ,1 );
    RETURN
    END;
    GO

    --Para impedir alterações

    UPDATE VBA SET CDU_PermiteAlterar=0
    GO

    --Quando desejar alterar o VBA devem fazer:

    --UPDATE VBA SET CDU_PermiteAlterar=1
    --GO

    Faça login para poder traduzir
    Marked as spam
    Criado há 4 anos e 7 meses maria
    maria Most Valuable Professional
      Comments
      @maria, obrigado pela dica. A minha preocupação era noutro sentido. Por exemplo ao arrancar o ERP há um erro qualquer e o ambiente VBA fica desativado. O ERP avisa disso mas um utilizador mais desatento não liga ao aviso e começa a trabalhar. Neste contexto podem ser feitos documentos e outras operação nas quais ficam a falhar validações ou dados que são importante para aquele cliente ou situação em particular. O mesmo acontece quando na utilização normal acontece um erro não controlado... O VBA fica em break mode e os resultados são inesperados. O que eu pretendia era ter um meio de impedir os utilizadores de trabalhar no ERP nessas condições. Obrigado.
      4 anos e 7 meses
      jorgeoliveira