{"id":41,"date":"2021-05-17T02:31:25","date_gmt":"2021-05-17T05:31:25","guid":{"rendered":"https:\/\/www.matiasvillagarcia.com\/blog\/?p=41"},"modified":"2021-06-24T19:13:49","modified_gmt":"2021-06-24T22:13:49","slug":"clases-abap-globales","status":"publish","type":"post","link":"https:\/\/www.matiasvillagarcia.com\/blog\/index.php\/2021\/05\/17\/clases-abap-globales\/","title":{"rendered":"Clases ABAP (Globales)"},"content":{"rendered":"\n<p>En SAP hay dos tipos de clases, las que podemos desarrollar en un reporte Z, como vimos en el post anterior, o las clases globales que son las que definimos en la transacci\u00f3n SE24.<\/p>\n\n\n\n<p>La principal diferencia entre una clase global y una local es que las locales son especificas a un reporte, mientras las clases globales pueden ser usadas desde cualquier lado.<\/p>\n\n\n\n<p>Para definir una clase, vamos a la transacci\u00f3n SE24, para seguir con el ejemplo anterior vamos a volver a crear la clase veh\u00edculo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"644\" height=\"324\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-1.png\" alt=\"\" class=\"wp-image-42\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-1.png 644w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-1-300x151.png 300w\" sizes=\"auto, (max-width: 644px) 100vw, 644px\" \/><\/figure>\n\n\n\n<p>Hacemos click en &#8220;Create&#8221;<\/p>\n\n\n\n<p>En la siguiente ventana ingresamos una descripci\u00f3n y hacemos click en &#8220;SAVE&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"527\" height=\"358\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-2.png\" alt=\"\" class=\"wp-image-43\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-2.png 527w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-2-300x204.png 300w\" sizes=\"auto, (max-width: 527px) 100vw, 527px\" \/><\/figure>\n\n\n\n<p>Creamos el objeto como un objeto local.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"471\" height=\"315\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-3.png\" alt=\"\" class=\"wp-image-44\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-3.png 471w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-3-300x201.png 300w\" sizes=\"auto, (max-width: 471px) 100vw, 471px\" \/><\/figure>\n\n\n\n<p>Nos aparecer\u00e1 la siguiente ventana donde debemos especificar el m\u00e9todo a crear, visibilidad, tipo, etc.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"968\" height=\"372\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-4.png\" alt=\"\" class=\"wp-image-45\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-4.png 968w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-4-300x115.png 300w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-4-768x295.png 768w\" sizes=\"auto, (max-width: 968px) 100vw, 968px\" \/><\/figure>\n\n\n\n<p>El siguiente paso es definir los par\u00e1metros de los m\u00e9todos, para eso seleccionamos un m\u00e9todo y hacemos click en el bot\u00f3n &#8220;Parameters&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"934\" height=\"376\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-8.png\" alt=\"\" class=\"wp-image-50\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-8.png 934w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-8-300x121.png 300w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-8-768x309.png 768w\" sizes=\"auto, (max-width: 934px) 100vw, 934px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"337\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-6-1024x337.png\" alt=\"\" class=\"wp-image-48\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-6-1024x337.png 1024w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-6-300x99.png 300w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-6-768x253.png 768w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-6.png 1141w\" sizes=\"auto, (max-width: 980px) 100vw, 980px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"316\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-7-1024x316.png\" alt=\"\" class=\"wp-image-49\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-7-1024x316.png 1024w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-7-300x93.png 300w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-7-768x237.png 768w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-7.png 1111w\" sizes=\"auto, (max-width: 980px) 100vw, 980px\" \/><\/figure>\n\n\n\n<p>Vamos a la solapa &#8220;Attributes&#8221; y definimos nuestra variable protegida. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"833\" height=\"305\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-14.png\" alt=\"\" class=\"wp-image-58\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-14.png 833w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-14-300x110.png 300w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-14-768x281.png 768w\" sizes=\"auto, (max-width: 833px) 100vw, 833px\" \/><\/figure>\n\n\n\n<p>Con nuestra clase con los m\u00e9todos y variable definidas le damos click a activar.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"932\" height=\"362\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-9.png\" alt=\"\" class=\"wp-image-52\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-9.png 932w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-9-300x117.png 300w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-9-768x298.png 768w\" sizes=\"auto, (max-width: 932px) 100vw, 932px\" \/><\/figure>\n\n\n\n<p>Nos aparecer\u00e1 una ventana como la siguiente en donde seleccionamos todos los objetos y le damos OK.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"803\" height=\"619\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-10.png\" alt=\"\" class=\"wp-image-53\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-10.png 803w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-10-300x231.png 300w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-10-768x592.png 768w\" sizes=\"auto, (max-width: 803px) 100vw, 803px\" \/><\/figure>\n\n\n\n<p>Nuestra clase deber\u00eda haber quedado activa.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"180\" height=\"41\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-11.png\" alt=\"\" class=\"wp-image-54\"\/><\/figure>\n\n\n\n<p>Finalmente hay que hacer el c\u00f3digo que en cada m\u00e9todo para que la clase haga algo.<\/p>\n\n\n\n<p>Metodo obtener tipo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WRITE 'AUTO'.<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"669\" height=\"240\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-12.png\" alt=\"\" class=\"wp-image-56\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-12.png 669w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-12-300x108.png 300w\" sizes=\"auto, (max-width: 669px) 100vw, 669px\" \/><\/figure>\n\n\n\n<p>M\u00e9todo obtener marca:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WRITE 'FORD'.<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"636\" height=\"241\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-13.png\" alt=\"\" class=\"wp-image-57\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-13.png 636w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-13-300x114.png 300w\" sizes=\"auto, (max-width: 636px) 100vw, 636px\" \/><\/figure>\n\n\n\n<p>M\u00e9todo set_notas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lv_notas = notas.<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"708\" height=\"313\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-15.png\" alt=\"\" class=\"wp-image-59\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-15.png 708w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-15-300x133.png 300w\" sizes=\"auto, (max-width: 708px) 100vw, 708px\" \/><\/figure>\n\n\n\n<p>M\u00e9todo ver_notas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>notas = lv_notas.<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"740\" height=\"303\" src=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-16.png\" alt=\"\" class=\"wp-image-60\" srcset=\"https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-16.png 740w, https:\/\/www.matiasvillagarcia.com\/blog\/wp-content\/uploads\/2021\/05\/image-16-300x123.png 300w\" sizes=\"auto, (max-width: 740px) 100vw, 740px\" \/><\/figure>\n\n\n\n<p>En  este punto ya tenemos nuestra clase lista, solo nos resta volver a activarla para asegurarnos que esta todo OK.<\/p>\n\n\n\n<p>Ahora nuestra clase estar\u00e1 disponible para ser usada desde cualquier reporte que se quiera crear.<\/p>\n\n\n\n<p>Abajo dejo un ejemplo de uso.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>*&amp;---------------------------------------------------------------------*\n*&amp; Report Z_CLASE_GLOBAL\n*&amp;---------------------------------------------------------------------*\n*&amp;\n*&amp;---------------------------------------------------------------------*\nREPORT Z_CLASE_GLOBAL.\n\nDATA: lc_cg TYPE REF TO ZCL_VEHICULO.\n\nCREATE OBJECT lc_cg.\n\nlc_cg-&gt;set_notas( 'Una nota' ).\nlc_cg-&gt;obtener_tipo( ).\nNEW-LINE.\nlc_cg-&gt;obtener_marca( ).\nNEW-LINE.\n\nDATA: lv_notas TYPE string.\nlc_cg-&gt;ver_notas( IMPORTING notas = lv_notas ).\nWRITE lv_notas.<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>En SAP hay dos tipos de clases, las que podemos desarrollar en un reporte Z, como vimos en el post anterior, o las clases globales que son las que definimos en la transacci\u00f3n SE24. La principal diferencia entre una clase global y una local es que las locales son especificas a un reporte, mientras las [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,7],"tags":[],"class_list":["post-41","post","type-post","status-publish","format-standard","hentry","category-abap","category-oop"],"_links":{"self":[{"href":"https:\/\/www.matiasvillagarcia.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.matiasvillagarcia.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.matiasvillagarcia.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.matiasvillagarcia.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.matiasvillagarcia.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=41"}],"version-history":[{"count":5,"href":"https:\/\/www.matiasvillagarcia.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/41\/revisions"}],"predecessor-version":[{"id":83,"href":"https:\/\/www.matiasvillagarcia.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/41\/revisions\/83"}],"wp:attachment":[{"href":"https:\/\/www.matiasvillagarcia.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.matiasvillagarcia.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.matiasvillagarcia.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}