En este artículo se aplica a Microsoft Dynamics AX para todas las regiones.
Síntomas
Cuando registra un pedido de compra en Microsoft Dynamics AX 2009, recibirá el siguiente mensaje de error:
No se puede crear un registro en la cabecera del pedido de compra - tabla de actualización (PurchParmSubTable).
Este problema se produce si se cumple alguna de las condiciones siguientes:
-
Habilita a la opción "configuración del rastro de auditoría de ciencias biológicas firma electrónica" para todas las tablas.
-
Crear un registro de la tabla común.
-
Se establece la tabla de PurchParmTable en el registro de la base de datos.
Este problema se produce cuando se registra un pedido de compra, una lista de recepciones, el albarán y una factura. Este problema se produce en los siguientes productos:
-
Microsoft Dynamics AX 2009 con Service Pack 1
-
Microsoft Dynamics AX 2009
Solución
Información de hotfix
Ahora hay una revisión compatible de Microsoft. Sin embargo, sólo se diseñó para corregir el problema que se describe en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico. Esta revisión puede ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere al próximo service pack de Microsoft Dynamics AX 2009 o la siguiente versión que contenga este hotfix. Nota: En casos especiales, los costos derivados normalmente de las llamadas pueden cancelarse si un profesional de soporte técnico de Microsoft Dynamics y productos relacionados de soporte determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.
Información sobre la instalación
Antes de instalar este hotfix, compruebe que los usuarios del cliente de Microsoft Dynamics AX han salido del sistema. Debe ser el único usuario del cliente conectado cuando implemente este hotfix. Para implementar esta revisión, debe tener una licencia de desarrollador.Nota: Se recomienda que la cuenta de usuario en la ventana Conexiones Windows o en la ventana Conexiones base de datos sea un miembro del grupo Administradores de Microsoft Dynamics AX.
Cambios de código
Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía, ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. En este artículo se da por supuesto que ya conoce el lenguaje de programación que se muestra, así como las herramientas empleadas para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden ayudar a explicar la funcionalidad de un procedimiento en particular. Sin embargo, no modificarán estos ejemplos para proporcionar una funcionalidad adicional ni crearán procedimientos que se adapten a sus necesidades específicas. Siempre pruebe correcciones de código en un entorno controlado antes de aplicar las revisiones a los equipos de producción.Para resolver este problema, siga estos estos pasos:
-
Sobrescribir el código en el método insert de la tabla de PurchParmSubTable como sigue:
public void insert(){ PurchParmSubTable tempPurchParmSubTable; ; select tempPurchParmSubTable where tempPurchParmSubTable.ParmId == this.ParmId && tempPurchParmSubTable.TableRefId == this.TableRefId && tempPurchParmSubTable.OrigPurchId == this.OrigPurchId; if(tempPurchParmSubTable.RecId == 0) { super(); }}
-
Sobrescribir el código del método createFromPurchParmTable en la tabla de PurchParmSubTable como sigue:
static PurchParmSubTable createFromPurchParmTable(PurchParmTable _purchParmTable, boolean _insert = true){ PurchParmSubTable purchParmSubTable; systemSequence systemSequence; ; ttsbegin; purchParmSubTable.clear(); purchParmSubTable.initValue(); purchParmSubTable.initFromPurchParmTable(_purchParmTable); if (_insert) { systemSequence = new systemSequence(); purchParmSubTable.RecId = systemSequence.reserveValues(1, tablenum(PurchParmSubTable)); purchParmSubTable.insert(); } ttscommit; return purchParmSubTable;}
-
Sobrescribir el código en el método insert de la tabla de SalesParmSubTable como sigue:
public void insert(){ SalesParmSubTable tempSalesParmSubTable; ; select tempSalesParmSubTable where tempSalesParmSubTable.ParmId == this.ParmId && tempSalesParmSubTable.TableRefId == this.TableRefId && tempSalesParmSubTable.OrigSalesId == this.OrigSalesId && tempSalesParmSubTable.subId == this.subId; if(tempSalesParmSubTable.RecId == 0) { super(); }}
Nota: Debe combinar las personalizaciones existentes en estos métodos.
Requisitos previos
No hay requisitos previos.
Requisito de reinicio
No es necesario que reinicie el equipo después de aplicar este hotfix.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".