Tentei realizar o processo descrito na wiki (http://wiki.benner.com.br/wiki/index.php?title=Manipula%C3%A7%C3%A3o_de_entidades_em_VBA_e_em_Delphi#Exemplo_2), porém não deu certo ao executar o código abaixo, apresentando o seguinte erro:
Public Sub TABLE_AfterPost()
Dim indicarProtocoloPta As CSEntityCall
Set indicarProtocoloPta = BusinessEntity.CreateCall("Benner.Saude.ANS.Entidades.Tv_Monitoramento_Indicacaopta", "AlterarProtocoloPTA")
indicarProtocoloPta.AddParameter(pdtString, SessionVar("HANDLE_ROTMONITORAMENTOTISS"))
indicarProtocoloPta.AddParameter(pdtString, CurrentQuery.FieldByName("PROTOCOLOPTA").AsString)
indicarProtocoloPta.Execute()
Set indicarProtocoloPta = Nothing
End Sub
INP-116, INP-301: Erro durante a execução da macro de TV_MONITORAMENTO_INDICACAOPTA:
(&H80131522) Could not load type 'Benner.Saude.ANS.Entidades.Tv_Monitoramento_Indicacaopta' from assembly 'Benner.Tecnologia.ManagedInterop, Version=2008.0.0.0, Culture=neutral, PublicKeyToken=f2db26731026fd37'.
Se eu trocar para chamar pelo Entity.CreateCall ocorre o seguinte erro:
Public Sub TABLE_AfterPost()
Dim indicarProtocoloPta As CSEntityCall
Set indicarProtocoloPta = Entity.CreateCall("TV_MONITORAMENTO_INDICACAOPTA", "AlterarProtocoloPTA")
indicarProtocoloPta.AddParameter(pdtString, SessionVar("HANDLE_ROTMONITORAMENTOTISS"))
indicarProtocoloPta.AddParameter(pdtString, CurrentQuery.FieldByName("PROTOCOLOPTA").AsString)
indicarProtocoloPta.Execute()
Set indicarProtocoloPta = Nothing
End Sub
INP-116, INP-301: Erro durante a execução da macro de TV_MONITORAMENTO_INDICACAOPTA:
(&H80131509) Não foi encontrado no tipo EntityBase um método público de nome AlterarProtocoloPTA que aceite os parâmetros especificados.
Método na Entidade Especializada da tabela virtual:
namespace Benner.Saude.ANS.Entidades
{
public partial class Tv_Monitoramento_Indicacaopta
{
public static void AlterarProtocoloPTA(string handleRotinaMonitoramento, string protocoloPta)
{
AlterarProtocoloPTANaRotina(RotinaMonitoramento, protocoloPta);
}
}
}
O método acima está no AfterPost da tabela virtual, pois na tabela virtual o usuário deverá preencher o protocolo que será salvo na rotina.
Tabela Virtual no builder, não foi marcado o parâmetro Executa Entidade Especialisada, pois eu preciso passar uma SessionVar com o Handle da rotina para a tabela virtual, porém isso não é possível no WES2006.
