
Atención: El contenido de este blog fue no creado por SAP. Fue escrito por un consultor que no es de SAP, Arvind Lachhireddy (Consultor de HANA, Pythian) para ayudar en su viaje de migración a la nube. Por lo tanto, tenga en cuenta que puede llevar más tiempo obtener una respuesta a su pregunta en caso de que deje alguna en este blog.
La herramienta SAP HANA XS Advanced Migration Assistant se utiliza para convertir el código XS «clásico» y el contenido de la base de datos del repositorio de SAP HANA (por ejemplo, Calc Views) al formato y sintaxis para XS Advanced (XSA) y SAP HANA Deployment Infrastructure (HDI). Sin embargo, se pueden encontrar varios problemas comunes al implementar los objetos convertidos en SAP BTP Cloud Foundry y SAP HANA Cloud.
Este artículo describe cómo actualizar sus artefactos convertidos para solucionar algunos de estos problemas comunes antes de implementar el código convertido en el entorno de destino. En las secciones y capturas de pantalla a continuación, estamos utilizando SAP Business Application Studio (BAS) para realizar los cambios de código necesarios.
Si su contenido original en el Repositorio de SAP HANA estaba organizado en varios paquetes y subpaquetes, puede optar por dividir la conversión en fragmentos a nivel de paquete cuando ejecuta la utilidad de migración XSA. Esto dará como resultado la división de su contenido en varios contenedores HDI separados, lo que tendrá un impacto en las referencias de fuentes de datos en el código convertido.
Todas las vistas de cálculo dependen de varios otros objetos de la base de datos, como tablas, vistas, procedimientos, funciones, etc. Lo primero que debemos verificar es si el espacio de nombres para la vista de cálculo es el mismo que en los objetos dependientes que se han migrado e implementado.
Aquí, paquete1.NombreEsquema:: es la referencia de esquema generada por la utilidad de migración XSA. Verifique el nombre del objeto como en la base de datos (junto con el espacio de nombres, si está configurado). Si hay un cambio en la referencia del objeto, la vista generará un error de objetos faltantes durante la implementación.
Para cambiar la referencia del esquema, abra la vista de cálculo en la herramienta de desarrollo (p. ej., BAS, IDE WEB) con el editor de vista de cálculo. Seleccione el nodo de fuente de datos que necesita cambiar y haga clic con el botón derecho en el nodo que ofrece las opciones como se muestra a continuación. Luego, elija reemplazarlo con la opción Origen de datos para apuntar al objeto de origen correcto en la base de datos.
Cambiar la referencia del paquete en el editor de vista de cálculo
Alternativamente, puede usar el editor de texto en BAS para cambiar la referencia. Localice la etiqueta XML del URI del recurso y busque la referencia del paquete. Luego cámbielo apropiadamente de acuerdo con el espacio de nombres (si se usa).
Ejemplo de cómo cambiar la referencia del paquete en el editor de código
Además, si hay alguna fecha() función utilizada en el cálculo en Vistas de cálculo y Funciones de tabla, deben reemplazarse con la función díafecha() función, ya que la fecha() La función no es compatible con SAP HANA Cloud.
Ejemplo de cambio de función date() a daydate()
En algunos escenarios, un desarrollador puede haber optado por utilizar el TRUNCAR declaración para realizar una eliminación de todos los datos en una tabla o partición (Nota: TRUNCAR debe usarse con precaución porque es irreversible y no se puede revertir si la transacción falla). Si los objetos que está truncando están en el mismo contenedor HDI que el procedimiento, entonces el TRUNCAR declaración funcionará y no se necesita ningún ajuste.
Sin embargo, si usa un sinónimo para hacer referencia a una tabla en otro contenedor HDI o esquema externo, entonces TRUNCAR no funcionará y arrojará un error. Por lo tanto, deberá modificar su código en consecuencia.
La solución más simple es reemplazar la instrucción TRUNCATE con una instrucción DELETE FROM. Vea el siguiente ejemplo.
codigo original
Aquí ”EMPSALARY” es un objeto (tabla) de una referencia de sinónimo. El código original usando TRUNCAR devolverá un error en la implementación como se ilustra a continuación:
Código modificado
En este caso, si reemplaza el TRUNCAR declaración con el ELIMINAR DE tal como se muestra a continuación, la implementación se realizará correctamente.
NOTA: El ELIMINAR DE declaración puede ser un reemplazo razonable para TRUNCAR en mesas pequeñas y medianas. Sin embargo, si tiene razones específicas para usar la declaración TRUNCATE y requiere su uso, entonces puede crear un procedimiento dentro de la objetivo Contenedor HDI o esquema (es decir, donde está presente la tabla) para ejecutar el TRUNCAR declaración allí. Luego, puede llamar al procedimiento truncado personalizado de forma remota utilizando un sinónimo de su contenedor y procedimiento.
Por lo general, existen pocas complicaciones o problemas al implementar funciones escalares y funciones de tabla migradas. Sin embargo, estos objetos suelen depender de otros objetos, como tablas, vistas de cálculo y/o procedimientos. Por lo tanto, debe implementar los objetos dependientes con el espacio de nombres adecuado al que se hace referencia en la función de tabla.
En el siguiente ejemplo, como vemos en las vistas de cálculo, la función utiliza una referencia de esquema. Esto debe corregirse haciendo referencia a los nombres de objeto de base de datos apropiados en el entorno migrado para evitar errores de «objeto desconocido» durante la implementación.
Ejemplo que muestra la referencia del esquema en el archivo
Para corregir la referencia no válida, elimine el espacio de nombres del paquete antiguo («clásico») del nombre del objeto y reemplace el nombre del objeto con el nombre exacto del objeto presente en la base de datos migrada.
Nombre del objeto en la base de datos
En algunos escenarios, los diagramas de flujo SDI convertidos por XSA Migration Assistant pueden tener asignaciones incorrectas. Podemos realizar cambios en las asignaciones de los diagramas de flujo utilizando el editor de diagramas de flujo SDI. Después de importar el código convertido a su proyecto en la herramienta de desarrollo (p. ej., BAS, WEB IDE), abra el archivo en el editor de diagramas de flujo.
Para ilustrar el escenario, podemos ver los códigos fuente y convertidos a continuación.
El mapeo de atributos en el nodo de filtro de flowgraph está entre comillas dobles ‘‘Filter5_Input”.”Nombre de usuario”. Pero el código convertido de la herramienta XSA Migration Assistant a veces pasa por alto esto. El nodo de filtro no está disponible en SAP HANA Cloud, por lo que el nodo de filtro se convierte en una proyección y, a veces, las asignaciones vienen sin ninguna referencia al nodo y sin comillas dobles, como se muestra a continuación.
Nodos disponibles en un Flowgraph – HANA Cloud
Faltan referencias en código convertido XSA
Esto debe corregirse manualmente y volver a implementarse. Es posible que este escenario no produzca errores mientras implementa el código, pero al ejecutar los diagramas de flujo, la referencia de asignación que falta provoca errores. Reasignar las columnas con la referencia correcta y citar corregirá este problema.
Código corregido manualmente
Las tareas de replicación están estrechamente vinculadas con las fuentes remotas, de modo que la fuente remota debe configurarse correctamente y hacer referencia a ella en el entorno de destino. Las tareas de replicación convertidas con la herramienta XSA Migration Assistant se pueden importar a la herramienta de desarrollo (p. ej., BAS, WEB IDE). El editor SDI Reptask brinda los detalles de la configuración, es decir, la fuente remota asociada, los detalles de la tabla, el comportamiento de replicación, etc. Si la tarea de repetición no está conectada a la fuente remota, primero debe verificar si la fuente remota está disponible en la base de datos. y si se han asignado los privilegios requeridos (por ejemplo, en el archivo de concesiones).
La fuente remota en la base de datos.
Si la fuente remota está disponible pero el reptask no está conectado a ella, esto puede ser un problema con los privilegios de acceso. Se debe otorgar acceso a la fuente remota agregando la fuente remota faltante en el archivo de permisos e implementándola.
Ejemplo de archivo de subvenciones
Una vez que se implementa el archivo de subvenciones, verifique la fuente remota en el archivo reptask. Si la conexión de origen remota está disponible como se muestra, implemente el archivo reptask.
Durante la implementación, generará un procedimiento que debe ejecutarse para la carga inicial y la activación de la tarea de replicación para capturar los cambios activos (según el comportamiento de replicación configurado en la tarea de replicación).
Estos son solo algunos consejos y sugerencias para ayudarlo con la migración del contenido de su base de datos SAP HANA «clásica» para su implementación en SAP HANA Cloud.
Por favor, siéntase libre de dejar cualquier comentario/pregunta. Puede llevar algo de tiempo ya que este contenido no es de SAP, pero haremos todo lo posible para comunicarnos con usted con información precisa y confiable.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073