Cómo importar clientes y proveedores en Microsoft Dynamics AX 2009

En este artículo se describe cómo importar clientes en Microsoft Dynamics AX 2009 desde una hoja de cálculo de Microsoft Office Excel. En estos pasos se describe cómo importar clientes. Sin embargo, también puede seguir estos pasos para importar proveedores.

Se aplica a: Microsoft Dynamics AX 2009
Número de KB original: 960729

Para importar clientes en Microsoft Dynamics AX 2009, siga estos pasos:

  1. En el panel de navegación, seleccione Administración, expanda Periódico, expanda Exportación o importación de datos, expanda Hojas de cálculo de Excel y, a continuación, seleccione Asistente para plantillas.

  2. En el Asistente para plantillas de Excel, seleccione Siguiente.

  3. En el campo Nombre de archivo, escriba el nombre del archivo que desea usar y, a continuación, seleccione Siguiente.

  4. En la página Seleccionar tablas del asistente, seleccione CustTable en el área Objetos disponibles , seleccione el > botón para insertar el objeto en el área Objetos seleccionados y, a continuación, seleccione Siguiente.

    Nota:

    En el caso de los proveedores, seleccione VendTable en el área Objetos disponibles .

  5. En la página de lista Generar campos del asistente, seleccione Siguiente.

  6. En la página Seleccionar campos del asistente, expanda Cliente y, a continuación, seleccione los campos que desea importar a Microsoft Dynamics AX. Los campos necesarios para una importación de CustTable son los siguientes:

    • Cuenta de cliente
    • Grupo de clientes
    • Moneda
    • Idioma
    • Tipo de libreta de direcciones
    • Nombre del identificador de la libreta de direcciones
    • Dirección
    • Condiciones de pago
    • País o región
    • Código postal
    • Estado
    • Condado
    • Nombre de búsqueda
    • Ciudad
    • Street name
    • País o región
    • Estado
    • Company
  7. Seleccione Siguiente.

  8. Siga los pasos del asistente para completar la importación.

  9. En el panel de navegación, seleccione Básico, expanda Configuración, expanda Libreta global de direcciones y, a continuación, seleccione Parámetros.

  10. Seleccione la pestaña Secuencias numéricas y, a continuación, compruebe que se ha seleccionado una secuencia numérica para el identificador de la libreta de direcciones.

    Nota:

    La secuencia numérica seleccionada no se puede configurar como continua.

  11. Busque el archivo que creó en el paso 3. Se rellena la hoja de cálculo de Excel que contiene los datos que desea importar.

  12. Deje vacío el campo Id. de libreta de direcciones. El campo Id. de libreta de direcciones se rellena al importar la hoja de cálculo de Excel mediante la secuencia de números que configuró en el paso 10.

  13. En el panel de navegación, seleccione Administración, expanda Periódico, expanda Exportación o importación de datos y, a continuación, seleccione Grupos de definiciones.

  14. En el cuadro de diálogo Exportación e importación de datos , seleccione el grupo de definiciones que creó mediante el Asistente para plantillas de Excel y, a continuación, seleccione Configuración de tabla.

  15. En el cuadro de diálogo Configuración de tabla, seleccione la pestaña Conversión y agregue el código siguiente para las importaciones a la tabla CustTable después de la línea predeterminada de la ventana.

     str dirId;
     ;
    
    // Check that the custtable table is not associated to Party.
     if (!custTable.PartyId || custTable.PartyId == "")
     {
     // Create a Party entry for the customer.
     dirId = DirParty::createPartyFromCommon(custTable).PartyId;
     custTable.PartyId = dirId;
     }
     else
     {
     DirParty::updatePartyFromCommonInsert(custTable.PartyId,custTable);
     }
    

    Para importar proveedores, agregue el código siguiente.

    str dirId;
     ;
    
    // Check that the vendtable table is not associated to Party.
     if (!vendTable.PartyId || vendTable.PartyId == "")
     {
     // Create a Party entry for the vendor.
     dirId = DirParty::createPartyFromCommon(vendTable).PartyId;
     vendTable.PartyId = dirId;
     }
     else
     {
     DirParty::updatePartyFromCommonInsert(vendTable.PartyId,vendTable);
     }
    
  16. Active la casilla Ejecutar conversión y, a continuación, seleccione el botón Compilar .

    Este paso determina si el código está escrito correctamente.

  17. Seleccione la pestaña Vista previa , compruebe que los campos coincidan con los valores correctos especificados en la hoja de cálculo de Excel y, a continuación, cierre el cuadro de diálogo Configuración de tabla.

  18. En el cuadro de diálogo Exportación o importación de datos , seleccione el grupo de definiciones que creó y, a continuación, seleccione Importar.

  19. En el cuadro de diálogo De importación de Excel , seleccione la hoja de cálculo de Excel que creó en el paso 3 y, a continuación, seleccione Aceptar.

  20. Compruebe que el cliente se importa en la tabla CustTable y que se crea un registro correspondiente en la tabla DirPartyTable.

