PowerShell para la administración automática de Dynamics AX 2012 (PS-II)

En la primera entrega de esta serie sobre PowerShell y DevOps para Microsoft Dynamics AX 2012  hablábamos sobre los principios más básicos de PowerShell y su sintaxis. También vimos en post anteriores como PowerShell se puede usar de formas bastante creativas.

Keyboard

Esta vez vamos a ver los comandlets específicos para la administración de Microsoft Dynamics AX 2012, que podemos separar en varias familias:

Gestión de Modelos y la Model Store

Estos comandlets son muy importantes y van a ser la base de nuestra estrategia DevOps, combinada con los procesos builds automáticos que tendremos configurados en nuestro TFS, si es que los utilizamos.

La combinación de estos componentes va a permitirnos diseñar procesos que actualicen automáticamente nuestros entornos, orientando nuestros procesos hacia la integración o el despliegue continuo de nuestros entornos, especialmente entornos de desarrollo y/o pruebas. Hablaremos sobre esto en los siguientes posts de esta serie.

Estos son los que normalmente utilizamos para estas tareas, aunque vale la pena echar un vistazo a la referencia completa porque todos pueden ser útiles para tareas concretas o para scripts que automaticen tareas más completas:

Modelos

Comando Descripción
New-AXModel  Crea un nuevo modelo en la Model Store
Uninstall-AXModel  Elimina un modelo de la Model Store
Install-AXModel  Importa un modelo (desde un fichero) en la Model Store
Export-AXModel  Exporta un model de la Model Store a un fichero .axmodel
Move-AXModel  Mueve los objetos de un modelo a otro modelo, combinando todos los objetos en este último.

Continue Reading…

Descubre la nueva Dynamics AX 2012 R3 Entity Store

En prácticamente todas las instalaciones de Microsoft Dynamics AX, en cualquiera de sus versiones, nos vemos en la necesidad de exponer ciertos datos de la aplicación para que otros sistemas puedan utilizarlos. Casi siempre, aunque no únicamente, herramientas de reporting y Business Intelligence. Para conseguirlo diseñamos datawarehouses más o menos completos y procesos ETL para transformar la base de datos transaccional y normalizada de Microsoft Dynamics AX en una fuente de datos más apropiada para la lectura eficiente de la información.

Entity Store - Exposing entities

Para evitarnos esta tarea extra y permitirnos centrar nuestro tiempo en la solución final, se ha publicado una nueva funcionalidad disponible para Microsoft Dynamics AX 2012 R3 llamada Entity Store, que nos va a permitir exponer las entidades de Microsoft Dynamics AX y utilizar todas las novedades del nuevo Microsoft SQL Server 2016 como los nuevos índices columnares en memoria y herramientas diseñadas para optimizar el reporting y permitir una explotación en “casi” tiempo real (near-real time).

Entity Store - Power BI

Este almacén de entidades es una nueva base de datos independiente de la transaccional por lo que, aparte de permitirnos una optimización y escalado independiente, nos va a permitir funcionar siempre con la nueva versión de SQL sin tener que migrar también el servidor transaccional de AX, facilitando la adopción de las últimas novedades. Actualmente es compatible con SQL Server 2014 y 2016 así como Azure SQL.

La herramienta se integra y configura en la aplicación (actualmente como un hotfix independiente, pero formará parte del próximo parche acumulativo para AX 2012 R3) y utiliza el Data Import/Export Framework (DIEF) para coordinar la actualización de las entidades, que pueden configurarse a cierta frecuencia de forma independiente.

Esta es una primera versión para introducir la funcionalidad y proveer las bases de su funcionamiento, pero Microsoft ya ha anunciado que están invirtiendo en este Data Entity por lo que podemos esperar novedades en el futuro, ya que esta promete ser la puerta de integración de nuestros sistemas con el resto de tecnologías de Microsoft referentes al reporting y business intelligence, que están avanzando mucho de la mano de Azure y SQL Server.

