♥ 0 | Estou a extender o evento “AntesDeGravar” do motor de Compras e embora consiga preencher um campo de utilizador sem erro, a edição não fica gravada. Qualquer outra propriedade editada ao mesmo tempo (ex: observacoes) fica gravada sem problemas: namespace FZPRIMExtensibilityProject.Purchases { public class ApiCmpBSCompras : CmpBSCompras { public override void AntesDeGravar(CmpBEDocumentoCompra clsDocCompra, ref string strAvisos, ref string IdDocLiqRet, ref string IdDocLiqRetGar, ExtensibilityEventArgs e) { base.AntesDeGravar(clsDocCompra, ref strAvisos, ref IdDocLiqRet, ref IdDocLiqRetGar, e); clsDocCompra.CamposUtil["CDU_FZ_MOV"].Valor = ""; //esta alteração não fica gravada clsDocCompra.Observacoes = "Passei aqui"; //esta alteração fica gravada } } } Uma implementação idêntica nos Artigos funciona correctamente: namespace FZPRIMExtensibilityProject.Base { public class ApiBasBSArtigos : BasBSArtigos { public override void AntesDeGravar(BasBEArtigo clsArtigo, ref string strAvisos, ExtensibilityEventArgs e) { base.AntesDeGravar(clsArtigo, ref strAvisos, e); clsArtigo.CamposUtil["CDU_FZ_MOV"].Valor = ""; clsArtigo.Observacoes = "Passei aqui"; } } }
Marked as spam |
Private answer Olá estive a testar o cenário e funcionou correctamente. namespace ExtensibilityProject29 { public class PriClass1 : CmpBSCompras { public override void AntesDeGravar(CmpBEDocumentoCompra clsDocCompra, ref string strAvisos, ref string IdDocLiqRet, ref string IdDocLiqRetGar, ExtensibilityEventArgs e) { clsDocCompra.CamposUtil["CDU_CabVar1"].Valor = "Novo valor"; clsDocCompra.Observacoes = "Passei aqui"; } } } Marked as spam | |
Private answer @miguelganilhosantos sei que isto é um tópico bastante antigo mas passei pelo mesmo. há sítios (compras por exemplo) em que a gravação é feita via SP pelo que a tal GCP_CMP_ActualizaDocumentoCompra_Cabec. Outros sítios (artigos, movimentos cbl etc) fazem "como deve ser" ...enfim uma grande confusão e infelizmente continua a não haver um método oficial para criar CPU's, não entendo porque! Marked as spam Comments Boa tarde @jonatas,
É verdade o método para criar CDU's faz alguma falta para um processo de actualização automática, no entanto, podes minimizar os problemas atendendo ao seguinte (embora sempre com intervenção humana).
Sempre que tiveres criado os CDUs por SCRIPT SQL é necessário posteriormente reconstruir as dependências a estes dentro do
PRIMAVERA. Para tal é necessário:
» ir à zona habitual de gestão de CDUs dentro do Administrador da Plataforma PRIMAVERA.
» dentro do ecrã deverás clicar com o botão do lado direito do rato sobre a treeview (para aceder ao menu de
contexto)
» Selecionar “Reconstruir Todas as Dependências” (que incuem osSP's do SQL Server) Se fizeres isto sempre isto nunca terás problemas.
Cpts Obrigado @miguelganilhosantos é isso memso que estou a fazer. No entanto tenho dificuldade em perceber como é que é possível criar um produto "comercial" se é sempre necessário a intervenção humana para criar um simples campo correctamente. @sergiosereno sério que não há um método para pelo menos correr a reconstrução de dependências? Como é que é suposto uma parceiro desenvolver produtos "certificados" se para criar um campo tem de ser "à martelada" na BD e depois ainda é necessário correr manualmente uma reconstrução de dependências empresa a empresa? Certamente algo básico me está aqui a falhar... |
@miguelganilhosantos A PRIMAVERA não recomenda a criação de CDU’s desta forma. Devem utilziar sempre a criação via adminstrador. Obrigado pelo feedback.