Empezar un tema nuevo

Usando procesos personalizados para insertar 2 objetos en 1

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.
1 comentario

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

Iniciar sesión o Registrarse para publicar un comentario