Entradas Por :

SAPMiN

TransaccionSE30

¿Cómo funciona la transacción SE30?

¿Cómo funciona la transacción SE30? 709 528 SAPMiN

¿Cuantas veces has encontrado problema de rendimiento en algunos servicios, transacciones, function modules? ¿Por donde empezar a analizarlo? ¿Cómo funciona la transacción SE30?

La transacción SE30 nos permitirá analizar el tiempo de ejecución de los diferentes bloques que componen un report, transacción o función que queramos analizar. Podremos utilizar los resultados obtenidos para optimizar el funcionamiento de éstos y mejorar de esta manera el rendimiento general en nuestro entorno SAP o prevenir cuellos de botella.
Esta transacción se incorpora con el componente SAP_BASIS y está disponible en cualquier release de motores Netweaver ABAP.

Fase 1: Ejecución y medición

El primer paso será entrar en la transacción SE30 e introducir una descripción para identificar la sesión de análisis. Posteriormente optaremos por ejecutar la transacción/report/función a analizar de forma interactiva (In Dialog), en un proceso paralelo, o planificarlo para una ejecución posterior (Schedule):

TransaccionSE30

Vamos a utilizar para el ejemplo una transacción estándar como es la SUIM, en la que realizaremos una búsqueda sencilla. Tras indicar esta transacción en el campo Transaction, nos aseguramos de que el check Eval. Immediately está marcado, y pulsamos el botón de Execute. A continuación nos aparecen la pantalla inicial de la SUIM, y la utilizamos de forma habitual:

TransaccionSUIM

TransaccionSUIM_2

Pulsamos el botoón de ejecución, y el sistema nos muestra los resultados para la selección:

TransaccionSUIM_3

Por último pulsamos el botón de retroceso hasta salir de la transacción de ejemplo y volver a la pantalla original de la SE30.

Fase 2: Evaluación de resultados

Tras obtener la medición de tiempos, pulsamos la pestaña Evaluate y vemos la sesión que acabamos de generar:

TransaccionSE30_RuntimeAnalysis

Pulsamos doble-click sobre la entrada, y nos aparece el resumen del análisis:

TransaccionSE30_RuntimeAnalysis_2

En la parte izquierda encontramos divididos por bloques de funcionalidad las llamadas con sus respectivos consumos, y en la parte derecha se despliegan las sentencias correspondientes al bloque seleccionado:

TransaccionSE30_RuntimeAnalysis_3

Si pulsamos con doble-click por ejemplo a la primera entrada, la transacción nos llevará al punto exacto en el que se encuentra dicha sentencia:

TransaccionSE30_RuntimeAnalysis_4

TransaccionSE30_RuntimeAnalysis_5

En la pestaña DB Tables podemos encontrar las tablas cuya utilización han consumido la mayor parte del tiempo de ejecución:

TransaccionSE30_RuntimeAnalysis_6

Podemos utilizar esta mecánica para identificar los puntos más problemáticos de nuestro código.

Fase 3: Implementación de correcciones

Por último, únicamente nos restaría dar solución a las áreas de mayor consumo si realmente es posible. Algunas de las soluciones más comunes suelen ser:

  • Condiciones más restrictivas en selecciones sobre tablas tanto internas como de diccionario
  • Creación de índices adicionales
  • Selects con clausulas first / top
  • Evitar full scans de tablas
  • Etc.

Tips & Tricks

Una opción muy agradecida que nos brinda la transacción SE30 es el botón de Tips & Tricks, ya que si pulsamos sobre este botón, se nos mostrará organizados por recurso, una serie de trucos y recomendaciones para optimizar el rendimiento de nuestro código:

TransaccionSE30_RuntimeAnalysis_7

Ahora que conoces como funciona la transacción SE30, esperamos que te sirva de ayuda para mejorar tu código o analizar cuantos problemas te encuentres.

Puedes dejarnos tus comentarios aquí.

Integración de correo Microsoft 365 en SAP, correo entrante

Integración de correo Microsoft 365 en SAP, correo entrante 939 449 SAPMiN

Como vimos en la entrada anterior, integracion-de-correo-microsoft-365-en-sap-correo-saliente, es posible configurar el correo saliente de SAP con Microsoft 365. En esta entrada trataremos el caso opuesto, configurando la integración de correo entrante Microsoft 365 en SAP.

Ésta casuística puede ser más complicada ya que pueden darse múltiples configuraciones, casi tantas posibilidades como entornos existan. Muchas de estas peculiaridades pueden suponer un reto a la hora de realizar una implementación sencilla.

Para ilustrar este post, vamos a basarnos en un caso con las siguientes premisas:

  • Correo corporativo en Microsoft 365
  • Un único dominio
  • Un entorno grande consolidado que busca el mínimo de cambios sobre la estructura actual
  • Conservación de todos los correos en las cuentas entrantes
  • Necesidad de reforzar la seguridad.

Visión general

Para la integración de correo entrante Microsoft 365 en SAP con este caso práctico, dado que Office recepcionará los correos entrantes y deben permanecer en las cuentas originales, deberemos indicarle cual y cómo es el destino al cual debe reenviar una copia de dichos correos.

Para ello generaremos una o más reglas y uno o más conectores según sean las necesidades. Habremos de tener en cuenta dos particularidades del entorno de correo:

  • Microsoft 365 solo enviará información al puerto 25 del destino del conector que definamos. En entornos unix no es recomendable utilizar puertos por debajo del 1024, por lo que utilizaremos el firewall para redirigir el tráfico, evitando así tener que enlazar puertos del sistema.
  • Microsoft 365 utiliza internamente el protocolo propietario TNEF (Transport Neutral Encapsulation Format), por lo que todos los correos enviados hacia uno de los dominios propios utilizará dicho protocolo salvo que se modifique. Puede desactivarse de forma global, pero dado que se va a intentar maximizar la compatibilidad y minimizar los cambios en la infraestructura ya existente, se llevará a cabo una alternativa.

