jueves, noviembre 25, 2010

Error SLD_NO_OWN_BS

Cuando al intentar realizar una comunicación, el servidor devuelve el error SLD_NO_OWN_BS se puede deber a que el usuario SLDDSUSER esté bloqueado. Esto también será causa de que se produzca un error de acceso al servicio SLD (tx: SLDCHECK):


Al desbloquear el usuario (tx: SU01), se podrá acceder a la interfaz de nuevo.

martes, noviembre 23, 2010

Establecer clave a usuario de tipo comunicación

Cuando se crea un usuario de tipo comunicación y se le asigna una clave, ésta caducará la primera vez que dicho usuario acceda al sistema. El problema está en que si el primer acceso se realiza mediante una interfaz, ésta no obtendrá respuesta (si es que es síncrona). Por ello, una manera de asignar la clave definitiva sería, tras crear el usuario con la clave inicial, acceder a algún servicio web que requiera de control de acceso, por ejemplo el SLD (http://servidor:puerto/sld), indicar como usuario al usuario de comunicación junto con su clave inicial y, a continuación, se nos indicará que la clave ha expirado, momento en el cual podremos introducir la clave definitiva.

lunes, septiembre 27, 2010

Conocer los Objetos de Autorización de una Transacción

A través de las transacciones SU22 y SU24 podremos conocer y editar los objetos de autorización que afectan a las transacciones que indiquemos. La principal diferencia entre ambas transacciones es que la SU22 se encarga de mantener la relación de objetos de autorización de SAP, los cuales se recogen en las tablas USOBT y USOBX, y se mantiene mediante la transacción SU25, mientras que la SU24 está enfocada a los objetos de autorización definidos por el cliente, los cuales se almacenan en las tablas USOBT_C y USOBX_C. (NOTA: Todos los objetos de SAP aparecen también en los objetos del cliente).

jueves, septiembre 16, 2010

Crear ficheros de pruebas para programas Batch Input

La aplicación "Data Transfer Tools" (tx: SXDA_TOOLS) permite generar de manera automática ficheros de prueba necesarios para programas batch input.

Dicho fichero se puede utilizar a modo de plantilla para realizar las pruebas que se deseen. Por ejemplo, si se quiere realizar una actualización de los datos de un acreedor, existe el report estándar RFBIKR00 el cual ejecuta un B-I a partir de un fichero de entrada con una estructura específica. Con el fin de no generar el fichero de prueba a pelo, iríamos a la transacción SXDA_TOOLS e indicaremos que deseamos crear un fichero para el tipo de objeto LFA1 (Vendor), para el programa RFBIKR00 que es de tipo BINP (Batch Input):

miércoles, septiembre 15, 2010

Crear transacción de una vista de actualización

Para crear una transacción de una vista de actualización deberemos, a través de la tx. SE93, crear una "Transacción con parámetros (transacción de parámetros)". En el bloque de valores de propuesta indicaremos que la transacción objetivo es la SM30 y marcaremos el flag "Omitir imagen inicial".


Por último, al final de la pantalla, habrá que añadir los siguientes parámetros:
  • VIEWNAME: (nombre de la vista)
  • UPDATE: X
Existen más parámetros (SHOW, TRANSPORT, etc.), en este caso he indicado que deseo actualizar la vista.

Enlaces de referencia:

martes, agosto 17, 2010

Cancelar importación de una orden de transporte en curso

Para cancelar una orden de transporte que se encuentre colgada en estado "Import en ejecución" hay que seguir los siguientes pasos:
  1. Seleccionamos la orden que se desea cancelar en la STMS.
  2. Vamos a la opción Pasar a -> Importar monitor (Ctrl+F8).
  3. Una vez ahí, aparece una lista con entradas de ejecución de importaciones anteriores que estarán en verde, excepto la orden que se encuentra colgada, la cual aparecerá en gris.
  4. Seleccionamos la orden en gris y haciendo clic con el botón derecho del ratón, escogemos la opción "Borrar entrada".
  5. Por último, nos autenticamos en el sistema y con ello se habrá reiniciado el estado de la importación y podremos reimportar la orden, si fuera necesario.
Esto es útil por si se ha introducido un parámetro incorrecto en los datos de transportes (p.ej. un mandante que no exista) y la orden se queda colgada, no dejando reimportarla al mandante correcto.

viernes, julio 30, 2010

Importar y exportar clases en formato XML

En el siguiente enlace, Sergey Korolev indica cómo podemos importar/exportar clases abap entre sistemas por medio de ficheros XML. Bastante útil.

miércoles, abril 28, 2010

Usos de ALV en Netweaver 04

Para los que aún sigan utilizando el modelo de programación antiguo para los ALV de SAP, adjunto un par de enlaces en el que se definen cómo utilizar el modelo introducido a partir de SAP Netweaver 04:
SAP proporciona programas de ejemplo en sistema que comienzan por SALV_DEMO_*. Estos a su vez se basan en datos de ejemplo similares a los empleados con los ejemplos de vuelos, los cuales se pueden iniciar en el sistema a través del report BCALV_GENERATE_ALV_T_T2.

Enlace de referencia:

viernes, abril 23, 2010

Vista de actualización "no modificable"

Cuando queremos crear una vista de actualización de una tabla que sea editable en el entorno destino, necesitamos saber si dicho entorno permite modificaciones de tablas. Esto lo podremos saber porque si no definimos correctamente la rutina de grabación de la vista de actualización, al intentar editar la tabla en el destino (mediante tx: SM30, p.ej.) aparecerá un mensaje informativo indicando:

Mandante XXX tiene status "no modificable"

Esto se soluciona indicando la opción "Rutina de grabación individual o ninguna" en la vista de actualización:

miércoles, abril 07, 2010

Mapear Excepción RFC en Tipo de Mensaje

Por norma general, la manera de informar las excepciones es a través de los Tipos de Mensajes de Fallos (Fault Message Types), los cuales poseen una estructura estándar a la que se le pueden añadir campos adicionales. No obstante, la versión PI 7.0 permite utilizar otros tipos de mensajes para informar dichas excepciones como lo son los propios mensajes de la RFC (RFC Message) o mensajes externos (External Message), pero no permite utilizar ningún tipo ya definido en el Integration Builder. A continuación voy a explicar cómo podemos "reutilizar" un tipo ya definido para devolver los mensajes de excepción devueltos por una RFC.

En el escenario planteado tenemos una función RFC que tiene como parámetro de salida una tabla de mensajes de tipo BAPIRET2 donde se vuelca información sobre si la ejecución ha sido correcta o no.  En nuestro caso queremos que si se produce una excepción también se informe en la misma tabla, por lo que deseamos utilizar el mismo tipos de datos devuelto para pasar las excepciones.

martes, abril 06, 2010

Message Mappings: documentos interesantes

En un foro de SDN he encontrado un post con enlaces a varios documentos relacionados con el MM:

Mapping functionality in XI
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/9202d890-0201-0010-1588-adb5e89a6638

SAP Exchange Infrastructure - Graphical_Mapping
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/6658bd90-0201-0010-fbb6-afe25fb398d3

SAP Exchange Infrastructure - Graphical Mapping Exercise
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/fd5ebd90-0201-0010-d697-91374d5b5190

SAP Exchange Infrastructure - Graphical Mapping - Advanced
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/be05e290-0201-0010-e997-b6e55f9548dd

SAP Exchange Infrastructure: Mapping Patterns - Understand Context Handling in Message Mapping - Webinar Powerpoint
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f59730fa-0901-0010-df97-c12f071f7d3b

SAP NetWeaver Exchange Infrastructure Mapping Troubleshooting - Webinar Powerpoint
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e01e9400-9e81-2910-20a5-a862945a5e98

Mapping Lookups a RFC API
https://www.sdn.sap.com/irj/sdn/thread?threadID=196308

XI 3.0 New Mapping Features
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/8a57d190-0201-0010-9e87-d8f327e1dba7

Fuente:

lunes, marzo 08, 2010

Activar colas registradas

Cuando el mensaje de una cola no ha sido enviado debido a algún error, el resto de mensajes que se almacenan en la misma quedan bloqueados hasta que se trate el primer mensaje. Una vez solucionado, al intentar activar la cola, SAP devuelve el siguiente mensaje:



Por lo que deberemos "anular la inscripción" de las colas afectadas mediante la transacción SMQR. Para ello bastará seleccionar la/s cola/s implicada/s y pulsar el botón "Anular inscripción". De este modo podremos activar las colas de nuevo para que se procesen los mensajes restantes.

NOTA: tras activar las colas deberemos volver a "inscribir" la/s cola/s implicada/s a través de la SMQR para que vuelvan a su funcionamiento normal.

Enlace de referencia:

jueves, febrero 25, 2010

Obtener contenido de campos de dynpros antes de pulsar Enter

La siguiente función permite obtener el contenido del campo que se desee de la pantalla de selección (dynpro) sin necesidad de que el usuario haya pulsado ENTER. Esto es útil para aquellos programas cuyos datos de selección dependen unos de otros.

lunes, febrero 22, 2010

Pragmas y Pseudocomentarios en ABAP

Hay algunos programas en los que aparecen comentarios del tipo "#EC seguido de un comando. Pues bien, dichos pseudocomentarios sirven para eludir los mensajes de aviso relacionados que aparecen al validar el código del programa mediante transacciones como SLIN y SCI. Estas transacciones sirven para garantizar la calidad del código.

Es a partir de SAP Netweaver 7.1 EhP1 cuando estos pseudocomentarios pasan a ser obsoletos y en su defecto se pasa a hacer uso de los pragmas.

Enlace de referencia:

    miércoles, enero 27, 2010

    Iniciación a WebDynpro

    En la siguiente entrada recojo información básica para iniciarse en el mundo de los WebDynpros.

    Enlaces de iniciación


    Conocimientos previos necesarios para probar una aplicación:

    Para acceder al servicio de aplicación es importante que enlace sea informado del estilo:

    http://<host>.<dominio>.<ext>:<puerto>/sap/bc/webdynpro/sap/<aplicación>
     

    Servicios necesarios activos (SICF)


    Servicio de aplicación Webdynpro
    • /sap/bc/webdynpro/sap/<aplicación>

    Servicios básicos del sistema

      Enlaces relacionados con seguridad

      martes, enero 19, 2010

      Depurar un proceso lanzado en fondo (job)

      En ocasiones un report funciona correctamente al ejecutarlo online, pero puede fallar cuando se ejecuta en fondo (modo batch). En ese caso, el job aparece como cancelado en la transacción SM37. La mayoría de las veces, la información que aparece en la transacción ST22 es suficiente para determinar la causa, pero esto no siempre es así. La cuestión es: ¿cómo puedo depurar el programa en fondo para saber dónde ha fallado?

      Existe un modo a través de la transacción SM37. Para ello se deberá seleccionar qué proceso se desea depurar, marcando la casilla correspondiente y, a continuación, introducir el comando "JDBG" en el campo de comandos tal como se muestra en la siguiente captura de pantalla:


      De este modo se iniciará un modo debug en el que se repetirá el proceso que falló considerando los mismos parámetros de entrada que tenía en su origen.

      Más información: