Blog de SAP 2012

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

description

Resumen de artículos de http://www.blogdesap.com del año 2012

Transcript of Blog de SAP 2012

  • 1. omp.cesa Blogdesap gdresumen 2012 .bloww http://www.blogdesap.com/wCustomizing, ABAP y noticias p:/Recopilacin de los artculos publicados en blogdesap durante el ao 2012htt

2. Puedes acceder a estos artculos y otros que voy publicando a travs de omhttp://www.blogdesap.comhttp://www.facebook.com/blogdesapp.cPara seguir creciendo te agradezco que compartas este blog con tus amigos, conocidos y cualquier que est interesado. Puedes compartir estepdf libremente bajo las condiciones de la licencia Creative Commonsesa Blogdesap: resumen 2010-11 por http://www.blogdesap.com se encuentra bajo una Licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported. gdEste PDF se ha generado gracias al proyecto http://fivefilters.org/ y a http://www.pdfill.com/pdf_tools_free.html bloLas imgenes que aparecen publicadas son propiedad de sus autores y aparecen publicadas aqu bajo la licencia Creative Commons que ellos mismoscedieron. 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/wwhttp://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.pnghttp://www.flickr.com/photos/pa1nt/2517516586/http://www.flickr.com/photos/ofernandezberrios/2719764089/http://www.flickr.com/photos/szpako/6296123543//whttp://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/photostreamhttp://www.flickr.com/photos/stefg/83249642/ p:/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/htthttp://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/ 3. 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/omhttp://www.softicons.com/free-icons/object-icons/cargo-boxes-icons-by-antreposhop/fork-3-icon p.cesagd.blo ww /w p:/htt 4. INDICE omABAP1. Rangos numricos propios2. ndices de tablas3. Webservices: ficheros xml4. Webservices: service providers5. Webservices: service consumerp.c6. Log de modificaciones de tablas7. Proteger y desproteger variantes8. Encontrar tablas de transacciones9. Documenta tus programas ABAP10. Por qu los usuarios no leen los mensajes?11. Son mis entornos diferentes? esaBC12. Regeneracin de objetos13. Fijar color del sistema14. Parmetros de usuario15. Conocer los accesos y el trabajo de un usuario16. Introduce un texto informativo en la entrada a SAP17. Cinco formas de encontrar transacciones del customizinggd bloFI18. Cinco razones por las que no funciona el programa de pagosMM. ww19. Apariencia de campos del maestro de materiales20. Creacin de almacenes en materiales21. Ayuda de bsqueda inteligente sin matchcode22. Valor mnimo de proveedor23. Surtido parcial de proveedor24. Cmo bloquear la actualizacin del registro info25. Comparando qu he pedido y qu me han facturado/wPM26. Funciones de interlocutor en rdenes de mantenimiento27. Campos nuevos en equipos p:/SD28. Datos adicionales en documentos de ventashtt29. Campos de reserva en clientes30. Configurar regiones31. Datos incompletos en documentos de ventas32. Verificacin de pedidos de clientes duplicados33. Flujos de documentos34. Determinacin de cuentas de ventas 5. 35. Portes de transporte en ventas de material36. Cinco razones por las que el IVA no se determina correctamente37. Gestin de lotes en SAP38. Qu es un cliente CPD y por qu crearlo omSAP39. Una mirada a la nueva SCN40. Transacciones en logsticap.c41. Transacciones en finanzas42. Preparados para la nueva SAP GUI 7.3043. Breve historia de SAP44. Siete requisites para ser un buen consultor esa gd. blo ww/wp:/htt 6. blogdesap.com created using fivefilters.orgmRangos numricos propiosnmeros disponibles son inferiores aeste porcentaje.Una vez tenemos todo esto grabamos, nos aparecer un mensajede advertencia. Aceptamos..coActualizacin delrangoYa tenemos creado nuestro rango numrico. Ahora debemosinformar nuestras numeraciones dependientes de centro.Este post trata de cmo crear objetos de rangos numricosespecficos de cliente para poder utilizar luego en nuestrosPresionamos el botn Rangos nmeros.sapprogramas SAP. Por ejemplo, queremos crear una numeracinespecfica de nuestros empleados que guardaremos en una tabla Indicamos el centro.Z* atravs de un programa Z*.Presionamos Intervalos.Para informacin ms especfica sobre rangos numricos queproporciona de forma estndar SAP podis referiros aun post+Intervalo.anterior.deGuardamos. Nos dar un mensaje advirtiendo que estaParametrizacinnumeracin no es transportable al sistema productivo yqueTransaccin: SNUM deberemos reproducirla en nuestro mandante destinotambin. og.bl wwObjeto: damos un nombre anuestro rango.UtilizacinElemento datos objeto inferior: nuestro rango va adependerdel centro de trabajo del empleado. Los empleados del Y ahora slo falta utilizarlo en un programa que diseemos yacentro 0310 tendrn un cdigo que empiece por 3; losque este objeto no est asociado de forma estndar en ninguna /wdel centro 0610 tendrn cdigo que empiece por 6, etc.transaccin SAP. Para hacerlo tenemos que llamar al objetoAqu indicaremos pues el elemento de datos de centrodirectamente en nuestro programa ABAP mediante el mdulo deWERKS_D.funciones NUMBER_GET_NEXT. Por ejemplo, para empleadosdel centro 0310 sera del siguiente modo.Indicador hasta ejercicio: si quisiramos cambiar laCALL FUNCTION NUMBER_GET_NEXT p:/numeracin de ejercicio en ejercicio, marcaramos estecampo. No es el caso de este ejemplo. EXPORTINGnr_range_nr = 01Dominio longitud nmero: en este campo indicamos de qu object= ZEMPLEADOSlongitud ser la numeracin. Para eso introducimos un subobject = 0310dominio con la longitud prevista (ya sea creando un nuevo IMPORTINGhttdominio ya sea utilizando uno que exista de forma estndarnumber= v_numberen SAP). Voy autilizar la longitud del campo numero deEXCEPTIONSpersonal estndar de SAP (dominio PERNR).interval_not_found= 1number_range_not_intern = 2Porcentaje advertencia: al llenar este campo le estamos object_not_found= 3diciendo aSAP que nos avise si en nuestro rango losquantity_is_0 = 4 7. blogdesap.com created using fivefilters.org mLog de modificaciones deNavegamos a Pasar a /Opciones tcnicas.tablasMarcamos la opcin Grabar en log modificaciones dedatos. Nos aseguramos de que la tabla quede activa tras .cohacer la grabacin. sapdeogEn varias ocasiones he recibido consultas acerca de cmo sepuede saber en SAP qu usuario ha modificado informacinVamos al perfil de sistema ymodificamos el valordentro de una tabla. Esta informacin es til si no tenemosrec/client. Indicamos el nmero del mandante sobre el queactivado el log de acciones de una transaccin yslo podemosse grabarn los logs de modificaciones. Recomiendo queconsultar este log atravs de las tablas con las que interact la .bleste paso lo haga el administrador Netweaver (responsabletransaccin. Tambin es posible que el usuario haya ejecutadode Basis) de vuestra empresa.una transaccin Zpropia de cliente, las transacciones de clienteno suelen tener asociado ningn log, pero s sabemos sobre quHerramientas /CCMS /Configuration /RZ10 System profiletablas se est accediendo.Resultado wwPues bien, en este caso tambin tenemos una herramienta enSAP. Es el log de modificaciones de tablas. En principio, no sueleSi todo ha ido bien siempre que haya una modificacin, staestar activado ya que penaliza el rendimiento yla memoria de laquedar registrada. Para consultar los cambiospodemos ir albase de datos. De hecho, SAP no recomienda su uso en tablas deprograma RSVTPROTaplicacin, ms bien solamente en tablas de customizing. As quesi decids activar esta funcionalidadmedid muy bien lasHerramientas /Workbench ABAP /Desarrollo /SE38 Editor ABAPrepercusiones quetendr. /wEjemploTenemos una tabla ZTEST sobre la cual grabamos documentosde ventas atravs de una vista de actualizacin. Deseamos sabercundo yquin realiza modificaciones sobre esta tabla. Los pasosestn perfectamente recogidos en el punto de customizingp:/deSAP.IMG: Gestin del sistema de control interno /Grabacin demodificaciones de tablas Abrimos el diccionario ABAP ybuscamos nuestrahtt tablaZTEST.Herramientas /Workbench ABAP /Desarrollo /SE11 DiccionarioABAP 8. blogdesap.comcreated using fivefilters.org mndices de tablasTABLES: mara. DATA: BEGIN OF t_mara OCCURS 0,.co matnr LIKE mara-matnr, bismt LIKE mara-bismt, END OF t_mara. SELECT-OPTIONS: s_bismt FOR mara-bismt.sap START-OF-SELECTION. SELECT * FROM mara INTO CORRESPONDING FIELDS OF TABLE t_mara WHERE bismt IN s_bismt. de 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.og Entramos en la tabla de diccionario MARA. Herramientas /Workbench ABAP /Desarrollo /SE11 Diccionario ABAP.bl Marcamos el botn Indices y crear ndice. wwUn ndice de una base de datos, segn la Wikipedia es:una estructura de datos que mejora la velocidad de lasoperaciones, permitiendo un rpido acceso alos registros de unatabla en una base dedatos Damos una codificacin anuestro ndice, por ejemplo, Z1.Se suele crear un ndice sobre una tabla del diccionario ABAPcuando en uno de nuestros programas nos vemos obligados/wahacer bsquedas de informacin, pero el acceso a sta no serealiza de acuerdo acampos claves de dichatabla.EjemploImaginemos que deseamos extraer un listado de materiales dep:/nuestra base de datos. Para ello debemos ir la tabla MARA quecontiene toda la informacin general de materiales de nuestraLo identificamos con una descripcin.empresa. Lo ideal en este caso sera hacer la bsqueda poniendocomo condicin de seleccin el campo nmero de materialDejamos la opcin que nos da por defecto, ndice no nico(MARA-MATNR) que es el nico campo clave de la tabla. Sinen todos los sistemas de la base dedatos.httembargo, nuestro caso es ms complejo yse nos pide hacer unabsqueda de materiales apartir del campo nmero de material Escribimos el campo por el cual vamos aindexar la base deanterior (MARA-BISMT) en un cdigo como el siguiente:datos. Es importante que uno de ellos sea siempre el campo mandante.REPORT zprueba NO STANDARD PAGE HEADING LINE-SIZE 255. 9. m .co Ya podemos grabar yactivar.A partir de ahora, en principio debera mejorar el rendimiento desapnuestro programa.Imagen inicial | Metagrrrlde og .blww/w p:/htt 10. blogdesap.comcreated using fivefilters.orgmWebservices(I): ficheros xmlLlamamos la funcin CALL_TRANSFORMATION queconvierte los datos aXML. REPORT zpruebas NO STANDARD PAGE HEADING LINE-SIZE.co255. ************************************************** ******************************* *Tablas ************************************************** ******************************** sap TABLES: vbap. ************************************************** ******************************* *Tablas internas **************************************************de ******************************* DATA: BEGIN OF ti_vbap OCCURS 0, vbeln LIKE vbap-vbeln, "Documento posnr LIKE vbap-posnr, "Posicinste y (creo que) los dos siguientes posts del blog van atratar matnr LIKE vbap-matnr, "Material ogsobre comunicaciones entre sistemas mediante servicios web o END OF ti_vbap.webservices. Explicar cmo enviar yrecibir informacin desdeyhacia 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.*Datos globales .blPara empezar dir que la informacin que trasladaremos entre **************************************************plataformas la convertiremos al lenguaje XML yen este primer*******************************post voy aexplicar cmo hacerlo.DATA: g_xml TYPE string.Transformaciones ABAP/XML yXML/ABAPww **************************************************SAP provee de dos herramientas bsicas para hacer*******************************transformaciones de informacin de ABAP aXML yde XML *** SELECTION-SCREENaABAP.************************************************** ******************************* Utilizando la plantilla de transformacin estndar deSAP.SELECT-OPTIONS: s_vbeln FOR vbap-vbeln. Mediante la creacin de transformaciones simples atravs/w de la transaccin STRANS. ************************************************** *******************************Voy acentrarme en el primer tipo haciendo un pequeo ejemplo. *START-OF-SELECTIONPrimero 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 p:/ START-OF-SELECTION.datos modificados en otro fichero XML que convertiremosigualmente adatos ABAP. SELECT * FROM vbap INTO CORRESPONDING FIELDS OF TABLE ti_vbapDe ABAP aXML WHERE vbeln IN s_vbeln. Crearemos un pequeo programa ABAP en nuestro editor.htt ************************************************** *******************************Herramientas /Workbench ABAP /Desarrollo /SE38 Editor ABAP *END-OF-SELECTION ************************************************** Extraemos los datos de la tabla de pedidos de posiciones de ******************************* pedidos de ventaVBAP. END-OF-SELECTION. 11. CALL TRANSFORMATION id SOURCE data = ti_vbap[] ******************************* RESULT XMLg_xml.*** SELECTION-SCREEN**[]************************************************** *******************************mEl resultado para la seleccin del pedido de ventasPARAMETERS:1320000021 p_fich TYPE string. ************************************************** .co ******************************* *START-OF-SELECTION ************************************************** ******************************* START-OF-SELECTION. sap * Aqu llenaramos la variable g_xml con el stringxmlDe XML aABAP* [...]Crearemos un pequeo programa ABAP en nuestro editor.************************************************** *******************************Herramientas /Workbench ABAP /Desarrollo /SE38 Editor ABAP *END-OF-SELECTION de **************************************************Subiramos los datos aSAP. En prximos posts veremos *******************************cmo hacerlo atravs de webservice. END-OF-SELECTION.De nuevo llamamos la funcin CALL_TRANSFORMATION CALL TRANSFORMATION id SOURCE XML g_xmlpara convertir los datos XML aABAP.ogRESULT data = ti_vbap.REPORT zpruebas NO STANDARD PAGE HEADING LINE-SIZE Al final, los datos del fichero xml estaran incorporados en 255. nuestra tabla interna ABAP ti_vbap.*********************************************************************************Ms informacin.bl*Tablas************************************************** En este blog tambin tenis informacin amplia sobre*******************************transformaciones XML. Ypara una documentacin ms extensa tambin podis consultar este documento.************************************************** Imagen inicial | ssinger3 ww********************************Tablas internas********************************************************************************** Tabla que contiene el xmlDATA: BEGIN OF ti_xml OCCURS 0,string TYPE string,END OF ti_xml. /w* Tabla de datos ABAPDATA: BEGIN OF ti_vbap OCCURS 0,vbeln LIKE vbap-vbeln, "Documentoposnr LIKE vbap-posnr, "Posicinp:/matnr LIKE vbap-matnr, "MaterialEND OF ti_vbap.**********************************************************************************Datos globaleshtt*********************************************************************************DATA:g_xml TYPE string.************************************************** 12. blogdesap.com created using fivefilters.org mWebservices (II): service*"------------------------------------------------ ----------------------providers*"*"Interfase local .co *" IMPORTING *" VALUE(I_STRING) TYPE STRING *" EXPORTING *" VALUE(O_RESPONSE) TYPE STRING *"------------------------------------------------ ----------------------TABLES: sapztiris_rec,ztiris_err.DATA:ti_vbap LIKE vbap OCCURS 0 WITH HEADER LINE,ti_errores LIKE ztiris_err OCCURS 0 WITHHEADER LINE. de * XML string to ABAP itab CALL TRANSFORMATION id SOURCE XML i_string RESULT data = ti_vbap[]. * Incorpora la informacin recibida a una tabla ogSAP LOOP AT ti_vbap.MOVE-CORRESPONDING ti_vbap TO ztiris_rec.MODIFY ztiris_rec. ENDLOOP..blEn este segundo artculo sobre webservices voy acontinuar con * Gestin de erroresla creacin de un service provider. Con esto lo que IF ti_vbap[] IS INITIAL.conseguiremos es crear un enlace estable de comunicacin ti_errores-error = X.atravs del cual nuestro cliente pueda enviar informacin APPEND ti_errores. CLEAR ti_errores.anuestro sistema SAP. Yque acontinuacin, nosotros podamos ww ENDIF.recoger esta informacin eincorporarla. * ABAP itab to XML stringMdulo RFC CALL TRANSFORMATION id SOURCE data =En primer lugar debemos crear el mdulo de funciones RFC queti_errores[]contenga toda la lgica de transformacin del fichero XML queRESULT XML o_response.nos llegar va webservice. ENDFUNCTION. /wHerramientas /Workbench ABAP /Desarrollo /SE37 Bibliotecade funciones Creacin del objectoAtributos de la funcin: ser una funcion de acceso remoto Definimos nuestro servicio proxy atravs de la transaccin(RFC)SE80. Desde la pestaa Enterprise Services, seleccionamos la opcin Serv. proxy ydamos nombre anuestro servicio. p:/Parmetros de entrada (import): al menos debe contener unEsto abrir el wizard que guiar todo nuestro proceso.parmetro de entrada de tipo string con traspaso de valores.Este parmetro recibir el fichero xml.Herramientas /Workbench ABAP /Resumen /SE80 Object NavigatorParmetros de salida (export): no es obligatorio pero eshttrecomendado si queremos enviarle una respuesta del tipoOk/Error de vuelta anuestro cliente.ste podra ser un ejemplo de cdigo ABAP para elRFC:FUNCTION z_prueba_test_mf. 13. 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. m Grabamos. SAP nos muestra la siguiente ventana informativa .co 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. sap 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.Object type: determinamos nuestro proxy del tipo service Finalmente, activamos nuestro servicio.provider. Creacin del servicio deService provider: crearemos nuestro service provider enbase aExisting ABAP Objects (Inside Out). Llamamos la transaccin SOAMANAGER. Si tienes problemas para acceder al SOAMANAGER quizs te falteObject type: damos nombre anuestro servicio as como un activar alguna configuracin.prefijo. Tambin indicamos que utilizaremos la lgica de ognuestro mdulo de funciones. Desde la pestaa Business Administration pulsamos en Web Service Administration. Buscamos el servicio que hemos creado previamente. .blwwChoose endpoint: aqu escribimos el nombre del mdulo de Lo marcamos ypulsamos Apply Selection. Inmediatamente se nos abre una pantalla ms abajo con el detalle del/wfunciones RFC que previamente hemos creado. servicio. Aqu vamos abuscar la pestaa Configurations ypulsar el botn Create Service.p:/ Damos nombre al servicio en la nueva ventana que se nosabre.htt 14. SAP_BC_WEBSERVICE_CONSUMERoSAP_BC_WEBSERVICE_SERVICE_USER.Tambin es necesario que el usuario se haya creado comousuario C-comunicacin (pestaa Datos Logon)para que mste no pueda acceder atravs de SAPGUI sino solamentepueda conectarse por webservice. Datos logon del servicio .co 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 sapUna nueva ventana se nos abre an por debajo. De toda lainformacin que aqu se nos pide, la ms importante seBuscamos nuestro servicio.encuentra en la pestaa Provider Security. En staEntramos en los servicios web que hemos creadomarcamos la necesidad de utilizar un user id ypassword siZWS_PRUEBA_SERVICIO yZWS_PRUEBA_BINDING.nuestro cliente quiere enviar informacin anuestro sistemaSAP.En ambos indicamos que la operacin de acceso ser de tipo deL (secuencia de acceso alternativa).Damos un usuario ycontrasea. og .blMarcamos el botn Save.Despus de todo este proceso SAP se habr publicado unenlace WSDL que ya podemos dar anuestro cliente paraque configure su sistema. Este enlace contiene lasMarcamos Ejecutar operaciones de acceso todas.wwdefiniciones para que nuestro cliente se pueda conectardirectamente anuestro sistema. Para ver cul es este enlaceNos aseguramos que se encuentran todas la lista devamos la pestaa Overview ymarcamos Open WSDLoperaciones de acceso.document for selected binding. Tambin se puede buscardesde la transaccin SE80, en la definicin de servicio,pestaa WSDL./w En este artculo tambin podis encontrar un ejemplo de webservice. Ysi lo prefers en este vdeo [email protected] del usuario p:/ Imagen inicial | tj scenesNuestro cliente se conectar anuestro SAP para dejar lainformacin atravs de un usuario especfico que nosotroscreemos. Le debemos dar la clave yel usuario anuestro cliente.Herramientas /Gestin /Actualizacin de usuarios /SU01httCreacin de usuariosEs importante que el usuario que creemos tenga todas lasautorizaciones necesarias (pestaa roles), entre ellas losroles que hacen referencia aservicios web comoSAP_BC_WEBSERVICE_ADMIN, 15. blogdesap.com created using fivefilters.org mWebservices (III): serviceconsumer .co sap de 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 og proporcionado nuestro proveedor. Enter package/request: escribimos el paquete ynmero deorden. .bl Grabamos el proceso yactivamos.Este post cierra (?) la serie sobre webservices. En este casovamos aver cmo consumir un webservice desde SAP. Vamosallamar aun webservice externo anuestro SAP yvamos adejarinformacin sobre ese sistema externo. wwCliente proxyEn primer lugar debemos asegurarnos que nuestro proveedortenga publicado el enlace WSDL de su webservice, algodeltipohttp://xx.xx.xxx.xx/webservice/nombrewebservice.asmx?wsdlDefinicin del puerto /wEntramos en la transaccin SE80Llamamos la transaccin SOAMANAGER. Si tienes problemas para acceder al SOAMANAGER quizs te falteHerramientas /Workbench ABAP /Resumen /SE80 Object activar alguna configuracin.Navigator Desde la pestaa Business Administration pulsamos en WebCreamos el cliente proxy, dndole nombre en la pestaa p:/ Service Administration.Enterprise Services, opcin Clt. proxy. Buscamos elproxy consumerque hemos creado previamente. Lo marcamos ypulsamos Apply selection. Se nos abre una nueva ventana msabajo.htt 16. error/Ok.Sobre la pestaa Configurations pulsamos el botn CreateLogical Port.Creacin del puerto lgico. La sentenciaCREATE_OBJECT de la plantillaabre laSe nos abre otra pestaa donde indicamos el nombre decomunicacin atravs del puerto lgico creado.nuestro puerto lgico, de nuevo nos pide la urld del wsdl mproveedor, el usuario ycontrasea.Llamada al proxy. La sentencia CREATE_METHODde la plantilla se encarga de enviar la informacinanuestro proveedor de webservice. .coNo indico el cdigo ABAP completo, pero evidentemente estaplantilla hay que modificarla yadaptarla. Adems antes de abrirla comunicacin en nuestro programa ABAP debemos seleccionarlos datos aenviar ytransformarlos axml mediante la funcinCALL_TRANSFORMATION.sapSi ests interesado en ms informacin sobre consumo dewebservices pulsa en este enlace.Y en programacin orientada aobjetos, tenis un manual en lapgina de abap.esSi no se nos grabase el usuario ycontrasea (algo queaveces pasa yno s por qu), marcamos Edit ymodificamosImagen inicial | tj scenesusuario ycontrasea en la pestaa Consumer security quedese nos ha abierto an msabajo.Lgica del programaNos queda definir la lgica de nuestro programa, buscar losogdatos en nuestro sistema yenviarlos atravs del proxy quehemos creado.Volvemos la transaccin SE80 .blCreamos el programa que contendr la lgica.Mantenemos el programa visible, mientras buscamosnuestro proxy cliente en el rbol de laSE80.Arrastramos el proxy cliente desde el rbol al editor ABAP.wwEsto nos crear la plantilla ABAP./w p:/Esta plantilla contiene lo siguiente: Definicin de la clase delproxy. Definicin de la estructura del proxy (salida) dondehtt 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 17. blogdesap.com mLog de modificaciones deNavegamos a Pasar a /Opciones tcnicas.tablasMarcamos la opcin Grabar en log modificaciones dedatos. Nos aseguramos de que la tabla quede activa tras .cohacer la grabacin. sapdeogEn varias ocasiones he recibido consultas acerca de cmo sepuede saber en SAP qu usuario ha modificado informacinVamos al perfil de sistema ymodificamos el valordentro de una tabla. Esta informacin es til si no tenemosrec/client. Indicamos el nmero del mandante sobre el queactivado el log de acciones de una transaccin yslo podemosse grabarn los logs de modificaciones. Recomiendo queconsultar este log atravs de las tablas con las que interact la .bleste paso lo haga el administrador Netweaver (responsabletransaccin. Tambin es posible que el usuario haya ejecutadode Basis) de vuestra empresa.una transaccin Zpropia de cliente, las transacciones de clienteno suelen tener asociado ningn log, pero s sabemos sobre quHerramientas /CCMS /Configuration /RZ10 System profiletablas se est accediendo.Resultado wwPues bien, en este caso tambin tenemos una herramienta enSAP. Es el log de modificaciones de tablas. En principio, no sueleSi todo ha ido bien siempre que haya una modificacin, staestar activado ya que penaliza el rendimiento yla memoria de laquedar registrada. Para consultar los cambiospodemos ir albase de datos. De hecho, SAP no recomienda su uso en tablas deprograma RSVTPROTaplicacin, ms bien solamente en tablas de customizing. As quesi decids activar esta funcionalidadmedid muy bien lasHerramientas /Workbench ABAP /Desarrollo /SE38 Editor ABAPrepercusiones quetendr. /wEjemploTenemos una tabla ZTEST sobre la cual grabamos documentosde ventas atravs de una vista de actualizacin. Deseamos sabercundo yquin realiza modificaciones sobre esta tabla. Los pasosestn perfectamente recogidos en el punto de customizingp:/deSAP.IMG: Gestin del sistema de control interno /Grabacin demodificaciones de tablas Abrimos el diccionario ABAP ybuscamos nuestrahtt tablaZTEST.Herramientas /Workbench ABAP /Desarrollo /SE11 DiccionarioABAP 18. m.cosapSiento no poderos mostrar un resultado de ejemplo positivo. Misistema no tiene el parmetro rec/client activo.Imagen inicial | szpako de og.bl ww/w p:/htt 19. blogdesap.comcreated using fivefilters.orgmProteger ydesprotegerDesproteger variantevariantes de report Si nos encontramos en un caso como el anterior ynecesitamosdesproteger esta variante, por ejemplo, si el usuario ya no.cotrabajase en la empresa, debemos proceder del siguiente modo.Llamamos al programa RSVARENTHerramientas /Workbench /Desarrollo /SE38 Editor ABAP sapIntroducimos 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 navegandodeEste artculo trata de cmo crear, proteger ydesproteger en la transaccin VA05N aPasar a /Variantes /Traeer.variantes de reports SAP. Ya habamos visto en un post anteriorque mediante variantes podamos crear imgenes fijas de laEjecutamos el programa. Al ejecutarlo, no nos enva ningnpantalla de seleccin de reports. Ahora veremos qu debemosmensaje de finalizacin. No os preocupis, es normal.hacer para que una variante que hemos creado slo pueda ser ogmodificada por nosotros mismos. Pero tambin veremos lo Volvemos la transaccin VA05N, Pasar a /Variantescontrario, cmo modificar variantes protegidas de otros usuarios. /Grabar como variante. Yya podris grabar lasmodificaciones que queris normalmente.Proteger una varianteUtilizaremos como ejemplo, el listado de pedidos de cliente .blVA05NEntramos en laVA05NLlenamos la pantallas de seleccin con nuestros valores.wwPasar a /Variantes /Grabar como variante.Como siempre, utilizad esta herramienta con cuidado.Damos un nombre ymarcamos proteger variante. Imagen inicial | juhansonin/w p:/Con slo estos pasos nuestra variante queda protegida yen casode que un usuario diferente al nuestro intente modificarlaoborrarla le aparecer el siguiente mensaje.htt 20. blogdesap.comcreated using fivefilters.org mCmo encontrar tablas deuna transaccin.cosap deog 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 .bl encontrar la tabla transparente que contiene la informacin.Quisiera saber qu campos ytablas utiliza este programaTengo que encontrar las tablas de la base de datos donde guardala informacin esta transaccin Son preguntas que seguro quenos hemos hecho ms de una vez. Quiz, solamente parawwpreparar una query, quizpara utilizar la tabla en un listadooquiz para comparar la informacin en SAP con la que tenemosen nuestros excels.Sea cual sea la razn, en este artculo voyaenumerar varias formasdedetectar los campos ylas tablas queutilizan las transacciones deSAP.Datos tcnicos (F1-F9)/wEs quizs, la forma ms rpida. Supone utilizar la ayuda propiade los campos de las transaccin SAP directamente. LovoyAyudas de bsqueda omatchcodesamostrar en un ejemplo con la transaccin VA02. Consiste en buscar las tablas apartir del matchcode asociado al campo de nuestra transaccin.Por ejemplo, con la transaccinLlamamos anuestra transaccin VA02 VF03 seguiramos estospasos: p:/Nos situamos sobre elcampo.Nos posicionamos sobre elcampo.Apretamos la tecla F1.Seguimos los pasos del apartado anterior (F1-F9).Pulsamos el botn Datos tcnicos (F9oicono del martillo).Buscamos el valor que aparece acontinuacin de Ayuda dehttNos fijamos en los datos que aparecen acontinuacin de Tabla bsqueda. En este caso encontramos que el valor esVMCF.yNombre de campo ya que contienen precisamente laHacemos dobleclick.informacin que buscamos, la tabla que almacena la informacindel campo sobre el cual nos habamos posicionado. En este casoComo hay matchcodes incluidos seguimos haciendo doblela tabla es la VBAK yel campo es el VBELN. 21. click para navegar acualquiera de los matchcodes.Hacemos doble click sobre el valor del apartado Mtodo deseleccin para llegar finalmente alas tablas incluidas en elmatchcode. mInclude TOP de programaSi sabemos leer el cdigo ABAP del programa podemos buscarListados de tablas.colos nombres de tablas directamente sobre el cdigo.Utilizar alguno de los muchos listadosque corren por internetEscribimos la transaccin. Por ejemplo, VF03con la informacin de tablas que utiliza SAP. Podis utilizar unlistado de tablas de este blog, uno de mundosap, uno de la sdn,Seguimos los pasos del primer apartado (F1-F9).etc.Hacemos doble click sobre el nombre del programa para Referencia de utilizacinsapnavegar hastal.Consiste en hacer las bsqueda de forma inversa. Hasta ahoraBuscamos en el programa un include que seguramenteempezbamos en una transaccin para llegar alas tablasacaba con las letras _TOP.ycampos incluidos en la transaccin. Aqu se trata de empezarpor un campo otabla para llegar la transaccin que los utiliza.Buscamos la sentencia TABLES. Tras esta sentenciaencontraremos las tablas que utiliza el programa. Herramientas /Workbench ABAP /Desarrollo /SE11 DiccionariodeABAPA veces no existe ningn include que contenga las letras _TOP.En ese caso es suficiente con hacer una bsqueda directa de la Escribimos la tabla de base de datos que queramos. Porsentencia TABLES.ejemplo, la VBAK. ogTrace SQLPulsamos visualizar.Consiste en hacer una llamada la transaccin ST05. Marcamos el campo VBELN.Herramientas /Workbench ABAP /Test /ST05 TraceSQL Vamos al men Utilidades /Referencia de utilizacin..blLlamamos la transaccin ST05 Marcamos utilizacin en programas.Marcamos activate trace.Nos mostrar la lista de programas que utilizan ese campodetabla. Si sabemos cul es el nombre del programa podemosEn otro modo, llamamos anuestra transaccinseguir profundizando hasta llegar la transaccin.problemtica, en este caso la MM02.wwImagen | Andrea PrietoVolvemos aST05 ymarcamos deactivate trace.Si este artculo te ha sido de ayuda no olvides compartirloPulsamos Display Trace. :-)/w p:/El listado que nos muestra la transaccin ST05 es el conjunto detablas yllamadas que hemos realizado cuando hemos ejecutadola transaccin MM02. Apartir de aqu debemos decidir cul dehtttodas las tablas que nos muestra es la nuestra. Admito que estaforma de buscar informacin es complicada ya que suponenavegar entre la gran cantidad de tablas que en una solatransaccin puede llegar allamar SAP. 22. blogdesap.com created using fivefilters.orgmDocumenta tus programas *&*ABAP*.co*& Listado de vuelos**********************************************************************************REPORT zprueba NO STANDARD PAGE HEADING LINE-SIZE255.*sap**********************************************************************************Tablas*********************************************************************************TABLES: spfli. de"Itinerario de vuelos**********************************************************************************TiposDocumentar un programa ABAP significa escribir una pequeaog**************************************************ayuda para que nuestros usuarios sepan cul es la funcin del*******************************programa. Es adems una pequea gua para saber quTYPES:parmetros son necesarios para la ejecucin correcta del ty_spfli TYPE SORTED TABLE OF spfli WITHprograma yuna explicacin de los posibles errores que nosNON-UNIQUE KEY carrid connid.podemos encontrar. No me refiero aponer pequeos.blcomentarios 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 *Variables globalesde cdigo, totalmente necesario, pero tambin hay que pensar en **************************************************dar las mximas facilidades aaquellas personas que van ******************************* wwatrabajar diariamente con nuestros pequeos programas. DATA:ti_spfli TYPE ty_spfli WITH HEADER LINE.Este tipo de ayuda lo hemos visto ms de una vez en"Tabla interna de vuelostransacciones yprogramas estndar. Tomemos por ejemplo, latransaccin FBL5N **********************************************************************************Finanzas /Gestion financiera /Deudores /Cuenta /FBL5N *** SELECTION-SCREENVisualizar ymodificar partidas abiertas*** /wSi 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.SELECT-OPTIONS:s_carridFOR spfli-carrid, "Compaa area p:/s_countrFOR spfli-countryfr. "Pas de salida**************************************************Pasos para generar documentacin en un programa ABAP*******************************htt*START-OF-SELECTIONPartir de un pequeo programa de prueba que lista los vuelos **************************************************de una compaa area.*******************************START-OF-SELECTION.*&------------------------------------------------------------------------------* * Seleccin de vuelos*& Report ZPRUEBA 23. SELECT * FROM spfliINTO CORRESPONDING FIELDS OF TABLE ti_spfliWHERE ( carridIN s_carridAND countryfr IN s_countr ). m**********************************************************************************END-OF-SELECTION************************************************** .co*******************************END-OF-SELECTION.* ListadoLOOP AT ti_spfli. sapWRITE: / ti_spfli-connid, ti_spfli-cityfrom,Un apunte final, si queris traducir vuestra documentacin ti_spfli-deptime. aotros idiomas podis hacerlo atravs de la transaccin SE63.ENDLOOP. As, si el usuario se loga en otro idioma, tambin podr leer la documentacin que hayis preparado.Una vez tenemos el cdigo escrito vamos acrear ladocumentacin del programa.Herramientas /Workbench ABAP /Utilidades /Traduccin /SE63 Textos breves yexplicativos deDesde el editor vamos aPasar a /Documentacin. Deberis reccorrer el menTraduccin /Objetos ABAP /TextosSe nos abre un editor (SAPscript oWord segn tengis explicativos (documentacin) /Ayuda F1 /RE Reports, gr.configurado vuestro sistema) con los siguientes apartados: funciones, BD lgicasy traducir los textos que os aparezcan. Purpose og Integration Imagen inicial | quinn.anya Prerequisites Te ha gustado este artculo? Aydame aque llegue ams Featuresgente compartindolo :-) Selection .bl Standard_variant Output Activities Example wwEscribimos en cada apartado la informacin quecorresponda. Por supuesto, no es necesario que se escribainformacin en cada apartado.Guardamos yactivamos. /w p:/Resultado de la documentacinhttLanzamos nuestro programa bien directamente atravs deleditor ABAP oa travs de la transaccin que hayamosdecidido paral.Marcamos el iconoi. 24. blogdesap.comcreated using fivefilters.orgmPor qu los usuarios no Informativo (I): se muestra como un pequea ventana sobreleen los mensajes deSAP?la transaccin..co 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. sap Obliga acorregir el error antes de poder continuar.Para ti, crear un mensaje en un programa ABAP debe ser muysencillo. Creamos el mensaje en la transaccion SE91.deHerramientas /Workbench ABAP /Desarrollo /Entorno deprogramacin /SE91 Mensajes Seleccionamos nuestra clase de mensaje, introducimos un nuevo nmero ypulsamos Crear. ogUn mensaje es la forma que nos proporciona SAP para gestionarinformacin relevante dentro del sistema. Advierten oimpidenerrores en el uso de la herramienta. Entonces, por qu haytantos usuarios que hacen caso omiso de estos mensajes oquesimplemente no losleen?.blAlguna vez te has encontrado con un usuario que te ha llamadopidindote que deshagas un movimiento ouna contabilizacinocualquier otra cosa? Entonces, le has preguntado Por quhiciste ese movimiento? No te leste el mensaje de advertencia wwsobre hacer ese movimiento? Bueno, pues yo s que me heencontrado con ese tipo de llamadas, yms de unavez. Escribimos el texto del mensaje. Guardamos.Como en Juegos de Guerra, esa pelcula de 1983en la que elprotagonista no hace caso al mensaje de la mquina en una delas escenas.[embedded content] /wMquina: Jugamos? Ahora introducimos el mensaje en nuestro programa ABAP.Actor: Qu tal si jugamos la Guerra globaltermonuclear?IF g_var = YES. MESSAGE i397(zmensajes) WITH g_var.Mquina: No prefiere una buena partida de ajedrez?ENDIF. p:/Actor: Ms tarde. Ahora vamos ajugar la Guerra global Existe otra manera, escribe el mensaje directamente sintermonuclear? necesidad de introducirlo dentro de la tabla de mensajes.La de problemas que se hubiese ahorrado el protagonista sihubiese hecho caso al mensaje del ordenador yno hubieseIF g_var = YES.continuado. Por supuesto, esto es una exageracin, peroMESSAGE La orden YES inicia la guerra globalhttdemuestra que los mensajes estn por alguna razn. termonuclear. Pinsatelo bien TYPE I.Crear un mensaje enSAPENDIF.En primer lugar tienes que saber que SAP proporciona diferentestipos de mensaje, aunque los ms habituales son:En cualquier caso, el resultado sera una ventana con el siguiente 25. mensaje La orden YES inicia la guerra global termonuclear. Pinsatelo bienAdvertencia: no hagis esto en casa de vuestro cliente, puede mperjudicar seriamente vuestra reputacin dentro de la empresa.Aunque por otro lado, quin sabe, hacindolo quiz el usuariorealmente se lo piensa antes de continuar ;-) .coLos lamentosEntonces, Por qu si hemos escrito el mensaje el usuario no haseguido sus indicaciones? Bien, los motivos que personalmentems he escuchado son: Tengo mucho trabajo yno tengo tiempo para ir leyendo sap 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 deogSi lo miramos desde el punto de vista la persona que trabaja cadada con las mismas transacciones, podra darles incluso la razn.El trabajo puede llegar aser demasiado mecnico ylos mensajesalgo que slo estn ah para molestar. Pero no es as en.blabsoluto, un mensaje es informacin adicional yhay que leerla.Desde mi punto de vista, lo mejor es mostrar los consecuenciasde no leer estos pequeos mensajes. Sobre todo, formar ypediralos usuarios que se los lean. Pero como siempre hay personasreticentes ymalas actitudes, entonces si el error generado hawwsido debido ano querer leer un mesaje yo opto por dejar que seala persona quien arregle el problema que ha generado. Puedesonar duro, pero es mejor que permitir que los mismosproblemas se produzcan una yotra vez.De todos modos, estas soluciones no suelen gustar alos keyusers ymucho menos la empresa. Por lo que seguramente osvan apedir que convirtis aquellos mensajes de tipo informativo /w(I) oadvertencia (W) en mensajes de tipo error (E). As, losusuarios no podrn continuar. Aunque eso suponga muchasveces que tengan que empezar otra vez la transaccin, que estatransaccin acabe abruptamente (suele pasar cuando seintroduce un mensaje de error dentro de una user exit) opeorp:/an, que el trabajo del usuario se convierta todava en msmecnico yrutinario.Por cierto, si no habis visto la pelcula Juegos de guerra os larecomiendo, pasaris un rato muy agradable.httImagen inicial | randomduckCrees que este artculo es til? Por qu no me ayudasacompartirlo? :-) 26. blogdesap.com created using fivefilters.org mSon mis entornosdiferentes? .co Y si no es as? Cules son las diferencias? sap 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 de Desde nuestro programa navegamos al men Utilidades/Ms utilidades /Editor split screenEscribimos el nombre de nuestro programa de nuestros ogrespectivos entornos.Nos encontramos en nuestro entorno de desarrollo, delante deuno de nuestros programas yno sabemos si lo que tenemosMarcamos el botn Comparacin de sistemas, indicamosdelante coincide completamente con la versin que existe en elcon qu entorno queremos comparar nuestro programa.entorno productivo. Empezar amodificar un programa sin estar .blseguro de ello puede convertirse en un verdadero quebradero deMarcamos el botn Visualizar.cabeza. Si ambos entornos no coinciden, nuestros cambiospueden subir aproductivo modificaciones inesperadas, que nos Nos solicitar nuestro usuario ycontrasea del entornollevan atener que recuperar cambios yvolver areprogramar destino. Lo escribimos.nuestro cdigo ABAP.Se nos abre una pantalla doble, arriba el programa enwwPara empezar comparar las versiones nuestro entorno origen, debajo el programa en el entornodestino.Lo primero que debemos comprobar son coincidencias en lasversiones. ParaelloHerramientas /Workbench ABAP /Desarrollo /SE38 Editor ABAPNos situamos sobre nuestro programa en el entorno de /wdesarrollo yvamosal men Utilidades /Versiones /Gestinde versiones. Nos apuntamos la ltima orden de transporteactiva que veamos.Nos situamos sobre nuestro mismo programa en el entorno p:/productivo eigualmente vamos al men Utilidades/Versiones /Gestin de versiones. Coincide la orden detransporte que vemos con la orden de transporte quetenamos en desarrollo? Entonces, podemos saber quenuestros programas coinciden.httSi vamos al men Tratar /Modo de comparacin /Men on,el sistema nos dir si ambos programas son iguales. 27. acompartirlo? :-) m.coSi no son iguales, volvemos al men ypulsamos Tratar/Modo de comparacin /Diferencia siguiente. Ynos llevar alpunto del programa donde hay diferencias. sapEsto tambin nos sirve para detectar diferencias en mdulos defunciones: deHerramientas /Workbench ABAP /Desarrollo /SE37 Bibliotecade funcionesIgualmente, desde el men Utilidades /Ms utilidades /Editorsplit screen. ogE incluso para detectar diferencias en smartforms, pero en estecaso hay que realizar algunos pasos adicionales. Todo smartformen SAP se guarda como un mdulo de funciones del cual hay queconocer el nombre..blHerramientas /Imprimir formularios /SMARTFORMS SmartFormsEntramos en nuestro smartform.Vamos al men Entorno /Mdulo de funciones en el entorno wwde desarrollo. Nos guardamos el nombre que nos hadado.Vamos al men Entorno /Mdulo de funciones en el entornoproductivo. Nos guardamos el nombre que nos hadado.Vamos al editor split screen, por ejemplo, apartir de laSE38 eintroducimos ambos mdulos de funciones en suscorrespondientes lugares. Como veis el nombre del mdulo/wde funciones que SAP que da al mismo smartform esdiferente segn el entorno. Por eso, cuando hagis lacomparacin entre entornos siempre va ahaber diferencias,pero tened cuidado, no siempre es debido adiferencias en elcdigo sino simplemente al nombre del propio mdulo de p:/funciones llamado. Por ejemplo, lo que se muestra en laimagen siguiente no sera una diferencia porque se refieresolamente al nombre del mdulo de funciones dado alsmartform en cada entorno.httImagen inicial | R0NgCrees que este artculo es til? Por qu no me ayudas 28. blogdesap.comcreated using fivefilters.orgmRegeneracin de objetosGeneracin 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 .co 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.sap 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 de Tomemos que queremos regenerar todos los programas que hemos modificado eincluido en una orden de transporte. Llamamos la transaccin SGEN.og Indicamos nuestra orden de transporte.Cuntos de vosotros no habis visto alguna vez lo siguiente? .blwwLa primera vez que un usuario ejecuta una transaccin tras uncambio realizado sobre dicha transaccin SAP ejecuta un procesode regeneracin.Un cambio en una transaccin (y la necesidadde regeneracin) sucede cuando modificamos la parametrizacinDecidimos si lo queremos hacer online oen job de fondo. Enasociada auna transaccin, cuando modificamos el cdigo ABAPeste caso, lo hago en job defondo.asociado asu programa, cuando hacemos un upgrade delsistema, cuando implementamos una nota, etc. Sin embargo, una/wvez regenerada la transaccin ya no volver aaparecer esteproceso nuncams.No soy un experto pero hasta donde yo saba yme habanexplicadoABAP es un lenguaje de programacin interpretado, no p:/compilado. As que nunca he entendidomuy bien qu es lo quehace exactamente SAP cuando dice que est compilando latransaccin. Sea como sea, SAP provee de una herramienta quenos permite, llammosle regenerar, en forma masiva unatransaccin modificada.httCasosTransaccin: SGEN Atencin, mientras estemos realizando una regeneracin deLa documentacin de la propia transaccin es abundante, pero objetos no podemos hacer simultneamente una segundavoy aexplicar solamente los casos con los que me he encontrado: regeneracin, aunque referencia aobjetos distintos. 29. Es aconsejable hacer todas las regeneraciones en job defondo.Ms informacin en la propia documentacin de la transaccinSGEN yen la nota 379918Imagen inicial | Patrick Hoeslym.cosap de og.blww/w p:/htt 30. blogdesap.comcreated using fivefilters.org mFijar color del sistema Buscamos la pestaa Definicin de colores.Ajustamos tanto el color de primer plano como el color .codefondo.Con el botn Grabar como damos nombre anuestra nuevadefinicin de sistema.Repetimos para cada uno de nuestros sistemas. sapCuando trabajamos como consultores en casa de nuestro clientees muy normal que tengamos abiertas la vez varias ventanasdenuestro sistema SAP.Pero no solamente tenemos abierto undeogentorno, sino varios la vez. Entonces, debemos estar siempreatentos anuestra pantalla ytener muy claro sobre qu entornoestamos trabajando desarrollo? integracin? produccin?Ahora ya tenemos definidos nuestros diferentes colores desistema.Para evitar equivocaciones una solucin es fijarnos en la parteinferior derecha de nuestra SAPGUI donde se indica el sistema .blVolvemos al botn superior derecho de la SAPGUI.sobre el cul estamos trabajando. Navegamos ahora la opcin Fijar color en sistema.Marcamos la opcin de color de sistema que deseamos en elentorno en el cual nos encontramos actualmente.wwRepetimos el proceso para cada uno de nuestros distintosentornos.Pero otra forma mucho ms evidente es tener un color distintosegn el entorno en el cual estamos.Pasos/wDesconozco apartir de qu SAPGUI es posible utilizar coloresdependientes de sistema. Yo trabajar este ejemplo con unaversin SAP front end para Windows release 7.10 p:/Pulsamos el botn superior derecho de nuestra SAPGUI.Navegamos la opcin Parametrizacionesde diseo.Ya tenemos definidos nuestros entornos segn diferentescolores.Ahora ser mucho ms difcil que cometamos errores cuandotrabajamos con varios entornos lavez.htt 31. m.coEntorno DES sap de ogEntorno INT .blww/wEntorno PROImagen inicial | Alan Cleaver p:/htt 32. Parmetros de usuarioomp.c esa gdbloDesde un punto de vista tcnico y simplificndolo mucho podemos decir que el da a da de los usuarios.en SAP consiste en introducir gran cantidad de informacin en campos SAP. La informacin introducida wwva 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 de /wdocumento 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. p:/Cmo?Manteniendo los parmetros de usuario propioshtt Herramientas / Gestin / Actualizacin de usuarios / SU01 UsuariosUna 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. 33. Grabamos.Qu parmetros tenemos disponibles?Para saber que parmetros podemos introducir debemos ir al campo y buscar su correspondiente ID. omPor ejemplo, en el caso del usuario que siempre crea las mismas clases de pedidos de ventaLogstica / Comercial / Ventas / Pedido / VA01 Crear Nos posicionamos sobre el campo clase de pedido. Pulsamos la tecla F1.p.c Pulsamos el botn Datos tcnicos. esagdVemos que el valor del ID es AAT. As que ahora nos vamos a la transaccin SU01 e introducimos el ID bloy el valor que ha de tener siempre.. ww /wResultadoSi volvemos otra vez a la transaccin VA01 vemos que automticamente el campo clase de documentode ventas est lleno por defecto. p:/httBueno, hay que decir que hay transacciones que no soportan los parmetros ID y esto no va afuncionar. 34. Parmetros comunesEsto 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).om IDVALOREXPLICACIN AQB PEDIDOSCuando el usuario entre en la transaccinSQ01 ya lo har directamente sobre el grupode usuarios de PEDIDOSp.c BUK 1000 Cdigo de la sociedad a la que pertenece elusuario CAC 1000 Sociedad CO a la que pertenece el usuarioesa EKG 010Grupo 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 02XgdPermite buscar los documentos en FI si no seencuentran en la base de datos FBZ SAPVariante de layout para la contabilizacin deblodocumentos FI FIT_ALV_FAGL_GL /VARIANTEVariante ALV para Gen. Ledger Accounting FZ1 SAP01Layout para la entrada de facturas FI FZ2 SAP01Variante de layout para entrada rpida de .pos. de cta.mayorww FZ5 SAP01Variante de layout para entrada rpida defactura preliminar LAG 0100 Almacn SCLEmpleo de maysculas o minsculas en /wcdigo fuente SD_VARIANT_MAINTAIN XPermite modificar las variantes de pantallade listados de ventap:/ SPA 0100 Sector de ventas SU53_STYLETREE Layout en que se mostrar el resultado de latransaccin SU53 VKO 10 Organizacin de ventashtt VTW 10 Canal de distribucin de ventas WLC X X XX X Parmetros de workflow especficos de 00000usuario WRK 1100 Centro 35. SP01_FROM0000000001Primera pgina a presentar en el spool deimpresin (SP01) SP01_END 0000000010ltima pgina a presentar en el spool deimpresin (SP01) om SP01_ENDINGPresentar las ltimas XX pginas en el spoolde impresin (SP01) FIT_ALVC X Muestra las transacciones FBL1N y FBL5Nen formato ALV p.c FO2XX XX Opciones de contabilidad FOPXXOpciones de contabilidad GRWE X X XXX XEValores de Report Writer LE_VL10_UPG_NOMSG XNo muestra mensaje de aviso en transaccinesaVL04 LNDESClave de pas ME_USE_GRIDX ALV grid en reports de compras ME1* SD_SWU_ACTIVEX Activar workflow en VA02 y VA03 SOST XXXXXXX4XXXXgdParmetros de transaccin SOSTTablas blo 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 trucos.SAP este post se ha ido ampliando. wwHay alguien que conozca otros parmetros de usuario y su significado?Imagen inicial | stefg/wp:/htt 36. blogdesap.comcreated using fivefilters.orgmConocer los accesos yelMonitor de carga de trabajotrabajo de un usuario El monitor de carga de trabajo contiene variadas funciones quepermiten analizar datos estadsticos del kernel de SAP. Para .copoder hacer uso de la herramiente previamente debemos haberactivado una serie de jobs estndar, pero sobre todo, en nuestrocaso, es necesario el job SAP_COLLECTOR_FOR_PERFMONITOR. Tenis informacin sobre los diversos jobs estndar en la notade SAP 16083. Una vez se haya generado la informacin en elsistema podremos visualizarla atravs de la transaccin ST03 sapEntramos en la transaccin ST03Seleccionamos nuestro sistema del rbol que se encuentra la izquierda de la pantalla (zona superior).de ogTodos hemos tenido alguna vez un cliente que nos ha pedido quele digamos cundo ha sido la ltima vez que cierto usuario entral sistema oen qu transacciones ha entrado. Bueno, sonsituaciones normales en algunas empresas yuna forma de hacer Marcamos el da que queremos investigar yhacemos doblepor parte de los empleadores con las que podemos estar ono declick. Ya tenemos seleccionado el da que queremos .blacuerdo. Sea como sea SAP nos da algunas herramientas que sin analizar.ser exactamente herramientas de auditora nos ayudan aconocerla fecha de ltimo acceso, las transacciones visitadas, accesos En la parte inferior izquierda hay otro rbol con las vistasla base dedatos de anlisis que nos permite obtener informacin anivel detransaccin anivel de usuario.wwUsuarios por fecha de entrada al sistemaEsta transaccin nos sirve para conocer la ltima fecha yhora enla que un usuario accedi aSAP. Es muy til para decidir porejemplo si es necesario seguir manteniendo la licencia delusuario activa. En caso, de que el usuario haga mucho tiempoque no accede aSAP, desactivarlo./wHerramientas /Gestin /Actualizacin de usuarios /Sistema deinformacin /Usuario /RSUSR200 Tras. fe. entrada sist. ymodif.clv. accesoEntramos la transaccin. p:/Escribimos el usuario ousuarios.Observamos el resultado. Anlisis por transaccin:httMarcamos Perfil de transaccin /Estndar. EstoEn la imagen se ve la fecha en que se crearon los usuarios, quin nos muestra todas las transacciones que se hanlos cre, si siguen ono activos (fin de validez), cundo fue laejecutado durante el da seleccionado.ltima vez que entraron al sistema ysi su clave de acceso sigueSi hacemos doble click sobre una de lasactiva oha sido desactivada. 37. transacciones individuales navegaremos hasta los usuarios que las han utilizado ydurante cuntotiempo.Anlisis por usuario: m Marcamos Estadstica de usuario /Perfil de usuario. Esto nos muestra todos los usuarios que han accedido al sistema en el da en cuestin..co Si hacemos doble click sobre una de las transacciones individuales navegaremos hasta los usuarios que las han utilizado ydurante cuntotiempo. sap deNinguna de estas herramientas son utilidades de auditora, mscomplejas ya las que podis llegar atravs de las transacciones:Herramientas /Gestin /Monitor /Log auditora seguridad/SM19 ConfiguracinogHerramientas /Gestin /Monitor /Log auditora seguridad/SM20 EvaluacinHerramientas /Gestin /Monitor /Log auditora seguridad/SM18 Reorganizacin.blEn todo caso si queris informacin ampliada sobre herramientasde auditora en SAP os recomiendo un blog excelente, seguridadsap.Imagen inicial | Ted & Dani PercivalwwSi este artculo te ha sido de ayuda no olvides compartirlo:-)/w p:/htt 38. blogdesap.comcreated using fivefilters.org mIntroduce un textoGrabamos yactivamos.informativo en la entrada.coaSAP sap de ResultadoogYa hemos visto en la entrada dedicada la nueva SAP GUI 7.30Podemos ver el resultado del texto informativo cuandoque podemos introducir textos informativos en el logon de SAPaccedemos con el SAPLogon.para cada una de las conexiones. Sin embargo, esto slo lopodemos hacer anivel de usuario individualmente por clienteAbrimos nuestro SAPLogon.SAP GUI. Qu pasa si queremos mostrar mensajes informativosSeleccionamos nuestro entorno. .blpara el conjunto de usuarios justo antes de acceder al sistema?Por ejemplo, mostrar un mensaje que advierte de una parada delsistema global acierta hora, indicar la informacin de contactodel departamento de sistemas en caso de problemas wwCrear texto generalHerramientas /Workbench ABAP /Utilidades /SE61DocumentacinSeleccionamos: Clase de documentos: Texto general. Ms informacin disponible en la nota 205487/w Idioma: Espaol (si entramos al sistema en castellano,Imagen inicial | ecastro sino el que sea el idioma de entrada). Si este artculo te ha sido de ayuda no olvides compartirlo :-) Nombre ZLOGIN_SCREEN_INFO. p:/Pulsamos Modificar, pero si el nombre de documento noexistiese previamente, entonces seleccionamos Crear.Se nos abre un editor de texto donde introducimos nuestrotexto de seleccin. Aqu podemos incluir tanto texto comohtticonos. Texto: el que deseemos. Iconos: para introducir iconos vamos abuscar el cdigo del iconode la tabla ICON (transaccin SE16N). 39. blogdesap.comcreated using fivefilters.orgmCinco formas de encontrarUtilizar el buscador de la gua de implementacintransacciones de Imaginemos, por ejemplo,que estamos buscando los pases que hay definidos en nuestro sistema SAP..cocustomizingVamos la gua de implementacin IMG Herramientas /Customizing /IMG /SPRO Tratamiento de proyectosap 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 de oglista de aciertos que ha encontrados.Cuando entramos en la gua de implementacin IMG de SAP loprimero que observamos es un gran men que est ms omenosestructurado por mdulos yfunciones generales de SAP. Al.blempezar atrabajar como consultor SAP puede que no sepamos niSeleccionamos la que ms se ajusta alo que nosotrospor dnde empezar abuscar. Pero, an teniendo ya experiencia, queremos. Nos llevar la zona de men donde sepuede que no nos acordemos del punto exacto del men donde seencuentra la transaccin.encontraba la transaccin que buscamos. Con este artculoquiero dar algunos trucos que nos permiten encontrar un puntode parametrizacin ms fcilmente. wwBuscar transacciones de parametrizacin de ventasmediante V/Tal ycomo explica Daniel Panaro en uno de los artculos de sumagnfico blog las transacciones de parametrizacin de ventas sepueden encontrar con unos sencillos pasos:/wVamos al gestor de transacciones.Herramientas /Workbench ABAP /Otras herramientas /SE93 Usar la ayudaF1Transacciones Utilicemos el mismo ejemplo anterior donde buscamos los pases definidos. p:/Escribimos V/*Pulsamos el matchcode. Buscamos una transaccin donde la funcionalidad de pas ya est definida, por ejemplo, en la transaccin del maestro deDe la lista que nos muestra pulsamos aquella que nos clientes.interese. Nos llevar directamente al customizing enhttcuestin.Logstica /Comercial /Datos maestros /Interlocutor comercial /Cliente /Visualizar /VD03 ComercialPero atencin, esto slo sirve para algunas parametrizaciones deventas. Adems, no todas las transacciones que empiezan porNos posicionamos sobre el campo pas.V/son transacciones de customizing. Pulsamos F1. Nos mostrar una ventana parecida asta. 40. mLo importante aqu es ese icono de un lpiz que vemos. Es elAhora debemos pasar auna nueva transaccin, la deicono de actualizacin de entradas ylo vamos atener que actualizacin de vistas, transaccin SM30 .copulsar.Escribimos la tabla T005 entre asteriscos (*T005*)ypulsamos el matchcode. Nos va aencontrar una vista queNos abrir una segunda ventana, pidiendo un proyecto.parece ser que contiene la informacin que queremosObviamos el proyecto ymarcamos Continuar sin datos de(V_T005).proyecto. sapPulsamos el botn Customizing yde nuevo se nos abre laventana de datos de proyecto. Le decimos que contine sindatos de proyecto. deDe nuevo SAP nos vuelve amostrar un listado de todos losresultados posibles ynosotros marcaremos el que ms se Seleccionamos dentro del men lo que ms se aproximeadece alo que queremos. yde nuevo estamos en el men de la gua deimplementacin, donde SAP nos seala nuestra transaccin.Finalmente, nos encontramos otra vez en la zona de menogdonde se encuentra la transaccin de customizing.Utilizar algn manual de parametrizacinUsar los datos tcnicosEn la red hay muchos ymuy buenos. Tenis, por ejemplo,en mundosapmanuales parametrizacinespecficos en mdulosIgual ejemplo. como finanzas, ventas, etc..blComenzamos igual que antes, desde la transaccin del Con todos estos trucos espero que tengis suerte la hora demaestro de clientes. buscar las transacciones de parametrizacin ms fcilmente. De todos modos, debo decir que no son infalibles yque muchasLogstica /Comercial /Datos maestros /Interlocutor comercial veces no nos van asalvar de hacer una bsqueda manual por/Cliente /Visualizar /VD03 Comercial nuestra cuentra dentro del men de la gua de implementacin. ww Y vosotros? Conocis alguna manera diferente de encontrarNos posicionamos sobre el campo pas ypulsamos F1. una transaccin de customizing dentro del men IMG? Si es as,Ahora marcamos el botn Datos tcnicos. Segn como agregadla en los comentarios.tengs vuestra ayuda, este botn se parecer aun martillo. Imagen inicial | Tall Chris Si este artculo te ha sido de ayuda no olvides compartirlo :-)/w p:/httHacemos doble click sobre el nombre del campo. Con estoestamos navegando la estructura que contiene ese campoen el diccionario.Marcamos la pestaa Ayuda p/Verif. entr. Vemos quenuestro campo se verifica sobre la tablaT005. 41. blogdesap.comcreated using fivefilters.org m5 razones por las que no nosFinanzas /Gestin financiera /Acreedores /Cuenta/FBL1NVisualizar/modificar partidasfunciona el programaPero es que aveces, an teniendo partidas pendientes, nos .codepagosencontramos que el programa de pagos no genera lacorrespondiente propuesta. Por qu? Muy sencillo, la propuestase ha generado previamente en una remesa anterior. Aveces, elusuario no se da cuenta, cree que la partida an no se haremesado pero en realidad ya fue cazada en una ejecucinanterior del programa de pagos.Cmo saberlo? En este caso va sapmuy bien revisar la tablaREGUP.Herramientas /Workbench ABAP /Resumen /SE16 BrowserdedatosPor ejemplo, aunque hemos localizado una partida pendiente delcliente 119702, el programa de pagos no nos genera ningunaderemesa.Vamos al browser de tablas, transaccin SE16 SE16N,tablaREGUP.Introducimos nuestro cliente 119702 ogLa transaccin F110 de pagos automticos se utiliza en SAP parala generacin de ficheros de transferencia bancaria.Por ejemplo, Observamos todas las propuestas que se han generado ysien Espaa es comn utilizarla para la generacin de los se ha generado ya el pago (campo indicador slo ejecucinficherosde la norma 19 y34. Desgraciadamente, en algunospropuesta? REGUP-XVORL).casos puede fallar ycon este artculo describo algunas de las .blrazones por las que esto puede suceder. Seleccin incorrecta por fecha de vencimientoParametrizacin incompleta de las cuentas bancarias Antes de aventurarnos adecir que el programa de pagos hafallado, revisemos la fecha de vencimiento de la partidaIMG: Gestin financiera /Contabilidad bancaria /Cuentas (transaccin FBL1N oFBL5N) yla fecha que hemos introducidowwbancarias /FBZP Definir bancos propioscomo fecha de vencimiento en la transaccin F110. Por supuesto,si la partida no ha vencido, el programa de pagos no generarninguna remesa./wEn este caso puede suceder que una cuenta del banco propio nose haya completado. Cuando esto sucede aveces, personalmente,me he encontrado que la transaccin no enva ningn mensaje deSeleccin incorrecta por va de pago de deudor/acreedorerror. Sin embargo, tampoco genera el correspondiente ficheroAqu nos encontramos en el mismo caso que lo anterior descrito. p:/para elpago.La va de pago introducida en la transaccin F110 es correcta?Ausencia de partidas de deudor/acreedor Realmente la partida contiene la va de pago que estamosindicando en la transaccin F110? Puede ser que la va de pagoEs evidente que si el deudor/acreedor no posee ninguna partidaen el maestro del interlocutor coincida con la va de pago por lapendiente, entoncesel programa de pagos no generar ningunacual estamos haciendo la seleccin, pero quiz en este caso lahttpropuesta de pago. Para comprobarlo debemos irnos lapartida tenga una va de pago distinta. Quien manda en este casotransaccin FBL1N oFBL5N (segn sea un pago aproveedorha de ser la va de pago de la partida.opago de cliente).Finanzas /Gestin financiera /Deudores /Cuenta /FBL5NVisualizar/modificar partidas 42. mOtros errores desconocidosSi an habiendo revisado todo lo anterior seguimos sin encontrar.couna explicacin al por qu no se ha generado la propuesta depago todava podemos optar por relanzar el programa.Revisamos los parmetros de nuestra F110Finanzas /Gestin financiera /Bancos /Salidas /Pago automtico sap/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 de ogmediante la transaccin SE38oSA38Buscamos la variante para el programa (Pasar a /Variantes/Traer), en este caso la variante RD..blEscribimos el da de ejecucin yel identificador.Yejecutamos.wwSi todo ha ido bien podremos volver la F110 /Entorno /w/Medios de pago /Gestin ISD yya podremos descargarnuestro fichero.Imagen inicial | @cdharrisonSi este artculo fue til para ti, comprtelo conotros :-) p:/htt 43. blogdesap.comcreated using fivefilters.org mApariencia de campos delmaestro de materiales .co sapHace unos das, Susana, atravs del muro de facebook dej estapregunta:Hola, quisiera saber como hacer la clave de idioma de los deogdatos adicionales del maestro de materiales obligatoria.Gracias Buscamos este campo SKTEXT-SPRAS dentro de laasignacin de campos agrupos de campos del customizing.Este artculo trata de responder aesa pregunta y, en generalsobre cmo modificar la apariencia de los campos presentes en elIMG: Logstica en general /Maestro de materiales /Seleccin de .blmaestro de materiales. Cmo podemos hacer que un campo campos /Asignacin campos agrupos seleccin de campospase de ser modificable aobligatorio oa slo visible oinclusoinvisible para el usuario?Seleccionamos el campo ypasamos la actualizacin delgrupo de campos atravs de la flecha amarilla queParametrizacin encontramos la derecha.wwBien, queremos modificar la apariencia del campo clave deidioma que se encuentra en el maestro de materiales, dentro delapartado Datos adicionales. Cmo hacerlo?En este caso, voy aconvertir el campo en obligatorio si elusuario entra atravs de la transaccin MM01oMM02,independientemente del tipo de material. Por lo tanto,/wmarcaremos el botn Entrada obligatoria. Sin embargo,tambin podra hacer que el campo fuese obligatorio portipo de material, por ejemplo, slo para materiales tipoLo primero es conocer cul es el nombre tcnico del campoERSA otipo DIEN.al que nos referimos: pues nos posicionamos sobre el campo p:/ypresionamos la tecla F1 y Datos tcnicos.Logstica /Gestin de materiales /Maestro de materiales /Material/Crear en general /MM01 Inmediatamentehtt 44. Observamos, sin embargo,que el grupo de campos nmero 20al que pertenece el campo clave de idioma contiene muchos mscampos. Por lo tanto, al modificar este grupo de campos, no sloestamos modificando la apariencia del campo clave de idioma, msino de todos los campos del grupo. Entonces, y si sloqueremos modificar la apariencia de un campo? Pues SAP proveede una serie de grupos de campos de uso exclusivo para elcliente. La ayuda de SAP indica que estos grupos son los 111.coa120 (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 sap comentario].ResultadoY ste es el resultado, la clave de idioma aparece comoobligatoria. deogImagen inicial| KEXINO.blww/w p:/htt 45. blogdesap.comcreated using fivefilters.orgmCreacin de almacenes enmateriales.cosap Tomamos el nmero de material que hemos creado. de 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. ogEn SAP cada material almacenable debe tener claramente Logstica /Gestin de materiales /Maestro de materiales /Otrosespecificados los almacenes en los cuales puede estocarse. Por /MMSC Entrada almaceneseso, cuando damos de alta un material atravs del maestromateriales tenemos que crear las vistas de almacn. SinIntroducimos el nmero de material yel almacn.embargo, si cada producto de nuestra empresa es susceptible de.blser almacenado en muy diferentes localizaciones tendremos quedarlo de alta de forma separada para cada almacn.En este artculo se explica cmo simplificar este proceso atravsde herramientas estndar SAP.wwCreacin del almacn principal del materialEn primer lugar debemos dar de alta el material en el maestrocon al menos uno de sus almacenes. Para ello procederemoscomo normalmente lo hacemos:Logstica /Gestin de materiales /Maestro de materiales /Material/Crear en general /MM01 Inmediatamente/w Entramos en la transaccin yseleccionamos las vistas Escribimos todos los almacenes que queremos crear. Si acrear. Como mnimo deben ser las de datos base ylas de queremos que la informacin del almacn sea copia apartir datos generales de centro/almacenamiento. de un almacn modelo, indicamos ste en el campo contiguo, donde dice Modelo. p:/htt 46. m .cosapde Grabamos.ResultadoPara comprobar que la informacin se ha creado correctamente ogdebemos validarla en el maestro de materiales.Logstica /Gestin de materiales /Maestro de materiales /Material/Modificar /MM02 Inmediatamente .bl Marcamos la vista de almacenes acomprobar.ww Pulsamos el matchcode yvemos que tenemos los almacenes creados para el material. /w p:/httImagen inicial | pa1nt 47. blogdesap.comcreated using fivefilters.orgmAyuda de bsquedaEl resultado que nos muestra SAP es el mismo que nosinteligente sin matchcodemostrara un matchcode con todos los cdigos de proveedor que tienen coincidencias con la descripcin escrita..cosap deLa ayuda de bsqueda inteligente es un pequeo indicador quenos permite hacer bsquedas de materiales yproveedores en Ahora nos colocamos sobre el campo material yescribimospedidos de compra de forma rpida. Al activar la ayuda deel texto del material. P. ejemplo, Vlvula.bsqueda inteligente no es necesario utilizar el matchcode deogestos campos ya que, automticamente, al escribir el texto El resultado es, igualmente, los cdigos de todos losdescriptivo del material odel proveedor SAP nos lista los cdigos materiales que muestran coincidencias con la descripcincoincidentes conellos.escrita.Cmo se activa?.blDesde la transaccin del pedido de compras tenemos que entraren la parametrizacin personalLogstica /Gestin de materiales /Compras /Pedido /ME22NModificarww Parametrizacin personal /Parametrizaciones bsicas. Desde las parametrizaciones bsicas marcamosComo se ve, este pequeo truco funciona igual que un Ay.bsq.intel.activa. 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./w Imagen inicial | marc falardeau Si este artculo te ha sido de ayuda no olvides compartirloY ya est. Solamente con esta accin queda activada la :-)funcionalidad.p:/EjemploVamos acrear un pedido de compras eintroducir directamenteel proveedor.Logstica /Gestin de materiales /Compras /Pedido /Crearhtt/ME21N Prov. centro suministrador conocido Nos colocamos sobre el campo proveedor. Escribimos el texto descriptivo del proveedor. P. ejemplo, Garca. 48. blogdesap.com created using fivefilters.orgmValor mnimo de proveedor.cosapEsta semana pasada he asistido aun curso on-line gratuitoimpartido por laSalle, un curso de gestin de compras con SAP.Para los que os parezca interesante este tipo de cursos, laSalle deIntroducimos el importe mnimo en el campo valor mnimo de pedido. Grabamos.ogorganiza una nueva sesin de este curso en septiembre la queos podis apuntar atravs de este enlace. En lo personal, estecurso me ha servido para darme cuenta de que todava hay cosasque desconozco (algo que por otro lado ya saba), pero tambinpara refrescar conceptos. Por eso, desde aqu sirva este post.blpara agradecer alos organizadores de este curso, a@rcincunegui, a @amdillana ytodos los que hacen posible estecurso yotros comoste.En el curso, por ejemplo, he recordado el concepto de valorValor mnimo: resultadomnimo en un proveedor. El valor mnimo es el importe mnimo wwque un proveedor nos solicita en todas las compras que leLogstica /Gestin de materiales /Compras /Pedido /Crearhagamos. Puede que tengamos un acuerdo, aunque ste no est/ME21N Prov/centro sum. conocidoformalizado, por el cual el proveedor slo nos va asuminitrarapartir de un importe mnimo. Entonces deberamos indicarlo deEscribimos el proveedor ydatos organizativos.algn modo en nuestro sistema SAP. Por ejemplo, esta situacin Escribimos los datos de materiales que deseamos pedir.se da en aquellos proveedores que nos hacen envos gratuitosapartir de un importe definido./wEn estos casos la informacin que podamos poner anivel deregistro infono parece ayudarnos, ya que ste acepta cantidadesmnimasa nivel individual de material yadems apriori noparece que tenga importes mnimos. De modo que lo deberemoshacer anivel de proveedor. p:/Valor mnimo: camino funcional en elmenNavegamos aPedido /Verificar.Logstica /Gestin de materiales /Compras /Datos maestrosComo vemos, el sistema nos enva un mensaje advirtindonos/Proveedor /Central /XK02 Modificarque el importe total del pedido se encuentra por debajo de lo mnimo requerido por el proveedor.httIntroducimos nuestro proveedor en la organizacin decompras.Marcamos nicamente la vista de datos de compras. 49. mImagen inicial | PhillipCSi este artculo te ha sido de ayuda no olvides compartirlo .co:-)sapdeog .bl ww /wp:/htt 50. blogdesap.comcreated using fivefilters.org mSurtido parcial de proveedorEjemploSPP En este ejemplo nuestro proveedor tiene condiciones de pagoP02 (contado) en general. Sin embargo, si el material pertenece .coaun surtido parcial de proveedor que llamaremos recambios,entonces la condicin de pago ser P03 (pago 30das).Logstica /Gestin de materiales /Compras /Datos maestros/Proveedor /Compras /MK02 ModificarSeleccionamos Datos de compras. sapEntramos en la vista de Datos de compras.Marcamos el botn Gamas parciales de productos.Aadimos nuestra nueva gama REC (Recambios).deogSegn la help deSAP:Los Surtidos parciales de proveedor (SPP) subdividen el rangototal de productos de un proveedor segn diversos criterios.Volvemos la pantalla de acreedor, Datos de Compras. .blPuede especificar los materiales oartculos que pertenecen aunMarcamos Datos divergentes /Crear.surtido parcial de proveedor en los registros info del proveedorrelevante. Podr especificar tambin la posicin secuencial delSeleccionamos nuestro surtido REC.material en el surtido parcial de proveedor, para que seclasifiquen las posiciones de un pedido en la secuencia que desee Marcamos Datos de compras.su proveedor.wwEsto significa que para un mismo proveedor podemos incluirinformaciones divergentes de sus materiales.ParametrizacinIMG: Logstica general /Interlocutor comercial /Proveedor/Control /Espec. grupos de cuentas ycampos p.proveedor/wSeleccionamos el grupo de cuentas.Marcamos Relev. surtido parc. proveedor. p:/httCuando entremos en la pantalla de Datos de Compras 51. modificamos la condicin de pago aP03.Grabamos.Con esto ya tenemos nuestra condicin de pago general P02 paramel proveedor, yla condicin de pago P03 para el SPPREC.Logstica /Gestin de materiales /Compras /Datos maestros/Registro info /ME12 Modificar.coEntramos en la vista general de nuestro material/proveedor.Informamos el campo Surtido parcial con el valor denuestro SPPREC.sapGrabamos. de ogResultado.blLogstica /Gestin de materiales /Compras /Pedido /Crear/ME21N Prov/centro sum. conocidoEntramos acrear un nuevo pedido. wwIntroducimos nuestro proveedor.En la vista Entrega/Factura la condicin de pago es la P02general.Ahora introducimos en una lnea nuestro material asociadoal registro info de proveedor. /wVolvemos la vista Entrega/Factura yveremos que lacondicin de pago es la P03 del SPPREC. p:/httImagen inicial | Damian GadalSi crees que este artculo es til no olvides compartirlo :-) 52. blogdesap.com created using fivefilters.org mCmo bloquear laSolucinactualizacin del registroDespus de realizar una investigacin sobre el customizingdescubrimos que SAP no permite hacer una distincin ni por.coinfo de forma especficamaterial, ni por pedido de compras sobre esta funcionalidad.As que debemos recurrir auna ampliacin del sistema.Llamamos alas amplicaciones de Compras.IMG: Gestin de materiales /Compras /Add-ins empresarialessappara compras /BAdI: Ampliar procesamiento de pedidos EnjoyBajo esta BAdI nos encontramos con la implementacinCON_FIN_SUBCONTRACT. Hacemos una copia de ella ylarenombramos como queramos, en este ejemplo comoZ_PEDIDOS_COMPRASdeBajo la interface de la BAdI buscamos el mtodoPROCESS_ITEM que nos permite acceder la informacinde la posicin del pedido de compras.Incluimos nuestro cdigo ABAP. Lo que vamos ahacer esogSobre la actualizacin automtica del registro info ya haba Recuperar la informacin de nuestro material de lahablado en un artculo anterior. Hoy voy ahablar sobre cmo posicin del pedido de compras. El campo MATKLlimitar la accin de este parmetro en determinados casos. contendr la informacin del grupo de artculos de material.Caso .bl Bloquear la actualizacin del registro info para losPor defecto, nuestro sistema tiene activada la funcionalidad demateriales del grupo de artculos G. El campo SPINF esactualizacin automtica de registro info. Para ello se fijaron losel indicador de actualizacin de registro info. Debemosvalores propuestos para encargados de compras en elborrar el contenido de esta variable si el grupo decustomizing. Tambin se agreg el parmetro EVO en los artculos es de tipoG. wwparmetros de usuario. Para los que tengis dudas sobre estospasos os recomiendo el artculo acerca de actualizacin de Actualizar la informacin de nuevo en la posicin delregistros info.pedido de compras.IMG: Gestin de materiales /Compras /Datos de entorno /FijarMETHOD if_ex_me_process_po_cust~process_item.valores propuestos para encargados de compras /ParametrizarDATA: lt_item TYPE mepoitem.valores propuestos* Get dataCALL METHODim_item->get_dataRECEIVINGre_data = lt_item. /wIMG: Gestin de materiales /Compras /Datos de entorno /Fijar* Clear info record update in material group GCHECKvalores propuestos para encargados de compras /Actualizarlt_item-matkl = G.CLEAR lt_item-spinf.usuarios* Update changesCALL METHODim_item->set_dataEXPORTINGim_data = lt_item.Sin embargo, nuestro cliente desea que el registro info no seENDMETHOD.actualice automticamente para materiales del grupo dep:/artculos G, un grupo de artculos de suministros especial paraResultadonuestro cliente. Si mantenemos activada la actualizacin deregistro info para ellos se crearn nuevos registros info (que noCreamos un pedido de compras.queremos yllenan la base de datos innecesariamente) yseactualizarn cada vez que creemos un nuevo pedido de comprasIMG: Logstica /Gestin de materiales /Compras /Pedido /Crearhttpara ellos. Adems, arrastrarn la informacin de la ltima /ME21N Proveedor ycentro suministrador conocidoactualizacin cada vez que creemos un pedido de compras. 53. m Vamos la posicin de material yobservamos que en la pestaa Datos del material el indicador Act. info.co (corresponde anuestro campo SPINF) est vaco tal ycomo queramos. Eso ha provocado que no se actualice ningn registro info ni se recupere la informacin de ningn registro info. sapPor supesto, lo indicado en este artculo se puede aplicar aotros decasos especficos como bloqueo de actualizaciones por tipo dematerial, por tipo de pedido, etc. Slo debemos cambiar nuestrocdigo ABAP ypuede que el mtodo elegido dentro de nuestraBAdI.Imagen inicial | bovinity ogSi este artculo fue til para ti no olvides compartirlo :-).bl ww /wp:/htt 54. blogdesap.comcreated using fivefilters.orgmComparando qu he pedidoyqu me han facturado .coSi lo ejecutamos tal cual lo hago en la imagen veremos lossiguientes campos, donde SAP nos remarca aquellas sapposiciones que an habiendo sido pedidas anuestroproveedor todava no han sido recibidas.de ogMediante el icono Variante visual.actual (Opciones/Variante visualizacin /Actuales) podemos aadir mscampos..blLa lista de saldos EM/RF es uno de esos listados que SAP nosproporciona aveces yque se pasan por alto entre tanto reportingque no se ajusta alas necesidades especficas de cliente. Dentrodel proceso decompras nos sirve para coordinar el proceso decompras. Desde l podemos saber tantolas cantidades que wwhemos comprado, las que nos han servido ylas que nos hanfacturado. Por lo tanto, nos permite detectar las diferencias entrecantidades decompras, entregas, ymaterial pendiente defacturacin.Por lo tanto, esta transaccin es bsicamente un listado deLa transaccin MB5S diferencias entre nuestras entradas de mercancas (MIGO)ynuestra facturacin (MIRO) anivel de posicin de pedido deLogstica /Gestin de materiales /Gestin de stocks /Entornocompras./w/Visualizacinde saldos /MB5S Lista de saldos EMRFLas imgenes de este post han sido extradas de | garryknight y Escribimos nuestro proveedor, organizacin de comprassofticons yaquellos parmetros que queramos filtrar.Si crees que este artculo es til aydame acompartirlo :-) p:/ Hay dos parmetros que varan significativamente lo que observamos en el resultadoTmb. posiciones totalmente entregadas: nos muestraaquellos pedidos que tienen una entrega completarealizada para cada posicin (vamos lo que conocemoshttpor MIGO).Tmb. posiciones equilibradas: adems nos muestraaquellos pedidos que han sido facturados (los quetenemos la MIRO hecha). 55. blogdesap.comcreated using fivefilters.orgmFunciones de interlocutor en mantenimiento yservicio al cliente /Parametrizaciones bsicas /Interlocutor /VOP2 Definir esquema de interlocutorrdenes de mantenimiento.cosap de Entramos en las funciones de interlocutor ycreamos una nueva entrada Operario. Indicamos la clase de interlocutor que ser. Para nosotros ser un usuario (US) que estar definido en la transaccin PA30.En mantenimiento yservicio al cliente llamamos interlocutores ogaaquellas personas (fsicas ojurdicas) involucradas en rdenes,avisos, equipos, etc. Son, por ejemplo, el cliente donde se ubicaun equipo, la persona de contacto que ha generado un aviso, etc.Segn se indica en la ayuda de SAP, de formaestndar podemosasociar anuestras rdenes, equipos yotrosLa orden sigue el esquema ZV. As que marcamos este.blobjetos,interlocutores del tipo: clientes, personas de contacto,esquema ydefinimos la nueva funcin dentro del esquema.proveedores, usuarios, etc. Pero si necesitamos aadir nuevosComo es una funcin de interlocutor no obligatoria lainterlocutores dentro PM yCS tendremos que acudir ladejamos tal cual, aunque existen varias opciones en cadaparametrizacin. una de las columnas que aparecen al lado de la funcin.wwCustomizingEn este ejemplo voy acrear el tipo de interlocutor Operarioasociado auna orden de trabajo. En primer lugar debemos conocer el esquema asociado al objeto que queremos modificar. Para ello vamos al punto de customizing de nuestra orden donde se indica el esquema/w que va aseguir. Si el objeto no fuese una orden sino un equipo oun aviso, entonces deberamos buscar el punto de customizing para el equipo oelaviso.IMG: Mantenimiento yservicio al cliente /Gestin de Resultadomantenimiento yservicios /rdenes de mantenimiento yservicios p://Interlocutor /Definir esquema yfuncin de interlocutor /OIOM Ahora vamos acrear una nueva orden yvamos aver cmo aadirAsignar esquema de interlocutor aordenun operario dentro de laorden. Logstica /Mantenimiento /Gestin de mantenimiento /Orden /IW31 Crear en generalhtt Introducimos nuestra orden tipo ZM15 Vamos al apartado de Servicio Cliente.Escribimos los datos de obligado cumplimiento que nos solicite laorden.IMG: Mantenimiento yservicio al cliente /Datos maestros en 56. Vamos la pestaa Interloc.Abrimos el desplegable de funciones de interlocutor yallencontraremos la funcin ZZ para operarios.m.cosapImagen inicial | Wonderlane de og .bl ww /w p:/htt 57. blogdesap.comcreated using fivefilters.org mCampos nuevos en equipos.co Actualizamos aquellos tipos de equipo que vayan allevar los campos propios con el perfil de vista que hemos modificado.sap IMG: Mantenimiento yservicio al cliente /Datos maestros en mantenimiento yservicio al cliente /Objetos tcnicos /Equipos /Tipos de equipo /Actualizar tipo de equipoEsta semana tocaba seguir con webservices, sin embargo, no he de User exit ogtenido tiempo de acabar el artculo. En su lugar vuelvo aescribirsobre cmo ampliar transacciones estndar con campos propios Antes de crear la user exit tenemos que aadir los camposde nuestro cliente. Esta vez, toca hablar sobre equipos ycmo auna de las tablas de equipos. Yo los voy acrear bajo laaadir campos sobre ellos. Advierto que este artculo es algotabla de equipos EQUI. Para ello amplo la tabla m