{"id":8723,"date":"2021-05-07T08:00:31","date_gmt":"2021-05-07T06:00:31","guid":{"rendered":"http:\/\/192.168.20.3\/?p=8723"},"modified":"2024-12-11T10:22:22","modified_gmt":"2024-12-11T09:22:22","slug":"redefinicion-funciones-odata-tratamiento-de-ficheros-i","status":"publish","type":"post","link":"https:\/\/orekait.com\/es\/redefinicion-funciones-odata-tratamiento-de-ficheros-i\/","title":{"rendered":"Redefinici\u00f3n de funciones oData<br><span class=\"font-300\">Tratamiento de ficheros I<\/span>"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;section&#8221; _builder_version=&#8221;4.16&#8243; global_colors_info=&#8221;{}&#8221;][et_pb_row admin_label=&#8221;Imagen principal&#8221; _builder_version=&#8221;4.16&#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 src=&#8221;https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/Tratamiento-fichero-i.png&#8221; alt=&#8221;cloud-public&#8221; title_text=&#8221;Tratamiento-fichero-i&#8221; 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 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; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; width=&#8221;%22630%22&#8243; height=&#8221;%22307%22&#8243; hover_enabled=&#8221;0&#8243; global_colors_info=&#8221;{}&#8221; content__hover_enabled=&#8221;off|hover&#8221; sticky_enabled=&#8221;0&#8243;]<\/p>\n<p><strong>Las funciones de los servicios oData permiten ser redefinidas para lograr funcionalidades que, de otro modo, no ser\u00edan posibles.<\/strong>\u00a0En esta serie de art\u00edculos veremos c\u00f3mo hacer uso de las redefiniciones para tratar ficheros tanto desde el Cliente SAP Gateway como desde una aplicaci\u00f3n SAPUI5.<\/p>\n<h2>Servicio oData<\/h2>\n<p>Para comenzar, en el servicio oData creamos una entidad (tras crear previamente su correspondiente tabla de base de datos y estructura) para almacenar los datos de los ficheros. Se tienen las siguientes propiedades:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8732 size-full\" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image001.png\" alt=\"\" width=\"468\" height=\"163\" srcset=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image001.png 468w, https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image001-300x104.png 300w\" sizes=\"auto, (max-width: 468px) 100vw, 468px\" \/><\/figure>\n<\/div>\n<p>A continuaci\u00f3n, nos aseguramos de dejar marcado el tipo \u201cMedia\u201d en la entidad e implementamos las funciones GetEntity y GetEntitySet.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8736 size-full\" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image002.png\" alt=\"\" width=\"748\" height=\"100\" srcset=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image002.png 748w, https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image002-480x64.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 748px, 100vw\" \/><\/figure>\n<\/div>\n<h2>Redefinici\u00f3n de funciones<\/h2>\n<p>Para lograr el tratamiento de ficheros vamos a redefinir varias funciones.<\/p>\n<p>Al crearse un servicio oData, SAP genera autom\u00e1ticamente cuatro clases:<\/p>\n<ul>\n<li><strong>ZCL_<em>NOMBRE_ODATA<\/em>_DPC<\/strong>\u00a0(Data Provider Class)<\/li>\n<li><strong>ZCL_<em>NOMBRE_ODATA<\/em>_MPC<\/strong>\u00a0(Model Provider Class)<\/li>\n<li><strong>ZCL_<em>NOMBRE_ODATA<\/em>_DPC_EXT<\/strong><\/li>\n<li><strong>ZCL_<em>NOMBRE_ODATA<\/em>_MPC_EXT<\/strong><\/li>\n<\/ul>\n<p>Cada vez que, desde la transacci\u00f3n SEGW, se genera el servicio oData, las clases DPC y MPC se crean de nuevo. Por ello, la redefinici\u00f3n se realiza en las clases de extensi\u00f3n\u00a0<em>_EXT<\/em>, ya que, si se hiciese en las otras, se borrar\u00eda lo que hemos implementado en cuanto activemos el servicio.<\/p>\n<p>La clase MPC contiene los metadatos del servicio, es decir, trata sobre las entidades y sus propiedades.<\/p>\n<p>La clase DPC contiene la implementaci\u00f3n del servicio, es decir, aqu\u00ed se encuentran, por ejemplo, los m\u00e9todos GetEntity, Update, Create\u2026 Tambi\u00e9n se emplea para implementar los Function Import.<\/p>\n<p>Una vez conocidos los conceptos generales sobre estas clases, podemos comenzar con las redefiniciones necesarias para el tratamiento de ficheros.<\/p>\n<p>Primero, en la transacci\u00f3n SE80 buscamos la clase\u00a0<strong>MPC_EXT\u00a0<\/strong>de nuestro oData y redefinimos el m\u00e9todo DEFINE.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8740 size-full\" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image004.png\" alt=\"\" width=\"657\" height=\"356\" srcset=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image004.png 657w, https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image004-480x260.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 657px, 100vw\" \/><\/figure>\n<\/div>\n<p>Indicamos el nombre de nuestra entidad<strong>\u00a0(Fichero)\u00a0<\/strong>y el nombre de la propiedad que almacena su contenido<strong>\u00a0(Content).<\/strong><\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8744 size-full\" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image006.png\" alt=\"\" width=\"641\" height=\"243\" srcset=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image006.png 641w, https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image006-480x182.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 641px, 100vw\" \/><\/figure>\n<\/div>\n<p>Activamos los cambios y accedemos a la clase\u00a0<strong>DPC_EXT<\/strong>, donde redefinimos el m\u00e9todo \/IWBEP\/IF_MGW_APPL_SRV_RUNTIME~GET_STREAM, gracias al cual podremos descargar ficheros.<\/p>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8748 \" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image008.png\" alt=\"\" width=\"802\" height=\"417\" srcset=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image008.png 802w, https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image008-480x250.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 802px, 100vw\" \/><\/figure>\n<p>Por \u00faltimo,<strong>\u00a0redefinimos el m\u00e9todo<\/strong>\u00a0\/IWBEP\/IF_MGW_APPL_SRV_RUNTIME~CREATE_STREAM, gracias al cual podremos subir ficheros.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8752 \" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image010.png\" alt=\"\" width=\"803\" height=\"379\" srcset=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image010.png 803w, https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image010-480x227.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 803px, 100vw\" \/><\/figure>\n<\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-8756 \" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image012.png\" alt=\"\" width=\"781\" height=\"381\" srcset=\"https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image012.png 781w, https:\/\/orekait.com\/wp-content\/uploads\/2021\/05\/image012-480x234.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 781px, 100vw\" \/><\/figure>\n<\/div>\n<p>No te pierdas el\u00a0<strong>pr\u00f3ximo art\u00edculo sobre tratamiento de ficheros<\/strong>, veremos qu\u00e9 representan los par\u00e1metros\u00a0<em>slug<\/em>\u00a0y\u00a0<em>mimetype<\/em>\u00a0mediante ejemplos tanto en el Cliente SAP Gateway como en una aplicaci\u00f3n Fiori.<\/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; 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 funciones de los servicios oData permiten ser redefinidas para lograr funcionalidades que, de otro modo, no ser\u00edan posibles.\u00a0En esta serie de art\u00edculos veremos c\u00f3mo hacer uso de las redefiniciones para tratar ficheros tanto desde el Cliente SAP Gateway como desde una aplicaci\u00f3n SAPUI5. Servicio oData Para comenzar, en el servicio oData creamos una entidad [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":8725,"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":[51,52],"tags":[],"class_list":["post-8723","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-user-experience-integracion","category-sapui5"],"_links":{"self":[{"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts\/8723","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=8723"}],"version-history":[{"count":6,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts\/8723\/revisions"}],"predecessor-version":[{"id":21559,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts\/8723\/revisions\/21559"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/media\/8725"}],"wp:attachment":[{"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/media?parent=8723"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/categories?post=8723"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/tags?post=8723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}