Casos Warning sobre SAP Hana (1)

Existe un pool de buen material de SAP Hana en Internet y el portal de oficial de SAP, sin embargo, existen muchos detalles que no dicen al momento de presentarse algunos inconvenientes. La distribución oficial de Linux para SAP Hana es SuSE, considero que es una distribución estable e intuitiva, viene de la rama Red Hat. Aún así, dentro del proceso de instalación de la suite se presentan casos de dependencias o problemas que se resuelven exclusivamente sobre el sistema operativo.

Por ejemplo está el caso del siguiente Warning:

mensaje_warning_1

Según pareciera existe una versión de SAP B1 para Hana instalada pero no es así, cuando se busca en el directorio /usr/sap/SAPBusinessOne no existe el directorio SAPBusinessOne, en teoría lo que pudo pasar es que se eliminó de manera manual y durante la instalación del SAP B1 para Hana, aparece el mencionado Warning, no más con eliminar el rpm del sistema operativo, podemos continuar con la instalación sin que aparezca nuevamente el aviso.

Inicialmente debemos corroborar qué paquetes de SAP B1 están instalados en el sistema operativo, estos paquetes son una serie de rpm, como root que podemos listar:

rpm -qa | grep B1

Debería aparecer una lista parecida a la siguiente:

B1ServerToolsLicense-9.1021011-0
B1ServerOI-9.1021011-0
B1ServiceLayerApacheWebServer-9.1021011-0
B1AnalyticsPlatformCommon-9.1021011-0
B1AnalyticsTomcatConfiguration-9.1021011-0
B1ServerToolsJava64-9.1021011-0
B1ServerToolsSLD-9.1021011-0
B1ServerSHR-9.1021011-0
B1ServerHelp_EN-9.1021011-0
B1AnalyticsTomcatEntSearch-9.1021011-0
B1ServiceLayerComponent-9.1021011-0
B1ServerToolsCommon-9.1021011-0
B1ServerToolsExtensionManager-9.1021011-0
B1ServerToolsXApp-9.1021011-0
B1ServerAddons-9.1021011-0
B1AnalyticsTomcatDashboard-9.1021011-0
B1ServerToolsTomcat-9.1021011-0
B1BackupService-9.1021011-0
B1AnalyticsTomcatReplication-9.1021011-0
B1ServerToolsSupport-9.1021011-0
B1ServerToolsMailer-9.1021011-0
B1AnalyticsOlap-9.1021011-0

Si se muestra la lista de programas relacionados con SAP B1 en paquetes de SuSE y el directorio /usr/sap/SAPBusinessOne no existe, es que muy probablemente se haya eliminado a mano la suite, se deben eliminar estos programas de la siguiente forma:

rpm -e --nodeps NOMBRE_PAQUETE_A_BORRAR

Ejemplo:

rpm -e --nodeps B1ServerToolsJava64-9.1021011-0

Posteriormente, se puede intentar la instalación como nueva sobre el sistema.

Posted in Linux, SAP, SuSE | Leave a comment

Cambiar modos o permisos en Linux

Una de las maneras para controlar accesos de forma más sencilla en Linux es a través del uso de permisos o cambio de modos para archivos y directorios. Es una tareas primordial al momento de administrar servicios y recursos sobre el sistema operativo.

Inicialmente se debe conocer la estructura de cómo vienen desglosados los permisos, esto se puede visualizar cuando listamos el contenido de un directorio determinado con:

ls -l

En dicho directorio puede haber tanto archivos como subdirectorios, se verían listados:

-rwxr--r--+ 1 Félix Félix 0 Jun  2 09:13 archivo1
-rwxr--r--+ 1 Félix Félix 0 Jun  2 09:13 archivo2
-rwxr--r--+ 1 Félix Félix 0 Jun  2 09:13 archivo3
drwxr-xr-x+ 1 Félix Félix 0 Jun  2 09:13 directorio1
drwxr-xr-x+ 1 Félix Félix 0 Jun  2 09:13 directorio2

En sistemas Unix como Linux se considera que todo es un arhivo, existen otros tipos de archivos como enlaces simbólicos o dispositivos que tienen su respectiva letra o símbolo que los representa al inicio de cada línea como en el ejemplo anterior. Pero acá haré ejemplo de directorios y archivos:

  • Toda línea que empieza con guión indica que es un archivo
  • Toda línea que empieza con la letra d indica que es un directorio

