Lea en SAP Netweaver . . .

Desanudando Conceptos: SAP HANA

No hay “newsletter”, conferencia o evento del ambiente ERP que en los últimos meses haya ahorrado detalles y especulaciones sobre el nuevo paradigma: SAP HANA.

En medio del marketing “hype”, es siempre difícil para los que estamos en el ruedo decodificar lo esencial de las nuevas tecnologías, así que aquí va nuestro aporte para ayudar a una cabal y conceptual comprensión de SAP HANA.

FaceBookTwitterGoogle+

SAP Netweaver / ABAP                  Notas técnicas / Tips / Tutorials

Atajos de teclado (shortcuts) para incrementar productividad en edición de programas y pantallas SAP

Conozca algunos atajos de teclado (shortcuts) útiles en SAP, y aprenda cómo utilizarlos tanto en pantallas SAP generales y en la edición de programas ABAP.

Si Ud. es un usuario acostumbrado a utilizar shortcuts (atajos - uso de combinaciones de teclas) para incrementar su productividad en diistintos entornos (Windows, Unix, Linux, etc.), también puede hacerlo en SAP, ya sea para usarlos en el momento de la edición de programas ABAP como para reemplazar el uso de los íconos disponibles en las pantallas generales en SAP en la barra de herramientas standard (Barra del sistema SAP) 

En este tip se han recopilado los atajos más comúnmente usados por nuestros colegas,  y se presenta una lista de las combinaciones de teclas asociadas a las acciones que realizan y que pueden ayudar a complementar los que ya conoce y utiliza en su tarea diaria.

 

En determinadas situaciones, la utilización del teclado de una notebook o PC utilizando combinaciones de teclas para realizar distintas acciones en reemplazo del mouse, puede permitir a los usuarios ahorrar tiempo o simplemente utilizarlas porque al aprenderlas y estar familiarizados con ellas, resulta de mayor comodidad.

Teniendo en mente dichos casos se ideó la siguiente lista de atajos de teclado o “Shortcuts” aplicables a SAP, tanto aquellas combinaciones de teclas utilizadas en pantallas SAP generales como el uso de las mismas en la edición de programas ABAP.

Algunos "atajos" usados en la Barra de Funciones del sistema (de pantallas SAP en general)

La tabla siguiente muestra una lista de los botones (íconos) comunes que se pueden encontrar en la barra de herramientas standard (la barra de Funciones del sistema) de las distintas pantallas de uso general en SAP y el "shortcut" (atajo) correspondiente con su acción asociada:

Botón (ícono) en pantallas generales de SAP Shortcut (atajo) Descripción de la acción asociada
ABAP-Boton-F3-Atras F3 Atrás
ABAP-Boton-Buscar Ctrl + F Buscar
ABAP-Boton-Buscar-Siguiente Ctrl + G Buscar Siguiente
ABAP-Boton-F1-Ayuda F1 Ayuda
ABAP-Boton-Shit-F3-Exit Shift + F3 Salir de la tarea actual
ABAP-Boton-Cancel F12 Cancelar
ABAP-Boton-Save Ctrl + S Guardar
ABAP-Boton-Crtl-P-Imprimir Ctrl + P Imprimir
     
ABAP-Boton-Customizar-Layout-Local Alt + F12 Personalizar "layout" local
ABAP-Boton-Primera-Pagina

Ctrl + PageUp

Desplazarse hacia la Primera Página
ABAP-Boton-Pagina-Anterior PageUp Página Anterior
ABAP-Boton-Pagina-Siguiente PageDown Página Siguiente
ABAP-Boton-Ultima-Pagina Ctrl + PageDown Desplazarse hacia la Ultima Página
     
Crtl + Y

