♥ 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? Marcado como spam |
Resposta privada Está bem @ricardogiro, obrigado. Vou tentar essa alteração e ver se funciona.
Marcado como spam | |
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. 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"); Marcado como spam | |
Resposta privada Eu fiz da seguinte forma, mas dá-me um erro: @nunovidalsoares Marcado como spam Comentários isso já são questões fora do âmbito do fórum primavera | |
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. Marcado como spam | |
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
Marcado como spam | |
Resposta privada boas, penso que seja isto que pretende BSO.Contexto.UtilizadorActual Marcado como spam 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. |