Cada archivo y directorio viene amarrado a una serie de permisos desglosados en tres grupos: dueño, grupo y otros. Después del primer símbolo o caracter que indica el tipo de archivo, viene una serie de letras, las que se explican en el esquema básico:

Esquema básico

Símbolo Significado Valor
r Lectura 4
w Escritura 2
x Ejecución 1

Estas tareas de cambio de modos o permisos, se pueden realizar tanto en el ambiente gráfico como en el ambiente de comandos. Haré ejemplos en comandos y de dos formas, de la forma literal y la forma numérica, como para tener dos alternativas de uso.

Ejemplos en modo literal

Ver permisos de archivo1:

ls -l archivo1

-rwxr--r--+ 1 Félix Félix 0 Jun  2 09:13 archivo1

Agrego permisos de ejecución para el grupo en archivo1:

chmod g+x archivo1

Vuelvo a listar para ver sus permisos después del cambio:

ls -l archivo1

-rwxr-xr--+ 1 Félix Félix 0 Jun  2 09:13 archivo1

Agrego permisos de escritura para el grupo y otros en archivo1:

chmod g+w,o+w archivo1

Vuelvo a listar para ver sus permisos después del cambio:

ls -l archivo1

-rwxrwxrw-+ 1 Félix Félix 0 Jun  2 09:13 archivo1

Agrego permisos de ejecución para todos en archivo1:

chmod +x archivo1

Vuelvo a listar para ver sus permisos después del cambio:

ls -l archivo1

-rwxrwxrwx+ 1 Félix Félix 0 Jun  2 09:13 archivo1

Quitar permisos de ejecución para todos en archivo1:

chmod -x archivo1

Vuelvo a listar para ver sus permisos después del cambio:

ls -l archivo1

-rw-rw-rw-+ 1 Félix Félix 0 Jun  2 09:13 archivo1

Así se puede jugar un poco visualizando en cada cambio que se realiza sobre el archivo, así como se realiza en archivo1 se puede realizar con un directorio, con la diferencia en que los directorios pueden cambiarse modos o permisos de manera recursiva, utilizando como argumento adicional la -R, como ejemplo:

ls -ld directorio1

drwxr-xr-x+ 1 Félix Félix 0 Jun  2 09:13 directorio1

Cambio sus permisos de manera recursiva:

chmod g+w directorio1/ -R

Aquí se incide sobre el directorio y sobre su contenido de manera recursiva, es decir, todo el contenido del directorio cambiará su respectivo permiso de escritura tanto en archivos como en subdirectorios dentro de directorio1, y todos tendrán permiso de escritura para el grupo. Igualmente para quitar modo o permisos se hace como en el ejemplo de quitar permisos.

Ejemplos en modo numérico

Aquí debemos tomar en cuenta los valores del esquema básico, donde cada significado de la letra tendrá un valor específico, y para cada grupo de modo o permisos, se sumarían estos valores, es decir, si en archivo2 tenemos:

ls -l archivo2

-rwxr--r--+ 1 Félix Félix 0 Jun  2 09:13 archivo2

En valor numérico sería la suma de modos:

  • Para el dueño: rwx = 4+2+1 = 7
  • Para el grupo: r– = 4+0+0 = 4
  • Para el otros: r– = 4+0+0 = 4

El valor general sería: 744

Si queremos otorgar permisos de escritura a grupo y otros, desglosamos de la siguiente manera:

  • Para el dueño: rwx = 4+2+1 = 7
  • Para el grupo: rw- = 4+2+0 = 6
  • Para el otros: rw- = 4+2+0 = 6

El valor general sería: 766

Aplicaríamos la suma de los valores con el comando chmod, de la siguiente manera:

chmod 766 archivo2

Listamos y se vería:

ls -l archivo2

-rwxrw-rw-+ 1 Félix Félix 0 Jun  2 09:13 archivo2

Todas estas operaciones, también son efectivas sobre directorios con la particularidad de que con directorios pueden hacerse de manera recursiva como en el ejemplo literal.

Posted in Linux, Recomendación | Leave a comment

Redimensionar partición raíz