Por ejemplo, Microsoft ya nos sugiere que estas entidades están preparadas para trabajar con Azure Machine Learning, Power BI, Azure Data Factory y herramientas clásicas de BI (como data warehouse clásico, data lake para AX, …) y Big Data (Hadoop). Todas estas herramientas que ya están disponibles en Azure (Azure SQL, SQL-DW, Azure Data Factory, HDInsight, Azure Data Lake, Azure Data Lake Analysis Services, y Machine Learning) son parte también del Cortana Intelligence Suite (CIS), por lo que este nuevo almacén de datos consolidado es sólo el principio 😉

Toda la información disponible en el siguiente white paper de Microsoft:

El parche se puede descargar desde LCS buscando “Entity store” o KB3147499.

* Las imágenes de este post están extraídas del blog Dynamics AX Business Intelligence!!

Libros: Reporting con SSRS en Microsoft Microsoft Dynamics AX 2012

Continúo con la serie de comentarios de libros sobre Microsoft Dynamics AX, y esta vez traigo dos a la vez publicados en un breve periodo por Packt Publishing sobre el reporting en Microsoft Dynamics AX 2012 basado en SQL Server Reporting Services.

Developing SSRS Reports for Dynamics AX   Microsoft Dynamics AX 2012 Reporting Cookbook

El primero, Developing SSRS Reports for Dynamics AX escrito por Mukesh Hirwani es una introducción al reporting en SSRS para AX muy completa y bien ordenada. El libro está estructurado para ser leído y es una lectura interesante para conocer todos los componentes que intervienen en este “nuevo” sistema de reporting. Entrecomillo nuevo porque, a pesar de ser novedad el uso de la herramienta desde Dynamics AX, el producto ya existía y es ámpliamente utilizado de manera independiente. Explica de manera casual algunos detalles propios de SSRS y explica de manera bastante clara los componentes que se han agregado en AX 2012 para posibilitar y facilitar la integración.

El otro es Microsoft Dynamics AX 2012 Reporting Cookbook escrito por Kamalakannan Elangovan (y recientemente actualizado para R3) es un libro de “recetas“, también interesante, aunque de utilización diferente. Este libro entra en menos detalle teórico sobre los componentes, pero baja muy a lo práctico detallando de manera muy práctica casos que sin duda se nos dan en el día a día de la elaboración de informes. Es un libro para tener cerca cuando se trabaja con informes para ir a consultar propiedades o trozos de código que son muy reutilizables y prácticos.

Si tuviera que elegir sólo uno creo que me quedaría con el segundo pero lo cierto es que leerlo sin conocer antes ciertos conceptos previos es complicado así que para una buena formación en reporting los leería los dos, por ese orden, que es lo que acabo de hacer 😉

Más comentarios sobre libros aquí.

Manejar Enumerados de Dynamics AX en SQL Server (SSIS, SSRS, SSAS, …)

Manejar los valores de campos de tipo BaseEnum de Microsoft Dynamics AX en la base de datos (ya sea en T-SQL, en SSRS, SSIS, SSAS, …) puede ser complicado si se intenta hacer manualmente. El valor de los enumerados se guarda en la base de datos como el número del elemento pero cuando hay que presentar ese valor al usuario (en un informe, un cubo, etc…) hay que mostrar la descripción, el Label del campo, no el número que hay en la tabla, pero este valor no está disponible en AX de manera inmediata así que ¿Cómo hacerlo?

Afortunadamente, Microsoft ha solucionado ese problema para su propia integración con informes de Reporting Services y esa solución es fácilmente adaptable a nuestros requerimientos:

Durante la instalación de las Extensiones de Bussines Intelligence de Microsoft Dynamisc AX se actualiza automáticamente, dependiendo de la configuración elegida, la tabla del sistema SRSANALYSISENUMS con los valores y descripciones, por idioma, de todos los enumerados utilizados en todas las tablas que pertenecen a una Perspectiva.

Si a posteriori se quiere relanzar esta configuración para añadir nuevas tablas o nuevos idiomas, es posible hacerlo utilizando el Asistente para proyecto de SQL Server Analysis Services y seleccionando la opción Configurar:

Suponiendo que esta configuración ya está realizada, y suponiendo que lo que queremos es “traducir” las cadenas de texto en el idioma que corresponda a su valor numérico desde SQL Server Integration Services (el procedimiento se puede aplicar a otras áreas como SSAS o vistas de SQL por ejemplo) he optado por crear un procedimiento almacenado que realice la consulta de una manera reutilizable:

Continue Reading…

Configurar Firewall en instalaciones Microsoft Dynamics AX 2012Microsoft Dynamics AX 2012 Firewall Setup

Complementando el artículo que publiqué hace unas semanas, recopilando los datos para configurar la seguridad de instalaciones Microsoft Dynamics AX 2012, el siguiente cuadro detalla la información necesaria para configurar el Firewall de Windows en cada una de las máquinas implicadas en una de estas instalaciones.

Componente Equipo Configuración del Firewall Notas
Setup Permitir conexiones HTTP salientes Para acceder a la documentacion disponible durante el wizard de instalación, es necesario tener acceso a Internet desde el equipo que ejecuta el setup.
Base de Datos Servidor SQL Server Excluir el puerto utilizado por SQL Server (1433 por defecto) Más información en la guía de instalación de SQL Server.
Application Object Server (AOS) Servidor AOS
  • Excluir el puerto TCP/IP utilizado por el AOS (2712 por defecto). La instalación crea una regla de entrada automáticamente para este puerto (Dynamics AX 6.0 -MicrosoftDynamicsAX (RPC)).
  • Excluir el puerto de los servicios WSDL utilizado por el AOS (8101 por defecto). La instalación crea una regla de entrada automáticamente para este puerto (Dynamics AX 6.0 -MicrosoftDynamicsAX (WSDL)).
  • Excluir el puerto del endpoint de los servicios utilizado por el AOS (8201 por defecto). La instalación crea una regla de entrada automáticamente para este puerto (Dynamics AX 6.0 -MicrosoftDynamicsAX (NetTCP)).
El Firewall de Windows debe estar activado en el equipo. Cada instancia de AOS utiliza un puerto diferente.

NOTA: Por defecto, cada vez que se instala una instancia de AOS en un equipo, el número de puerto TCP/IP y los puertos de los endpoint de sus servicios se incrementan en uno. Por ejemplo, la segunda instancia de AOS en un equipo debe ser asignada al puerto TCP/IP 2713 por defecto.

Cliente Equipo cliente Excluir Ax32.exe. El cliente utiliza un puerto TCP para conectar al AOS.
Business Intelligence Reporting Server Excluir el puerto utilizado por el directorio virtual de Reporting Services si no es el 80.
Intelligence Components Analysis Server
  • Excluir el puerto utilizado por Analysis Services (2383 por defecto).
  • Si se utiliza el SQL Server Browser, debe excluir también el puerto 2382.
Más información en la guía de instalación de SQL Server.
Debugger Equipo de desarrollador Excluir AxDebug.exe y sus aplicaciones de destino como Ax32.exe y AxServ32.exe. El depurador utiliza un puerto TCP asignado dinámicamente.
Enterprise Portal Servidor web
  • Activar Web Server (HTTP).
  • Excluir el puerto utilizado por el sitio de Enterprise Portal si no es el 80.
Si no se activa el Web server en el Firewall de Windows, sólo se podrá acceder al sitio desde el servidor local.
Servidor de ayuda Servidor web Excluir el puerto utilizado por el sitio de Help Server, si no es el 80.
Enterprise Search Servidor web Excluir el puerto utilizado por el sitio de Búsqueda, si no es el 80.
Web Services Servidor web Excluir el puerto utilizado por el sitio de los servicios web, si no es el 80. Aplicaciones externas utilizan este puerto para consumir los servicios web de Microsoft Dynamics AX basados en IIS.

Se recomienda obtener información actualizada en la siguiente página de TechNet.

If you use Windows Firewall to help protect your computers, Microsoft Dynamics AX components require the settings in the following table. For updated detail, see this page on TechNet