Marcar un rectángulo de texto en cualquier pantalla SAP (se usa en combinación con las opciones de Copy (Ctrl-C) - Paste (Ctrl-V), para copiar y luego pegar lo seleccionado en donde se desee.

Util en aquellas pantallas en donde no es posible la selección de texto.

ABAP-Imagen-selccion-CTRL-Y

"Atajos" útiles usados en la edición de programas ABAP

La siguiente es una lista de algunas combinaciones de teclas ("shortcuts") más usadas en la edición de programas ABAP y la tarea que cada una de ellas permite realizar:

Shortcut Descripción de la acción que realiza
Ctrl + F1 Permite pasar a modo edición y salir del modo edición volviéndolas a presionar
Ctrl + F10

Acceso a la Barra de Menú de SAP - Las opciones de la barra de menú dependen de  la aplicación en la que se encuentre

ABAP-Barra-de-menu-SAP

Ctrl + F3 ABAP-Boton-Activar-Shit-F9 Activar cualquier objeto (programa, smartform, etc.)
F8 ABAP-Boton-Ejecutar-F8 Ejecutar

Shift + F3

 

Salir de la transacción con la que se está trabajando: si se presiona la combinación de teclas una sola vez.
Salir de SAP: si se presiona la combinación de teclas más de una vez hasta que no haya más transacciones que abandonar, y se encuentre con la pantalla de Log off.

 

Shift + F1 Acceso a modalidad Pretty Printer en programas.
Ctrl + A Seleccionar todo el texto del programa que se está visualizando.
Ctrl + U

Convertir el texto seleccionado a MAYUSCULAS (si está en minúsculas)

Antes de convertir:

ABAP-Convertir-texto-marcado-a-Mayusc

Después de convertir:

ABAP-Convertir-texto-marcado-a-Mayusc-despues

Ctrl + L

Permite convertir el texto seleccionado a minúsculas (si está en MAYUSCULAS)

Antes de convertir:

ABAP-Convertir-texto-marcado-a-Minusculas-antes

Después de convertir:

ABAP-Convertir-texto-marcado-a-Minusculas-despues

Ctrl + J

 

 

Convertir el texto seleccionado a minúscula, manteniendo la primera letra de la palabra en mayúscula.

Antes de convertir:

ABAP-Convertir-minusculas-primera-letra-Mayusculas-antes

Después de convertir:

ABAP-Convertir-minusculas-primera-letra-Mayusculas-despues

Ctrl + K Convertir el texto de MAYUSCULAS a minúsculas o viceversa, según como se encuentre el texto.
Ctrl + O

Posicionarse en una línea cualquiera, especificando el número de la misma.

ABAP-Posicionarse-en-linea-a-elegir

Se ubica directamente en la línea elegida (40):

ABAP-Posicionarse-en-linea-a-elegir-resultado

 

Ctrl + Z Deshacer último cambio en el código.
Crtl + Shift + L

Eliminar la línea del texto seleccionado.

Eliminar la primera línea del texto (si no hay nada seleccionado)

Ctrl + Shift + O Muestra opciones relacionadas con la manera en que se muestra el editor.
Ctrl + >

Comentar las líneas de código seleccionadas.

ABAP-Comentar-lineas-seleccionadas

 

Ctrl + Shift + >

Descomentar las líneas de código seleccionadas

ABAP-Descomentar-lineas-seleccionadas

Ctrl + Alt + <Teclas de dirección hacia arriba/hacia abajo>

Mover texto seleccionado, n líneas hacia abajo o hacia arriba sin alterar el resto del código.

Se moverá una línea por cada vez que se presione alguna tecla de movimiento de cursor (abajo/arriba).

Ctrl + F Ayuda online


Para tener en cuenta ...

  • La Barra de herramientas de la Aplicación (que se encuentra debajo de la Barra del título) en las pantallas de SAP,  tiene sus propios íconos dependiendo de la transacción que se haya ejecutado, y para la mayoría de esos íconos mostrados existe un shortcut correspondiente. No se hacen referencia a ellos en este tip debido a que los íconos de esa barra y los shortcuts asociados cambiarán dependiendo de la pantalla a la que se llegue al ejecutar una transacción en particular. No pertenecen a la barra de funciones del sistema (barra de herramientas standard  de SAP).
n_Diego-Perez Especialista ABAP

 


Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, SAP Netweaver, R/3 y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA


 

Cómo solucionar un error en la edición de un template en un Smartform en SAP

Conozca cómo realizar los cambios adecuados en un Smartform en SAP para solucionar el error RC = CM, FORM = CONVERT_METRIC, NR = 9, generado en el mismo por la edición incorrecta del tamaño de una línea del template. 

En ocasiones, al desarrollar un Smartform en SAP puede ocurrir que, mientras se está editando el Template de una ventana cualquiera, al ingresar el alto o el ancho de una linea (Height o Width) requerido para ese diseño, se cometa un error de tipeo en el momento de escribir la unidad. Por ejemplo, en vez de escribir LN (correspondiente al tamaño de línea) se escriba LM por error, como se muestra en la imagen siguiente:

ABAP-Smartform-1

SAP permitirá grabar los cambios sin ningún inconveniente, pero cuando se desee editar o ver nuevamente dicho Template, aparecerá el siguiente error:

ABAP-Smartform-2

 

Al presionar el botón ABAP-Smartform-boton-exit , se producirá de manera abrupta la finalización de la transacción de Smartforms iniciada para el smartform en cuestión.

Pasos para resolver el error

Para solucionar este inconveniente (debido a que no se podrá editar el Template para modificar el valor que fue ingresado erróneamente), realizar el procedimiento siguiente:

1) En primer lugar será necesario Descargar el formulario a formato XML.