Una manera para redimensionar la partición raíz sin necesidad de reinstalar el sistema operativo, es usando la herramienta fdisk, inicialmente se crea una nueva estructura de los sectores de la partición en el disco duro, por ejemplo, si nuestra partición raíz está en /dev/sda1, como usuario root hacemos lo siguiente:

fdisk /dev/sda1

Dentro, hay un menú de ayuda, con la letra m, se debe eliminar ese registro de sectores asignados a la partición y crear nuevamente, la cantidad de sectores dependerá del tamaño o la porción de sectores que le queremos asignar a la partición. Si se desea asignar desde el sector inicial hasta el último, es decir, a toda la partición, se deja por defecto.

Igualmente, si la partición tiene declarado un punto de boot, luego de reasignar los sectores a la partición, se le activa el punto de boot, con la opción a.

Finalmente se escribe todo para que surta efecto en los cambios, posteriormente, se reinicia el sistema operativo y luego se aplica un resize a la partición:

resize2fs /dev/sda1
Posted in Linux | Leave a comment

Nmap en Cygwin

Si eres de los que usa la shell alternativa Cygwin sobre Windows y necesitas trabajar con Nmap, recomiendo instalar el Nmap para Windows que se publica en la página oficial.

Una vez que está instalada la herramienta, simplemente se usa a través de Cygwin. Si tienes abierta una shell de Cygwin durante la instalación de Nmap para Windows, es mejor que cierres la shell y luego la abres, así podrá cargar en el ambiente la ruta para el uso de Nmap.

Posted in Recomendación, Windows | Leave a comment

Add-in para búsquedas con expresiones regulares en Excel

Una de las cosas que nos facilitan el trabajo a la hora de realizar cambios masivos de una constante o una variable que se repite dentro de un archivo de texto, es la herramienta de buscar y reemplazar.

La mayoría de los editores de texto vienen por defecto con esa función ya integrada y es muy cómoda, sin embargo, trabajando sobre Excel se me hacía un poco engorroso usarla, incluso las fórmulas que realmente son muy sencillas para trabajos masivos y más puntuales.

Así que empecé a investigar si dentro de las opciones de Excel existía una configuración en donde me habilitara funciones de expresiones regulares en la búsqueda, pero no fue así. Sin embargo, continuando con la investigación, llegué a toparme con RegEx Find, un Add-in que integra un botón dentro de la barra de Inicio de Excel.

Estoy usando Excel 2010 y me funcionó muy bien usando expresiones regulares, acá dejo el enlace de descarga del Add-in.

Posted in Excel, Recomendación, Windows | Leave a comment

Cygwin sobre Windows

Una de las herramientas que se usan mucho en el mundo Linux es la shell de comandos, cuando uno lleva años usándola, se llega adoptar muchas tareas que son desde mi punto de vista, más efectivas y eficaces a la hora de administrar sistemas o tareas forenses o descomponer un programa o realizar labores de tratamiento de datos para alguna base de datos mediante archivos csv, entre otras actividades.

Cygwin, es una shell que facilita toda esa gama de herramientas y comodidades sobre la shell desde sistemas Windows u otro sistema no Linux. Particularmente, por estar haciendo labores sobre sistemas SAP que involucran la utilización de Windows y parte del ambiente Microsoft, he debido usar Cygwin.

El programa por defecto, no trae muchas de las herramientas que disponemos en una shell nativa de Linux, sin embargo ofrece una lista de repositorios y programas que pueden ser instalados durante o posteriormente a la instalación del programa. Esto de instalar programas posteriores lo descubrí mientras usaba la herramienta porque no tenía idea cuando comencé a usarla.

Entonces, si ya tienes instalado el Cygwin, es probable que por alguna razón llegues a necesitar uno de los programas disponibles en su repositorio, simplemente es ejecutar el archivo de instalación, la herramienta no se instalará, solo revisará qué está instalado y qué no.

cygwin_instalador

Luego listará los programas disponibles, cuando se ejecuta, se deja todo por defecto, luego, si no pasamos a través de un proxy en nuestra conexión a Internet, podemos seleccionar dicha opción.

Se deja por defecto el directorio raíz para Cygwin e igualmente el directorio desde donde se hará la actualización o instalación, luego dependiendo de la conexión a Internet, se toma conexión directa o a través de un proxy, tomo el repositorio que venga por defecto si está bien la conexión. Se elige el programa que se desea agregar o actualizar desde el siguiente árbol.

