Usuario
Problemas con Tareas de importación de datos a partir de archivo CSV

Pregunta
-
Buenos días.
Os detallo brevemente mi problema.
He realizado un programado un proceso de importación y se han generado las 3 tareas correspondientes a esa migración de datos a partir de un csv. He utilizado la herramienta de importación incluida en el site del CRM. Todo, hasta el momento, perfecto... pero... las tareas se quedan eternamente en el estado "en espera".
Al hilo de esta pregunta (y su correspondiente contestación) : http://social.technet.microsoft.com/Forums/es-ES/dynamicses/thread/1488e4cc-5488-4b98-8717-42770e2819e1, he comprobado que...
--> El servicio asíncrono del CRM está iniciado y ejecutándose correctamente.
--> He reiniciado el IIS y el CRM (porsiaca).
Nada... no ha funcionado.
Bajé las herramientas de seguimiento de operaciones y naufragando entre los logs y las trazas (después de activar esta opción), he encontrado esta salida en el archivo correspondiente al CRMasyncService (lo adjunto al final).
He comprobado que el servicio funciona, salvo en determinadas acciones relacionadas con Sockets... y he deducido que tiene que ser un problema de permisos en la máquina Servidor de CRM (Windows Server 2003).
¿Alguien puede echarme una mano al respecto? ¿Os ha pasado alguna vez? ¿Cómo puedo solucionarlo?
Mil Gracias.
Trazas descriptivas de error en el log correspondiente a CRMAsyncService:
[2009-04-24 07:15:28.4] Process:CrmAsyncService |Organization:09312a1a-d16c-4e8b-8dfd-ad22e1db1579 |Thread: 4 |Category: Platform.Async |User: 00000000-0000-0000-0000-000000000000 |Level: Error | AsyncOperationCommand.Execute
at AsyncOperationCommand.Execute(AsyncEvent asyncEvent)
at AsyncHostHandler.Handle(AsyncEvent asyncEvent)
at PoolHandler.ProcessAsyncEvent(AsyncEvent asyncEvent)
at PoolHandler.InvokeHandlerInPool(Object state)
at _ThreadPoolWaitCallback.WaitCallback_Context(Object state)
at ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at _ThreadPoolWaitCallback.PerformWaitCallback(Object state)
>Exception while trying to execute AsyncOperationId: {E27922E8-8E30-DE11-A158-001BFCF5EFEB} AsyncOperationType: 3 - System.Net.WebException: No es posible conectar con el servidor remoto ---> System.Net.Sockets.SocketException: No se ha podido establecer conexión ya que el equipo de destino ha denegado activamente dicha conexión
en System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
en System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
en System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
--- Fin del seguimiento de la pila de la excepción interna ---
en System.Net.HttpWebRequest.GetRequestStream()
en System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
en Microsoft.Crm.SdkTypeProxy.CrmService.Execute(Request Request)
en Microsoft.Crm.Asynchronous.SdkTypeProxyCrmServiceWrapper.Execute(Object request)
en Microsoft.Crm.Asynchronous.UserSettingsCacheLoader.RetrieveUserSettings(ICrmService crmService, Guid userId)
en Microsoft.Crm.Asynchronous.UserSettingsCacheLoader.LoadCacheData(Guid userId, IOrganizationContext context)
en Microsoft.Crm.Caching.BasicCrmCache`2.CreateEntry(TKey key, IOrganizationContext context)
en Microsoft.Crm.Caching.BasicCrmCache`2.LookupEntry(TKey key, IOrganizationContext context)
en Microsoft.Crm.Asynchronous.ImportOperation.GetUserLanguage(AsyncEvent asyncEvent)
en Microsoft.Crm.Asynchronous.ImportOperation.InternalExecute(AsyncEvent asyncEvent)
en Microsoft.Crm.Asynchronous.AsyncOperationCommand.Execute(AsyncEvent asyncEvent)
[2009-04-24 07:15:32.4] Process:CrmAsyncService |Organization:00000000-0000-0000-0000-000000000000 |Thread: 19(MSCRM:-TimerProcessor.ExecuteTimers) |Category: Platform.Sql |User: 00000000-0000-0000-0000-000000000000 |Level: Info | CrmDbConnection.InternalExecuteNonQuery
at CrmDbConnection.InternalExecuteNonQuery(IDbCommand command)
at CrmDbConnection.ExecuteNonQuery(IDbCommand command, Boolean impersonate)
at CrmDbConnection.ExecuteNonQuery(IDbCommand command)
at DataAccessSharedBase.ExecuteSqlCommand(IDbCommand command, Nullable`1 expectedAffectedRecords)
at QueueDataAccess.UpdateStateAndStatusInternal(Guid eventId, Int32 newState, Int32 newStatus, DateTime nextOccurrence, Boolean retryOperation, Int32 currentRetryCount, Int32 errorCode, String errorMessage, Boolean clearData, Boolean removeEvent)
at UpdateStateAndStatusCommand.InternalExecute()
at QueuedDatabaseCommand.Execute(QueueManager queueManager)
at QueueManager.ExecuteAllOutstandingDatabaseOperations()
at QueueManager.OnDatabaseOperationTimerEvent(Object sender, ElapsedEventArgs e)
at Timer.InvokeElapsed()
at TimerProcessor.ExecuteTimers(Object data)
at ThreadHelper.ThreadStart_Context(Object state)
at ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at ThreadHelper.ThreadStart(Object obj)
>update AsyncOperationBase
set
StateCode = 1
, StatusCode = 10
, ErrorCode = -2147204346
, Message = 'System.Net.WebException: No es posible conectar con el servidor remoto ---> System.Net.Sockets.SocketException: No se ha podido establecer conexión ya que el equipo de destino ha denegado activamente dicha conexión
en System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
en System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
en System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
--- Fin del seguimiento de la pila de la excepción interna ---
en System.Net.HttpWebRequest.GetRequestStream()
en System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
en Microsoft.Crm.SdkTypeProxy.CrmService.Execute(Request Request)
en Microsoft.Crm.Asynchronous.SdkTypeProxyCrmServiceWrapper.Execute(Object request)
en Microsoft.Crm.Asynchronous.UserSettingsCacheLoader.RetrieveUserSettings(ICrmService crmService, Guid userId)
en Microsoft.Crm.Asynchronous.UserSettingsCacheLoader.LoadCacheData(Guid userId, IOrganizationContext context)
en Microsoft.Crm.Caching.BasicCrmCache`2.CreateEntry(TKey key, IOrganizationContext context)
en Microsoft.Crm.Caching.BasicCrmCache`2.LookupEntry(TKey key, IOrganizationContext context)
en Microsoft.Crm.Asynchronous.ImportOperation.GetUserLanguage(AsyncEvent asyncEvent)
en Microsoft.Crm.Asynchronous.ImportOperation.InternalExecute(AsyncEvent asyncEvent)
en Microsoft.Crm.Asynchronous.AsyncOperationCommand.Execute(AsyncEvent asyncEvent)
en Microsoft.Crm.Asynchronous.AsyncHostHandler.Handle(AsyncEvent asyncEvent)
en Microsoft.Crm.Asynchronous.QueueManager.PoolHandler.ProcessAsyncEvent(AsyncEvent asyncEvent)'
, PostponeUntil = '04/24/2009 05:16:08'
, ModifiedOn = DATEADD(MILLISECOND, -1*DATEPART(MILLISECOND, GETUTCDATE()), GETUTCDATE())
, ModifiedBy = CreatedBy
where AsyncOperationId = 'e27922e8-8e30-de11-a158-001bfcf5efeb'
Todas las respuestas
-
Hola, JULK
Lo único que se me ocurre es que empieces a descartar cosas. Por ejemplo, ¿con qué identidad está ejecutándose el servicio asíncrono? ¿Funciona algún Workflow? ¿Funciona alguna importación de datos sencilla? ¿Funciona la detección de duplicados?
Saludos
Daniel -
Hola Daniel, antetodo gracias por contestar.
Si te refieres a identidad a nivel de administración de servidor, el servicio asíncrono se está ejecutando con inicio automático / servicio local.
Funcionan algunas tareas de Workflow... en particular, aquellas que se ejecutan con el usuario SYSTEM (y no todas...):
Por ejemplo:
Recolección de datos SQM es ejecutada por el usuario SYSTEM como propietario, y termina sin ningún problema. Sin embargo, "actualizar estados de contrato", también se ejecuta por el usuario SYSTEM y nunca termina... se queda "en espera".Respecto a si funciona alguna importación sencilla... NO: Es el motivo de mi pregunta. Las tareas asociadas a cualquier importación (sea sencilla o dificil), se quedan siempre en estado "en espera". No se producen errores, porque... creo yo, que no pueden ejecutarse...
Y respecto a la Detección de duplicados, es una pregunta interesante... efectivamente, había pensado en ello... y ocurre algo curioso al respecto:
No puedo crear un trabajo de detección de duplicados, porque no tengo reglas de detección de duplicados publicadas. El caso curioso es que me creo las reglas de detección duplicadas desde la opción de gestión de reglas de duplicación y, me deja crearlas, me deja activar la publicación...Pero claro, al activar la publicación, nuevamente se genera un proceso en segundo plano, para realizar las acciones correspondientes y "activar la publicación". Este proceso, también se queda "en espera" eternamente...
Este error respecto a las reglas de detección de duplicados, lo achaco a una continuación del principal problema que me ocupa... y creo que está relacionado con el problema del mal funcionamiento del proceso de sincronización (en algunos casos).
Por agregar algo más de información al problema... trabajo como usuario ADMINISTRADOR DE SISTEMA. Y me he añadido TODOS los roles relacionados con labores de administración, programación o mantenimeinto del CRM (ADMINISTRADOR DE MARKETING, PROGRAMADOR, PERSONALIZADOR...)
Y cuando instalé el crm, no establecí servidor exchange (dado que no dispongo de ello).Estoy algo desesperado, la verdad... (tiene que ser una chuminada que se me está pasando por alto)...
Gracias -
Hola de nuevo, JULK. Por el tema del usuario no hay que preocuparse porque efectivamente todos estos trabajos "backend" se realizan con el usuario establecido para el servicio asíncrono, así que prueba lo siguiente: cambia su identidad de "Sistema local" a "Servicio de Red", reinicia el servicio (y haz un iisreset) y vuelve a probar. Suerte Daniel - http://crmadiario.blogspot.com
-
Esto que me dices ya lo había probado en su momento.
En efecto, el Servicio asíncrono (inicialmente) está como Servicio de Red.
Dada las características de nuestra red, entendía que podía ir por ahí el problema y lo cambie a "Sistema Local".
Estoy dando palos de ciego, evidentemente... pero es que es tan raro lo que me pasa, que no he encontrado mucha más doc al respecto de por qué me ocurre. Y Microsoft no tiene ningún reporte de solución al respecto.
mmm... no sé si volver a empezar de cero y montar de nuevo el crm... Lo que pasa es que no tengo la certeza de que, reinstalando, solucione el problema y por eso, estoy intentado agotar todas las posibles opciones (antes de optar por esta última opción). -
-
-
Jostia!!!
Acabo de leer lo que es el RollUp (actualización).
Encontraréis referencia aquí: http://support.microsoft.com/default.aspx?scid=kb;EN-US;952858
Y más concretamente, leyendo los bugs que corrige, encuentro esto:
957701 (http://support.microsoft.com/kb/957701/ ) A workflow stays in the In Progress or Waiting status when you run the workflow in Microsoft Dynamics CRM 4.0
Que es lo que me pasa a mí. http://support.microsoft.com/kb/957701/
Voy a instalar la actualización, y os cuento algo.
Gracias.
{Y yo diciendo que no había info de Microsoft al respecto... (seré G********S)} -
-
Pues no...
Siguen en estado "en espera"...
{Y eso que he instalado el update / RollUp3 para CRM 4.0}
Buff...
JULK,
Trata de aplicar solo el Rollup 1 , y verifica si el error lo corrige.
No apliques todos los Rollup porque te puedes encontrar con distintos errores mas adelante, yo te recomendaria que hagas una re implementacion del CRM en una maquina virtual y pruebes si el error sigue reproduciendose, si asi lo fuese comienza a inntalar cada Rollup y has la prueba.
SI bien es cierto , no te aseguro que soluciones tu error, probablemente si te ayude, el hecho de que se haya liberado hasta hoy en dia el Rollup 3 del aplicativo , no implica que lo debes de instalar todos.
Mi recomendacion es montar una imagen de tu CRM en produccion en un ambiente de Prueba y probar los rollup uno tras uno.
Salu2
Jimmy Larrauri -
Hola a todos.... solo queria saber si desde el programa normal RMS version 2.0 no se puede importar algun documento en exel u otro tipo que este listo como orden de compra al Store Operations Manager o al Headquarters, porque alguien me dijo que leyo en algun lugar que si se podia pero lo he intentado solo con la version normal y no veo por ningun lado por donde puedo "importar", o es que para realizar este proceso debo agregar alguna herramienta mas al sistema? que necesito para poder realizar esta accion?