{"id":4025,"date":"2023-01-17T08:00:31","date_gmt":"2023-01-17T07:00:31","guid":{"rendered":"http:\/\/192.168.20.3\/?p=4025"},"modified":"2024-12-10T10:19:59","modified_gmt":"2024-12-10T09:19:59","slug":"sap-workflow-con-clases-abap","status":"publish","type":"post","link":"https:\/\/orekait.com\/es\/sap-workflow-con-clases-abap\/","title":{"rendered":"SAP Workflow con clases ABAP<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.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\/2023\/01\/SAP-workflow.png&#8221; alt=&#8221;cloud-public&#8221; title_text=&#8221;SAP-workflow&#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; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Con las nuevas tecnolog\u00edas, es el iFlow el que se est\u00e1 convirtiendo en el principal protagonista en cuanto a los flujos de trabajo se refiere, pero no hay que olvidar los m\u00edticos Workflows de backend. En este caso se quiere recordarlos, pero no haciendo menci\u00f3n de los cl\u00e1sicos Business Objects, sino a las Clases utilizadas en Programaci\u00f3n Orientada a Objetos.<\/p>\n<p>Para ello se crea una clase Z desde la transacci\u00f3n SE24, a\u00f1adiendo los siguientes objetos, imprescindibles para su correcto funcionamiento, en la pesta\u00f1a Interfaces: BI_OBJECT, BI_PERSISTENT y IF_WORKFLOW.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4033 \" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2023\/01\/image001-.png\" alt=\"\" width=\"736\" height=\"187\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n<p>De esta manera se heredan autom\u00e1ticamente los siguientes m\u00e9todos:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4037 \" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2023\/01\/image003-.png\" alt=\"\" width=\"752\" height=\"225\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n<p>Es muy importante el m\u00e9todo FIND_BY_LPOR, que se ejecutar\u00e1 cada vez que impl\u00edcitamente sea necesario instanciar la clase ABAP. De esta manera, la sentencia necesaria en ella ser\u00e1 el CREATE OBJECT, devolviendo en el par\u00e1metro RESULT el resultado de su ejecuci\u00f3n.<\/p>\n<p>Se a\u00f1ade un evento en su pesta\u00f1a correspondiente, en este caso el nombre del evento elegido para este fin, es el CREATED con par\u00e1metro de entrada su ID y sus propiedades \u201cEvento de Instancia P\u00fablico\u201d.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4041\" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2023\/01\/image005-.png\" alt=\"\" width=\"754\" height=\"138\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n<p>A continuaci\u00f3n, se crea el Workflow de la misma manera que siempre; se realiza de la misma forma independientemente se trate de una clase ABAP o un BO, utilizando las transacciones tradicionales como la PFTC o SWDD.<\/p>\n<p>En la pesta\u00f1a de eventos desencadenantes se especifica el evento reci\u00e9n creado (asociado a la clase):<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4045 \" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2023\/01\/image007-.png\" alt=\"\" width=\"738\" height=\"259\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n<p>A la hora de la programaci\u00f3n, para lanzar el evento que desencadena el Workflow, mencionar que si antes se utilizaba la funci\u00f3n SWE_EVENT_CREATE (o bien SAP_WAPI_CREATE_EVENT\u2026), en el caso de eventos de clases es necesario utilizar el m\u00e9todo RAISE de la clase CL_SWF_EVT_EVENT.<\/p>\n<p>Se a\u00f1ade al container del Workflow un nuevo objeto haciendo referencia a la clase protagonista en el mismo:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4049 \" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2023\/01\/image009-.png\" alt=\"\" width=\"724\" height=\"337\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n<p>En este caso se ha creado una copia de la tarea est\u00e1ndar de decisi\u00f3n general en la que se a\u00f1ade un nuevo objeto del mismo tipo que la clase que se est\u00e1 tratando.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4053 \" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2023\/01\/image011-.png\" alt=\"\" width=\"362\" height=\"402\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n<p>Se realiza la asignaci\u00f3n de responsables, marcando la propiedad de Tarea General, para que pueda ser tratada por cualquier persona que la reciba en el Workplace o Bandeja de Entrada.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4057 \" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2023\/01\/image013-.png\" alt=\"\" width=\"346\" height=\"214\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n<p>Se modifica el binding entre el Workflow y la Tarea a\u00f1adiendo el objeto entre ambas.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4061 \" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2023\/01\/image015.png\" alt=\"\" width=\"830\" height=\"351\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n<p>Se realiza una prueba unitaria de este peque\u00f1o Workflow pulsando el bot\u00f3n de testear en el Workflow Builder. Se indica como par\u00e1metro de entrada al mismo un ID, como por ejemplo el 0000000100 y se comprueba que en la tarea de decisi\u00f3n est\u00e1 el objeto correctamente:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4065 \" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2023\/01\/img-6.png\" alt=\"\" width=\"722\" height=\"332\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n<p>Al hacer doble-click en el mismo se ejecuta la l\u00f3gica programada en el m\u00e9todo heredado del Objecto BI_OBJECT \u201cBI_OBJECT~EXECUTE_DEFAULT_METHOD\u201d en el que, a su vez, se indica que se realiza la llamada al m\u00e9todo display del mismo (mostrando su contenido):<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4069 \" src=\"https:\/\/orekait.com\/wp-content\/uploads\/2023\/01\/image020.png\" alt=\"\" width=\"449\" height=\"236\" \/><\/figure>\n<\/div>\n<p>&nbsp;<\/p>\n<p>Como se puede comprobar, utilizando las clases no son necesarias las macros (temidas en alguna que otra ocasi\u00f3n) utilizadas por el motor de SAP, a la hora de realizar la l\u00f3gica de programaci\u00f3n para un determinado Workflow.<\/p>\n<p>Aunque no ser\u00e1n f\u00e1ciles de olvidar, ya que hay muchos Workflows est\u00e1ndares que se utilizan y de los cuales nos aprovecharemos en todas las ocasiones posibles.<\/p>\n<p>Esperamos que este art\u00edculo te hayan sido de utilidad.\u00a0<strong>Si tienes alguna pregunta no dudes en dejarla en los comentarios o ponerte en\u00a0contacto\u00a0con nosotros.<\/strong><\/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; 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][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _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_image src=&#8221;https:\/\/orekait.com\/wp-content\/uploads\/2023\/06\/desviaciones-de-produccion-400&#215;402-1.png&#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_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;4.25.2&#8243; _module_preset=&#8221;default&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _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_image src=&#8221;https:\/\/orekait.com\/wp-content\/uploads\/2023\/05\/sistemas-hosting.png&#8221; title_text=&#8221;sistemas-hosting&#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_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Con las nuevas tecnolog\u00edas, es el iFlow el que se est\u00e1 convirtiendo en el principal protagonista en cuanto a los flujos de trabajo se refiere, pero no hay que olvidar los m\u00edticos Workflows de backend. En este caso se quiere recordarlos, pero no haciendo menci\u00f3n de los cl\u00e1sicos Business Objects, sino a las Clases utilizadas [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":4027,"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],"tags":[],"class_list":["post-4025","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-user-experience-integracion"],"_links":{"self":[{"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts\/4025","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=4025"}],"version-history":[{"count":7,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts\/4025\/revisions"}],"predecessor-version":[{"id":21007,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/posts\/4025\/revisions\/21007"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/media\/4027"}],"wp:attachment":[{"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/media?parent=4025"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/categories?post=4025"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/orekait.com\/es\/wp-json\/wp\/v2\/tags?post=4025"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}