StrataFrame Forum

BeforeSave não executa.

http://forum.strataframe.net/Topic20568.aspx

By Malcon M. Mikami - 11/5/2008

Ola Ivan, em um dos meus formularios o BeforeSave nao executa. Oque pode ser? Segue abaixo o codigo para salvar, o evento beforesave e a sobrecarga do contrutor do VS

private void simpleButton1_Click(object sender, EventArgs e)

{

moParticao.Save();

}

private void moParticao_BeforeSave_1(MicroFour.StrataFrame.Data.BeforeSaveUndoEventArgs e)

{

moPatrimonio.IPAT_PKCODIGO = textEdit9.Text;

moPatrimonio.Save();

}

this.moParticao.ParentContainer = this;

this.moParticao.SynchronizingObject = this;

this.moParticao.BeforeSave += new MicroFour.StrataFrame.Business.BusinessLayer.BeforeSaveEventHandler(this.moParticao_BeforeSave_1);

By Ivan George Borges - 11/5/2008

Oi Malcon.

Nem idéia! Tongue

Você já tentou colocar um break point na linha do .Save() e seguir o que vai executando?

Tem certeza que está salvando? Não há alguma regra quebrada? Com o código que você postou fica bem difícil dizer. Inclusive me pareceu estranho você ter um "BeforeSave_1", já que normalmente quando cria o evento este "_1" não faz parte da nomenclatura. Mesmo assim, criei um aqui na mão para testar e executou normalmente.

By Malcon M. Mikami - 11/5/2008

Ivan, vou complementar. Meu erro é provavelmente igual ao topico http://forum.strataframe.net/Topic15218-6-1.aspx?Highlight=given+item+name+could

Estou colocando em anexo 3 imagens. Na imagem bo1 voce pode ver a mensagem de erro na linha My.Form.Save() onde ela foi executada direto sem passar pelo beforesave(), o mais estranho que ele esta pedindo o campo IPAR_PAT_CODIGO mas esse campo foi mudado de nome e agora se chama IPAR_IPAT_PKCODIGO, ja refiz o meu BO no Bussiness Object Maper varias vezes apos o erro, mas ele persiste.

Verifiquei tbm o design do objeto como na figura bo3, o campo IPAR_PAT_CODIGO não existe no TableSchema.

Essa esta bem dificil. Oque pode ser?

By Malcon M. Mikami - 11/5/2008

Completando, sobre o "BeforeSave_1", ele cria o "_1" quando vc ja tem um metodo chamado BeforeSave, mas esse metodo nao esta delegado no construtor. Eu matei o delegado do beforeSave mas nao matei o metodo do formulario, depois criei novamente pelo design, ae ele cria o _1, _2, etc...

Mas, por duvida, deixe breakpoints nos dois metodos BeforeSave e BeforeSave_1 para ter certeza que ele nao chamava o metodo.

By Ivan George Borges - 11/5/2008

Malcon, fica bem difícil de debugar seu problema somente com estas informações. Se você conseguisse reproduzir um projeto de exemplo com o erro e postar aqui no forum seria uma opção.

Como no outro post que você viu, o jeito seria ir utilizando break points e debugar a aplicação. Eu também começaria checando quais BOs estão sendo salvos, pois como você está chamando o .Save do Form, se houver BOs relacionados e estiverem setados para serem salvos no form, eles podem ser a razão do seu problema, e aí estaria disparando outro BeforeSave, e não o que você está esperando.

By Rogerio Mauri - 11/6/2008

Olá...

Também não entendi por que você quer sobrepor o evento BeforeSave nativo do BO!?!

By Rogerio Mauri - 11/6/2008

E também acho que o código dentro do BeforeSave não dará certo.

Você abriu um 'EDIT' antes da atribuição de valor para o BOPatrimonio com Save() na sequência?

By Malcon M. Mikami - 11/6/2008

Ola Rogerio, o processo é meio complicado. Tenho 2 BOs no mesmo formulario que devem se comportar como apenas 1.

Por isso eu comando manualmente o save de um quando salvar o filho. Tópico http://forum.strataframe.net/Topic20344-6-1.aspx

O problema foi resolvido, matei tudo, os BOs e os formularios e recriei do zero. Agora esta 100%.

Mas volto a resaltar, o problema começou quando troquei um campo que era chave primaria composta por uma chave primaria unica e criei uma nova chave exclusica com o campo antigo.

Obrigado pela ajuda.

Alias, Ivan tem alguma comunidade (fora a do Orkut que achei vc ontem) de empresas brasileiras que usam o SF? É possivel divulgar o total de empresas? ou a relacao delas para trocarmos informação?

By Ivan George Borges - 11/6/2008

De qualquer maneira, legal que tenha resolvido seu problema.

Quanto à comunidade, realmente não há, apenas aqui no Forum mesmo, e isto para qualquer nacionalidade. Mas vou ver se consigo juntar as informações que pediu e te mando quando tiver.