{"id":17889,"date":"2016-11-03T08:00:31","date_gmt":"2016-11-03T07:00:31","guid":{"rendered":"http:\/\/192.168.20.3\/?p=17889"},"modified":"2024-12-13T09:10:11","modified_gmt":"2024-12-13T08:10:11","slug":"que-son-las-badis-de-sap","status":"publish","type":"post","link":"https:\/\/orekait.com\/es\/que-son-las-badis-de-sap\/","title":{"rendered":"\u00bfQu\u00e9 son las BAdIs de SAP?<br><span class=\"font-300\"><\/span>"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;section&#8221; _builder_version=&#8221;4.25.2&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_row admin_label=&#8221;Imagen principal&#8221; _builder_version=&#8221;4.25.2&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_image alt=&#8221;cloud-public&#8221; title_text=&#8221;Reclamacio\u0301n-de-facturas-vencidas-en-SAP-FI-1&#8243; admin_label=&#8221;Imagen principal&#8221; module_class=&#8221;post-img&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_image][\/et_pb_column][\/et_pb_row][et_pb_row admin_label=&#8221;Cuerpo&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text content_last_edited=&#8221;off|desktop&#8221; admin_label=&#8221;Texto&#8221; _builder_version=&#8221;4.25.2&#8243; header_2_font_size=&#8221;24px&#8221; header_3_font_size=&#8221;20px&#8221; header_4_font_size=&#8221;17px&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; width=&#8221;%22671%22&#8243; height=&#8221;%22251%22&#8243; global_colors_info=&#8221;{}&#8221; content__hover_enabled=&#8221;off|hover&#8221;]<\/p>\n<p>Las\u00a0<strong>BAdIs<\/strong>\u00a0(<strong>Business Add-Ins<\/strong>) son una\u00a0<strong>herramienta de programaci\u00f3n ABAP orientada a objetos<\/strong>\u00a0que se utilizan en SAP para implementar validaciones y ampliaciones en el c\u00f3digo standard de SAP en versiones a partir de la 4.6c.<\/p>\n<p>A la pregunta \u00ab<strong>\u00bfQu\u00e9 son las BAdIs de SAP?<\/strong>\u00ab, dir\u00edamos que son la manera que da SAP de acomodar los requerimientos espec\u00edficos de un cliente a sus transacciones est\u00e1ndar, que de no ser por las ampliaciones (las BAdIs son las m\u00e1s actuales, pero previamente se utilizaron las user exits y los field exits), habr\u00eda que\u00a0<strong>modificar\u00a0el propio c\u00f3digo de SAP<\/strong>. Esto \u00faltimo no es conveniente en pr\u00e1cticamente ning\u00fan caso, porque se pierde el soporte que SAP ofrece a sus productos.<\/p>\n<p>&nbsp;<\/p>\n<p>Imaginemos, por ejemplo, que cada vez que damos de alta a un empleado por la transacci\u00f3n PA40 necesitamos guardar algunos de los datos del mismo en una tabla transparente ZEMPLE que hemos creado nosotros. Para casos como \u00e9ste existen las ampliaciones, que, al fin y al cabo, no son m\u00e1s que\u00a0<strong>fragmentos de c\u00f3digo que SAP nos deja introducir dentro de su c\u00f3digo est\u00e1ndar<\/strong>\u00a0para realizar ciertas operaciones a medida; en este caso, introducir la informaci\u00f3n que se necesita en una tabla cuando se da de alta al empleado.<\/p>\n<h2><strong>BAdIs y USER EXIT<\/strong><\/h2>\n<p>Como hemos dicho previamente, las\u00a0<strong>BAdIs<\/strong>\u00a0no son la \u00fanica forma de ampliaci\u00f3n que tenemos en SAP, pero s\u00ed la m\u00e1s recomendable utilizar por varios motivos:<\/p>\n<ul>\n<li><strong>Las BAdIs son las nuevas ampliaciones de SAP<\/strong>, las que recomienda utilizar, y al estar basadas en la programaci\u00f3n orientada a objetos dan m\u00e1s opciones que las user exits (o\u00a0<em>Customer Exits<\/em>).<\/li>\n<li>Las BAdIs se pueden\u00a0<strong>implementar tantas veces como se quieran<\/strong>, mientras que las user exit son \u00fanicas, as\u00ed, diferentes programadores pueden trabajar en diferentes proyectos e implementar la misma BAdI de una forma independiente.<\/li>\n<li>Las BAdIs est\u00e1n basadas en una\u00a0<strong>infraestructura multinivel<\/strong>\u00a0(SAP, versi\u00f3n de pa\u00eds, socio, cliente, \u2026) mientras que en las\u00a0<strong>user exit<\/strong>\u00a0solo tiene dos niveles (SAP, cliente). Gracias a esto podemos crear BAdIs a cualquier nivel de esa infraestructura.<\/li>\n<\/ul>\n<h2><strong>Buscar la BAdI adecuada<\/strong><\/h2>\n<p>Una de los mayores problemas al trabajar con\u00a0<strong>Business Add-Ins<\/strong>, es saber cu\u00e1l tenemos que utilizar en cada caso, y para ello proponemos a continuaci\u00f3n dos t\u00e9cnicas distintas.<\/p>\n<h3><strong>TRANSACCI\u00d3N ST05 \u2013 Performance Analysis<\/strong><\/h3>\n<p>Una de las m\u00e1s comunes es utilizar la\u00a0<strong>transacci\u00f3n ST05<\/strong>\u00a0que nos permite crear trazas en tramos de ejecuci\u00f3n. Utilizando esta transacci\u00f3n, y teniendo en cuenta que SAP siempre utiliza las vistas\u00a0<strong>V_EXT_IMP<\/strong>\u00a0y\u00a0<strong>V_EXT_ACT\u00a0<\/strong>cuando accede a las BAdIs, podremos saber cu\u00e1les se llaman en nuestro proceso. Los pasos a seguir son los siguientes:<\/p>\n<ol>\n<li>Accedemos a la\u00a0<strong>transacci\u00f3n ST05<\/strong><\/li>\n<li>Nos aseguramos de que la opci\u00f3n \u201c<em>Table Buffer Trace\u201d<\/em>\u00a0(\u201c<em>Buffer\u00a0<\/em>Trace\u201d dependiendo de la versi\u00f3n de Netweaver) est\u00e1 marcada y Activamos la traza<\/li>\n<li>Ejecutamos el proceso que queremos adaptar<\/li>\n<li>Desactivamos la traza y mostramos los resultados<\/li>\n<li>Filtramos los resultados para mostrar \u00fanicamente los relacionados con las vistas\u00a0<strong>V_EXT_IMP<\/strong>\u00a0y\u00a0<strong>V_EXT_ACT<\/strong><\/li>\n<\/ol>\n<p>*Es importante que no ejecutemos ninguna otra transacci\u00f3n mientras la traza est\u00e9 activa si queremos que los resultados sean m\u00e1s f\u00e1ciles de analizar.<\/p>\n<p>Si uno de los resultados empieza por \u201cIF_EX_\u201d, el\u00a0<strong>nombre de la BAdI<\/strong>\u00a0ser\u00e1 lo que est\u00e9 a continuaci\u00f3n, ya que esta primera parte com\u00fan hace referencia a la Interface.<\/p>\n<p>Una vez hecho esto, tendremos un\u00a0<strong>listado de BAdIs<\/strong>\u00a0que pueden servirnos, aunque tendremos que analizarlas una a una para encontrar la adecuada. Para analizarlas, accederemos a la transacci\u00f3n SE18 \u2013\u00a0<strong>Definici\u00f3n de BAdIs<\/strong>\u00a0que explicaremos a continuaci\u00f3n.<\/p>\n<h3><strong>Transacci\u00f3n SE18 \u2013 Definici\u00f3n de BAdIs<\/strong><\/h3>\n<p>Otra opci\u00f3n es hacer uso de la ayuda de b\u00fasqueda de la propia\u00a0<strong>transacci\u00f3n SE18<\/strong>. Para ello, basta con acceder a la transacci\u00f3n, abrir el\u00a0<em>matchcode<\/em>\u00a0y seleccionar la opci\u00f3n \u201cAplicaciones SAP\u201d que nos mostrar\u00e1 un \u00e1rbol donde podremos buscar la BAdI navegando por los componentes del sistema.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-17901 size-full\" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2016\/11\/badi-transaccion-machcode-1.png\" alt=\"\" width=\"621\" height=\"517\" srcset=\"https:\/\/orekait.com\/wp-content\/uploads\/2016\/11\/badi-transaccion-machcode-1.png 621w, https:\/\/orekait.com\/wp-content\/uploads\/2016\/11\/badi-transaccion-machcode-1-480x400.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 621px, 100vw\" \/><\/p>\n<h2><strong>Implementar una BAdI<\/strong><\/h2>\n<p>El\u00a0<strong>proceso de implementaci\u00f3n de una BAdI<\/strong>\u00a0tiene dos pasos. El primero es mirar la definici\u00f3n de la misma, para saber los m\u00e9todos de los que disponemos y qu\u00e9 par\u00e1metros tiene cada uno de ellos.<\/p>\n<p>Este paso lo haremos en la\u00a0<strong>transacci\u00f3n SE18<\/strong>, donde, introduciendo el nombre de la BAdI, tendremos acceso a toda su informaci\u00f3n. Lo que nos interesa es la \u00faltima pesta\u00f1a, y m\u00e1s concretamente, la parte de \u201cInterface\u201d. Aqu\u00ed veremos los m\u00e9todos y podremos navegar por los diferentes objetos dentro del generador de clases (SE24).<\/p>\n<p>Cuando ya tenemos clara la BAdI que queremos implementar, accedemos a la\u00a0<strong>transacci\u00f3n SE19<\/strong>\u00a0para el siguiente paso: la implementaci\u00f3n.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-17907 size-full\" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2016\/11\/badi-transaccion-machcode-2.png\" alt=\"\" width=\"618\" height=\"512\" srcset=\"https:\/\/orekait.com\/wp-content\/uploads\/2016\/11\/badi-transaccion-machcode-2.png 618w, https:\/\/orekait.com\/wp-content\/uploads\/2016\/11\/badi-transaccion-machcode-2-480x398.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 618px, 100vw\" \/><\/p>\n<p>Como se puede ver en la imagen, tenemos dos partes bien diferenciadas. La parte de abajo ser\u00e1 la primera que utilicemos, puesto que lo primero es\u00a0<strong>crear la ampliaci\u00f3n<\/strong>. Indicando la BAdI que queremos implementar se nos pedir\u00e1n los nombres de la implementaci\u00f3n y la clase a crear. Normalmente se suele a\u00f1adir un prefijo (que empiece por Z) al nombre original, para que sea f\u00e1cil relacionar la implementaci\u00f3n con la propia definici\u00f3n.<\/p>\n<p>Cuando todo se haya creado, ya podremos programar cada uno de los m\u00e9todos que necesitamos para nuestro desarrollo. A partir de ahora, cada vez que queramos modificar la implementaci\u00f3n, podremos volver a la pantalla inicial de la\u00a0<strong>transacci\u00f3n SE19<\/strong>\u00a0y utilizar el bloque superior.<\/p>\n<p>Para finalizar, es muy importante acordarse de\u00a0<strong>activar la implementaci\u00f3n<\/strong>\u00a0para que se ejecute. No solo activar el objeto en SAP, como con todos los que creamos, sino marcar el\u00a0<em>check<\/em>\u00a0de \u201cImplementaci\u00f3n est\u00e1 activa\u201d en la SE19 para que la tenga en cuenta en tiempo de ejecuci\u00f3n.<\/p>\n<p>Ahora que ya sabes\u00a0<strong>qu\u00e9 son las BAdIs de SAP<\/strong>\u00a0y c\u00f3mo implementarlas, s\u00f3lo tienes que aplicarlas en tus procesos.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row admin_label=&#8221;M\u00e1s informaci\u00f3n&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_text _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p class=\"morado\">M\u00e1s informaci\u00f3n:<\/p>\n<p>[\/et_pb_text][et_pb_button button_url=&#8221;https:\/\/orekait.com\/es\/area-personalizacion&#8221; button_text=&#8221;M\u00e1s informaci\u00f3n&#8221; module_class=&#8221;entrada-btn&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; custom_button=&#8221;on&#8221; button_text_color=&#8221;#8156EA&#8221; button_bg_color=&#8221;RGBA(255,255,255,0)&#8221; button_border_color=&#8221;#8156EA&#8221; button_border_radius=&#8221;30px&#8221; button_font=&#8221;Plus Jakarta Sans|600|||||||&#8221; button_icon=&#8221;&#x24;||divi||400&#8243; button_icon_color=&#8221;#8156EA&#8221; button_on_hover=&#8221;off&#8221; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; button_text_color__hover_enabled=&#8221;on|desktop&#8221; button_text_color__hover=&#8221;#8156EA&#8221; button_bg_color__hover_enabled=&#8221;on|hover&#8221; button_bg_color__hover=&#8221;#8156EA&#8221; button_bg_enable_color__hover=&#8221;on&#8221; button_icon_color__hover_enabled=&#8221;on|hover&#8221; button_icon_color__hover=&#8221;#ffffff&#8221; url_new_window=&#8221;on&#8221; sticky_enabled=&#8221;0&#8243;][\/et_pb_button][et_pb_divider show_divider=&#8221;off&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||40px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_divider][\/et_pb_column][\/et_pb_row][et_pb_row use_custom_gutter=&#8221;on&#8221; admin_label=&#8221;Noticias relacionadas titulo&#8221; module_id=&#8221;fondo-articulos&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;#f7f7f7&#8243; width=&#8221;100%&#8221; collapsed=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_divider show_divider=&#8221;off&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; background_color=&#8221;RGBA(255,255,255,0)&#8221; custom_margin=&#8221;||40px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_divider][et_pb_heading title=&#8221;Quizas te pueda interesar&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; title_level=&#8221;h2&#8243; title_text_align=&#8221;center&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_heading][et_pb_divider show_divider=&#8221;off&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; custom_margin=&#8221;||30px||false|false&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_divider][\/et_pb_column][\/et_pb_row][et_pb_row admin_label=&#8221;Noticias relacionadas&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; width=&#8221;100%&#8221; custom_margin=&#8221;-150px||||false|false&#8221; custom_margin_tablet=&#8221;0px||||false|false&#8221; custom_margin_phone=&#8221;0px||||false|false&#8221; custom_margin_last_edited=&#8221;on|desktop&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_blog fullwidth=&#8221;off&#8221; posts_number=&#8221;3&#8243; include_categories=&#8221;current&#8221; show_author=&#8221;off&#8221; show_date=&#8221;off&#8221; show_pagination=&#8221;off&#8221; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][\/et_pb_blog][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Las\u00a0BAdIs\u00a0(Business Add-Ins) son una\u00a0herramienta de programaci\u00f3n ABAP orientada a objetos\u00a0que se utilizan en SAP para implementar validaciones y ampliaciones en el c\u00f3digo standard de SAP en versiones a partir de la 4.6c. A la pregunta \u00ab\u00bfQu\u00e9 son las BAdIs de SAP?\u00ab, dir\u00edamos que son la manera que da SAP de acomodar los requerimientos espec\u00edficos de [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"Lorem ipsum dolor sit amet consectetur adipiscing elit congue montes, imperdiet taciti erat elementum fermentum sem ante ultrices ridiculus, sagittis sociis egestas quisque ac semper quis odio. Aenean hendrerit ac metus dis nascetur aliquet mollis integer, rutrum vel laoreet posuere proin sagittis luctus est, tempus duis nisl ultrices parturient tempor praesent. Dignissim curabitur nascetur pellentesque augue fringilla pulvinar eros, tempus fames vehicula maecenas cubilia id, rutrum euismod integer ut scelerisque mus.\r\n\r\nVivamus auctor odio aenean rhoncus natoque dictum purus, volutpat pellentesque laoreet ridiculus consequat nisi varius euismod, augue platea convallis curae magnis taciti. Imperdiet nibh curabitur quisque orci consequat aenean pellentesque, cubilia duis senectus felis sed posuere tortor, magnis enim diam a odio sociis. Enim tellus nisl nec molestie augue luctus tempor habitant, nunc dictumst phasellus volutpat sem facilisis taciti, habitasse laoreet at turpis vel fermentum vulputate.","_et_gb_content_width":"","footnotes":""},"categories":[57,51],"tags":[],"class_list":["post-17889","post","type-post","status-publish","format-standard","hentry","category-sap-netweaver","category-user-experience-integracion"],"_links":{"self":[{"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts\/17889","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/comments?post=17889"}],"version-history":[{"count":4,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts\/17889\/revisions"}],"predecessor-version":[{"id":22538,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts\/17889\/revisions\/22538"}],"wp:attachment":[{"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/media?parent=17889"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/categories?post=17889"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/tags?post=17889"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}