Usando procesos personalizados para insertar 2 objetos en 1
A
Arturo García Enguita
empezó un tema
en torno a 1 mes hace
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í:
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:
El problema esta que no consigo pasar de la instrucción de contacto.Insert(). Y no da errores como tal, me saltan timeouts.
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
Rubén Pardo Orero
ha dicho
en torno a 1 mes 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.
Arturo García Enguita