Component Computer Firewall Setting Notes
Setup Any Allow outbound HTTP connections To access the documentation that is available from the Setup wizard, you must be able to connect to the Internet from the computer where you are running Setup.
Database or Model Store Database Server Exclude the port used by SQL Server (1433 by default) For more information, refer to the SQL Server documentation.
Application Object Server (AOS) AOS Server
  • Exclude the TCP/IP port used by the AOS (2712 by default)

Setup automatically creates the inbound rule “Dynamics AX 6.0 -MicrosoftDynamicsAX (RPC)” for the TCP/IP port.

  • Exclude the services WSDL port used by the AOS (8101 by default)

Setup automatically creates the inbound rule “Dynamics AX 6.0 -MicrosoftDynamicsAX (WSDL)” for the WSDL port.

  • Exclude the services endpoint port used by the AOS (8201 by default)

Setup automatically creates the inbound rule “Dynamics AX 6.0 -MicrosoftDynamicsAX (NetTCP)” for the services endpoint port.

Windows Firewall must be enabled on the computer. Each AOS instance must use a different port number. NOTE: By default, each time you install an additional AOS instance on a computer, the TCP/IP port number and the Services endpoint port numbers increment by one. For example, the second AOS instance on a computer would be assigned to TCP/IP port 2713 by default.
Client Client Workstation Exclude Ax32.exe. The client uses a TCP port to connect to the AOS.
Business Intelligence Components Reporting Server Exclude the port used by Reporting Services virtual directories, if other than port 80.
Business Intelligence Components Analysis Server
  • Exclude the port used by Analysis Services (2383 by default)
  • If you are using SQL Server Browser, you must also exclude port 2382.
For more information about configuring access to Analysis Services through Windows Firewall, refer to the SQL Server documentation on MSDN.
Debugger Developer Workstation Exclude AxDebug.exe and its target applications, such as Ax32.exe and AxServ32.exe. The debugger uses a dynamically allocated TCP port.
Enterprise Portal Web Server
  • Activate Web Server (HTTP)
  • Exclude the port used by the Enterprise Portal Web site, if other than port 80.
If you do not activate the Web server in Windows Firewall, you will only be able to view the site from the local server.
Help Server Web Server Exclude the port used by the Help Server web site, if other than port 80.
Enterprise Search Web Server Exclude the port used by the Search web site, if other than port 80.
Web Services Web Server Exclude the port used by the services web site, if other than port 80. External applications use this port to consume the IIS-based Microsoft Dynamics AX web services.

Seguridad en Instalaciones Microsoft Dynamics AX 2012

Requisitos de Seguridad para los Servidores de Microsoft Dynamics AX

Servidor Configuración
Application Object Server (AOS) El directorio de logs no se puede cambiar. El log siempre se guarad en <carpetainstalación>\log. Restringir el acceso a este directorio sólo a administradores y a las cuentas de servicio de AOS.

La cuenta utilizada para el inicio de sesión del servicio necesita el permiso:

  • Inicio de sesión como servicio.
SQL Server Utilizar la configuración de seguridad recomendada para servidores SQL Server incluida en TechCenter.
Role Center y Enterprise Portal El servidor ejecutando IIS debe utilizar autenticación Basica y Secure Sockets Layer (SSL) para usuarios que inician sesión desde fuera de la red corporativa. El servidor de Enterprise Portal puede estar en una red perimetral (DMZ) o dentro de la red interna. NOTA: Enterprise Portal utiliza el usuario proxy de Business Connector. Seguir las recomendaciones de seguridad de Microsoft para asegurar servidores IIS y SharePoint.
Reporting Server El servidor ejecutando el sitio web de SSRS debe estar dentro del dominio y no expuesto a Internet. Seguir las las recomendaciones de seguridad de Microsoft para asegurar servidores SSRS.
Application Integration Framework (AIF) Seguir las recomendaciones de seguridad de Microsoft para asegurar servidores IIS.
Online Analytical Processing (OLAP) Seguir las recomendaciones de seguridad de Microsoft para asegurar servidores SSAS.

Cuentas de dominio para servicios Microsoft Dynamics AX