Para ello habrá que seleccionar Utilities y luego Download Form, como se muestra en la siguiente imagen:

 

ABAP-Smartform-3

2) En la siguiente pantalla ingresar un nombre para el fomulario, que describa el contenido en formato XML:

ABAP-formulario-XML-Smartform-4

 

Nota: Será necesario disponer de un editor que sea capaz de interpretar código XML, por ejemplo Notepad++ o Writer de OpenOffice.

3) Como se puede apreciar en la siguiente imagen (imagen 1.4), el error se detecta entre los “tags” <U_LHEIGHT> y </U_LHEIGHT>, remarcadas en la figura:

 

ABAP-codigo-tags-Smartform-5

Es importante señalar que para encontrar el error, será necesario realizar un recorrido en el código para detectar las etiquetas que corresponden al sector que presenta el inconveniente planteado.

4) Observando el código anterior, se detecta el error en la línea siguiente:

<U_LHEIGHT> LM</U_LHEIGHT>

Nota: También es posible que se hubiera encontrado el error entre los tags <U_WIDTH> y </U_WIDTH> si el error se hubiera presentado al especificar el ancho del Smartform.

5) Para corregir el error, en este caso sólo bastará con sustituir LM por LN y guardar el archivo XML.

 

Importante: Sería conveniente, previo a la modificación, realizar un backup del archivo que se va a editar, porque si se edita el archivo incorrectamente se podría dañar el Smartform.

 

6) Luego, resta subir el archivo XML nuevamente al sistema SAP por medio de Utilities Upload y seleccionar el nombre del archivo XML que se ha editado, como se muestra en la imagen que sigue:

ABAP-upload-Smartform-6

 

7) Posteriormente, será necesario realizar una confirmación para subir el XML a SAP nuevamente  y salir de la transacción Smartforms.

ABAP-confirmacion-XML-Smartform-7

8) Luego de subir el XML modificado a SAP, será necesario guardar los cambios (botón ABAP-smatforms-boton-save) para que los mismos surtan efecto

9) Finalmente, volver a acceder a la transacción Smartforms para comprobar que el error haya quedado solucionado.

 

Siguiendo los pasos mencionados anteriormente y realizando los cambios de manera adecuada, garantiza una solución al inconveniente presentado en este tip.

n_Diego-Perez Especialista ABAP

Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, SAP Netweaver, R/3 y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA


 

Cómo modificar comandos de edición en formularios Sapscripts y Smartforms

Aprenda a modificar comandos de edición utilizados en formularios Sapscripts y Smartforms, para alterar la manera de mostrar los datos en el mismo.

Al momento de realizar un formulario en ABAP, especialmente en un formulario Sapscript (aunque también es útil en Smartforms), existe la posibilidad de aplicar una serie de comandos de control en la edición de los mismos, que con algunas modificaciones sobre el formato original, ayudarán fácilmente a desplegar de manera diferente la información que se ha tomado previamente de tablas, estructuras, etc., y cuyos datos se desean mostrar en el formulario que se está diseñando.

Estos comandos son aplicables tanto a formularios Sapscripts, desde el editor standard,  como también en Smartforms desde el editor de texto distinguido por el ícono  ABAP-edicion-formularios-icono

La siguiente imágen muestra un ejemplo de uso de uno de los comandos a aplicar en la edición de formularios:

ABAP-edicion-formularios-comando

Como ejemplo, el comando especificado en la imagen anterior, comprime el dato de BSEG-BELNR.

En la tabla siguiente se detallan los comandos que corresponden a la acción que se desea realizar junto con el resultado luego de su aplicación:

Acción a realizar Comando Resultado
Justificar a la derecha:

Original

Modificación

&Variable&

&Variable(15R)&

Smart

Smart

Compresión de texto (espacio entre caracteres):

Original

Modificación

&Variable&

&Variable(C)&

10 0 0 0 0 0

1000000

Mostrar decimales:

 

Original

Modificación

 

&Variable(.2)&

&Variable(.4)&

Ej: 1000 Length 10

1,000.00

1,000.0000

No mostrar valores nulos:

Original

Modificación

&Variable&

&Variable(I)&

0.00

 

No mostrar ceros a la izquierda:

Original

Modificación

&Variable&

&Variable(Z)&

001

1

No mostrar signo:

Original

Modificación

&Variable&

&Variable(S)&

100.00-

100.00

No mostrar separador:

Original

Modificación

&Variable&

&Variable(T)&

1,000.00

1000.00

Llenar con caracteres:

Original

Modificación

&Variable(F*)&

&Variable(F0)&

**100.00

00100.00

Números flotantes:

 

Original

Modificación 1

Modificación 2

 

&Variable&

&Variable(E6)&

&Variable(E)&

Ej: 123456.78 TYPE fltp

+1.23456780000000E+05

+123456.780000000

+0.12345678000000E+06

 

Para tener en cuenta ...

  • La tabla anterior incluye en la lista de comandos de edición, los  más utilizados dentro de los formularios Sapscripts.
  • Sin embargo, si se utilizan estos comandos en formularios Smartforms, ofrecerán un buen complemento a los Smartstyles.

Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, SAP Netweaver, R/3 y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA


n_Carlos-Aparicio - Especialista ABAP

Cómo habilitar la edición de un programa ABAP bloqueado ante una salida inesperada del sistema

Conozca cómo habilitar la edición de cualquier programa ABAP, o de cualquier otro objeto como una tabla o un SmartForm, que ha quedado bloqueado por una desconexión inadecuada de la sesión iniciada en un sistema SAP.

Existen casos en que por diversos motivos no podemos "deslogonearnos" correctamente de una sesión iniciada en el sistema SAP, ya sea porque la VPN no responde, la computadora se reinicia sin previo aviso, o algún otro motivo inesperado. 

El sistema SAP protege datos si múltiples usuarios intentan cambiar esos datos simultáneamente. Esto garantiza la integridad y consistencia de la información aún cuando un gran número de de usuarios estén conectados al mismo sistema SAP. Se vale para esto, entre otras cosas, de mecanismos de bloqueo.

Por ejemplo, solamente un desarrollador único (una sesión) puede cambiar el código fuente de un programa ABAP al mismo tiempo, y además, sólo a un usuario se le permite visualizar la pantalla de mantenimiento de una tabla de customizing en particular.  Pero, si el usuario estaba editando algún objeto, por ejemplo un progrma ABAP, y en ese momento se produce una salida inesperada de la sesión del usuario que lo estaba editando, el mismo quedará en estado bloqueado.  Esto significa que el programa no podrá ser accedido para editarlo nuevamente (ni por este usuario ni por ningún otro) debido a que el mismo ya está "tomado" por el usuario que no pudo realizar la salida del sistema de manera adecuada, y se emite el siguiente mensaje de error:

ABAP-Mensaje-Error-bloqueo-1

Se hace necesario entonces, en algunos casos, disponer de un mecanismo que permita desbloquear un objeto que el sistema registra como  "tomado" cuando en realidad la sesión que gestionaba sobre él se ha extinguido. Para ésto se utiliza la transacción SM12.

 

Cómo desbloquear un objeto "tomado" por otro usuario

Una vez que el usuario realiza el login,

1) Acceder a la transacción SM12:

ABAP-bloqueo-programa-3

 

3) En el campo "User Name", colocar el usuario correspondiente (por defecto aparecerá el usuario con el cual estamos logueados). Al seleccionar la opción “List”, se accederá a un listado con los objetos bloqueados para el usuario que se esté analizando.

4) En la siguiente imagen, a modo de ejemplo, se lista un único objeto correspondiente al usuario “80487” y el programa relacionado llamado “INVOICE”.

ABAP-bloqueo-programa-4

5) Al seleccionar el ícono remarcado en la pantalla anterior, se solicitará la confirmación para desbloquear el objeto:

ABAP-bloqueo-programa-5

6) En el momento de confirmar la supresión de esta entrada, se presenta la siguiente pantalla:

ABAP-mensaje-de-bloqueo-SM12

 

7) Una vez confirmado el desbloqueo, el objeto queda removido de la lista, como se muestra en la figura siguiente:

ABAP-bloqueo-programa-6

8) Completados los pasos anteriores, se podrá volver a editar el programa ABAP sin inconvenientes.

Consideraciones

Si bien no es un escenario muy frecuente, puede existir que un entorno de prueba o "laboratorio" se ingrese al mismo sistema SAP con el  mismo usuario. En esos casos va a existir más de una sesión activa en el sistema SAP, iniciada por el mismo usuario.

También en este escenario puede presentarse la situación de bloqueo de algún programa ABAP, como se trató en los párrafos anteriores.

A continuación se consideran algunas alternativas presentadas en este escenario que permiten el desbloqueo de "ese" programa ABAP tomado para poder seguir editándolo:

  • 1) Una alternativa posible para desbloquear ese objeto sería, que al momento iniciar sesión nuevamente en SAP, en la pantalla que se presenta para realizar el login, se seleccione la primera opción presentada. Esta manera de inicio de sesión implicará "desloguear" todas las sesiones en el sistema ya iniciadas con ese usuario, como se muestra en la pantalla siguiente.

