Fórum
Ver pergunta

Evento AbreEmpresaTrabalho – Extensibilidade   

31 visualizações
0
0

Existe uma maneira de obter as credenciais de um utilizador com a sessão inicida no evento AbreEmpresaTrabalho sem ter que digitar diretamente no código?

Faça login para poder traduzir
V10
Base Dados
Marcado como spam
Criado há 4 meses e 4 semanas domingoschivela
d
domingoschivela Responsiveness Member
6 respostas
0
Resposta privada

Está bem @ricardogiro, obrigado. Vou tentar essa alteração e ver se funciona.

 

Faça login para poder traduzir
Marcado como spam
Criado há 4 meses e 1 semana domingoschivela
d
domingoschivela Responsiveness Member
    0
    Resposta privada

    Olá Domingos,

    O problema que está a ter está descrito perfeitamente no erro que mostrou; está a tentar usar variáveis no AbreEmpresaTrabalho que só declara nas linhas a seguir. Eis alguns dos problemas e como resolver:

    1 - Está a usar a keyword 'string' nos argumentos da função AbreEmpresaTrabalho.
    2 - Os argumentos que quer usar não foram declarados antes dos tentar usar.
    3 - Está a tentar declarar as strings através do outroBSO que, é um BSO completamente vazio. As strings provavelmente retornarão nulo ou erro.

    Para resolver tente:

    // *** Declarar primeiro as strings. ***
    // Se tiver acesso ao BSO base do Primavera, pode ir buscar o login que está activo de momento (se estiver a programar num Editor ou Ficha por exemplo)
    string strCodEmp = BSO.Contexto.EmpresaAberta;
    string strUtilizador = BSO.Contexto.UtilizadorActual;
    string strPassword = BSO.Contexto.PasswordUtilizadorActual;
    outroBSO.AbreEmpresaTrabalho(StdBETipos.EnumTipoPlataforma.tpProfissional, strCodEmp, strUtilizador, strPassword);
    
    // Se não tiver acesso ao BSO base por alguma razão (por exemplo ao escrever uma CustomClass ou Form), penso ser preciso escrever os dados à mão
    // Pessoalmente recomendo criar uma classe de Secrets à parte com protecção de escrita/leitura e que, se usar GitHub ou similar, seja ignorada por esses serviços.
    outroBSO.AbreEmpresaTrabalho(StdBETipos.EnumTipoPlataforma.tpProfissional, "empresa","utilizador","password");
    Faça login para poder traduzir
    Marcado como spam
    Criado há 4 meses e 2 semanas ricardogiro
    ricardogiro Responsiveness Member
      0
      Resposta privada

      Eu fiz da seguinte forma, mas dá-me um erro:

      @nunovidalsoares

      Faça login para poder traduzir
      Marcado como spam
      Criado há 4 meses e 4 semanas domingoschivela
      d
      domingoschivela Responsiveness Member
        Comentários
        isso já são questões fora do âmbito do fórum primavera
        4 meses e 4 semanas
        nunovidalsoares
          0
          Resposta privada

          apenas tem que passar os valores nos parâmetros do método AbreEmpresaTrabalho conforme necessario, neste caso o utilizador e a password, assim como tem que indicar o nome da empresa a abrir, seja ela a actual ou outra.

          Faça login para poder traduzir
          Marcado como spam
          Criado há 4 meses e 4 semanas nunovidalsoares
          n
          nunovidalsoares Responsiveness Member
            0
            Resposta privada

            Antes eu tinha feito dessa forma: outroBSO.AbreEmpresaTrabalho(StdBETipos.EnumTipoPlataforma.tpProfissional, "NomeEmpresa", "User", "password");

            Como é que poderia ficar com o código fornecido?

            @nunovidalsoares

             

            Faça login para poder traduzir
            Marcado como spam
            Criado há 4 meses e 4 semanas domingoschivela
            d
            domingoschivela Responsiveness Member
              1
              Resposta privada

              boas,

              penso que seja isto que pretende

              BSO.Contexto.UtilizadorActual
              BSO.Contexto.PasswordUtilizadorActual

              Faça login para poder traduzir
              Marcado como spam
              Criado há 4 meses e 4 semanas nunovidalsoares
              n
              nunovidalsoares Responsiveness Member
                Comentários
                Esta é a maneira mais segura de ir buscar as credenciais. No entanto, isto só funciona se for utilizado com o BSO criado pelo Primavera e que pode ser acedido nos vários eventos do programa, por exemplo num Editor ou assim. Se tiver de criar um novo BSO numa CustomClass, penso que não tem acesso ao BSO base. Nestes casos crio uma classe de Secrets onde tenho as credenciais e outros dados sensiveis como API Keys, e é lá que vou buscar esses dados. Assim é possível definir restrições de acesso/escrita e adicionar o Secrets ao Gitignore para não ir para o GitHub por exemplo.
                4 meses e 2 semanas
                ricardogiro