Después de importar el cliente, puede importar direcciones adicionales para el cliente. Para ello, siga estos pasos:

  1. En el panel de navegación, seleccione Administración, expanda Periódico, expanda Exportación o importación de datos, expanda Hojas de cálculo de Excel y, a continuación, seleccione Asistente para plantillas.

  2. En el Asistente para plantillas de Excel, seleccione Siguiente.

  3. En el campo Nombre de archivo, escriba el nombre del archivo que desea usar y, a continuación, seleccione Siguiente.

  4. En la página Seleccionar tablas del asistente, seleccione la opción Mostrar todas las tablas , seleccione Dirección en el área Objetos disponibles , seleccione el > botón para insertar el objeto en el área Objetos seleccionados y, a continuación, seleccione Siguiente.

  5. En la página de lista Generar campos del asistente, seleccione Siguiente.

  6. En la página Seleccionar campos del asistente, expanda Alt. Dirección y, a continuación, seleccione los campos que desea importar a Microsoft Dynamics AX.

    Nota:

    Se deben seleccionar el id. de registro y el identificador de tabla de la tabla principal.

  7. Seleccione un campo adicional que sea una cadena que no esté usando actualmente. Por ejemplo, active la casilla Número de cuenta de operador .

  8. Seleccione Siguiente.

  9. Siga los pasos del asistente para completar la importación.

  10. Busque la hoja de cálculo de Excel que creó en el paso 3 y rellene los datos que desea importar.

    Nota:

    Establezca la columna Id. de tabla de la tabla principal con 77 para CustTable o 505 para VendTable.

  11. Establezca el campo Referencia en 0.

  12. Para el campo número de cuenta de operador adicional que agregó a la hoja de cálculo, escriba el número de cuenta de cliente.

  13. En el árbol de objetos de aplicación (AOT), busque el importData método en el objeto siguiente:

    Classes\SysDataImportDefBase

  14. En el importData método , cambie el código de la siguiente manera.

    Código existente

    _curcommon.doInsert();
    

    Código de reemplazo

    if (SysExpImpGroup::find(groupId).Type == SysExpImpType::Excel
     && _curCommon.TableId == tablenum(Address))
     {
     _curcommon.Insert();
     }
     else
     {
     _curcommon.doInsert();
     }
    
  15. Guarde y compile la SysDataImportDefBase clase .

  16. En el panel de navegación, seleccione Administración, expanda Periódico, expanda Exportación o importación de datos y, a continuación, seleccione Grupos de definiciones.

  17. En el cuadro de diálogo Exportación e importación de datos , seleccione el grupo de definiciones que creó mediante el Asistente para plantillas de Excel y, a continuación, seleccione Configuración de tabla.

  18. En el cuadro de diálogo Configuración de tabla, seleccione la pestaña Conversión y agregue el código siguiente para las importaciones a la tabla CustTable después de la línea predeterminada de la ventana.

    str account;
     ;
    
    // If the address is for a customer and the recid for the customer is not specified
    if (address.AddrTableId == tablenum(CustTable) && address.AddrRecId == 0)
    {
     account = address.ShipCarrierAccount; // The additional field is added to the spreadsheet.
    
    // Fetch the recid of the customer.
     address.AddrRecId = CustTable::find(account).RecId;
     address.ShipCarrierAccount = '';
    }
    

    Para importar un proveedor, agregue el código siguiente.

    str account;
    ;
    
    // If the address is for a vendor and recid for the vendor is not specified
     if (address.AddrTableId == tablenum(VendTable) && address.AddrRecId == 0)
     {
     account = address.ShipCarrierAccount; // The additional field is added to the spreadsheet.
    
    // Fetch the recid of vendor.
     address.AddrRecId = VendTable::find(account).RecId;
     address.ShipCarrierAccount = '';
     }
    
  19. Active la casilla Ejecutar conversión y, a continuación, seleccione el botón Compilar .

    Este paso determina si el código está escrito correctamente.

  20. Seleccione la pestaña Vista previa , compruebe que los campos coincidan con los valores correctos especificados en la hoja de cálculo de Excel y, a continuación, cierre el cuadro de diálogo Configuración de tabla.

  21. En el cuadro de diálogo Exportación o importación de datos , seleccione el grupo de definiciones que creó y, a continuación, seleccione Importar.

  22. En el cuadro de diálogo De importación de Excel , seleccione la hoja de cálculo de Excel que creó en el paso 3 y, a continuación, seleccione Aceptar.

  23. Compruebe que las direcciones se importan para el cliente o para el proveedor.