cygwin_tree

Una vez que se tiene instalado el Cygwin, por defecto crea una ruta Home para el usuario, pero dicha ruta no se corresponde al Home real del usuario en Windows, algo por ejemplo:

cygwin1

Pero al igual que en Linux, podemos editar nuestro path o ruta real de nuestro Home para que cada vez que abramos Cygwin, automáticamente entre en el path absoluto de nuestro Home en Windows, editamos el archivo .bashrc:

vi ~/.bashrc

Y podemos agregar al final del archivo algo parecido a lo siguiente:

cygwin2

Incluso, había instalado vim y le agregué un alias de vi a vim tal como está en la imagen anterior. Luego es pensar en lo que se quiere y qué se necesita usar e instalar las herramientas apropiadas.

Desde Cygwin, he logrado usar scripts hechos con python y bash, los he usado sin ningún inconveniente.

Posted in Recomendación, Windows | 1 Comment

Manipular permisos o autorizaciones de usuarios en SAP Business One

Antes que nada, evita cambiar permisos o autorizaciones del usuario manager o cualquier otro usuario que tenga privilegios de administración del sistema.

Previamente, antes de cargar o modificar permisos en la tabla de SAP, debemos crear un archivo parecido al siguiente:

ejemplo_Excel

Este archivo, depende de los IDs de permisos o autorizaciones que vienen ya configurados desde la instalación de SAP.

Finalmente, debemos tener la siguiente Macro de Excel, que hará la lectura del archivo Excel, conexión a la base de datos SAP y escritura:

Sub importar_permisos()
'
' importar_permisos Macro
'
    Dim SboGuiApi As New SAPbouiCOM.SboGuiApi
    Dim SBO_App As SAPbouiCOM.Application
    Dim oCompany As New SAPbobsCOM.Company
    SboGuiApi.Connect ("0030002C0030002C00530041005000420044005F00440061007400650076002C0050004C006F006D0056004900490056")
    Set SBO_App = SboGuiApi.GetApplication()
    Set oCompany = SBO_App.Company.GetDICompany()
    Dim oRsSUers As SAPbobsCOM.Recordset
    Dim oSBObob As SAPbobsCOM.SBObob
    Set oSBObob = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoBridge)
    Set oRsSUers = oSBObob.GetUserList()
    col = 5

    Do While ActiveSheet.Cells(1, col) <> ""
        UserName = ActiveSheet.Cells(1, col)
        Row = 3
        'Do While ActiveSheet.Cells(row, 1) <> "" Or ActiveSheet.Cells(row, 1) <> "UP_MAIN_HEADER"
        Do While ActiveSheet.Cells(Row, 1) <> "" '"UP_MAIN_HEADER"
            ' Where has no son, There can Authoritaion rewrited
            If ActiveSheet.Cells(Row, col) <> "" And ActiveSheet.Cells(Row, 4) = 0 Then
                Select Case ActiveSheet.Cells(Row, col)
                    Case "Autorización total"
                        lPermission = 1
                    Case "Sólo lectura"
                        lPermission = 2
                    Case "Falta autorización"
                        lPermission = 3
                    Case "Varias autorizaciones"
                        lPermission = 4
                    Case "No definido"
                        lPermission = 6
                    Case Else
                        lPermission = -1
                End Select

                If lPermission <> -1 Then
                    Call oSBObob.SetSystemPermission(UserName, ActiveSheet.Cells(Row, 1), lPermission)
                    If oCompany.GetLastErrorCode <> 0 Then
                        ActiveSheet.Cells(Row, col).Color = "123456"
                    End If
                End If
            End If
            Row = Row + 1
        Loop
        col = col + 1
        oRsSUers.MoveNext
    Loop
    oCompany.Disconnect
    
End Sub

Una web que tomé como referencia fue ésta, pero realmente tiene unas líneas con errores, así que decidí hacer mi propia Macro, pero no estuvo de más la referencia.

Otro sitio interesante de ayuda es éste.

Por otro lado, bien recibida la ayuda del los amigos en el foro iberoamericano Ayuda SAP.

Posted in Excel, SAP, Windows | 4 Comments