2012 uesjls-1d-1at-carlosalfonsoguevaraamaya-120807005048-phpapp01-120808103116-phpapp01
blogdesap02-121223191710-phpapp01
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