Éstos puntos serán importantes en la solución que se va a proporcionar.

Entorno de Red

Como en la entrada anterior, el primer punto es configurar las conexiones, esta vez en sentido inverso. Debe permitirse el tráfico entrante que llegue desde Microsoft a nuestro entorno, denegando las que lleguen de cualquier otra dirección. Deberemos además redireccionar el tráfico entrante en el puerto 25 a nuestro sistema y puerto adecuado que definiremos más adelante (en este caso el puerto 25000).

Podemos ver las direcciones e ips de Microsoft aquí.

Perfiles, servicio SMTP y SAPConnect [incoming]

Deberemos configurar el parámetro para levantar un servicio SMTP con el arranque de SAP similar al siguiente:

Parametros

icm/server_port_X, donde X es un número correlativo para los servicios del ICM que hayamos definido.

En este parámetro estaremos indicando que se haga uso de un servicio smtp por el puerto 25000 con autenticación TLS/SSL.

El valor TLS especifica los posibles valores para el cifrado TLS usando STARTTLS. Los valores para este parámetro son:

  • 0: indica que no debe utilizarse
  • 1: se ofrece pero es opcional
  • 2: que su uso es obligatorio.

Tal y como indica Microsoft, esta última es la opción correcta.

Hay otros valores que podría ser interesante añadir como TIMEOUT y PROCTIMEOUT para limitar el  intervalo antes del timeout y tiempo de procesamiento respectivamente, que típicamente suelen ser valores entre 60 y 120 segundos. En caso de no indicarlos se tomará el valor por defecto del kernel que suele ser de 60.

Es necesario utilizar un puerto que no interfiera con otros ya activos, como los reservados para el sistema operativo. En entornos linux, si fuera necesario, podríamos utilizar la opción EXTBIND=1 para autorizar el uso de puertos dentro del rango <1024 (más info: 421359 – ICM: Binding ports < 1024 on UNIX), siempre y cuando no exista ya un servicio smtp activo en dicho puerto.

Para que estos parámetros tomen efecto deberemos reiniciar el ICM o directamente la instancia. Podremos ver los valores aplicados en la transacción SMICM → Pasar a → Servicios:

smicm

Una vez el parámetro está definido hay algunos campos que podemos modificar dinámicamente:

smicm2

smicm3

Podemos comprobar que el servicio se ha creado y responde con un telnet:

telnet2

Para poder recepcionar los correos desde SAP es necesario activar el servicio SAPConnect en la transacción SICF:

sapconnect

Una vez llegados hasta este punto el entorno SAP está listo para recibir emails, aunque aún deberemos hacérselos llegar.

Conectores y reenvíos Office 365

En este apartado las combinaciones son numerosas, podríamos reenviar a SAP todos los correos que lleguen a un buzón o solo aquellos con determinado asunto, etc.

Para una de estas posibilidades podemos crear un conector similar al siguiente en el centro de administración de Exchange → Flujo de correo → Conectores:

En la siguiente imagen podríamos, en caso de tener dos dominios, utilizar uno en exclusiva para el reenvío de correos a SAP, aunque en este caso dejaremos la elección del envío en manos de otras reglas:

Indicaremos la(s) IP(s) a la que se intentará realizar el envío, detrás de la cual tendremos el servicio SAP:

 

Con preferencia, y tal como hemos definido en el parámetro del servicio smtp, utilizaremos siempre la capa de seguridad TLS

Será preciso completar un test aunque sea incorrecto para poder avanzar y guardar el conector. Para ello pulsamos validar:

 

Y finalmente pulsamos en crear conector:

Podremos utilizar este conector para reenviar correos a través de él mediante reglas con mayor o menor complejidad. Por ejemplo, podemos crear una regla para que todos los correos enviados a una cuenta en concreto, se canalicen hasta SAP a través del conector:

regla

Es importante tener en cuenta que con dicha configuración estándar el correo no llegará al buzón, sino que será redirigido exclusivamente a SAP salvo error en el conector.

En caso de que quisiéramos que se mantuviera en el buzón, podemos crear una regla para que se envíe una copia dentro del propio buzón marcando la opción de conservar:

reenvio

Transacción SOIN

Podemos verificar los correos entrantes en la transacción SOIN.

Es probable que durante las pruebas iniciales queramos realizar traces a todos los correos entrantes para poder determinar su correcto enrutamiento. Podemos gestionar el uso del trace mediante la opción SOIN →Utilidades → Parametrizaciones de trace:

parametrosTrace

Es importante desactivarlo o activarlo sólo cuando recibamos errores para evitar más traces de los necesarios.

Podremos ver los traces en la transacción SOIN → Utilidades → Selección de trace.

Con ésto habremos terminado la integración de correo entrante Microsoft 365 en SAP. Opcionalmente conviene tener en cuenta el siguiente punto acerca de el formato TNEF.

Formato TNEF [opcional]

