Usando procesos personalizados para insertar 2 objetos en 1

Publicado 8 meses hace por Flexygo Team

Publicar un tema
Sin responder
Flexygo Team
Flexygo Team

Hola buenas,

Tengo una duda de una función no me esta funcionando y no se muy bien la razón. Partimos de dos objetos Cliente y Contacto con una estructura muy similar a la del CRM. El formulario del Cliente es tal que así:


image


Los campos en rojo (todos desvinculados) solo son visibles si no hay registro del cliente en la BBDD, es decir que se ocultan para ediciones posteriores.

Y eso llama a este proceso:


image


El problema esta que no consigo pasar de la instrucción de contacto.Insert(). Y no da errores como tal, me saltan timeouts.


image


También he probado a generar el contacto con un trigger y ejecutar un update pero tampoco funciona, a la hora de hacer la select del contacto me salta lo mismo, un timeout.

Aqui hay algo que claramente estoy haciendo mal, el problema es que no se el que... 

Un saludo.

0 Votos


1 Comentarios

Flexygo Team

Flexygo Team publicado 8 meses hace

Eso es debido a que el proceso de inserción cliente se abre una transacción y en el insert de contacto se está intentando abrir otra lo cual causa un bloqueo entre una inserción y otra.

Para solucionarlo, cuando crees el contacto, facilitale la misma conexión a la base de datos que está usando tu objeto principal:

EntityObject contacto = new EntityObject("Contato", Ret.ConfToken, Entity.DataManager);


De esta forma, ambos comparten la misma transacción durante todo el proceso.


Un saludo,


Rubén

0 Votos

Iniciar sesión o Registrarse para publicar un comentario