Implementando Marco de Referencia para Extensión de Tabla
Para implementar el marco de referencia para exenciones de tabla en Dynamics AX 2012 R3, a
continuación, se detallan los pasos:
Suponga que tiene tabla LedgerParameters y desea hacer la tabla de extensión
CCLedgerParametersExt.
Paso - 1: Agregar relación
En la tabla CCLedgerParametersExt, agregue una nueva relación con la tabla
LedgerParameters, llamada LedgerParameters.
Agregue un nuevo campo Clave extranjera → Basado en PrimaryKey. El campo de
referencia para la tabla principal se agregará automáticamente.
Nota: si la Primary Key de la tabla padre no está basada en RecId, pero la tabla tiene la
propiedad CreateRecIdIndex establecida en Yes, entonces la relación en el paso 1 debe
crearse como Basado en AlternateKey de campo única; de lo contrario, el nuevo campo
tendrá potencialmente el tipo incorrecto, y no será posible usarlo en el mapa
SysExtensionSerializerExtensionMap.
Paso - 2: Crear un índice único para el campo de referencia que apunta a SalesLine
Paso - 3 Integrar con el marco de extensiones de tabla
Agregue la tabla principal ( SalesLine - Si es una tabla estándar, ya puede existir ) a
SysExtensionSerializerMap y la tabla secundaria ( ISPLSalesLineExtension ) a
SysExtensionSerializerExtensionMap
Paso - 4: Crear métodos en la tabla ISPLSalesLineExtension
Paso - 5: Crear un nuevo campo PackedExtensions en SalesLine.
Este campo está disponible en la tabla estándar (Marque si ya existe)
Paso - 6: agregue una acción de eliminación desde SalesLine a la tabla
ISPLSalesLineExtension.
Paso - 7: Crear / Actualizar métodos en la tabla SalesLine
Paso - 8: modifique los métodos a continuación en la tabla padre. (Línea de
venta)
Verifique si el código ya existe si es una tabla estándar.
inserción pública vacía ()
súper();
[Link] :: postInsert ();
actualización public void ()
súper();
[Link] :: postUpdate ();
Paso - 9: Tenga en cuenta que el método de escritura de la fuente de datos
padre (SalesLine) debe modificarse:
public void write ()
súper();
[Link] :: insertAfterBaseTable
(SalesLine);
}
Primero, el método de escritura de los desencadenadores de la tabla secundaria y, como
resultado, el registro secundario no se guardará ya que es una inserción y los métodos de
actualización no lo permiten sin la clave externa correcta.
Paso - 10: Modificar el código del formulario como se indica a continuación