Por defecto Outlook, Ms Exchange y por extensión Office 365 utilizan el formato propietario TNEF (https://es.wikipedia.org/wiki/TNEF) siempre y cuando sea posible. Es posible Es probable que por ello nos encontremos con el inconveniente de que lleguen correos a SAP con adjuntos de tipo winmail.dat que nos será imposible tratar dentro del sistema. Dentro de este adjunto encontraríamos la información codificada en dicho formato pero no podremos hacer uso de ella.

Más info: https://support.microsoft.com/en-us/topic/how-email-message-formats-affect-internet-email-messages-in-outlook-3b2c0536-c1c0-1d68-19f0-8cae13c26722

Para abordar este problema Microsoft propone dos soluciones:

  1. Cambiar el formato para los contactos externos
  2. Cambiar el formato para los contactos de un dominio específico.

Más info: https://support.microsoft.com/es-es/topic/c%C3%B3mo-especificar-el-formato-del-mensaje-de-correo-electr%C3%B3nico-que-se-usa-para-los-destinatarios-externos-para-evitar-los-datos-adjuntos-de-winmail-dat-4a379475-1557-9554-ab72-91c5867afc11

Para poder aplicar cualquiera de las dos soluciones deberemos conectarnos a la PowerShell de nuestro Exchange Online:

https://docs.microsoft.com/en-us/powershell/exchange/connect-to-exchange-online-powershell?redirectedfrom=MSDN&view=exchange-ps

Instalamos el proveedor de paquetes a instalar

Install-PackageProvider -Name NuGet -Force Install-Module -Name PowerShellGet -Force 

Posershell1

Instalamos el módulo EXOV2, ExchangeOnlineManagement, que contiene un pequeño conjunto de cmdlets nuevos y optimizados para escenarios de recuperación de datos en masa (miles y miles de objetos).

Install-Module -Name ExchangeOnlineManagement

Posershell2

Modificamos la política para hacerla menos restrictiva:

Set-ExecutionPolicy RemoteSigned

Posershell3

Importamos los modulos:

Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement

Posershell4

Import-Module ExchangeOnlineManagement

Posershell5

Nos conectamos para poder operar:

 Connect-ExchangeOnline -UserPrincipalName <UPN> [-ShowBanner:$false] [-ExchangeEnvironmentName <Value>] [-DelegatedOrganization <String>] [-PSSessionOption $ProxyOptions] Connect-ExchangeOnline -UserPrincipalName correo_usuario_admin@...onmicrosoft.com

Posershell6

Esto nos abre una ventana de login y nos conectamos.

Finalmente configuramos nuestro exchange como mejor nos convenga.

¿Te ayudamos a configurarlo?

Nuevo formato de entradas SAP GUI

Nuevo formato de entradas SAP GUI 612 459 SAPMiN

A partir de la release 7.40 del SAPGui encontramos disponible un nuevo formato de entradas SAP GUI para gestionar la información de las conexiones con los diferentes sistemas SAP, el denominado SAP UI Landscape.

Esta nueva configuración es utilizada como estándar a partir de la versión SAPGui 7.50 en adelante.

Como podemos ver a continuación todos los ficheros de configuración de las versiones antiguas pasan a ser sustituidos por dos ficheros en formato xml:

SAP Gui < 7.40           SAP Gui >= 7.40
saplogon.ini             SAPUILandscape.xml
sapshortcut.ini          SAPUILandscapeGlobal.xml
SapLogonTree.xml
sapmsg.ini
saproute.ini

Estos ficheros se encuentran por defecto en la siguiente ubicación %APPDATA%\SAP\Common (por ejemplo C:\Users\usuario\AppData\Roaming\SAP\Common).

En caso de tener un SAPGui instalado en versiones anteriores, y pasar al nuevo formato, el propio programa recopilará todos los datos de los ficheros de configuración .ini y los transformará de forma automática al formato .xml estándar actual.

Edición del fichero de configuración

Tenemos varias alternativas para configurar las entradas a los sistemas, organizarlas en carpetas, crear favoritos etc:

◊ Modo tradicional: mediante el propio SAPGui

Como sucedía hasta ahora podemos incluir entradas directamente en el SAPGui

SAP GUI

El propio SAPGui generará toda la información necesaria en el fichero xml:

XML

Edición manual de los ficheros

Al tratarse de un fichero con formato xml, podemos editar su contenido mediante un editor de texto. En la imagen superior podíamos ver cómo es el detalle del formato de entradas SAP GUI  en el fichero editado generado.

Para que la edición sea correcta, serán necesarias las reglas de definición contenidas en el esquema XML SAPUILandscape.xsd contenido en la siguiente nota:

https://launchpad.support.sap.com/#/notes/2112449

Las etiquetas para definir los diferentes tipos de elementos/recursos dentro del fichero son estas:

Etiquetas XSD

Hay que poner especial atención en el hecho de que si necesitamos añadir una entrada o elemento nuevo, será necesario generar un uuid mediante algún generador externo como por ejemplo https://www.uuidgenerator.net/.

Transacción SLMT

Posiblemente esta es la opción más novedosa: poder editar el fichero XML directamente desde una transacción SAP SLMT (Landscape Maintenance Tool). Para poder utilizarla es necesario tener implementada en el sistema la nota 2311166, y tiene el siguiente aspecto:

Transacción SLMT

Mediante esta transacción podremos crear nuevos accesos a sistemas, nuevos elementos como entradas de saprouter, servidores de mensajes para grupos de logon, etc.

Esta herramienta también nos posibilitará adaptar las entradas de ficheros .ini de releases anteriores al formato actual, editar un xml adicional y consolidarlo con el contenido de nuestro .xml actual, etc:

Transacción SLMT

Distribución de los ficheros xml

Una vez que tengamos definidos los ficheros xml con todas las entradas necesarias, podremos seguir algunas de las siguientes estrategias para hacerlos accesibles a los diferentes usuarios según nuestras necesidades:

  1. Ficheros locales:los ficheros de configuración se guardarán de forma local en el equipo del usuario.
  2. Ficheros en recursos compartidos: podremos compartir en una ubicación de red el fichero con los permisos adecuados para que los usuarios puedan hacer uso de ellos. Por seguridad lo publicaremos con acceso de sólo lectura para restringir la edición de las entradas a usuarios administradores. Para poder utilizar esta estrategia será necesario definir la variable de entorno SAPLOGON_LSXML_FILE con el valor del Path y nombre del fichero xml.
  3. Ficheros en recurso web: Es posible publicar los ficheros xml en un servicio web de tipo http://servidor:puerto/config/SAPUILandscape.xml y configurar el SAPGui para que haga uso de dicho recurso. Adicionalmente añadiremos la url del fichero xml como valor en la varaible CoreLandscapeFileOnServer en la entrada del registro de Windows
    HKEY_LOCAL_MACHINE\SOFTWARE\SAP\SAPLogon\Options en versiones de 32 bit 
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP\SAPLogon\Options en versiones de 64 bits
    

    También podemos utilizar la nueva variable de entorno SAPLOGON_LSXML_FILE para indicar la ubicación sin modificar el registro.Conviene destacar, que dentro de SAPUILandscape.xml podemos indicar la ubicación de otros ficheros, con lo que podríamos modificar, por ejemplo, la ubicación de SAPUILandscapeGlobal.xml. Conviene que ambos estén apuntando en la misma dirección para evitar quebraderos de cabeza:

    SAPUILandscapeGlobal.xml en APUILandscape.xml mediante Include

Las dos últimas opciones nos permitirán realizar una gestión centralizada de todos los cambios. En estos casos es interesante activar la opción ‘Allow caching of server configuration files’. De esta forma, los ficheros de configuración quedan cacheados ante un eventual problema con los centralizados. Adicionalmente podemos reflescarlos en cada reinicio o cada cierto intervalo de horas:

SAP GUI Options, allow caching

Podemos encontrar mucha más información de éstas y otras opciones en las guías de administración de SAPGui:

https://www.sap.com/documents/2017/07/883c670b-c97c-0010-82c7-eda71af511fa.html

Esperamos que esta información os haya servidor de ayuda.

¿os habéis encontrado algún problema con el nuevo formato XML del SAPGui? Déjanos tus comentarios abajo o a través de nuestro correo, te ayudaremos encantados.

 

Integración de correo Microsoft 365 en SAP, correo saliente

Integración de correo Microsoft 365 en SAP, correo saliente 939 449 SAPMiN

Microsoft 365, antes Microsoft Office 365, es un conjunto de herramientas que nos permite crear, acceder y compartir a documentos tanto en un entorno local como en la nube, gestión de correo electrónico, etc. entre muchas otras posibilidades.

La integración del correo Microsoft 365 en SAP es una de las formas en las que ambas suites interactúan.

En la siguiente nota (722513 – Desktop Office Integration: Maintenance information) podréis encontrar más información al respecto.

La integración del correo saliente Microsoft 365 en SAP no es un proceso complicado y con Microsoft 365 no difiere mucho de otras alternativas. En esta entrada trataremos el correo saliente y dejamos para una futuro el correo entrante. La configuración del correo saliente es notablemente más sencilla que la del entrante:

Configuración de red / conectividad

El primer paso es asegurarnos de que tenemos acceso desde SAP al servidor smtp.office365.com.

Desde el propio servidor SAP podemos realizar ping y telnet a dicha dirección y puerto 587, y con ello comprobaremos si accedemos correctamente. En caso de no tener éxito habrá que revisar los diferentes elementos de red que intervienen en esta comunicación.

telnet

Nodo de salida a Office 365

Para definir un nodo de salida deberemos ir a la transacción SCOT y definir un nodo de tipo SMTP que enviará los e-mails a través del host smtp.office365.com en el puerto 587.

scot

Como se muestra en la imagen de arriba es necesario indicar en el apartado SMTP Connection → Security la opción más restrictiva: TLS obligatorio. El resto de opciones no funcionarán o podrían presentar problemas, por lo que no es aconsejable su uso.

Dentro de las opciones (SMTP Connection → Settings) del nodo recién creado recomendamos activar las siguientes dos opciones:

  • Check Host Name
  • Check Server Certificate

De esta forma se comprobarán el nombre del servidor de correo y el certificado con el que se autentique. El hecho de utilizar esta última opción nos ofrecerá permitirá indicar el contenedor PSE en el que albergaremos el certificado que debemos aceptar de Microsoft. Indicaremos el contenedor SSL Client por defecto en el campo Client Identity, donde posteriormente importaremos dicho certificado.

Por último, deberemos indicar un usuario y contraseña de una cuenta válida dentro del servicio Microsoft 365.

scot2

Es importante destacar que la cuenta de usuario que hayamos definido en la imagen anterior será la emisor de los correos. Si queremos cambiar el emisor de los mails por otra cuenta diferente, por ejemplo la de un usuario final, la primera cuenta deberá tener permisos para enviar correos en nombre de la segunda dentro de Microsoft 365.

Certificados de seguridad

Una vez definido que debe aceptarse el certificado del servidor, debemos incluir dicho certificado o el de las entidades que lo generen en la transacción STRUST dentro del contenedor pse que hemos definido. De lo contrario veremos en los traces del ICM aparecer errores de certificado cada vez que tratemos de enviar un correo y dichos correos no llegarán al destinatario.

Podemos obtener el certificado del servicio SMTP de Microsoft 365 ejecutando el siguiente comando:

openssl s_client -starttls smtp -showcerts -connect smtp.office365.com:587 -servername smtp.office365.com | openssl x509 > o365.cer

Tras ello abriremos el contenedor definido en el punto anterior, cargaremos el certificado y lo incluiremos en la lista de certificados admitidos, guardaremos y distribuiremos. En función de la versión es posible que sea necesario reiniciar el ICM.

strust

 

Cuentas de correo

En la transacción SU01 podemos añadir/modificar la cuenta de correo de cada usuario. Si la cuenta coincide con la del servidor Microsoft 365 no habrá problema.

No obstante es muy habitual que cada usuario tenga su propia cuenta. En ese caso podemos encontrarnos con errores como el siguiente en la SOST:

ErrorRelay

o en los traces del ICM:

Error_relay

Este problema se debe a que la cuenta de correo definida para el usuario SAP, en la transacción SU01, no tiene permiso para enviar correos en nombre de la que hayamos definido en la transacción SCOT. Debemos entonces asignar estas autorizaciones desde el centro de administración de Microsoft 365. Puede hacerse de forma global mediante comandos PowerShell o manualmente para cada usuario/buzón compartido. Hay que tener en cuenta que no es válido para grupos de Microsoft 365. Para ello seleccionamos un usuario y editamos sus opciones:

buzon_office365

Y añadimos la cuenta definida más arriba en el apartado de autenticación de la TX SCOT:

Delegacion_buzon

Con ésto ya estaría el sistema listo para enviar correos desde SAP haciendo uso del servicio Microsoft 365.

Resumen

En apenas unos pocos pasos hemos configurado la integración del correo saliente Microsoft 365 en SAP con seguridad TLS y comprobación del certificado.

Próximamente configuraremos el correo saliente.

JavaSupportTool

SAP NW Java Support Tool

SAP NW Java Support Tool 637 466 SAPMiN

Como continuación al artículo que tratábamos la instalación de parches en una instancia Java sin necesidad de la herramienta SUM, en esta ocasión detallaremos el propósito y funcionamiento del componente SAP NW Java Support Tool (info: SAP Note 2352717 – SAP NW Java Support Tool).

Este software nos permite conectarnos a una instancia Java y realizar las siguientes tareas:

  • Recopilar traces y logs para un análisis detallado de problemas, y poder enviar el resultado al soporte de SAP en caso de ser necesario
  • Identificar el último nivel de parches disponibles para la instancia y resolver las dependencias entre componentes para poder instalarlos, proporcionando los links de descarga directos, pudiendo añadirlos al download basket directamente.
  • Grabar la pantalla mientras se reproducen los errores

Esta herramienta que puede descargarse aquí, está escrita en Java, y puede ejecutarse en cualquier equipo que cumple con las siguientes especificaciones:

  • JRE 1.7 o superior
  • Acceso a Internet para descarga de información desde el portal de SAP
  • Acceso al puerto 5XX14 de la instancia Java a la que queremos conectarnos
  • Las releases Java a las que se puede acceder son 7.10 en adelante, aunque para versiones anteriores también se pueden desplegar una serie de ficheros .jar y hacer funcionar la app

Cómo funciona

Una vez descargado el fichero, lo descomprimimos, y extraemos NWJavaSupportTool.jar. Para ejecutarlo necesitaremos una versión JRE 1.7 o superior y podemos lanzarlo mediante el siguiente comando:

java -jar NWJavaSupportTool.jar

A continuación aparece la pantalla de login a la instancia Java a la que nos queremos conectar:

JavaSupportTool_Login

Introducimos los datos de conexión y aparecen las siguientes opciones:

JavaSupportTool

Exception

Este apartado nos permitirá grabar un vídeo con lo que suceda en la pantalla principal de nuestro equipo quedando registrados los posibles errores que se den en la instancia:

JavaSupportTool_Exception

Hanging/Crashing

Esta opción nos permite recopilar toda la información del estado del entorno Java para poder enviárselo a SAP y/o analizarla de forma local. El contenido de la información recopilada se ofrece al usuario antes de realizar el envío.

Expert

Esta sección nos permitirá entre otros revisar todos los ficheros de log y trace de la instancia, generar un dump de los procesos server, o verificar los componentes instalados y versión de los mismos

JavaSupportTool_Expert

SC Patch Tool

Posiblemente una de las opciones más interesantes. Tras iniciarla, nos pedirá un usuario y contraseña de acceso a la web de soporte de SAP:

JavaSupportTool_PatchTool JavaSupportTool_PatchTool2

Recomendamos utilizar un usuario técnico para hacer login en la herramienta. A continuación nos aparecerán los componentes con las versiones de parches instalados y últimos disponibles:

JavaSupportTool_PatchTool3

Podemos seleccionar varios componentes, y pulsar el botón Check para chequear todas las dependencias necesarias para poder instalar el último nivel de parches disponible:

JavaSupportTool_PatchToolFin

Nos aparecen en un listado todos los componentes y niveles de parche a instalar. Si pulsamos cada uno de ellos, nos llevará al enlace de descarga de cada uno de ellos, y si los seleccionamos podemos incluirlos en el download basket para una posterior descarga con SAP Download Manager:

JavaSupportTool_Down

Esperamos que podáis sacarle partido.

Si tienes cualquier duda del funcionamiento de la herramiente SAP NW Java Support Tool, déjanos aquí tus preguntas o comentarios.

POC CVE-2020-6207 en Solution Manager 7.2 EEM

POC CVE-2020-6207 en Solution Manager 7.2 EEM 372 564 SAPMiN

Probamos un POC de CVE-2020-6207 en SAP Solution Manager 7.2 End-user Experiencie Montiroing (EEM).

CVE-2020-6207

Hace alrededor de un año se publicó una vulnerabilidad del módulo EEM (End-user Experience Monitoring) para Solution Manager 7.2. La información completa puede verse aquí: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-6207. Fue catalogada con una puntuación de 10/10 en CVSS v3 (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H). Ésto da una idea de la gravedad el problema y requiere una atención inmediata para evitar la explotación de la vulnerabilidad.

CVE-2020-6207_cvss

SAP User Experience Montoring & SAP Solution Manager

SAP Solution Manager es una solución para la gestión integral y centralizada de aplicaciones SAP (ERP, CRM, BI, entre otros). Permite gestionar el ciclo de vida, optimizar procesos, controlar procesos de negocio, centralizar soporte de sistemas SAP y no SAP implementados entre otros. Es una suite compatible con ITIL en al menos 15 procesos distintos.

SAP User Experience Monitoring (EEM) es una herramienta para evaluación y reporting de sistemas productivos (y no productivos) integrada como parte de la solución de monitorización que SAP Solution Manager ofrece. Los datos se almacenan en el BW del propio SolMan y permite como otras herramientas de monitorización alertas según a través de varios canales (email, sms…), reportes predefinidos, reportes personalizados, análisis interactivos, etc. Más info:

El anuncio de la vulnerabilidad fue descrita en la Black Hat USA (pdf) por investigadores de Onapsis. Y al poco tiempo se midieron numerosos intentos de explotación de la vulnerabilidad. SAP se apresuró a lanzar una nota que corregía el problema: 2890213 – [CVE-2020-6207] Missing Authentication Check in SAP Solution Manager, publicada en boletín de Marzo junto a otras relacionadas 2845377 – [CVE-2020-6198] Missing Authentication check in SAP Solution Manager (Diagnostics Agent).

En este caso, si se daban las condiciones bastaba con tener acceso al puerto utilizado por NetWeaver Administrator (NWA) para comprometer el sistema por completo. Generalmente el puerto utilizado para el NWA es el 5XX00 (puerto del Internet Comunication Manager), siendo XX el número de la instancia Java. Por ejemplo, si una instancia Java tiene el número 06, http utilizará el 50600; 50601 usualmente si es https.

Proof of Concept

Recientemente , Dmitry Chastuhin publicó esta intersante POC (Prueba de concepto) que incluye un script escrito en python con finalidad educativa con el que se pude verificar si un sistema es vulnerable:

Es importante destacar la trascendencia de este tipo de vulnerabilidades, ya que el Solution Manager muy habitualmente se encuentra interconectado con todos los entornos SAP disponibles, e incluso con algunos no SAP, y los daños podrían propagarse a otros sistemas, quedando expuestos éstos también, con el potencial riego que puede suponer.

Recuerda la importancia de mantener tus sistemas y aplicaciones siempre actualizados.

Las actualizaciones de las soluciones de una organización siempre constituyen un quebradero de cabeza constante. Una metodología eficiente, programada y cumplida reduce los riesgos de forma considerable. SAP recomienda actualizar el kernel cada 6 meses y Support Package Stack al menos una vez al año.

Si necesitas ayuda, no dudes en contactarnos.

Más información: https://onapsis.com/blog/new-sap-exploit-published-online-how-stay-secure

Instala parches en Netweaver Java sin utilizar SUM

Instala parches en Netweaver Java sin utilizar SUM 419 290 SAPMiN

Instala parches en Netweaver Java sin utilizar la herramienta SUM

Es muy posible que se os haya presentado en alguna ocasión la circunstancia de tener que instalar un parche para, por ejemplo, subsanar una vulnerabilidad de seguridad en un entorno Java, como el Solution Manager, el portal, etc. y que hayáis pensado en el esfuerzo que tiene hacerlo mediante el SUM (Software Update Manager) de SAP, y se os hayan pasado las ganas de actualizar nada. Si es así, la entrada de hoy os será de gran utilidad.

Hagamos un poco de memoria: a lo largo del año 2013, ha llovida bastante ya, SAP dejaba de soportar la instalación de parches en los entornos J2EE mediante el JSPM. Esta herramienta permitía, por ejemplo, instalar parches individuales de forma rápida y efectiva, mediante unos pocos clicks. De 2013 en adelante la herramienta “obligada” para las actualizaciones es la SUM.

Esta decisión provoca que cualquier actualización dentro de una instancia Java, ya sea un parche, ya sea un sp-stack completo, se eternice, y nos haga pasar a través de un montón de pasos, como si de un upgrade se tratara.

Además del Java Support Tool, que hablaremos en otro post, os presentamos una forma más directa aún de instalar los parches de forma manual, a través de telnet. Adelante, manos a la masa!

Lo primero de todo, como es costumbre, consistirá en asegurar que tenemos un backup de la BBDD por si acaso. Seguidamente descargamos el parche en cuestión:

Por supuesto, deberemos comprobar si existe alguna dependencia de otros componentes y/o versiones de parches. En caso afirmativo los descargaremos, y volveremos a verificar sus posibles dependencias de forma recursiva, hasta asegurar que contamos con todos los parches necesarios para que el update sea consistente:

A continuación subimos los parches a una carpeta del servidor

Creamos un fichero .txt que contenga el nombre y la ruta absoluta de los parches que vamos a instalar, por si acaso los ponemos en el orden exacto en el que los queremos importar:

Nos conectamos a la consola de administración vía telnet a la dirección localhost 5xx08, donde xx es el número de instancia de la pila Java y hacemos login con el usuario administrador

Listamos los nodos disponibles con el comando lsc, y nos dirigimos a uno de ellos con la instrucción jump id_nodo, lanzamos el comando add deploy y por último ejecutamos:

deploy list=unidad:\usr\sap\XXX\tmp\parches\parches.txt version_rule=all on_prerequisite_error=stop donde el parámetro list se corresponde con la ruta absoluta al fichero que hemos generado en el paso anterior, y que contiene las rutas absolutas a los ficheros de todos los parches que queremos instalar.

En caso de que alguno de los componentes tenga que desplegarse en modo offline, se desconectará la sesión de telnet. Nos volveremos a conectar de nuevo, una vez esté levantada y disponible la instancia, y lanzaremos el comando get_result para comprobar la finalización del proceso.

Verificaremos que todos los componentes se han actualizado adecuadamente:

En ocasiones nos hemos encontrado, sobre todo en entornos Windows, que al realizar el despliegue de tipo offline, la pila Java no levanta pasado un tiempo, cuando debería hacerlo para finalizar la actualización. En estos casos habrá que revisar los logs de los procesos principales para determinar la causa del problema.

¿os habéis encontrado algún inconveniente al utilizar este u otros métodos de actualización?

Déjanos tus comentarios aquí 😉

Fin de soporte para varias versiones SAP Netweaver

Fin de soporte para varias versiones SAP Netweaver 1331 738 SAPMiN

Fin de soporte para algunos sistemas Netweaver

A inicios de este año, SAP anunció por una parte la ampliación del soporte hasta 2030 del ERP, y por otra el fin de soporte de algunas instalaciones basadas en Netweaver.

En concreto, las releases que dejarán de tener soporte a partir del 31 de diciembre de 2020 son estas:

  • NetWeaver ABAP 7.10
  • NetWeaver ABAP 7.11
  • NetWeaver ABAP 7.20
  • NetWeaver ABAP 7.30
  • NetWeaver Java 7.10
  • NetWeaver Java 7.11
  • NetWeaver Java 7.20
  • NetWeaver Java 7.30
  • NetWeaver Java 7.31
  • NetWeaver Java 7.40

Recordemos además que las siguientes versiones están fuera de soporte desde finales del 2017:

  • NetWeaver Java 7.00
  • NetWeaver Java 7.01
  • NetWeaver Java7.02
  • NetWeaver Java 7.03

Para todas estas versiones no se ofrecerá soporte extendido, y por tanto será obligatorio realizar un upgrade de versión.

Es importante destacar que estas fechas afectan a productos como el Enterprise Portal, Business Warehouse, Process Integration, Solution Manager, etc. basados en las releases indicadas.

 

Versiones soportadas

En caso de contar con un sistema en una de las versiones enumeradas anteriormente, deberemos tener en cuenta las siguientes fechas y releases a la hora de llevar a cabo la actualización de los entornos:

Sistemas Netweaver ABAP

Fin de soporte estándar fijado el 31.12.2025, no se prevé soporte extendido.

– Netweaver 7.00

– Netweaver 7.01

– Netweaver 7.02

– Netweaver 7.51

Fin de soporte estándar fijado el 31.12.2027, con soporte extendido hasta 2030.

– Netweaver 7.03

– Netweaver 7.31

– Netweaver 7.4

– Netweaver 7.5

– Netweaver 7.52

Sistemas Netweaver Java

Fin de soporte estándar fijado el 31.12.2027, con soporte extendido hasta 2030.

– Netweaver 7.5

 

Aplicaciones principales Business Suite 7

En cuanto a las aplicaciones core de la Business Suite 7, tendrán un soporte estándar que se alargará hasta finales de 2027. Entre estas soluciones se encuentran las siguientes:

  • SAP ERP 6.0
  • SAP CRM 7.0
  • SAP SCM 7.0
  • SAP SRM 7.0

Todos los respectivos paquetes de mejora o EHPs están incluidos dentro del soporte estándar.

Por último, es importante destacar que las fechas futuras de fin de soporte fijadas en los años 2025, 2027 y 2030 son susceptibles de ser ampliadas, y muy posiblemente sufrirán cambios en las condiciones que las hagan efectivas.

En SAPMiN podemos ayudarte a actualizar todos tus sistemas SAP, ¿hablamos?

Si tienes cualquier duda, déjanos aquí tus preguntas o comentarios.

sapgui_fondo_rojo

SAPGui: Asignar diferente color de fondo para cada entorno

SAPGui: Asignar diferente color de fondo para cada entorno 761 285 SAPMiN

Problemática

Estás trabajando en SAP, con conexiones a varios sistemas diferentes, y con unos cuantos modos en cada una de ellas, y de repente, lanzar una transacción/acción en uno de ellos, y te das cuenta de que lo has hecho en la instancia equivocada.

Comienzas a borrar una serie de datos, cuando de repente ves que lo estás lanzando en producción, cuando creías que lo estabas haciendo en el entorno de calidad.

¿te suenan estas situaciones? ¿te han sucedido en alguna ocasión?

Solución

A continuación te enseñamos un pequeño truco que seguramente te será de gran ayuda. Desde hace ya unas cuantas versiones de SAPGui es posible asignar a cada sistema un color de fondo determinado, de tal forma que podemos configurar el entorno productivo un color de fondo rojo por ejemplo, que nos alertará cada vez que pongamos el foco en un modo correspondiente a este sistema.

Para activar esta configuración basta con hacer login en el sistema deseado y abrimos el botón de opciones del SAPGui que tiene este icono   sapgui_options

y pulsaremos Options. A continuación se desplegará una ventana, y deberemos selección el siguiente path:

Visual Design → Color settings → Colours in System

Como podemos apreciar en la imagen anterior, tenemos unos cuantos colores para elegir. Por si fuera poco, la configuración de diferentes no sólo es aplicable a un sistema, sino que es posible definir diferentes colores para cada mandante en cada uno de los sistemas.

Por ejemplo, configuramos en color rojo para el fondo del entorno de producción, y observamos los resultados:

sapgui_fondo_rojo

Los diferentes temas del SAPGui nos ofrecen una amplia gama de posibilidades. Por ejemplo, seleccionando el tema Enjoy es posible elegir entre los siguientes colores o combinaciones:

Recordatorio: Como de costumbre os recomendamos actualizar la release del SAPGui a la última versión soportada, y con un parche lo más reciente posible. Actualmente sólo se encuentra soportada para Windows la versión 7.60, y la 7.50 en su modalidad Java. Podemos encontrar el roadmap para este componente en la siguiente nota:

147519 – Maintenance strategy / deadlines for SAP GUI for Windows / SAP GUI for Java

Esperamos que este pequeño truco os sea de utilidad y que nadie vuelva a equivocarse de sistema al lanzar las tareas 🙂

¿tienes alguna duda? Si podemos ayudarte no tienes mas que contactar con nosotros a través del siguiente enlace.

Renovación de certificados entre SCC y SAP Cloud Platform

Renovación de certificados entre SCC y SAP Cloud Platform 1280 720 SAPMiN

SAP Cloud Platform

SAP Cloud Platform es una plataforma como servicio desarrollada por SAP SE en línea con las tendencias actuales de cloud computing.

Permite extender las capacidades de aplicaciones, procesos de negocio, integraciones, etc para un sinfín de escenarios, tanto cloud como on-premise. Y todo ello con estándares abiertos.

SAP Cloud Connector

SAP Cloud Connector es un agente que sirve de unión entre aplicaciones en la plataforma cloud y aplicaciones on-premise con capacidades de alta disponibilidad y seguridad. Debe instalarse on-premise haciendo las veces de saprouter (y mucho más) y evitando proxies inversos, DMZs, o reglas complejas en firewalls.

Consume muy pocos recursos y puede conectar múltiples entornos a la vez, incluidos entornos no SAP. Existe versión para Microsoft Windows, GNU/Linux, Mac OS e incluso también una versión portable.

SCC permite varias configuraciones relacionadas con la seguridad según sean las necesidades del entorno que conviene conocer y ajustar.

La primera de ellas y muy recomendable es modificar antes que cualquier otra cosa es la contraseña de acceso al servicio.

Por defecto, la contraseña de SCC viene hardcodeada en local en el fichero config\users.xml

config\users.xml

No estará presente en texto plano sino su hash mediante sha1 o sha-256. En este último caso tendrá el valor password=”181229424893BB65D94A74C2132B8B9E5ADFE851464FDB5CB9F49E8A8204BE7B” que se corresponde con la contraseña manage. Y que puede ser utilizado para resetear la contraseña al valor por defecto.

Hash de la contraseña

Por lo que una de las primeras cosas que debemos hacer es cambiar dicha contraseña y restringir el acceso al fichero. Aunque una función hash no es reversible, no hay que olvidar que puede ser comparada contra un diccionario. SCC nos permite también habilitar el acceso al servicio mediante el LDAP de nuestra organización, agregando una capa más de seguridad.

Configuración inicial

Como con cualquier servicio web, es recomendable (más bien necesario) configurar certificados SSL/TLS para evitar que la información viaje en texto plano y pueda ser interceptada mediante un sniffer o en un ataque mitm.

En este punto podemos hacer uso de una entidad autofirmada que gestionemos nosotros mismos para aprobar el request certificate generado en el servicio.

Éste certificado (User Interface), una vez firmado, puede ser reutilizado por el propio sistema para otros propósitos. O viceversa, el certificado de sistema puede ser reutilizado para el interfaz.

Certificados entre Cloud y onPremise

Además de estos certificados, que son los más evidentes, hay otro que pasa desapercibido y es el que desencadena esta entrada, son los certificados entre SCC y SAP Cloud Platform

Con la versión SCC 2.12.2 ha llegado una pequeña característica que echábamos en falta. Y es que, a partir de esta versión se muestra la caducidad del certificado que cifra la conexión entre el entorno cloud y on-premise. Así que, si tu versión es anterior, te recomendamos que la actualices.

Si no es así y todavía continúas con una versión antigua es probable que ya te hayas encontrado con el inconveniente de tener que renovarlo cuando te enterabas de que fallaban las aplicaciones o veías que se había perdido la conectividad en las subcuentas de SAP Cloud Platform Cockpit.

El error puede verse tanto en el apartado Alerting del SCC como en SAP Cloud Cockpit, ya que se muestran como desconectados o con un error 401 Unauthorized.

O en los traces del servicio:

Traces!

La solución es sencilla, basta con actualizar el certificado y habremos resuelto el problema durante un año:

Certificado

Nos pedirá que introduzcamos la contraseña del usuario con el que se establece la comunicación. Volveremos a ver como se restablece la comunicación entre ambas partes y se muestra correctamente:

Certificado renovado

Podemos enviar las alertas por correo para prevenir futuros problemas.

En esta pantalla, en las nuevas versiones, se muestra además la validez del certificado. Pero para las versiones antiguas también es posible conocerlo. Si analizamos la estructura de carpetas podemos ver que las subcuentas conectadas almacenan diversos ficheros de configuración (xml, ini) en scc20\scc_config\hana.ondemand.com\<subaccount>\ que identifican el frontend y el backend y sus puertos expuestos.

Vemos además un fichero un repositorio de certificados de seguridad llamado scc.jks.

SCC tiene como prerrequisito JDK, por lo que podremos utilizar la herramienta keytool incluida en ella para explorar el contenido y con ello averiguar la caducidad del certificado con el que se cifrará la comunicación entre SCC y Cloud.

Para ello ejecutamos: keytool -list -v -keystore scc.jks. Por defecto no hay que proporcionar ninguna contraseña:

keytool info

Keytool info 2

En las imágenes superiores podemos ver que en el almacén se guardan el certificado de la entidad con la que SAP firma sus certificados y el certificado que acabamos de renovar, habiendo desaparecido la versión anterior.

Sencillo, ¿verdad?