ABAP-bloqueo-programa-opciones-1

Utilizar el método anterior para poder editar el programa nuevamente implicaría desconectar "de prepo" al resto de los que ya iniciaron sesión con el mismo usuario, y pudieran estar trabajando en el sistema con otras tareas, por lo que ésta no resulta la alternativa más acertada.

  • 2) otra alternativa más apropiada es al momento de iniciar sesión elegir entre las opciones presentadas, la segunda, y permitir de esa manera al resto de los que iniciaron sesión con el mismo usuario, seguir logueados en el sistema. La figura siguiente muestra la opción a elegir en este caso:

ABAP-bloqueo-programa-opciones-2

Una vez dentro del sistema, será necesario proceder como fue explicado en párrafos anteriores, accediendo a la transacción SM12 y luego ir siguiendo los pasos indicados.


n_Diego-Perez Especialista ABAP

 

 

 


Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, SAP Netweaver, R/3 y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA


 

Programación modularizada: Function Modules Vs. ABAP Objects

Entienda conceptualmente cuál es el instrumento más adecuado para implementar programación modular en ABAP, comprendiendo las similitudes y diferencias entre las opciones que ABAP ofrece y el proceso de la evolución desde Function Groups/Modules hacia ABAP Objects

La programación orientada a objetos (POO) es una filosofía de diseño y desarrollo de software donde el modelo informático busca reflejar los objetos del mundo real. Valiéndose de un lenguaje y  entorno que respete los principios de la teoría de objetos, la POO permite a los programadores representar cada entidad del problema a través de la definición de un objeto acorde. Objetos típicos del entorno de negocios son "Clientes", "Materiales", "Ordenes de compra", etc. La teoría de objetos se estructura alrededor de una larga lista de propiedades y paradigmas conceptuales (que exceden el alcance de este tip), materializados luego en los distintos entornos de programación. El instrumento que disponemos en ABAP para trabajar de acuerdo a este paradigma son los  "ABAP Objects".

Leer más...

Cómo actualizar un infotipo de HR en background en SAP

Utilice la función estándar de SAP HR_INFOTYPE_OPERATION, para actualizar, generar, o eliminar datos de un infotipo de HR en background y conozca cómo operar con ella.

En reiteradas ocasiones el desarrollador ABAP se encuentra con el problema de agregar o modificar información en tablas estándar. 

Es conocido por todos los desarrolladores el hecho de que siempre es conveniente anticiparse a posibles cambios en el modelo de datos de SAP, por lo que se deben evitar sentencias ABAP del tipo UPDATE, INSERT o DELETE a estas tablas del sistema. La dificultad aparece cuando no existe una BAPI o función estándar capaz de realizar estos cambios de forma transparente, por lo que en muchos casos la solución es realizar un Batch-Input de la transacción que normalmente hace los cambios.

En este artículo se conocerá una forma de ingresar, actualizar y eliminar información relativa al módulo de HR. Específicamente se tratará el caso de una función estándar pensada para actualizar todos los infotipos existentes.

Características de la función HR_INFOTYPE_OPERATION

La función HR_INFOTYPE_OPERATION es una función específica para el módulo HR de SAP. Se caracteriza por ser extremadamente flexible ya que brinda la posibilidad de actualizar la gran mayoría de los infotipos existentes de forma transparente mediante una única interfaz. Como contrapartida, el uso de la misma es relativamente complejo.

La función permite una serie de operaciones típicas, entre ellas: Creación, Copia, Modificación y Eliminación de datos. En este tip se mostrará un caso concreto de su utilización en una operación de Actualización, considerado en el ambiente de SAP como el más propenso a errores.

1. Interfaz de la función:

En la pantalla siguiente se describen los parámetros de Importing necesarios (y algunos opcionales) para el uso de esta herramienta:

ABAP-Bibl.funciones-HR_INFOTYPE_OPERATION-Visualizar

  • INFTY: Número de infotipo, representado en un CHAR de longitud 4. Ejemplo: ‘0001’.
  • NUMBER: Número de empleado (PERNR).
  • SUBTYPE: Subtipo (SUBTY).
  • OBJECTID: Identificación de objeto (OBJPS).
  • LOCKINDICATOR: Indicador de bloqueo (SPRPS).
  • VALIDITYEND, VALIDITYBEGIN: Fin e inicio de la validez, respectivamente (ENDDA, BEGDA).
  • RECORDNUMBER: Número de un registro de infotipo para misma clave (SEQNR).
  • RECORD: Estructura que contiene los datos actualizados. Luego de la ejecución de la función, el infotipo de número ‘INFTY’ contendrá los datos que se encuentren en esta estructura. La misma debe ser del tipo del infotipo correspondiente.

