blogdesap02-121223191710-phpapp01

98
http://www.blogdesap.com Blogdesap resumen 2012 http://www.blogdesap.com Customizing, ABAP y noticias Recopilación de los artículos publicados en blogdesap durante el año 2012

Transcript of blogdesap02-121223191710-phpapp01

  • http://www

    .blogdesap.c

    om

    Blogdesap

    resumen 2012

    http://www.blogdesap.com

    Customizing, ABAP y noticias

    Recopilacin de los artculos publicados en blogdesap durante el ao 2012

  • http://www

    .blogdesap.c

    om

    Puedes acceder a estos artculos y otros que voy publicando a travs de

    http://www.blogdesap.com

    http://www.facebook.com/blogdesap

    Para seguir creciendo te agradezco que compartas este blog con tus amigos, conocidos y cualquier que est interesado. Puedes compartir este pdf libremente bajo las condiciones de la licencia Creative Commons

    Blogdesap: resumen 2010-11 por http://www.blogdesap.com se encuentra bajo una Licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported.

    Este PDF se ha generado gracias al proyecto http://fivefilters.org/ y a http://www.pdfill.com/pdf_tools_free.html

    Las imgenes que aparecen publicadas son propiedad de sus autores y aparecen publicadas aqu bajo la licencia Creative Commons que ellos mismos cedieron. A continuacin se relaciona el origen de estas imgenes.

    http://www.flickr.com/photos/zooboing/5508849065/ http://www.flickr.com/photos/jamescridland/2272701122/ http://www.flickr.com/photos/27128437@N07/3020096760/ http://www.flickr.com/photos/dinah/2155542715/ http://www.flickr.com/photos/mikecogh/2615450243/ http://www.flickr.com/photos/wonderlane/6696970999/ http://www.flickr.com/photos/kexino/5142774552/ http://www.flickr.com/photos/68235594@N02/6209901764/ http://www.flickr.com/photos/zigazou76/3621421967/ http://www.flickr.com/photos/uncut/32992478/ http://www.flickr.com/photos/suewaters/3239113361/ http://www.flickr.com/photos/uncut/32992438/ http://www.flickr.com/photos/alancleaver/2380333875/ http://es.wikipedia.org/wiki/Archivo:Andora.png http://www.flickr.com/photos/pa1nt/2517516586/ http://www.flickr.com/photos/ofernandezberrios/2719764089/ http://www.flickr.com/photos/szpako/6296123543/ http://www.flickr.com/photos/juhansonin/5135576565/ http://www.flickr.com/photos/j1x4r/4313734090/ http://taxcredits.net/ http://www.seniorliving.org/ http://www.flickr.com/photos/oarranzli/8020458953/in/photostream http://www.flickr.com/photos/stefg/83249642/ http://www.flickr.com/photos/andrea-prieto/6165780168/ http://www.flickr.com/photos/newtown_grafitti/5594383495/ http://www.flickr.com/photos/49889874@N05/5645164344/ http://www.flickr.com/photos/garryknight/5489575248/ http://www.flickr.com/photos/tedpercival/2127361324/ http://www.flickr.com/photos/flissphil/367608136/ http://www.flickr.com/photos/trawin/3269858710/ http://www.flickr.com/photos/timoelliott/6328671116/ http://www.flickr.com/photos/ecastro/2204417040/ http://www.flickr.com/photos/z287marc/3192570544/ http://www.flickr.com/photos/23024164@N06/7069248491/ http://www.flickr.com/photos/traftery/5733183289/ http://www.flickr.com/photos/bovinity/2125620107/ http://www.flickr.com/photos/cdharrison/4991886507/ http://www.flickr.com/photos/quinnanya/5797565681/

  • http://www

    .blogdesap.c

    om

    http://www.flickr.com/photos/tallchris/14288135/ http://www.flickr.com/photos/thirteenofclubs/5520261196/ http://www.flickr.com/photos/rudiriet/403986061/ http://www.flickr.com/photos/ronguillen/2086953033/ http://www.flickr.com/photos/garryknight/6796846915/ http://www.softicons.com/free-icons/object-icons/cargo-boxes-icons-by-antreposhop/fork-3-icon

  • http://www

    .blogdesap.c

    om

    INDICE ABAP

    1. Rangos numricos propios 2. ndices de tablas 3. Webservices: ficheros xml 4. Webservices: service providers 5. Webservices: service consumer 6. Log de modificaciones de tablas 7. Proteger y desproteger variantes 8. Encontrar tablas de transacciones 9. Documenta tus programas ABAP 10. Por qu los usuarios no leen los mensajes? 11. Son mis entornos diferentes?

    BC

    12. Regeneracin de objetos 13. Fijar color del sistema 14. Parmetros de usuario 15. Conocer los accesos y el trabajo de un usuario 16. Introduce un texto informativo en la entrada a SAP 17. Cinco formas de encontrar transacciones del customizing

    FI

    18. Cinco razones por las que no funciona el programa de pagos

    MM

    19. Apariencia de campos del maestro de materiales 20. Creacin de almacenes en materiales 21. Ayuda de bsqueda inteligente sin matchcode 22. Valor mnimo de proveedor 23. Surtido parcial de proveedor 24. Cmo bloquear la actualizacin del registro info 25. Comparando qu he pedido y qu me han facturado

    PM

    26. Funciones de interlocutor en rdenes de mantenimiento 27. Campos nuevos en equipos

    SD

    28. Datos adicionales en documentos de ventas 29. Campos de reserva en clientes 30. Configurar regiones 31. Datos incompletos en documentos de ventas 32. Verificacin de pedidos de clientes duplicados 33. Flujos de documentos 34. Determinacin de cuentas de ventas

  • http://www

    .blogdesap.c

    om

    35. Portes de transporte en ventas de material 36. Cinco razones por las que el IVA no se determina correctamente 37. Gestin de lotes en SAP 38. Qu es un cliente CPD y por qu crearlo

    SAP

    39. Una mirada a la nueva SCN 40. Transacciones en logstica 41. Transacciones en finanzas 42. Preparados para la nueva SAP GUI 7.30 43. Breve historia de SAP 44. Siete requisites para ser un buen consultor

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Rangos numricos propios

    Este post trata de cmo crear objetos de rangos numricos

    especficos de cliente para poder utilizar luego en nuestros

    programas SAP. Por ejemplo, queremos crear una numeracin

    especfica de nuestros empleados que guardaremos en una tabla

    Z* atravs de un programa Z*.

    Para informacin ms especfica sobre rangos numricos que

    proporciona de forma estndar SAP podis referiros aun post

    anterior.

    Parametrizacin

    Transaccin: SNUM

    Objeto: damos un nombre anuestro rango.

    Elemento datos objeto inferior: nuestro rango va adepender

    del centro de trabajo del empleado. Los empleados del

    centro 0310 tendrn un cdigo que empiece por 3; los

    del centro 0610 tendrn cdigo que empiece por 6, etc.

    Aqu indicaremos pues el elemento de datos de centro

    WERKS_D.

    Indicador hasta ejercicio: si quisiramos cambiar la

    numeracin de ejercicio en ejercicio, marcaramos este

    campo. No es el caso de este ejemplo.

    Dominio longitud nmero: en este campo indicamos de qu

    longitud ser la numeracin. Para eso introducimos un

    dominio con la longitud prevista (ya sea creando un nuevo

    dominio ya sea utilizando uno que exista de forma estndar

    en SAP). Voy autilizar la longitud del campo numero de

    personal estndar de SAP (dominio PERNR).

    Porcentaje advertencia: al llenar este campo le estamos

    diciendo aSAP que nos avise si en nuestro rango los

    nmeros disponibles son inferiores aeste porcentaje.

    Una vez tenemos todo esto grabamos, nos aparecer un mensaje

    de advertencia. Aceptamos.

    Actualizacin delrango

    Ya tenemos creado nuestro rango numrico. Ahora debemos

    informar nuestras numeraciones dependientes de centro.

    Presionamos el botn Rangos nmeros.

    Indicamos el centro.

    Presionamos Intervalos.

    +Intervalo.

    Guardamos. Nos dar un mensaje advirtiendo que esta

    numeracin no es transportable al sistema productivo yque

    deberemos reproducirla en nuestro mandante destino

    tambin.

    Utilizacin

    Y ahora slo falta utilizarlo en un programa que diseemos ya

    que este objeto no est asociado de forma estndar en ninguna

    transaccin SAP. Para hacerlo tenemos que llamar al objeto

    directamente en nuestro programa ABAP mediante el mdulo de

    funciones NUMBER_GET_NEXT. Por ejemplo, para empleados

    del centro 0310 sera del siguiente modo.

    CALL FUNCTION 'NUMBER_GET_NEXT'

    EXPORTING

    nr_range_nr = '01' object = 'ZEMPLEADOS' subobject = '0310' IMPORTING

    number = v_number EXCEPTIONS interval_not_found = 1 number_range_not_intern = 2 object_not_found = 3 quantity_is_0 = 4

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Log de modificaciones de

    tablas

    En varias ocasiones he recibido consultas acerca de cmo se

    puede saber en SAP qu usuario ha modificado informacin

    dentro de una tabla. Esta informacin es til si no tenemos

    activado el log de acciones de una transaccin yslo podemos

    consultar este log atravs de las tablas con las que interact la

    transaccin. Tambin es posible que el usuario haya ejecutado

    una transaccin Zpropia de cliente, las transacciones de cliente

    no suelen tener asociado ningn log, pero s sabemos sobre qu

    tablas se est accediendo.

    Pues bien, en este caso tambin tenemos una herramienta en

    SAP. Es el log de modificaciones de tablas. En principio, no suele

    estar activado ya que penaliza el rendimiento yla memoria de la

    base de datos. De hecho, SAP no recomienda su uso en tablas de

    aplicacin, ms bien solamente en tablas de customizing. As que

    si decids activar esta funcionalidadmedid muy bien las

    repercusiones quetendr.

    Ejemplo

    Tenemos una tabla ZTEST sobre la cual grabamos documentos

    de ventas atravs de una vista de actualizacin. Deseamos saber

    cundo yquin realiza modificaciones sobre esta tabla. Los pasos

    estn perfectamente recogidos en el punto de customizing

    deSAP.

    IMG: Gestin del sistema de control interno /Grabacin de

    modificaciones de tablas

    Abrimos el diccionario ABAP ybuscamos nuestra

    tablaZTEST.

    Herramientas /Workbench ABAP /Desarrollo /SE11 Diccionario

    ABAP

    Navegamos a Pasar a /Opciones tcnicas.

    Marcamos la opcin Grabar en log modificaciones de

    datos. Nos aseguramos de que la tabla quede activa tras

    hacer la grabacin.

    Vamos al perfil de sistema ymodificamos el valor

    rec/client. Indicamos el nmero del mandante sobre el que

    se grabarn los logs de modificaciones. Recomiendo que

    este paso lo haga el administrador Netweaver (responsable

    de Basis) de vuestra empresa.

    Herramientas /CCMS /Configuration /RZ10 System profile

    Resultado

    Si todo ha ido bien siempre que haya una modificacin, sta

    quedar registrada. Para consultar los cambiospodemos ir al

    programa RSVTPROT

    Herramientas /Workbench ABAP /Desarrollo /SE38 Editor ABAP

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    ndices de tablas

    Un ndice de una base de datos, segn la Wikipedia es:

    una estructura de datos que mejora la velocidad de las

    operaciones, permitiendo un rpido acceso alos registros de una

    tabla en una base dedatos

    Se suele crear un ndice sobre una tabla del diccionario ABAP

    cuando en uno de nuestros programas nos vemos obligados

    ahacer bsquedas de informacin, pero el acceso a sta no se

    realiza de acuerdo acampos claves de dichatabla.

    Ejemplo

    Imaginemos que deseamos extraer un listado de materiales de

    nuestra base de datos. Para ello debemos ir la tabla MARA que

    contiene toda la informacin general de materiales de nuestra

    empresa. Lo ideal en este caso sera hacer la bsqueda poniendo

    como condicin de seleccin el campo nmero de material

    (MARA-MATNR) que es el nico campo clave de la tabla. Sin

    embargo, nuestro caso es ms complejo yse nos pide hacer una

    bsqueda de materiales apartir del campo nmero de material

    anterior (MARA-BISMT) en un cdigo como el siguiente:

    REPORT zprueba NO STANDARD PAGE HEADING LINE-SIZE 255.

    TABLES: mara.

    DATA: BEGIN OF t_mara OCCURS 0, matnr LIKE mara-matnr,

    bismt LIKE mara-bismt,END OF t_mara.

    SELECT-OPTIONS: s_bismt FOR mara-bismt.

    START-OF-SELECTION.

    SELECT * FROM mara INTO CORRESPONDING FIELDS OF TABLE t_mara WHERE bismt IN s_bismt.

    El rendimiento de un programa de este tipo se encuentra

    penalizada ya que el campo de bsqueda no es clave en latabla.

    Solucin

    Crear un ndice para el campo MARA-BISMT.

    Entramos en la tabla de diccionario MARA.

    Herramientas /Workbench ABAP /Desarrollo /SE11 Diccionario

    ABAP

    Marcamos el botn Indices y crear ndice.

    Damos una codificacin anuestro ndice, por ejemplo, Z1.

    Lo identificamos con una descripcin.

    Dejamos la opcin que nos da por defecto, ndice no nico

    en todos los sistemas de la base dedatos.

    Escribimos el campo por el cual vamos aindexar la base de

    datos. Es importante que uno de ellos sea siempre el campo

    mandante.

  • http://www

    .blogdesap.c

    om

    Ya podemos grabar yactivar.

    A partir de ahora, en principio debera mejorar el rendimiento de

    nuestro programa.

    Imagen inicial | Metagrrrl

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Webservices(I): ficheros xml

    ste y (creo que) los dos siguientes posts del blog van atratar

    sobre comunicaciones entre sistemas mediante servicios web o

    webservices. Explicar cmo enviar yrecibir informacin desde

    yhacia nuestro SAP, lo que comunmente llamamos interfaces.

    Siempre partiendo de que no disponemos del mdulo XI/PI de

    SAP que seguramente nos facilitara las cosas bastante.

    Para empezar dir que la informacin que trasladaremos entre

    plataformas la convertiremos al lenguaje XML yen este primer

    post voy aexplicar cmo hacerlo.

    Transformaciones ABAP/XML yXML/ABAP

    SAP provee de dos herramientas bsicas para hacer

    transformaciones de informacin de ABAP aXML yde XML

    aABAP.

    Utilizando la plantilla de transformacin estndar deSAP.

    Mediante la creacin de transformaciones simples atravs

    de la transaccin STRANS.

    Voy acentrarme en el primer tipo haciendo un pequeo ejemplo.

    Primero vamos acrear un fichero XML apartir de datos de

    pedidos de venta extrados de nuestro sistema. En segundo

    lugar, imaginaremos que el sistema externo nos ha devuelto esos

    datos modificados en otro fichero XML que convertiremos

    igualmente adatos ABAP.

    De ABAP aXML

    Crearemos un pequeo programa ABAP en nuestro editor.

    Herramientas /Workbench ABAP /Desarrollo /SE38 Editor ABAP

    Extraemos los datos de la tabla de pedidos de posiciones de

    pedidos de ventaVBAP.

    Llamamos la funcin CALL_TRANSFORMATION que

    convierte los datos aXML.

    REPORT zpruebas NO STANDARD PAGE HEADING LINE-SIZE 255.**************************************************

    *******************************

    *Tablas**************************************************

    ********************************

    TABLES: vbap.

    **************************************************

    *******************************

    *Tablas internas**************************************************

    *******************************

    DATA: BEGIN OF ti_vbap OCCURS 0, vbeln LIKE vbap-vbeln, "Documento posnr LIKE vbap-posnr, "Posicin matnr LIKE vbap-matnr, "MaterialEND OF ti_vbap.

    **************************************************

    *******************************

    *Datos globales**************************************************

    *******************************

    DATA:

    g_xml TYPE string.

    **************************************************

    *******************************

    *** SELECTION-SCREEN**************************************************

    *******************************

    SELECT-OPTIONS: s_vbeln FOR vbap-vbeln.

    **************************************************

    *******************************

    *START-OF-SELECTION**************************************************

    *******************************

    START-OF-SELECTION.

    SELECT * FROM vbap INTO CORRESPONDING FIELDS OF TABLE ti_vbap WHERE vbeln IN s_vbeln.

    **************************************************

    *******************************

    *END-OF-SELECTION**************************************************

    *******************************

    END-OF-SELECTION.

  • http://www

    .blogdesap.c

    om

    CALL TRANSFORMATION id SOURCE data = ti_vbap[] RESULT XML g_xml.

    []

    El resultado para la seleccin del pedido de ventas

    1320000021

    De XML aABAP

    Crearemos un pequeo programa ABAP en nuestro editor.

    Herramientas /Workbench ABAP /Desarrollo /SE38 Editor ABAP

    Subiramos los datos aSAP. En prximos posts veremos

    cmo hacerlo atravs de webservice.

    De nuevo llamamos la funcin CALL_TRANSFORMATION

    para convertir los datos XML aABAP.

    REPORT zpruebas NO STANDARD PAGE HEADING LINE-SIZE 255.**************************************************

    *******************************

    *Tablas**************************************************

    *******************************

    **************************************************

    *******************************

    *Tablas internas**************************************************

    *******************************

    * Tabla que contiene el xmlDATA: BEGIN OF ti_xml OCCURS 0, string TYPE string,END OF ti_xml.

    * Tabla de datos ABAPDATA: BEGIN OF ti_vbap OCCURS 0, vbeln LIKE vbap-vbeln, "Documento posnr LIKE vbap-posnr, "Posicin matnr LIKE vbap-matnr, "MaterialEND OF ti_vbap.

    **************************************************

    *******************************

    *Datos globales**************************************************

    *******************************

    DATA:

    g_xml TYPE string.

    **************************************************

    *******************************

    *** SELECTION-SCREEN **

    **************************************************

    *******************************

    PARAMETERS: p_fich TYPE string.

    **************************************************

    *******************************

    *START-OF-SELECTION**************************************************

    *******************************

    START-OF-SELECTION.

    * Aqu llenaramos la variable g_xml con el string xml* [...]

    **************************************************

    *******************************

    *END-OF-SELECTION**************************************************

    *******************************

    END-OF-SELECTION.

    CALL TRANSFORMATION id SOURCE XML g_xml RESULT data = ti_vbap.

    Al final, los datos del fichero xml estaran incorporados en

    nuestra tabla interna ABAP ti_vbap.

    Ms informacin

    En este blog tambin tenis informacin amplia sobre

    transformaciones XML. Ypara una documentacin ms extensa

    tambin podis consultar este documento.

    Imagen inicial | ssinger3

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Webservices (II): service

    providers

    En este segundo artculo sobre webservices voy acontinuar con

    la creacin de un service provider. Con esto lo que

    conseguiremos es crear un enlace estable de comunicacin

    atravs del cual nuestro cliente pueda enviar informacin

    anuestro sistema SAP. Yque acontinuacin, nosotros podamos

    recoger esta informacin eincorporarla.

    Mdulo RFC

    En primer lugar debemos crear el mdulo de funciones RFC que

    contenga toda la lgica de transformacin del fichero XML que

    nos llegar va webservice.

    Herramientas /Workbench ABAP /Desarrollo /SE37 Biblioteca

    de funciones

    Atributos de la funcin: ser una funcion de acceso remoto

    (RFC)

    Parmetros de entrada (import): al menos debe contener un

    parmetro de entrada de tipo string con traspaso de valores.

    Este parmetro recibir el fichero xml.

    Parmetros de salida (export): no es obligatorio pero es

    recomendado si queremos enviarle una respuesta del tipo

    Ok/Error de vuelta anuestro cliente.

    ste podra ser un ejemplo de cdigo ABAP para elRFC:

    FUNCTION z_prueba_test_mf.

    *"------------------------------------------------

    ----------------------

    *"*"Interfase local*" IMPORTING

    *" VALUE(I_STRING) TYPE STRING*" EXPORTING

    *" VALUE(O_RESPONSE) TYPE STRING*"------------------------------------------------

    ----------------------

    TABLES: ztiris_rec, ztiris_err. DATA:

    ti_vbap LIKE vbap OCCURS 0 WITH HEADER LINE, ti_errores LIKE ztiris_err OCCURS 0 WITH HEADER LINE.

    * XML string to ABAP itab CALL TRANSFORMATION id SOURCE XML i_string RESULT data = ti_vbap[].

    * Incorpora la informacin recibida a una tabla SAP LOOP AT ti_vbap. MOVE-CORRESPONDING ti_vbap TO ztiris_rec. MODIFY ztiris_rec. ENDLOOP.

    * Gestin de errores IF ti_vbap[] IS INITIAL. ti_errores-error = 'X'. APPEND ti_errores. CLEAR ti_errores. ENDIF.

    * ABAP itab to XML string CALL TRANSFORMATION id SOURCE data = ti_errores[] RESULT XML o_response.

    ENDFUNCTION.

    Creacin del objecto

    Definimos nuestro servicio proxy atravs de la transaccin

    SE80. Desde la pestaa Enterprise Services, seleccionamos

    la opcin Serv. proxy ydamos nombre anuestro servicio.

    Esto abrir el wizard que guiar todo nuestro proceso.

    Herramientas /Workbench ABAP /Resumen /SE80 Object

    Navigator

  • http://www

    .blogdesap.c

    om

    Object type: determinamos nuestro proxy del tipo service

    provider.

    Service provider: crearemos nuestro service provider en

    base aExisting ABAP Objects (Inside Out).

    Object type: damos nombre anuestro servicio as como un

    prefijo. Tambin indicamos que utilizaremos la lgica de

    nuestro mdulo de funciones.

    Choose endpoint: aqu escribimos el nombre del mdulo de

    funciones RFC que previamente hemos creado.

    Configure service: por defecto, dejamos la informacin de

    SOAP application yprofile que SAP nos proporciona.

    Package/request: indicamos el paquete yorden de

    transporte para nuestro objeto.

    Grabamos. SAP nos muestra la siguiente ventana

    informativa

    Se crea el servicio Web ZWS_PRUEBA_TEST:

    Tenga en cuenta que el servicio no posee ninguna liberacin

    de tiempo de ejecucin ypor eso no puede utilizarse. Sin

    embargo, esto slo se puede crear en la configuracin

    WSCONFIG.

    A continuacin va asolicitar la transaccin WSADMIN

    (Servicios de administracin de Web para tiempo de

    ejecucin SOAP) en el registro UDDI para el servicio Web.

    Finalmente, activamos nuestro servicio.

    Creacin del servicio

    Llamamos la transaccin SOAMANAGER. Si tienes

    problemas para acceder al SOAMANAGER quizs te falte

    activar alguna configuracin.

    Desde la pestaa Business Administration pulsamos en Web

    Service Administration.

    Buscamos el servicio que hemos creado previamente.

    Lo marcamos ypulsamos Apply Selection. Inmediatamente

    se nos abre una pantalla ms abajo con el detalle del

    servicio.

    Aqu vamos abuscar la pestaa Configurations ypulsar el

    botn Create Service.

    Damos nombre al servicio en la nueva ventana que se

    nosabre.

  • http://www

    .blogdesap.c

    om

    Una nueva ventana se nos abre an por debajo. De toda la

    informacin que aqu se nos pide, la ms importante se

    encuentra en la pestaa Provider Security. En sta

    marcamos la necesidad de utilizar un user id ypassword si

    nuestro cliente quiere enviar informacin anuestro sistema

    SAP.

    Marcamos el botn Save.

    Despus de todo este proceso SAP se habr publicado un

    enlace WSDL que ya podemos dar anuestro cliente para

    que configure su sistema. Este enlace contiene las

    definiciones para que nuestro cliente se pueda conectar

    directamente anuestro sistema. Para ver cul es este enlace

    vamos la pestaa Overview ymarcamos Open WSDL

    document for selected binding. Tambin se puede buscar

    desde la transaccin SE80, en la definicin de servicio,

    pestaa WSDL.

    Creacion del usuario

    Nuestro cliente se conectar anuestro SAP para dejar la

    informacin atravs de un usuario especfico que nosotros

    creemos. Le debemos dar la clave yel usuario anuestro cliente.

    Herramientas /Gestin /Actualizacin de usuarios /SU01

    Creacin de usuarios

    Es importante que el usuario que creemos tenga todas las

    autorizaciones necesarias (pestaa roles), entre ellas los

    roles que hacen referencia aservicios web como

    SAP_BC_WEBSERVICE_ADMIN,

    SAP_BC_WEBSERVICE_CONSUMER

    oSAP_BC_WEBSERVICE_SERVICE_USER.

    Tambin es necesario que el usuario se haya creado como

    usuario C-comunicacin (pestaa Datos Logon)para que

    ste no pueda acceder atravs de SAPGUI sino solamente

    pueda conectarse por webservice.

    Datos logon del servicio

    An nos queda un paso para activar completamente nuestro

    servicio. Debemos especificar el usuario ycontrasea de acceso

    anuestro servicio atravs de la transaccin SICF.

    Herramientas /Gestin /Red /SICF Actualizacin de rbol de

    servicio HTTP

    Buscamos nuestro servicio.

    Entramos en los servicios web que hemos creado

    ZWS_PRUEBA_SERVICIO yZWS_PRUEBA_BINDING.

    En ambos indicamos que la operacin de acceso ser de tipo

    L (secuencia de acceso alternativa).

    Damos un usuario ycontrasea.

    Marcamos Ejecutar operaciones de acceso todas.

    Nos aseguramos que se encuentran todas la lista de

    operaciones de acceso.

    En este artculo tambin podis encontrar un ejemplo de

    webservice. Ysi lo prefers en este vdeo de@ivanfemia.

    Imagen inicial | tj scenes

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Webservices (III): service

    consumer

    Este post cierra (?) la serie sobre webservices. En este caso

    vamos aver cmo consumir un webservice desde SAP. Vamos

    allamar aun webservice externo anuestro SAP yvamos adejar

    informacin sobre ese sistema externo.

    Cliente proxy

    En primer lugar debemos asegurarnos que nuestro proveedor

    tenga publicado el enlace WSDL de su webservice, algo

    deltipo

    http://xx.xx.xxx.xx/webservice/nombrewebservice.asmx?wsdl

    Entramos en la transaccin SE80

    Herramientas /Workbench ABAP /Resumen /SE80 Object

    Navigator

    Creamos el cliente proxy, dndole nombre en la pestaa

    Enterprise Services, opcin Clt. proxy.

    Select source: indicamos que el consumo lo haremos

    atravs de url mediante la opcin URL/HTTP Destination.

    Select URL: escribimos la url wsdl que nos ha

    proporcionado nuestro proveedor.

    Enter package/request: escribimos el paquete ynmero

    deorden.

    Grabamos el proceso yactivamos.

    Definicin del puerto

    Llamamos la transaccin SOAMANAGER. Si tienes

    problemas para acceder al SOAMANAGER quizs te falte

    activar alguna configuracin.

    Desde la pestaa Business Administration pulsamos en Web

    Service Administration.

    Buscamos elproxy consumerque hemos creado

    previamente. Lo marcamos ypulsamos Apply selection. Se

    nos abre una nueva ventana msabajo.

  • http://www

    .blogdesap.c

    om

    Sobre la pestaa Configurations pulsamos el botn Create

    Logical Port.

    Se nos abre otra pestaa donde indicamos el nombre de

    nuestro puerto lgico, de nuevo nos pide la urld del wsdl

    proveedor, el usuario ycontrasea.

    Si no se nos grabase el usuario ycontrasea (algo que

    aveces pasa yno s por qu), marcamos Edit ymodificamos

    usuario ycontrasea en la pestaa Consumer security que

    se nos ha abierto an msabajo.

    Lgica del programa

    Nos queda definir la lgica de nuestro programa, buscar los

    datos en nuestro sistema yenviarlos atravs del proxy que

    hemos creado.

    Volvemos la transaccin SE80

    Creamos el programa que contendr la lgica.

    Mantenemos el programa visible, mientras buscamos

    nuestro proxy cliente en el rbol de laSE80.

    Arrastramos el proxy cliente desde el rbol al editor ABAP.

    Esto nos crear la plantilla ABAP.

    Esta plantilla contiene lo siguiente:

    Definicin de la clase delproxy.

    Definicin de la estructura del proxy (salida) donde

    dejaremos el string xml que enviaremos, as como el

    usuario ycontrasea.

    Estructura del proxy (entrada) donde recibiremos la

    informacin de respuesta del webservice de nuestro

    proveedor(si nos la da). Por ejemplo, un mensaje de

    error/Ok.

    Creacin del puerto lgico. La sentencia

    CREATE_OBJECT de la plantillaabre la

    comunicacin atravs del puerto lgico creado.

    Llamada al proxy. La sentencia CREATE_METHOD

    de la plantilla se encarga de enviar la informacin

    anuestro proveedor de webservice.

    No indico el cdigo ABAP completo, pero evidentemente esta

    plantilla hay que modificarla yadaptarla. Adems antes de abrir

    la comunicacin en nuestro programa ABAP debemos seleccionar

    los datos aenviar ytransformarlos axml mediante la funcin

    CALL_TRANSFORMATION.

    Si ests interesado en ms informacin sobre consumo de

    webservices pulsa en este enlace.

    Y en programacin orientada aobjetos, tenis un manual en la

    pgina de abap.es

    Imagen inicial | tj scenes

  • http://www

    .blogdesap.c

    om

    blogdesap.comLog de modificaciones de

    tablas

    En varias ocasiones he recibido consultas acerca de cmo se

    puede saber en SAP qu usuario ha modificado informacin

    dentro de una tabla. Esta informacin es til si no tenemos

    activado el log de acciones de una transaccin yslo podemos

    consultar este log atravs de las tablas con las que interact la

    transaccin. Tambin es posible que el usuario haya ejecutado

    una transaccin Zpropia de cliente, las transacciones de cliente

    no suelen tener asociado ningn log, pero s sabemos sobre qu

    tablas se est accediendo.

    Pues bien, en este caso tambin tenemos una herramienta en

    SAP. Es el log de modificaciones de tablas. En principio, no suele

    estar activado ya que penaliza el rendimiento yla memoria de la

    base de datos. De hecho, SAP no recomienda su uso en tablas de

    aplicacin, ms bien solamente en tablas de customizing. As que

    si decids activar esta funcionalidadmedid muy bien las

    repercusiones quetendr.

    Ejemplo

    Tenemos una tabla ZTEST sobre la cual grabamos documentos

    de ventas atravs de una vista de actualizacin. Deseamos saber

    cundo yquin realiza modificaciones sobre esta tabla. Los pasos

    estn perfectamente recogidos en el punto de customizing

    deSAP.

    IMG: Gestin del sistema de control interno /Grabacin de

    modificaciones de tablas

    Abrimos el diccionario ABAP ybuscamos nuestra

    tablaZTEST.

    Herramientas /Workbench ABAP /Desarrollo /SE11 Diccionario

    ABAP

    Navegamos a Pasar a /Opciones tcnicas.

    Marcamos la opcin Grabar en log modificaciones de

    datos. Nos aseguramos de que la tabla quede activa tras

    hacer la grabacin.

    Vamos al perfil de sistema ymodificamos el valor

    rec/client. Indicamos el nmero del mandante sobre el que

    se grabarn los logs de modificaciones. Recomiendo que

    este paso lo haga el administrador Netweaver (responsable

    de Basis) de vuestra empresa.

    Herramientas /CCMS /Configuration /RZ10 System profile

    Resultado

    Si todo ha ido bien siempre que haya una modificacin, sta

    quedar registrada. Para consultar los cambiospodemos ir al

    programa RSVTPROT

    Herramientas /Workbench ABAP /Desarrollo /SE38 Editor ABAP

  • http://www

    .blogdesap.c

    om

    Siento no poderos mostrar un resultado de ejemplo positivo. Mi

    sistema no tiene el parmetro rec/client activo.

    Imagen inicial | szpako

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Proteger ydesproteger

    variantes de report

    Este artculo trata de cmo crear, proteger ydesproteger

    variantes de reports SAP. Ya habamos visto en un post anterior

    que mediante variantes podamos crear imgenes fijas de la

    pantalla de seleccin de reports. Ahora veremos qu debemos

    hacer para que una variante que hemos creado slo pueda ser

    modificada por nosotros mismos. Pero tambin veremos lo

    contrario, cmo modificar variantes protegidas de otros usuarios.

    Proteger una variante

    Utilizaremos como ejemplo, el listado de pedidos de cliente

    VA05N

    Entramos en laVA05N

    Llenamos la pantallas de seleccin con nuestros valores.

    Pasar a /Variantes /Grabar como variante.

    Damos un nombre ymarcamos proteger variante.

    Con slo estos pasos nuestra variante queda protegida yen caso

    de que un usuario diferente al nuestro intente modificarla

    oborrarla le aparecer el siguiente mensaje.

    Desproteger variante

    Si nos encontramos en un caso como el anterior ynecesitamos

    desproteger esta variante, por ejemplo, si el usuario ya no

    trabajase en la empresa, debemos proceder del siguiente modo.

    Llamamos al programa RSVARENT

    Herramientas /Workbench /Desarrollo /SE38 Editor ABAP

    Introducimos el nombre del programa yla variante.

    El nombre del programa corresondiente la

    transaccin VA05N lo encontramos navegando sobre la

    transaccin VA05N al men Sistema /Status /Report. El

    programa es el SD_SALES_ORDERS_VIEW.

    El nombre de la transaccin lo encontramos navegando

    en la transaccin VA05N aPasar a /Variantes /Traeer.

    Ejecutamos el programa. Al ejecutarlo, no nos enva ningn

    mensaje de finalizacin. No os preocupis, es normal.

    Volvemos la transaccin VA05N, Pasar a /Variantes

    /Grabar como variante. Yya podris grabar las

    modificaciones que queris normalmente.

    Como siempre, utilizad esta herramienta con cuidado.

    Imagen inicial | juhansonin

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Cmo encontrar tablas de

    una transaccin

    Quisiera saber qu campos ytablas utiliza este programa

    Tengo que encontrar las tablas de la base de datos donde guarda

    la informacin esta transaccin Son preguntas que seguro que

    nos hemos hecho ms de una vez. Quiz, solamente para

    preparar una query, quizpara utilizar la tabla en un listado

    oquiz para comparar la informacin en SAP con la que tenemos

    en nuestros excels.Sea cual sea la razn, en este artculo voy

    aenumerar varias formasdedetectar los campos ylas tablas que

    utilizan las transacciones deSAP.

    Datos tcnicos (F1-F9)

    Es quizs, la forma ms rpida. Supone utilizar la ayuda propia

    de los campos de las transaccin SAP directamente. Lovoy

    amostrar en un ejemplo con la transaccin VA02.

    Llamamos anuestra transaccin VA02

    Nos situamos sobre elcampo.

    Apretamos la tecla F1.

    Pulsamos el botn Datos tcnicos (F9oicono del martillo).

    Nos fijamos en los datos que aparecen acontinuacin de Tabla

    yNombre de campo ya que contienen precisamente la

    informacin que buscamos, la tabla que almacena la informacin

    del campo sobre el cual nos habamos posicionado. En este caso

    la tabla es la VBAK yel campo es el VBELN.

    Pero tambin tenemos que fijarnos en el valor que aparece

    acontinuacin de Clase tabla. Si el valor que se indica es tabla

    transparente podemos estar seguros de que es una tabla que

    almacena informacin, pero si se indica que la clase de tabla es

    una estructura, entonces debemos seguir buscando para

    encontrar la tabla transparente que contiene la informacin.

    Ayudas de bsqueda omatchcodes

    Consiste en buscar las tablas apartir del matchcode asociado al

    campo de nuestra transaccin.Por ejemplo, con la transaccin

    VF03 seguiramos estospasos:

    Nos posicionamos sobre elcampo.

    Seguimos los pasos del apartado anterior (F1-F9).

    Buscamos el valor que aparece acontinuacin de Ayuda de

    bsqueda. En este caso encontramos que el valor esVMCF.

    Hacemos dobleclick.

    Como hay matchcodes incluidos seguimos haciendo doble

  • http://www

    .blogdesap.c

    om

    click para navegar acualquiera de los matchcodes.

    Hacemos doble click sobre el valor del apartado Mtodo de

    seleccin para llegar finalmente alas tablas incluidas en el

    matchcode.

    Include TOP de programa

    Si sabemos leer el cdigo ABAP del programa podemos buscar

    los nombres de tablas directamente sobre el cdigo.

    Escribimos la transaccin. Por ejemplo, VF03

    Seguimos los pasos del primer apartado (F1-F9).

    Hacemos doble click sobre el nombre del programa para

    navegar hastal.

    Buscamos en el programa un include que seguramente

    acaba con las letras _TOP.

    Buscamos la sentencia TABLES. Tras esta sentencia

    encontraremos las tablas que utiliza el programa.

    A veces no existe ningn include que contenga las letras _TOP.

    En ese caso es suficiente con hacer una bsqueda directa de la

    sentencia TABLES.

    Trace SQL

    Consiste en hacer una llamada la transaccin ST05.

    Herramientas /Workbench ABAP /Test /ST05 TraceSQL

    Llamamos la transaccin ST05

    Marcamos activate trace.

    En otro modo, llamamos anuestra transaccin

    problemtica, en este caso la MM02.

    Volvemos aST05 ymarcamos deactivate trace.

    Pulsamos Display Trace.

    El listado que nos muestra la transaccin ST05 es el conjunto de

    tablas yllamadas que hemos realizado cuando hemos ejecutado

    la transaccin MM02. Apartir de aqu debemos decidir cul de

    todas las tablas que nos muestra es la nuestra. Admito que esta

    forma de buscar informacin es complicada ya que supone

    navegar entre la gran cantidad de tablas que en una sola

    transaccin puede llegar allamar SAP.

    Listados de tablas

    Utilizar alguno de los muchos listadosque corren por internet

    con la informacin de tablas que utiliza SAP. Podis utilizar un

    listado de tablas de este blog, uno de mundosap, uno de la sdn,

    etc.

    Referencia de utilizacin

    Consiste en hacer las bsqueda de forma inversa. Hasta ahora

    empezbamos en una transaccin para llegar alas tablas

    ycampos incluidos en la transaccin. Aqu se trata de empezar

    por un campo otabla para llegar la transaccin que los utiliza.

    Herramientas /Workbench ABAP /Desarrollo /SE11 Diccionario

    ABAP

    Escribimos la tabla de base de datos que queramos. Por

    ejemplo, la VBAK.

    Pulsamos visualizar.

    Marcamos el campo VBELN.

    Vamos al men Utilidades /Referencia de utilizacin.

    Marcamos utilizacin en programas.

    Nos mostrar la lista de programas que utilizan ese campode

    tabla. Si sabemos cul es el nombre del programa podemos

    seguir profundizando hasta llegar la transaccin.

    Imagen | Andrea Prieto

    Si este artculo te ha sido de ayuda no olvides compartirlo

    :-)

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Documenta tus programas

    ABAP

    Documentar un programa ABAP significa escribir una pequea

    ayuda para que nuestros usuarios sepan cul es la funcin del

    programa. Es adems una pequea gua para saber qu

    parmetros son necesarios para la ejecucin correcta del

    programa yuna explicacin de los posibles errores que nos

    podemos encontrar. No me refiero aponer pequeos

    comentarios en el cdigo ABAP sino aescribir una pequea

    ayuda visible para los usuarios.

    Con todo esto no digo que no est bien explicar nuestras lneas

    de cdigo, totalmente necesario, pero tambin hay que pensar en

    dar las mximas facilidades aaquellas personas que van

    atrabajar diariamente con nuestros pequeos programas.

    Este tipo de ayuda lo hemos visto ms de una vez en

    transacciones yprogramas estndar. Tomemos por ejemplo, la

    transaccin FBL5N

    Finanzas /Gestion financiera /Deudores /Cuenta /FBL5N

    Visualizar ymodificar partidas abiertas

    Si presionamos el icono i de informacin SAP abre una pequea

    ventana con informacin adicional que el usuario puede utilizar

    para conocer el uso yfuncionalidad de la transaccin.

    Pasos para generar documentacin en un programa ABAP

    Partir de un pequeo programa de prueba que lista los vuelos

    de una compaa area.

    *&------------------------------------------------

    ------------------------------*

    *& Report ZPRUEBA

    *

    *&

    *

    *& Listado de vuelos *

    **************************************************

    *******************************

    REPORT zprueba NO STANDARD PAGE HEADING LINE-SIZE 255.*

    **************************************************

    *******************************

    *Tablas**************************************************

    *******************************

    TABLES: spfli. "Itinerario de vuelos**************************************************

    *******************************

    *Tipos**************************************************

    *******************************

    TYPES: ty_spfli TYPE SORTED TABLE OF spfli WITH NON-UNIQUE KEY carrid connid.

    **************************************************

    *******************************

    *Variables globales**************************************************

    *******************************

    DATA:

    ti_spfli TYPE ty_spfli WITH HEADER LINE. "Tabla interna de vuelos

    **************************************************

    ********************************

    *** SELECTION-SCREEN ***

    **************************************************

    ********************************

    SELECT-OPTIONS: s_carrid FOR spfli-carrid, "Compaa area s_countr FOR spfli-countryfr. "Pas de salida

    **************************************************

    *******************************

    *START-OF-SELECTION**************************************************

    *******************************

    START-OF-SELECTION.

    * Seleccin de vuelos

  • http://www

    .blogdesap.c

    om

    SELECT * FROM spfli INTO CORRESPONDING FIELDS OF TABLE ti_spfli WHERE ( carrid IN s_carrid AND countryfr IN s_countr ).

    **************************************************

    *******************************

    *END-OF-SELECTION**************************************************

    *******************************

    END-OF-SELECTION.

    * Listado

    LOOP AT ti_spfli. WRITE: / ti_spfli-connid, ti_spfli-cityfrom, ti_spfli-deptime. ENDLOOP.

    Una vez tenemos el cdigo escrito vamos acrear la

    documentacin del programa.

    Desde el editor vamos aPasar a /Documentacin.

    Se nos abre un editor (SAPscript oWord segn tengis

    configurado vuestro sistema) con los siguientes apartados:

    Purpose

    Integration

    Prerequisites

    Features

    Selection

    Standard_variant

    Output

    Activities

    Example

    Escribimos en cada apartado la informacin que

    corresponda. Por supuesto, no es necesario que se escriba

    informacin en cada apartado.

    Guardamos yactivamos.

    Resultado de la documentacin

    Lanzamos nuestro programa bien directamente atravs del

    editor ABAP oa travs de la transaccin que hayamos

    decidido paral.

    Marcamos el iconoi.

    Un apunte final, si queris traducir vuestra documentacin

    aotros idiomas podis hacerlo atravs de la transaccin SE63.

    As, si el usuario se loga en otro idioma, tambin podr leer la

    documentacin que hayis preparado.

    Herramientas /Workbench ABAP /Utilidades /Traduccin /SE63

    Textos breves yexplicativos

    Deberis reccorrer el menTraduccin /Objetos ABAP /Textos

    explicativos (documentacin) /Ayuda F1 /RE Reports, gr.

    funciones, BD lgicasy traducir los textos que os aparezcan.

    Imagen inicial | quinn.anya

    Te ha gustado este artculo? Aydame aque llegue ams

    gente compartindolo :-)

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Por qu los usuarios no

    leen los mensajes deSAP?

    Un mensaje es la forma que nos proporciona SAP para gestionar

    informacin relevante dentro del sistema. Advierten oimpiden

    errores en el uso de la herramienta. Entonces, por qu hay

    tantos usuarios que hacen caso omiso de estos mensajes oque

    simplemente no losleen?

    Alguna vez te has encontrado con un usuario que te ha llamado

    pidindote que deshagas un movimiento ouna contabilizacin

    ocualquier otra cosa? Entonces, le has preguntado Por qu

    hiciste ese movimiento? No te leste el mensaje de advertencia

    sobre hacer ese movimiento? Bueno, pues yo s que me he

    encontrado con ese tipo de llamadas, yms de unavez.

    Como en Juegos de Guerra, esa pelcula de 1983en la que el

    protagonista no hace caso al mensaje de la mquina en una de

    las escenas.

    [embedded content]

    Mquina: Jugamos?

    Actor: Qu tal si jugamos la Guerra global

    termonuclear?

    Mquina: No prefiere una buena partida de ajedrez?

    Actor: Ms tarde. Ahora vamos ajugar la Guerra global

    termonuclear?

    La de problemas que se hubiese ahorrado el protagonista si

    hubiese hecho caso al mensaje del ordenador yno hubiese

    continuado. Por supuesto, esto es una exageracin, pero

    demuestra que los mensajes estn por alguna razn.

    Crear un mensaje enSAP

    En primer lugar tienes que saber que SAP proporciona diferentes

    tipos de mensaje, aunque los ms habituales son:

    Informativo (I): se muestra como un pequea ventana sobre

    la transaccin.

    Advertencia (W): pequeo texto que aparece en la barra

    inferior.

    Error (E): al igual que el mensaje de advertencia tambin

    aparece en la barra inferior, pero impide al usuario

    continuar con el normal funcionamiento de la transaccin.

    Obliga acorregir el error antes de poder continuar.

    Para ti, crear un mensaje en un programa ABAP debe ser muy

    sencillo.

    Creamos el mensaje en la transaccion SE91.

    Herramientas /Workbench ABAP /Desarrollo /Entorno de

    programacin /SE91 Mensajes

    Seleccionamos nuestra clase de mensaje, introducimos un

    nuevo nmero ypulsamos Crear.

    Escribimos el texto del mensaje. Guardamos.

    Ahora introducimos el mensaje en nuestro programa ABAP.

    IF g_var = YES. MESSAGE i397(zmensajes) WITH g_var.ENDIF.

    Existe otra manera, escribe el mensaje directamente sin

    necesidad de introducirlo dentro de la tabla de mensajes.

    IF g_var = YES. MESSAGE La orden YES inicia la guerra global termonuclear. Pinsatelo bien TYPE I.

    ENDIF.

    En cualquier caso, el resultado sera una ventana con el siguiente

  • http://www

    .blogdesap.c

    om

    mensaje

    La orden YES inicia la guerra global termonuclear.

    Pinsatelo bien

    Advertencia: no hagis esto en casa de vuestro cliente, puede

    perjudicar seriamente vuestra reputacin dentro de la empresa.

    Aunque por otro lado, quin sabe, hacindolo quiz el usuario

    realmente se lo piensa antes de continuar ;-)

    Los lamentos

    Entonces, Por qu si hemos escrito el mensaje el usuario no ha

    seguido sus indicaciones? Bien, los motivos que personalmente

    ms he escuchado son:

    Tengo mucho trabajo yno tengo tiempo para ir leyendo

    todos los mensajes que da el ordenador.

    Hay tantos mensajes que ya ni me los leo, le doy acontinuar

    yyaest.

    Cul es el problema? El mensaje slo era de advertencia,

    pero me dejaba continuar. As quehe continuado.

    No me ha dado tiempo aleerlo. He ido rpido yhe

    continuado sin querer. As que no he podido leer el mensaje.

    La solucin

    Si lo miramos desde el punto de vista la persona que trabaja cada

    da con las mismas transacciones, podra darles incluso la razn.

    El trabajo puede llegar aser demasiado mecnico ylos mensajes

    algo que slo estn ah para molestar. Pero no es as en

    absoluto, un mensaje es informacin adicional yhay que leerla.

    Desde mi punto de vista, lo mejor es mostrar los consecuencias

    de no leer estos pequeos mensajes. Sobre todo, formar ypedir

    alos usuarios que se los lean. Pero como siempre hay personas

    reticentes ymalas actitudes, entonces si el error generado ha

    sido debido ano querer leer un mesaje yo opto por dejar que sea

    la persona quien arregle el problema que ha generado. Puede

    sonar duro, pero es mejor que permitir que los mismos

    problemas se produzcan una yotra vez.

    De todos modos, estas soluciones no suelen gustar alos key

    users ymucho menos la empresa. Por lo que seguramente os

    van apedir que convirtis aquellos mensajes de tipo informativo

    (I) oadvertencia (W) en mensajes de tipo error (E). As, los

    usuarios no podrn continuar. Aunque eso suponga muchas

    veces que tengan que empezar otra vez la transaccin, que esta

    transaccin acabe abruptamente (suele pasar cuando se

    introduce un mensaje de error dentro de una user exit) opeor

    an, que el trabajo del usuario se convierta todava en ms

    mecnico yrutinario.

    Por cierto, si no habis visto la pelcula Juegos de guerra os la

    recomiendo, pasaris un rato muy agradable.

    Imagen inicial | randomduck

    Crees que este artculo es til? Por qu no me ayudas

    acompartirlo? :-)

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Son mis entornos

    diferentes?

    Nos encontramos en nuestro entorno de desarrollo, delante de

    uno de nuestros programas yno sabemos si lo que tenemos

    delante coincide completamente con la versin que existe en el

    entorno productivo. Empezar amodificar un programa sin estar

    seguro de ello puede convertirse en un verdadero quebradero de

    cabeza. Si ambos entornos no coinciden, nuestros cambios

    pueden subir aproductivo modificaciones inesperadas, que nos

    llevan atener que recuperar cambios yvolver areprogramar

    nuestro cdigo ABAP.

    Para empezar comparar las versiones

    Lo primero que debemos comprobar son coincidencias en las

    versiones. Paraello

    Herramientas /Workbench ABAP /Desarrollo /SE38 Editor ABAP

    Nos situamos sobre nuestro programa en el entorno de

    desarrollo yvamosal men Utilidades /Versiones /Gestin

    de versiones. Nos apuntamos la ltima orden de transporte

    activa que veamos.

    Nos situamos sobre nuestro mismo programa en el entorno

    productivo eigualmente vamos al men Utilidades

    /Versiones /Gestin de versiones. Coincide la orden de

    transporte que vemos con la orden de transporte que

    tenamos en desarrollo? Entonces, podemos saber que

    nuestros programas coinciden.

    Y si no es as? Cules son las diferencias?

    El editor split screen

    Si queremos saber cules son las diferencias de nuestro

    desarrollo entre entornos SAP nos lo muestra en una serie de

    sencillos pasos:

    Herramientas /Workbench ABAP /Desarrollo /SE38 Editor ABAP

    Desde nuestro programa navegamos al men Utilidades

    /Ms utilidades /Editor split screen

    Escribimos el nombre de nuestro programa de nuestros

    respectivos entornos.

    Marcamos el botn Comparacin de sistemas, indicamos

    con qu entorno queremos comparar nuestro programa.

    Marcamos el botn Visualizar.

    Nos solicitar nuestro usuario ycontrasea del entorno

    destino. Lo escribimos.

    Se nos abre una pantalla doble, arriba el programa en

    nuestro entorno origen, debajo el programa en el entorno

    destino.

    Si vamos al men Tratar /Modo de comparacin /Men on,

    el sistema nos dir si ambos programas son iguales.

  • http://www

    .blogdesap.c

    omSi no son iguales, volvemos al men ypulsamos Tratar/Modo de comparacin /Diferencia siguiente. Ynos llevar al

    punto del programa donde hay diferencias.

    Esto tambin nos sirve para detectar diferencias en mdulos de

    funciones:

    Herramientas /Workbench ABAP /Desarrollo /SE37 Biblioteca

    de funciones

    Igualmente, desde el men Utilidades /Ms utilidades /Editor

    split screen.

    E incluso para detectar diferencias en smartforms, pero en este

    caso hay que realizar algunos pasos adicionales. Todo smartform

    en SAP se guarda como un mdulo de funciones del cual hay que

    conocer el nombre.

    Herramientas /Imprimir formularios /SMARTFORMS

    SmartForms

    Entramos en nuestro smartform.

    Vamos al men Entorno /Mdulo de funciones en el entorno

    de desarrollo. Nos guardamos el nombre que nos hadado.

    Vamos al men Entorno /Mdulo de funciones en el entorno

    productivo. Nos guardamos el nombre que nos hadado.

    Vamos al editor split screen, por ejemplo, apartir de la

    SE38 eintroducimos ambos mdulos de funciones en sus

    correspondientes lugares. Como veis el nombre del mdulo

    de funciones que SAP que da al mismo smartform es

    diferente segn el entorno. Por eso, cuando hagis la

    comparacin entre entornos siempre va ahaber diferencias,

    pero tened cuidado, no siempre es debido adiferencias en el

    cdigo sino simplemente al nombre del propio mdulo de

    funciones llamado. Por ejemplo, lo que se muestra en la

    imagen siguiente no sera una diferencia porque se refiere

    solamente al nombre del mdulo de funciones dado al

    smartform en cada entorno.

    Imagen inicial | R0Ng

    Crees que este artculo es til? Por qu no me ayudas

    acompartirlo? :-)

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Regeneracin de objetos

    Cuntos de vosotros no habis visto alguna vez lo siguiente?

    La primera vez que un usuario ejecuta una transaccin tras un

    cambio realizado sobre dicha transaccin SAP ejecuta un proceso

    de regeneracin.Un cambio en una transaccin (y la necesidad

    de regeneracin) sucede cuando modificamos la parametrizacin

    asociada auna transaccin, cuando modificamos el cdigo ABAP

    asociado asu programa, cuando hacemos un upgrade del

    sistema, cuando implementamos una nota, etc. Sin embargo, una

    vez regenerada la transaccin ya no volver aaparecer este

    proceso nuncams.

    No soy un experto pero hasta donde yo saba yme haban

    explicadoABAP es un lenguaje de programacin interpretado, no

    compilado. As que nunca he entendidomuy bien qu es lo que

    hace exactamente SAP cuando dice que est compilando la

    transaccin. Sea como sea, SAP provee de una herramienta que

    nos permite, llammosle regenerar, en forma masiva una

    transaccin modificada.

    Casos

    Transaccin: SGEN

    La documentacin de la propia transaccin es abundante, pero

    voy aexplicar solamente los casos con los que me he encontrado:

    Generacin de objetos todos de componentes de software

    seleccionados: se da cuando se instala por primera vezel

    sistema. Al seleccionar esta opcin se regenerarn todos los

    objetos del sistema SAP.

    Regeneracin despus de un upgrade de sistema SAP: se da

    cuando hemos cambiado de versin de SAP ydeseamos

    regenerar todos los objetos modificados en la versin.

    Generacin de objetos de una orden de transporte: si hemos

    realizado una modificacin de varios programas la vez,

    agrupados en una sola orden, utilizaremos esta opcin para

    regener todos los objetos incluidos dentro de laorden.

    Ejemplo

    Tomemos que queremos regenerar todos los programas que

    hemos modificado eincluido en una orden de transporte.

    Llamamos la transaccin SGEN.

    Indicamos nuestra orden de transporte.

    Decidimos si lo queremos hacer online oen job de fondo. En

    este caso, lo hago en job defondo.

    Atencin, mientras estemos realizando una regeneracin de

    objetos no podemos hacer simultneamente una segunda

    regeneracin, aunque referencia aobjetos distintos.

  • http://www

    .blogdesap.c

    om

    Es aconsejable hacer todas las regeneraciones en job defondo.

    Ms informacin en la propia documentacin de la transaccin

    SGEN yen la nota 379918

    Imagen inicial | Patrick Hoesly

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Fijar color del sistema

    Cuando trabajamos como consultores en casa de nuestro cliente

    es muy normal que tengamos abiertas la vez varias ventanasde

    nuestro sistema SAP.Pero no solamente tenemos abierto un

    entorno, sino varios la vez. Entonces, debemos estar siempre

    atentos anuestra pantalla ytener muy claro sobre qu entorno

    estamos trabajando desarrollo? integracin? produccin?

    Para evitar equivocaciones una solucin es fijarnos en la parte

    inferior derecha de nuestra SAPGUI donde se indica el sistema

    sobre el cul estamos trabajando.

    Pero otra forma mucho ms evidente es tener un color distinto

    segn el entorno en el cual estamos.

    Pasos

    Desconozco apartir de qu SAPGUI es posible utilizar colores

    dependientes de sistema. Yo trabajar este ejemplo con una

    versin SAP front end para Windows release 7.10

    Pulsamos el botn superior derecho de nuestra SAPGUI.

    Navegamos la opcin Parametrizacionesde diseo.

    Buscamos la pestaa Definicin de colores.

    Ajustamos tanto el color de primer plano como el color

    defondo.

    Con el botn Grabar como damos nombre anuestra nueva

    definicin de sistema.

    Repetimos para cada uno de nuestros sistemas.

    Ahora ya tenemos definidos nuestros diferentes colores de

    sistema.

    Volvemos al botn superior derecho de la SAPGUI.

    Navegamos ahora la opcin Fijar color en sistema.

    Marcamos la opcin de color de sistema que deseamos en el

    entorno en el cual nos encontramos actualmente.

    Repetimos el proceso para cada uno de nuestros distintos

    entornos.

    Ya tenemos definidos nuestros entornos segn diferentescolores.

    Ahora ser mucho ms difcil que cometamos errores cuando

    trabajamos con varios entornos lavez.

  • http://www

    .blogdesap.c

    om

    Entorno DES

    Entorno INT

    Entorno PRO

    Imagen inicial | Alan Cleaver

  • http://www

    .blogdesap.c

    om

    Parmetros de usuario

    Desde un punto de vista tcnico y simplificndolo mucho podemos decir que el da a da de los usuariosen SAP consiste en introducir gran cantidad de informacin en campos SAP. La informacin introducidava a depender de cada campo de pantalla. Sin embargo, existen campos donde un usuario siempre va aescribir la misma informacin. En ese momento, hay quienes se preguntan por qu siempre deboescribir lo mismo cuando llego a este punto? no hay alguna manera de que cuando se me presenteeste campo en pantalla ya quede lleno por defecto?

    Por ejemplo, un usuario del departamento de ventas de una empresa crea siempre la misma clase dedocumento de ventas. Entonces, por qu no hacer que cuando a este usuario le aparezca el campoclase de documento de ventas en pantalla tenga ya su valor informado? As, evitamos que ese usuariotenga que volver a llenarlo una y otra vez en cada transaccin que tenga este campo.

    Manteniendo los parmetros de usuario propios

    Herramientas / Gestin / Actualizacin de usuarios / SU01 Usuarios

    Una vez en la transaccin los pasos siguientes:

    Introducimos el nombre del usuario.

    Navegamos a Usuario / Modificar / Parmetros.

    Introducimos el ID del parmetro y le damos un valor.

    Cmo?

  • http://www

    .blogdesap.c

    om

    Grabamos.

    Para saber que parmetros podemos introducir debemos ir al campo y buscar su correspondiente ID.Por ejemplo, en el caso del usuario que siempre crea las mismas clases de pedidos de venta

    Logstica / Comercial / Ventas / Pedido / VA01 Crear

    Nos posicionamos sobre el campo clase de pedido.

    Pulsamos la tecla F1.

    Pulsamos el botn Datos tcnicos.

    Vemos que el valor del ID es AAT. As que ahora nos vamos a la transaccin SU01 e introducimos el IDy el valor que ha de tener siempre.

    Si volvemos otra vez a la transaccin VA01 vemos que automticamente el campo clase de documentode ventas est lleno por defecto.

    Bueno, hay que decir que hay transacciones que no soportan los parmetros ID y esto no va afuncionar.

    Qu parmetros tenemos disponibles?

    Resultado

  • http://www

    .blogdesap.c

    om

    Esto est muy bien, pero existe alguna lista de parmetros comunmente utilizados y que se puedenaadir a un usuario siempre? Es difcil de decir, pero por si os sirve de ayuda, la siguiente lista puedeser til (los valores no necesariamente han de ser los mismos que yo aqu pongo).

    ID VALOR EXPLICACIN

    AQB PEDIDOS Cuando el usuario entre en la transaccinSQ01 ya lo har directamente sobre el grupode usuarios de PEDIDOS

    BUK 1000 Cdigo de la sociedad a la que pertenece elusuario

    CAC 1000 Sociedad CO a la que pertenece el usuario

    EKG 010 Grupo de compras

    EKO 0100 Organizacin de compras

    EVO Z1 Valores por defecto para la gestin decompras para los encargados de comprassegn transaccin OMFI

    FBA X1 02X Permite buscar los documentos en FI si no seencuentran en la base de datos

    FBZ SAP Variante de layout para la contabilizacin dedocumentos FI

    FIT_ALV_FAGL_GL /VARIANTE Variante ALV para Gen. Ledger Accounting

    FZ1 SAP01 Layout para la entrada de facturas FI

    FZ2 SAP01 Variante de layout para entrada rpida depos. de cta.mayor

    FZ5 SAP01 Variante de layout para entrada rpida defactura preliminar

    LAG 0100 Almacn

    SCL Empleo de maysculas o minsculas encdigo fuente

    SD_VARIANT_MAINTAIN X Permite modificar las variantes de pantallade listados de venta

    SPA 0100 Sector de ventas

    SU53_STYLE TREE Layout en que se mostrar el resultado de latransaccin SU53

    VKO 10 Organizacin de ventas

    VTW 10 Canal de distribucin de ventas

    WLC X X XX X00000

    Parmetros de workflow especficos deusuario

    WRK 1100 Centro

    Parmetros comunes

  • http://www

    .blogdesap.c

    om

    SP01_FROM 0000000001 Primera pgina a presentar en el spool deimpresin (SP01)

    SP01_END 0000000010 ltima pgina a presentar en el spool deimpresin (SP01)

    SP01_ENDING Presentar las ltimas XX pginas en el spoolde impresin (SP01)

    FIT_ALVC X Muestra las transacciones FBL1N y FBL5Nen formato ALV

    FO2 X X X X Opciones de contabilidad

    FOP XX Opciones de contabilidad

    GRWE X X XXX XE Valores de Report Writer

    LE_VL10_UPG_NOMSG X No muestra mensaje de aviso en transaccinVL04

    LND ES Clave de pas

    ME_USE_GRID X ALV grid en reports de compras ME1*

    SD_SWU_ACTIVE X Activar workflow en VA02 y VA03

    SOST XXXX XXX4XXX X

    Parmetros de transaccin SOST

    La tabla USR05 muestra los parmetros y valores asociados a cada usuario.

    La tabla TPARA contiene todos los parmetros disponibles en SAP para asociar a usuarios.

    Nota: La recopilacin de estos parmetros son propias, pero gracias a blogs como Notas y trucosSAP este post se ha ido ampliando.

    Hay alguien que conozca otros parmetros de usuario y su significado?

    Imagen inicial | stefg

    Tablas

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Conocer los accesos yel

    trabajo de un usuario

    Todos hemos tenido alguna vez un cliente que nos ha pedido que

    le digamos cundo ha sido la ltima vez que cierto usuario entr

    al sistema oen qu transacciones ha entrado. Bueno, son

    situaciones normales en algunas empresas yuna forma de hacer

    por parte de los empleadores con las que podemos estar ono de

    acuerdo. Sea como sea SAP nos da algunas herramientas que sin

    ser exactamente herramientas de auditora nos ayudan aconocer

    la fecha de ltimo acceso, las transacciones visitadas, accesos

    la base dedatos

    Usuarios por fecha de entrada al sistema

    Esta transaccin nos sirve para conocer la ltima fecha yhora en

    la que un usuario accedi aSAP. Es muy til para decidir por

    ejemplo si es necesario seguir manteniendo la licencia del

    usuario activa. En caso, de que el usuario haga mucho tiempo

    que no accede aSAP, desactivarlo.

    Herramientas /Gestin /Actualizacin de usuarios /Sistema de

    informacin /Usuario /RSUSR200 Tras. fe. entrada sist. ymodif.

    clv. acceso

    Entramos la transaccin.

    Escribimos el usuario ousuarios.

    Observamos el resultado.

    En la imagen se ve la fecha en que se crearon los usuarios, quin

    los cre, si siguen ono activos (fin de validez), cundo fue la

    ltima vez que entraron al sistema ysi su clave de acceso sigue

    activa oha sido desactivada.

    Monitor de carga de trabajo

    El monitor de carga de trabajo contiene variadas funciones que

    permiten analizar datos estadsticos del kernel de SAP. Para

    poder hacer uso de la herramiente previamente debemos haber

    activado una serie de jobs estndar, pero sobre todo, en nuestro

    caso, es necesario el job SAP_COLLECTOR_FOR_PERFMONITOR

    . Tenis informacin sobre los diversos jobs estndar en la nota

    de SAP 16083. Una vez se haya generado la informacin en el

    sistema podremos visualizarla atravs de la transaccin ST03

    Entramos en la transaccin ST03

    Seleccionamos nuestro sistema del rbol que se encuentra

    la izquierda de la pantalla (zona superior).

    Marcamos el da que queremos investigar yhacemos doble

    click. Ya tenemos seleccionado el da que queremos

    analizar.

    En la parte inferior izquierda hay otro rbol con las vistas

    de anlisis que nos permite obtener informacin anivel de

    transaccin anivel de usuario.

    Anlisis por transaccin:

    Marcamos Perfil de transaccin /Estndar. Esto

    nos muestra todas las transacciones que se han

    ejecutado durante el da seleccionado.

    Si hacemos doble click sobre una de las

  • http://www

    .blogdesap.c

    om

    transacciones individuales navegaremos hasta los

    usuarios que las han utilizado ydurante

    cuntotiempo.

    Anlisis por usuario:

    Marcamos Estadstica de usuario /Perfil de

    usuario. Esto nos muestra todos los usuarios que

    han accedido al sistema en el da en cuestin.

    Si hacemos doble click sobre una de las

    transacciones individuales navegaremos hasta los

    usuarios que las han utilizado ydurante

    cuntotiempo.

    Ninguna de estas herramientas son utilidades de auditora, ms

    complejas ya las que podis llegar atravs de las transacciones:

    Herramientas /Gestin /Monitor /Log auditora seguridad

    /SM19 Configuracin

    Herramientas /Gestin /Monitor /Log auditora seguridad

    /SM20 Evaluacin

    Herramientas /Gestin /Monitor /Log auditora seguridad

    /SM18 Reorganizacin

    En todo caso si queris informacin ampliada sobre herramientas

    de auditora en SAP os recomiendo un blog excelente, seguridad

    sap.

    Imagen inicial | Ted & Dani Percival

    Si este artculo te ha sido de ayuda no olvides compartirlo

    :-)

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Introduce un texto

    informativo en la entrada

    aSAP

    Ya hemos visto en la entrada dedicada la nueva SAP GUI 7.30

    que podemos introducir textos informativos en el logon de SAP

    para cada una de las conexiones. Sin embargo, esto slo lo

    podemos hacer anivel de usuario individualmente por cliente

    SAP GUI. Qu pasa si queremos mostrar mensajes informativos

    para el conjunto de usuarios justo antes de acceder al sistema?

    Por ejemplo, mostrar un mensaje que advierte de una parada del

    sistema global acierta hora, indicar la informacin de contacto

    del departamento de sistemas en caso de problemas

    Crear texto general

    Herramientas /Workbench ABAP /Utilidades /SE61

    Documentacin

    Seleccionamos:

    Clase de documentos: Texto general.

    Idioma: Espaol (si entramos al sistema en castellano,

    sino el que sea el idioma de entrada).

    Nombre ZLOGIN_SCREEN_INFO.

    Pulsamos Modificar, pero si el nombre de documento no

    existiese previamente, entonces seleccionamos Crear.

    Se nos abre un editor de texto donde introducimos nuestro

    texto de seleccin. Aqu podemos incluir tanto texto como

    iconos.

    Texto: el que deseemos.

    Iconos: para introducir iconos vamos abuscar el cdigo

    del iconode la tabla ICON (transaccin SE16N).

    Grabamos yactivamos.

    Resultado

    Podemos ver el resultado del texto informativo cuando

    accedemos con el SAPLogon.

    Abrimos nuestro SAPLogon.

    Seleccionamos nuestro entorno.

    Ms informacin disponible en la nota 205487

    Imagen inicial | ecastro

    Si este artculo te ha sido de ayuda no olvides compartirlo

    :-)

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Cinco formas de encontrar

    transacciones de

    customizing

    Cuando entramos en la gua de implementacin IMG de SAP lo

    primero que observamos es un gran men que est ms omenos

    estructurado por mdulos yfunciones generales de SAP. Al

    empezar atrabajar como consultor SAP puede que no sepamos ni

    por dnde empezar abuscar. Pero, an teniendo ya experiencia,

    puede que no nos acordemos del punto exacto del men donde se

    encontraba la transaccin que buscamos. Con este artculo

    quiero dar algunos trucos que nos permiten encontrar un punto

    de parametrizacin ms fcilmente.

    Buscar transacciones de parametrizacin de ventas

    mediante V/

    Tal ycomo explica Daniel Panaro en uno de los artculos de su

    magnfico blog las transacciones de parametrizacin de ventas se

    pueden encontrar con unos sencillos pasos:

    Vamos al gestor de transacciones.

    Herramientas /Workbench ABAP /Otras herramientas /SE93

    Transacciones

    Escribimos V/*

    Pulsamos el matchcode.

    De la lista que nos muestra pulsamos aquella que nos

    interese. Nos llevar directamente al customizing en

    cuestin.

    Pero atencin, esto slo sirve para algunas parametrizaciones de

    ventas. Adems, no todas las transacciones que empiezan por

    V/son transacciones de customizing.

    Utilizar el buscador de la gua de implementacin

    Imaginemos, por ejemplo,que estamos buscando los pases que

    hay definidos en nuestro sistema SAP.

    Vamos la gua de implementacin IMG

    Herramientas /Customizing /IMG /SPRO Tratamiento de

    proyecto

    Navegamos al men Tratar /Buscar.

    Escribimos nuestro concepto de bsqueda. Yo escribir

    Definir pas, pero aveces es necesario escribir algn

    sinnimo ya que la descripcin del punto de customizing no

    es exactamente como nosotros creemos.

    Continuamos ynos despliega (esto aveces tarda un poco) la

    lista de aciertos que ha encontrados.

    Seleccionamos la que ms se ajusta alo que nosotros

    queremos. Nos llevar la zona de men donde se

    encuentra la transaccin.

    Usar la ayudaF1

    Utilicemos el mismo ejemplo anterior donde buscamos los pases

    definidos.

    Buscamos una transaccin donde la funcionalidad de pas ya

    est definida, por ejemplo, en la transaccin del maestro de

    clientes.

    Logstica /Comercial /Datos maestros /Interlocutor comercial

    /Cliente /Visualizar /VD03 Comercial

    Nos posicionamos sobre el campo pas.

    Pulsamos F1. Nos mostrar una ventana parecida asta.

  • http://www

    .blogdesap.c

    om

    Lo importante aqu es ese icono de un lpiz que vemos. Es el

    icono de actualizacin de entradas ylo vamos atener que

    pulsar.

    Nos abrir una segunda ventana, pidiendo un proyecto.

    Obviamos el proyecto ymarcamos Continuar sin datos de

    proyecto.

    De nuevo SAP nos vuelve amostrar un listado de todos los

    resultados posibles ynosotros marcaremos el que ms se

    adece alo que queremos.

    Finalmente, nos encontramos otra vez en la zona de men

    donde se encuentra la transaccin de customizing.

    Usar los datos tcnicos

    Igual ejemplo.

    Comenzamos igual que antes, desde la transaccin del

    maestro de clientes.

    Logstica /Comercial /Datos maestros /Interlocutor comercial

    /Cliente /Visualizar /VD03 Comercial

    Nos posicionamos sobre el campo pas ypulsamos F1.

    Ahora marcamos el botn Datos tcnicos. Segn como

    tengs vuestra ayuda, este botn se parecer aun martillo.

    Hacemos doble click sobre el nombre del campo. Con esto

    estamos navegando la estructura que contiene ese campo

    en el diccionario.

    Marcamos la pestaa Ayuda p/Verif. entr. Vemos que

    nuestro campo se verifica sobre la tablaT005.

    Ahora debemos pasar auna nueva transaccin, la de

    actualizacin de vistas, transaccin SM30

    Escribimos la tabla T005 entre asteriscos (*T005*)

    ypulsamos el matchcode. Nos va aencontrar una vista que

    parece ser que contiene la informacin que queremos

    (V_T005).

    Pulsamos el botn Customizing yde nuevo se nos abre la

    ventana de datos de proyecto. Le decimos que contine sin

    datos de proyecto.

    Seleccionamos dentro del men lo que ms se aproxime

    yde nuevo estamos en el men de la gua de

    implementacin, donde SAP nos seala nuestra transaccin.

    Utilizar algn manual de parametrizacin

    En la red hay muchos ymuy buenos. Tenis, por ejemplo,en

    mundosapmanuales parametrizacinespecficos en mdulos

    como finanzas, ventas, etc.

    Con todos estos trucos espero que tengis suerte la hora de

    buscar las transacciones de parametrizacin ms fcilmente. De

    todos modos, debo decir que no son infalibles yque muchas

    veces no nos van asalvar de hacer una bsqueda manual por

    nuestra cuentra dentro del men de la gua de implementacin.

    Y vosotros? Conocis alguna manera diferente de encontrar

    una transaccin de customizing dentro del men IMG? Si es as,

    agregadla en los comentarios.

    Imagen inicial | Tall Chris

    Si este artculo te ha sido de ayuda no olvides compartirlo

    :-)

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    5 razones por las que no nos

    funciona el programa

    depagos

    La transaccin F110 de pagos automticos se utiliza en SAP para

    la generacin de ficheros de transferencia bancaria.Por ejemplo,

    en Espaa es comn utilizarla para la generacin de los

    ficherosde la norma 19 y34. Desgraciadamente, en algunos

    casos puede fallar ycon este artculo describo algunas de las

    razones por las que esto puede suceder.

    Parametrizacin incompleta de las cuentas bancarias

    IMG: Gestin financiera /Contabilidad bancaria /Cuentas

    bancarias /FBZP Definir bancos propios

    En este caso puede suceder que una cuenta del banco propio no

    se haya completado. Cuando esto sucede aveces, personalmente,

    me he encontrado que la transaccin no enva ningn mensaje de

    error. Sin embargo, tampoco genera el correspondiente fichero

    para elpago.

    Ausencia de partidas de deudor/acreedor

    Es evidente que si el deudor/acreedor no posee ninguna partida

    pendiente, entoncesel programa de pagos no generar ninguna

    propuesta de pago. Para comprobarlo debemos irnos la

    transaccin FBL1N oFBL5N (segn sea un pago aproveedor

    opago de cliente).

    Finanzas /Gestin financiera /Deudores /Cuenta /FBL5N

    Visualizar/modificar partidas

    Finanzas /Gestin financiera /Acreedores /Cuenta

    /FBL1NVisualizar/modificar partidas

    Pero es que aveces, an teniendo partidas pendientes, nos

    encontramos que el programa de pagos no genera la

    correspondiente propuesta. Por qu? Muy sencillo, la propuesta

    se ha generado previamente en una remesa anterior. Aveces, el

    usuario no se da cuenta, cree que la partida an no se ha

    remesado pero en realidad ya fue cazada en una ejecucin

    anterior del programa de pagos.Cmo saberlo? En este caso va

    muy bien revisar la tablaREGUP.

    Herramientas /Workbench ABAP /Resumen /SE16 Browser

    dedatos

    Por ejemplo, aunque hemos localizado una partida pendiente del

    cliente 119702, el programa de pagos no nos genera ninguna

    remesa.

    Vamos al browser de tablas, transaccin SE16 SE16N,

    tablaREGUP.

    Introducimos nuestro cliente 119702

    Observamos todas las propuestas que se han generado ysi

    se ha generado ya el pago (campo indicador slo ejecucin

    propuesta? REGUP-XVORL).

    Seleccin incorrecta por fecha de vencimiento

    Antes de aventurarnos adecir que el programa de pagos ha

    fallado, revisemos la fecha de vencimiento de la partida

    (transaccin FBL1N oFBL5N) yla fecha que hemos introducido

    como fecha de vencimiento en la transaccin F110. Por supuesto,

    si la partida no ha vencido, el programa de pagos no generar

    ninguna remesa.

    Seleccin incorrecta por va de pago de deudor/acreedor

    Aqu nos encontramos en el mismo caso que lo anterior descrito.

    La va de pago introducida en la transaccin F110 es correcta?

    Realmente la partida contiene la va de pago que estamos

    indicando en la transaccin F110? Puede ser que la va de pago

    en el maestro del interlocutor coincida con la va de pago por la

    cual estamos haciendo la seleccin, pero quiz en este caso la

    partida tenga una va de pago distinta. Quien manda en este caso

    ha de ser la va de pago de la partida.

  • http://www

    .blogdesap.c

    omOtros errores desconocidosSi an habiendo revisado todo lo anterior seguimos sin encontraruna explicacin al por qu no se ha generado la propuesta depago todava podemos optar por relanzar el programa.Revisamos los parmetros de nuestra F110

    Finanzas /Gestin financiera /Bancos /Salidas /Pago automtico

    /F110 Partidas abiertas (deudores yacreedores)

    Vamos la pestaa Impresin ysoporte dedatos.

    Nos apuntamos el programa yvariante utilizados.

    Salimos de la transaccin yvamos aejecutar el programa

    mediante la transaccin SE38oSA38

    Buscamos la variante para el programa (Pasar a /Variantes

    /Traer), en este caso la variante RD.

    Escribimos el da de ejecucin yel identificador.

    Yejecutamos.

    Si todo ha ido bien podremos volver la F110 /Entorno

    /Medios de pago /Gestin ISD yya podremos descargar

    nuestro fichero.

    Imagen inicial | @cdharrison

    Si este artculo fue til para ti, comprtelo conotros :-)

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Apariencia de campos del

    maestro de materiales

    Hace unos das, Susana, atravs del muro de facebook dej esta

    pregunta:

    Hola, quisiera saber como hacer la clave de idioma de los

    datos adicionales del maestro de materiales obligatoria.

    Gracias

    Este artculo trata de responder aesa pregunta y, en general

    sobre cmo modificar la apariencia de los campos presentes en el

    maestro de materiales. Cmo podemos hacer que un campo

    pase de ser modificable aobligatorio oa slo visible oincluso

    invisible para el usuario?

    Parametrizacin

    Bien, queremos modificar la apariencia del campo clave de

    idioma que se encuentra en el maestro de materiales, dentro del

    apartado Datos adicionales. Cmo hacerlo?

    Lo primero es conocer cul es el nombre tcnico del campo

    al que nos referimos: pues nos posicionamos sobre el campo

    ypresionamos la tecla F1 y Datos tcnicos.

    Logstica /Gestin de materiales /Maestro de materiales /Material

    /Crear en general /MM01 Inmediatamente

    Buscamos este campo SKTEXT-SPRAS dentro de la

    asignacin de campos agrupos de campos del customizing.

    IMG: Logstica en general /Maestro de materiales /Seleccin de

    campos /Asignacin campos agrupos seleccin de campos

    Seleccionamos el campo ypasamos la actualizacin del

    grupo de campos atravs de la flecha amarilla que

    encontramos la derecha.

    En este caso, voy aconvertir el campo en obligatorio si el

    usuario entra atravs de la transaccin MM01oMM02,

    independientemente del tipo de material. Por lo tanto,

    marcaremos el botn Entrada obligatoria. Sin embargo,

    tambin podra hacer que el campo fuese obligatorio por

    tipo de material, por ejemplo, slo para materiales tipo

    ERSA otipo DIEN.

  • http://www

    .blogdesap.c

    om

    Observamos, sin embargo,que el grupo de campos nmero 20

    al que pertenece el campo clave de idioma contiene muchos ms

    campos. Por lo tanto, al modificar este grupo de campos, no slo

    estamos modificando la apariencia del campo clave de idioma,

    sino de todos los campos del grupo. Entonces, y si slo

    queremos modificar la apariencia de un campo? Pues SAP provee

    de una serie de grupos de campos de uso exclusivo para el

    cliente. La ayuda de SAP indica que estos grupos son los 111

    a120 (si no estn asignados ya) ylos 211 a240 de uso exclusivo.

    Pues le doy el nmero 240en lugar del 20, por ejemplo,

    anuestro campo, vuelvo apulsar la flecha amarilla ycambio

    el checkbox junto aMM01/MM02 al valor entrada

    obligatoria. Ahora s, el cambio slo se reproduce en el

    campo clave de idioma. [Gracias a @aprendesap por el

    comentario].

    Resultado

    Y ste es el resultado, la clave de idioma aparece como

    obligatoria.

    Imagen inicial| KEXINO

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Creacin de almacenes en

    materiales

    En SAP cada material almacenable debe tener claramente

    especificados los almacenes en los cuales puede estocarse. Por

    eso, cuando damos de alta un material atravs del maestro

    materiales tenemos que crear las vistas de almacn. Sin

    embargo, si cada producto de nuestra empresa es susceptible de

    ser almacenado en muy diferentes localizaciones tendremos que

    darlo de alta de forma separada para cada almacn.

    En este artculo se explica cmo simplificar este proceso atravs

    de herramientas estndar SAP.

    Creacin del almacn principal del material

    En primer lugar debemos dar de alta el material en el maestro

    con al menos uno de sus almacenes. Para ello procederemos

    como normalmente lo hacemos:

    Logstica /Gestin de materiales /Maestro de materiales /Material

    /Crear en general /MM01 Inmediatamente

    Entramos en la transaccin yseleccionamos las vistas

    acrear. Como mnimo deben ser las de datos base ylas de

    datos generales de centro/almacenamiento.

    Tomamos el nmero de material que hemos creado.

    Copia de almacenes

    En este segundo paso vamos autilizar el almacn principal

    creado para recrear todos ycada uno de los almacenes donde

    ubicar nuestro material.

    Logstica /Gestin de materiales /Maestro de materiales /Otros

    /MMSC Entrada almacenes

    Introducimos el nmero de material yel almacn.

    Escribimos todos los almacenes que queremos crear. Si

    queremos que la informacin del almacn sea copia apartir

    de un almacn modelo, indicamos ste en el campo

    contiguo, donde dice Modelo.

  • http://www

    .blogdesap.c

    om

    Grabamos.

    Resultado

    Para comprobar que la informacin se ha creado correctamente

    debemos validarla en el maestro de materiales.

    Logstica /Gestin de materiales /Maestro de materiales /Material

    /Modificar /MM02 Inmediatamente

    Marcamos la vista de almacenes acomprobar.

    Pulsamos el matchcode yvemos que tenemos los almacenes

    creados para el material.

    Imagen inicial | pa1nt

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Ayuda de bsqueda

    inteligente sin matchcode

    La ayuda de bsqueda inteligente es un pequeo indicador que

    nos permite hacer bsquedas de materiales yproveedores en

    pedidos de compra de forma rpida. Al activar la ayuda de

    bsqueda inteligente no es necesario utilizar el matchcode de

    estos campos ya que, automticamente, al escribir el texto

    descriptivo del material odel proveedor SAP nos lista los cdigos

    coincidentes conellos.

    Cmo se activa?

    Desde la transaccin del pedido de compras tenemos que entrar

    en la parametrizacin personal

    Logstica /Gestin de materiales /Compras /Pedido /ME22N

    Modificar

    Parametrizacin personal /Parametrizaciones bsicas.

    Desde las parametrizaciones bsicas marcamos

    Ay.bsq.intel.activa.

    Y ya est. Solamente con esta accin queda activada la

    funcionalidad.

    Ejemplo

    Vamos acrear un pedido de compras eintroducir directamente

    el proveedor.

    Logstica /Gestin de materiales /Compras /Pedido /Crear

    /ME21N Prov. centro suministrador conocido

    Nos colocamos sobre el campo proveedor.

    Escribimos el texto descriptivo del proveedor. P. ejemplo,

    Garca.

    El resultado que nos muestra SAP es el mismo que nos

    mostrara un matchcode con todos los cdigos de proveedor

    que tienen coincidencias con la descripcin escrita.

    Ahora nos colocamos sobre el campo material yescribimos

    el texto del material. P. ejemplo, Vlvula.

    El resultado es, igualmente, los cdigos de todos los

    materiales que muestran coincidencias con la descripcin

    escrita.

    Como se ve, este pequeo truco funciona igual que un

    matchcode, aunque lo hace escribiendo nuestra bsqueda

    directamente en el campo. Pero claro, hay un problema, activar

    esta funcionalidad puede reducir el rendimiento en la

    transaccin.

    Imagen inicial | marc falardeau

    Si este artculo te ha sido de ayuda no olvides compartirlo

    :-)

  • http://www

    .blogdesap.c

    om

    blogdesap.comcreated using fivefilters.org

    Valor mnimo de proveedor

    Esta semana pasada he asistido aun curso on-line gratuito

    impartido por laSalle, un curso de gestin de compras con SAP.

    Para los que os parezca interesante este tipo de cursos, laSalle

    organiza una nueva sesin de este curso en septiembre la que

    os podis apuntar atravs de este enlace. En lo personal, este

    curso me ha servido para darme cuenta de que todava hay cosas

    que desconozco (algo que por otro lado ya saba), pero tambin

    para refrescar conceptos. Por eso, desde aqu sirva este post

    para agradecer alos organizadores de este curso, a

    @rcincunegui, a @amdillana ytodos los que hacen posible este

    curso yotros comoste.

    En el curso, por ejemplo, he recordado el concepto de valor

    mnimo en un proveedor. El valor mnimo es el importe mnimo

    que un proveedor nos solicita en todas las compras que le

    hagamos. Puede que tengamos un acuerdo, aunque ste no est

    formalizado, por el cual el proveedor slo