Nota: No es posible usar la estructura de la tabla correspondiente al infotipo. Por ejemplo si se trata del 0001, no es posible usar una estructura del tipo PA0001. En su lugar se debe usar P0001.

  • OPERATION: Código de operación representado en un CHAR de longitud 20, por ejemplo:

‘INS’: Crear

‘COP’: Copiar

‘MOD’: Modificar

‘DEL’: Borrar

‘DIS’: Mostrar

  • DIALOG_MODE: Modo de diálogo, por ejemplo: ‘0’ Background, ‘2’ En línea.

Importante: Luego de ejecutar la función, ejecutar un COMMIT WORK AND WAIT para garantizar que los cambios se hayan efectuado correctamente.

2. Uso de la función:

Para ejecutarla se necesita proveer todos los parámetros mostrados en la sección anterior a excepción de DIALOG_MODE, por defecto vale ‘0’ Background.

Para el caso del parámetro RECORD, como se mencionó anteriormente, se debe usar una estructura del tipo PXXXX y no PAXXXX (donde XXXX es el número de infotipo). Se debe cargar esta estructura con los nuevos datos que pasará a tener el infotipo, notar que TODOS los campos de la estructura se transfieren a la base de datos, por lo que una forma segura de completarla es primero recuperando el registro completo de la tabla, modificar los datos que se requieran, y luego invocar a la función.

Es importante notar que las estructuras PXXXX, a diferencia de las PAXXXX, tienen un campo adicional ‘INFTY’ que es un CHAR de longitud 4 utilizado para contener el numero de infotipo. Es necesario completar este campo con el mismo valor de ‘INFTY’ que se provee a la función en su llamada. Por ejemplo si se quiere actualizar el infotipo 0001, INFTY = ‘0001’ y PXXXX-INFTY = ‘0001’.

A continuación se muestra un ejemplo de uso de la función HR_INFOTYPE_OPERATION funcionando correctamente, se trata de una nueva función Z que dado un número de empleado y un área de nómina, asigna dicha área de nómina al empleado:

  • Primero se obtienen los datos vigentes del infotipo 0001 del empleado. Dicho infotipo es el que contiene el campo a modificar. Luego se valida el área de nomina provista, y por último, se asigna la nueva área de nómina a la estructura que contiene los datos.

ABAP-Bibl.funciones-ZWF_0001-modificar-2

En el ejemplo de arriba, la estructura lr_0001 (TYPE P0001) contiene los datos a grabar en el infotipo.

Nota: en la subrutina F_OBTENER_DATOS_EMPLEADO, además se carga el campo INFTY de la estructura lr_p0001 con el valor ‘0001’. Este paso es obligatorio.

 

  • Luego se llama a la función HR_INFOTYPE_OPERATION.

ABAP-Bibl.funciones-ZWF_0001-modificar-3

Importante: Antes de realizar una llamada a la función HR_INFOTYPE_OPERATION, se debe bloquear el registro del empleado que se quiere modificar. Para ello se pueden utilizar las funciones BAPI_EMPLOYEE_ENQUEUE o HR_EMPLOYEE_ENQUEUE, que en este caso resultan equivalentes. Una vez terminada la operación se debe llamar a la correspondiente función de desbloqueo: BAPI_EMPLOYEE_DEQUEUE o HR_EMPLOYEE_DEQUEUE. Ambas parejas de funciones reciben como único parámetro el número de empleado (PERNR). En suma, el código resultante debe tener el siguiente aspecto:

ABAP-Bibl.funciones-ZWF_0001-modificar

Para tener en cuenta ...

  • La función HR_INFOTYPE_OPERATION soporta muchas operaciones diferentes: COP (Copiar), DEL (Borrar), DIS (Mostrar), EDQ (Bloquear/Desbloquear), INS (Crear), MOD (Modificar), entre otras, para realizar sobre la totalidad de los infotipos de SAP.
  • Además permite ejecutar la operación solicitada tanto en background como en línea mediante el parámetro de Importing DIALOG_MODE.

      • n_Marco_Gatti

      - Especialista ABAP y Workflow


    •  

       

 


Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, SAP Netweaver, R/3 y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA


 

 

  •  

Cómo crear una vista de mantenimiento para una tabla y asociarla a una transacción en SAP

Conozca cómo modificar el contenido de una tabla mediante la creación de una vista de mantenimiento en SAP y cómo asociarla luego a una transacción.

Cuando se presentan situaciones en donde es necesario modificar el contenido de uno o de varios campos en una tabla, una manera sencilla de realizar estas modificaciones es por medio de una Vista de mantenimiento creada previamente. 

Posteriormente, si se desea acceder en forma más directa a la vista de mantenimiento, también puede ser conveniente y útil asociarla a una transacción.

Los pasos a realizar para ambas tareas se detallan en el artículo presente.

Pasos para crear la Vista de mantenimiento

El primer paso será acceder a la transacción SE11, donde será necesario ingresar el nombre de la tabla para la cual se desea crear la vista de mantenimiento.

Asumiendo que la tabla fue creada previamente, bastará con ingresar el nombre de la misma en el campo correspondiente.

En este caso, a modo de ejemplo, la tabla tiene como nombre ZDI_EMPLEADOS.

SAP-transaccion-SE11_1

Luego será necesario seleccionar Change.

En la pantalla obtenida, se mostrará la estructura de la tabla y dirigirse a Utilities → Table Maintenance Generator.

SAP-tip-generar-Vista-mantenimiento_2

La próxima pantalla que aparecerá en este proceso será similar a la siguiente:

SAP-TIP-vista-mantenimiento-find-screen_3

Como se muestra en la figura precedente, será necesario seleccionar la opción Find Scr. Number(s).

En la mayoría de los casos bastará con dejar la opción por defecto que es la primera:

SAP-TIP-maint-screen-number_4

Finalmente, habrá que seleccionar el icono correspondiente a crear:

SAP-TIP-crear-vista-mantenimiento_5

Luego se deberá seleccionar el motivo por el cual se está creando la vista de mantenimiento:

SAP-TIP-vista-mant-razones-cambio_6

Es recomendable en la pantalla siguiente, dejar los valores que se muestran por defecto:

SAP-TIP-vista-razones-cambio-detail_7

El mensaje siguiente informa que la vista ha sido creada satisfactoriamente.

SAP-TIP-confirmacion-vista-mantenimiento-creada_8

Finalmente, para corroborar que la vista de mantenimiento ha sido creada correctamente, bastará con acceder a la transacción SM30 y colocar el nombre correspondiente a la tabla para la cual se ha creado la vista de mantenimiento, como se muestra en la figura siguiente:

SAP-TIP-vista-mantenimiento-transaccion-SM30_9-1

 

A partir de aquí, se podrán visualizar los datos al entrar a través de la opción Display o alterar los mismos entrando por la opción Maintain.

 

Pasos para asociar la vista de mantenimiento a una transacción

Para poder asociar la vista de mantenimiento creada previamente a una transacción, los pasos a seguir serán los siguientes:

Acceder a la transacción SE93:

SAP-TIP-vista-mantenimiento-transacion-SE93_10-1

En esta pantalla se escribirá el nuevo nombre de la transacción y luego seleccionar Create (en este caso el nombre de la transacción será el mismo que el de la vista de mantenimiento y el de la tabla para que sea más claro el ejemplo, de todas formas, se podría asignar un nombre diferente).

Habrá que ingresar una descripción (en este caso se eligió EMPLEADOS) y luego seleccionar la opción Transaction with parameters.

SAP-TIP-transaction-with-parameters_11-1

En la siguiente pantalla será necesario configurar los siguientes parámetros:

  • Transaction: se indtroducirá SM30 (que corresponde a la transacción de vistas de mantenimiento).
  • Name of screen field (debajo de Default Values, abajo del lado izquierdo): se completará con VIEWNAME y se colocará en el parámetro Value, el nombre de la vista de mantenimiento creada (en este caso: ZDI_EMPLEADOS).
  • Finalmente será necesario tildar la opción Inherit GUI atributes.

SAP-TIP-asociar-transaccion_12-2

 

Resta que se guarden los cambios realizados presionando SAP-TIP-vista-mantenimiento-boton-SAVE

SAP solicitará información correspondiente al Package en el cual se está trabajando y el usuario responsable, como se presenta en la figura siguiente:

SAP-TIP-vista-mantenimiento-crear-paquete_13

Posteriormente, se solicitará información referente a la orden de transporte:

SAP-TIP-vista-mantenimiento-orden-transporte_14

Solo restará ingresar el nombre de la transacción recientemente creada y verificar que esté funcionando correctamente:

 

SAP-TIP-ingresar-transaccion-vista-mantenimiento_15-1

Como último paso, ya a partir de aquí se puede acceder a la vista de mantenimiento creada previamente accediendo a la transacción que fue creada recientemente, como se muestra en la siguiente pantalla:

SAP-TIP-vista-mantenimiento-final_16-1

n_Diego-Perez Especialista ABAP

Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, SAP Netweaver, R/3 y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA


 

Cómo investigar una orden de transporte importada en el sistema SAP

Conozca una manera de obtener información sobre órdenes de transporte importadas en el sistema SAP, y aprenda, además, cómo investigar su origen.

A veces se presentan situaciones en donde de forma casi espontánea alguna funcionalidad de un sistema SAP deja de estar operativa o genera errores. Este tipo de eventos es normal que ocurra en las fases de implementación y desarrollo de procesos, por lo que generalmente se puede aislar e identificar la falla. Sin embargo, otras veces se detecta que el error no proviene de ninguno de los objetos que los equipos de desarrollo estaba manipulando. Ante estas situaciones, el próximo paso es revisar el "log" de transporte del objeto conflictivo.

Leer más...

Qué artículos y temas interesan más a los profesionales SAP y ABAP?

A la hora de visitar Teknodatips, los programadores, consultores o líderes SAP y ABAP, encuentran una gama muy variada de notas técnicas, tutoriales, tips, blogs, artículos conceptualizadores, etc.
Pero . . . ¿ cuáles son las preferencias de nuestros lectores? ¿Cuáles son los tips más visitados? ¿Cuáles son los temas que más movilizan a la comunidad SAP?

La siguiente es una estadística (parcial) de Hits por artículo, y a continuación, una estadísticas de hits organizada por tema. Hemos considerado los últimos 10 meses, ponderando, desde ya,  el tiempo de publicación que lleva cada artículo. Obviamente los datos nunca son precisos dado que influye el posicionamiento de cada artículo en los buscadores, la época de publicación, la cantidad de referencias externas al artículo, etc. No obstante, sirve para extraer alguna tendencia de cuáles son los temas "hot", frente a otros que no lo son tanto o que abordan temas técnicos muy específicos en una determinada área.

 

Teknodatips: Hits por artículo (parcial), últimos 10 meses

hit_por_articulo_600

Teknodatips: Hits por tema (parcial) últimos 10 meses

hits_por_tema_400

Los números hablan por sí mismos. Los temas como SAP HANA,  manejo de ampliaciones (enhancements) y Workflow son claramente temas muy interesantes para la comunidad SAP.

Sin embargo, todavía se llevan la mayor atención los temas tradicionales de programación como administración de cambios, (Change Management), y manejo de tablas.

 

Cómo ingresar texto en ABAP a través de un editor y guardarlo en una tabla

Descubra cómo ingresar texto en un programa ABAP de forma interactiva a través de un editor y guardarlo en una tabla interna para su procesamiento posterior.

En muchas oportunidades se le exige a los usuarios que ingresen al sistema textos explicativos sobre ciertas acciones que se llevaron a cabo o como simples descripciones de procesos o decisiones. Por ejemplo, es muy común que un usuario que rechace una Orden de Compra de materiales quiera o deba informar el motivo por el cual llegó a esa conclusión para así poder corregir el error rápidamente. 

A continuación se detallará una forma sumamente rápida y sencilla de implementar esta funcionalidad gracias a una función estándar de la API de SAP.

Uso de la función TERM_CONTROL_EDIT

1. En principio se procederá a testear la función. Ir a la transacción SE37 e ingresar TERM_CONTROL_EDIT. Luego hacer click en el botón “Test”.

ABAP-Function-Builder-Initial-Screen-1

2. La función tiene dos parámetros de Importing, un título para la ventana del editor y el idioma. Completar ambos campos y hacer click en “Execute”.

 

ABAP-Test-Function-Module-Initial-Screen

3. El resultado es un POP-UP con un editor de texto bastante cómodo e intuitivo. Se puede ingresar texto, importar y exportar archivos, deshacer y rehacer acciones; lo cual lo hace altamente funcional.

ABAP-MOTIVO-DE-RECHAZO

 

4. Finalmente cuando el usuario confirma la operación, la función retorna una tabla con el texto ingresado.

ABAP-Structure-Editor-Display

Para tener en cuenta ...

  • Usando la función TERM_CONTROL_EDIT, si el usuario en vez de confirmar la operación la cancela, se disparará la excepción USER_CANCELLED. Por este motivo siempre es necesario usar la clausula “EXCEPTION” en la llamada a la misma y consultar el valor del SY-SUBRC para poder reaccionar antes esta situación.

ABAP-Editor-Change-Report-1

 


Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, SAP Netweaver, R/3 y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA


Copyright © 2018 Teknoda tips - Tecnologia SAP Netweaver - IBM AS400 - System i - iSeries - IBM i Power Systems. Todos los derechos reservados.
Joomla! es software libre, liberado bajo la GNU General Public License.