<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7039134831961485016</id><updated>2011-09-12T13:56:31.904-03:00</updated><category term='IDOC'/><category term='Field Exit'/><category term='CRM'/><category term='Program'/><category term='Dialog'/><category term='SD'/><category term='Report'/><category term='MM'/><category term='DDIC'/><category term='Validacion OB28'/><category term='Transactions'/><category term='BADI'/><category term='BASIS'/><category term='Debbuging'/><category term='Webdynpro JAVA'/><category term='Tips And Tricks'/><category term='BTE'/><category term='User Exit'/><category term='SD-User Exit'/><category term='Function'/><category term='DB'/><category term='ABAP'/><category term='MM - Function'/><category term='HR'/><category term='PS'/><category term='SapScript'/><category term='LDB'/><category term='Smartform'/><category term='BSP'/><title type='text'>..:: RAMGV::..  -[ SAP &amp; ABAP Stuff ]-</title><subtitle type='html'>Blog personal de desarrollos en Sistemas SAP</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ramgv-sap.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>68</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-2911547367146588081</id><published>2010-12-15T23:12:00.003-03:00</published><updated>2011-07-25T20:36:19.771-03:00</updated><title type='text'>Mudanza de blog</title><content type='html'>Después de mucho tiempo sin poder postear por problemas de bloqueos de puertos en el trabajo, voy a continuar mi blog en wordpress.&lt;br /&gt;&lt;br /&gt;El blog nuevo con la info importada es:&lt;br /&gt;&lt;br /&gt;http://ramgvsap.wordpress.com&lt;br /&gt;&lt;br /&gt;ramgv . wordpress . com&lt;br /&gt;&lt;br /&gt;por el filtro de blogger -_-&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ramgvsap.wordpress.com/"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Saludos&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-2911547367146588081?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2911547367146588081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2911547367146588081'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2010/12/mudanza-de-blog.html' title='Mudanza de blog'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-4310611798510707751</id><published>2009-11-16T11:41:00.001-03:00</published><updated>2009-11-16T11:41:40.314-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='User Exit'/><category scheme='http://www.blogger.com/atom/ns#' term='MM'/><category scheme='http://www.blogger.com/atom/ns#' term='BADI'/><title type='text'>Nueva Solapa en tx ME51n/ME52n/ME53n</title><content type='html'>&lt;p&gt;La ampliación es la MEREQ001 – Para usarle es necesario crear un projecto en la CMOD.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Yrm8x0k2PCg/SwFkiWIb9kI/AAAAAAAAAKM/BaUW0Apxmz0/s1600-h/clip_image002%5B4%5D.jpg"&gt;&lt;img title="clip_image002" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="127" alt="clip_image002" src="http://lh6.ggpht.com/_Yrm8x0k2PCg/SwFki171aeI/AAAAAAAAAKQ/z2hor6rgOCQ/clip_image002_thumb%5B1%5D.jpg?imgmax=800" width="415" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;1 - Primero hay que ampliar el include CI_EBANDB con los campos que nosotros vamos a desear. (esto extenderá la tabla EBAN).&lt;/p&gt;  &lt;p&gt;Ejemplo ZLAND1 y ZXBLNR&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Yrm8x0k2PCg/SwFkkV-qrpI/AAAAAAAAAKU/tiuP9NDingA/s1600-h/clip_image004%5B4%5D.jpg"&gt;&lt;img title="clip_image004" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="122" alt="clip_image004" src="http://lh4.ggpht.com/_Yrm8x0k2PCg/SwFkk4nfxKI/AAAAAAAAAKY/jQ7OpgxjDho/clip_image004_thumb%5B1%5D.jpg?imgmax=800" width="432" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2- Modificamos la Screen, la ampliación hay que modificar la subscreen 0111&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Yrm8x0k2PCg/SwFklVj4mmI/AAAAAAAAAKc/3Z4oCgS1DUk/s1600-h/clip_image006%5B4%5D.jpg"&gt;&lt;img title="clip_image006" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="22" alt="clip_image006" src="http://lh5.ggpht.com/_Yrm8x0k2PCg/SwFklwEIjWI/AAAAAAAAAKg/JQ_YMDHMAHg/clip_image006_thumb%5B1%5D.jpg?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ejemplo simple&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Yrm8x0k2PCg/SwFkmMoHTGI/AAAAAAAAAKk/3OPeJ8obDsk/s1600-h/clip_image008%5B5%5D.jpg"&gt;&lt;img title="clip_image008" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="266" alt="clip_image008" src="http://lh6.ggpht.com/_Yrm8x0k2PCg/SwFkmw3Z8rI/AAAAAAAAAKo/xoXc2_VPcHM/clip_image008_thumb%5B2%5D.jpg?imgmax=800" width="400" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3- Modificamos principalmente las funciones EXIT_SAPLMEREQ_001 y EXIT_SAPLMEREQ_003&lt;/p&gt;  &lt;p&gt;La EXIT_SAPLMEREQ_001 es para pasar la información al customer exit y la EXIT_SAPLMEREQ_003 para grabar los datos de exit a las tablas.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;EXIT_SAPLMEREQ_001&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;*&amp;amp;---------------------------------------------------------------------*     &lt;br /&gt;*&amp;amp;&amp;#160; Include&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ZXM02U01      &lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*      &lt;br /&gt;data&amp;#160;&amp;#160; :&amp;#160; i_mereq_item type mereq_item,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; gf_aktyp type aktyp,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lc_garg type eqegraarg,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lc_edit(1),      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ls_head type mereq_header,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lc_header type ref to if_purchase_requisition,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ti_enq type table of seqg3 .      &lt;br /&gt;CLEAR lc_edit.      &lt;br /&gt;if im_req_item is initial.      &lt;br /&gt;else.      &lt;br /&gt;&amp;#160; i_mereq_item = im_req_item-&amp;gt;get_data( ).      &lt;br /&gt;endif.      &lt;br /&gt;&amp;quot; Chequeo para visualizar/modificar el campo (ya que por default está simpre editable      &lt;br /&gt;if sy-tcode eq 'ME53N'.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; lc_header = im_req_item-&amp;gt;get_requisition( ).      &lt;br /&gt;concatenate sy-mandt ls_head-banfn '*****' into lc_garg.      &lt;br /&gt;call function 'ENQUEUE_READ'      &lt;br /&gt;exporting      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; gclient = sy-mandt      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; gname&amp;#160;&amp;#160; = 'EBAN'      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; garg&amp;#160;&amp;#160;&amp;#160; = lc_garg      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; guname&amp;#160; = sy-uname      &lt;br /&gt;tables      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; enq&amp;#160;&amp;#160;&amp;#160;&amp;#160; = ti_enq.      &lt;br /&gt;if ti_enq[] is not initial.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lc_edit = 'X'.      &lt;br /&gt;else.      &lt;br /&gt;clear lc_edit.      &lt;br /&gt;endif.      &lt;br /&gt;endif.      &lt;br /&gt;EXPORT g_edit = lc_edit TO MEMORY ID 'FLAG_EDIT'.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;EXIT_SAPLMEREQ_003&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;*&amp;amp;---------------------------------------------------------------------*&lt;/p&gt;    &lt;p&gt;*&amp;amp;&amp;#160; Include&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ZXM02U03     &lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*      &lt;br /&gt;tables: ci_ebandb.      &lt;br /&gt;data : l_mereq_item type mereq_item.      &lt;br /&gt;if not im_req_item is initial.      &lt;br /&gt;&amp;#160;&amp;#160; l_mereq_item = im_req_item-&amp;gt;get_data( ).      &lt;br /&gt;if ( ci_ebandb-zland1 ne l_mereq_item-zland1 ).      &lt;br /&gt;&amp;#160;&amp;#160; move-corresponding&amp;#160; ci_ebandb to l_mereq_item .      &lt;br /&gt;&amp;#160;&amp;#160; call method im_req_item-&amp;gt;set_data( l_mereq_item ).      &lt;br /&gt;&amp;#160;&amp;#160; ex_changed = 'X'.      &lt;br /&gt;endif.      &lt;br /&gt;endif.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;En el PBO de la SubScreen agrego la lógica para determinar si hay que grisar el campo o no.&lt;/p&gt;  &lt;p&gt;module status_0111 output.   &lt;br /&gt;*&amp;#160; SET PF-STATUS 'xxxxxxxx'.    &lt;br /&gt;set titlebar 'TEST'.    &lt;br /&gt;data: l_edit(1).    &lt;br /&gt;* se chequea que se esté en la ME51N/2 o 3 en modo edición    &lt;br /&gt;import g_edit to l_edit from memory id 'FLAG_EDIT'.    &lt;br /&gt;loop at screen.    &lt;br /&gt;if&amp;#160; sy-tcode = 'ME51N' or sy-tcode = 'ME52N' or ( sy-tcode = 'ME53N' and l_edit = 'X' ).    &lt;br /&gt;screen-input = 1.    &lt;br /&gt;else.    &lt;br /&gt;screen-input = 0.    &lt;br /&gt;endif.    &lt;br /&gt;modify screen.    &lt;br /&gt;endloop.    &lt;br /&gt;endmodule.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot; STATUS_0111&amp;#160; OUTPUT&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;RESULTADO FINAL&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Visualización&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Yrm8x0k2PCg/SwFknXJQZ7I/AAAAAAAAAKs/ZCgAu-6cCsk/s1600-h/clip_image010%5B5%5D.jpg"&gt;&lt;img title="clip_image010" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="101" alt="clip_image010" src="http://lh6.ggpht.com/_Yrm8x0k2PCg/SwFkn9WhI8I/AAAAAAAAAKw/_e7MJeUARGw/clip_image010_thumb%5B2%5D.jpg?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Modificación&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Yrm8x0k2PCg/SwFkoel9PYI/AAAAAAAAAK0/SXSxLkzWUGs/s1600-h/clip_image012%5B4%5D.jpg"&gt;&lt;img title="clip_image012" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="82" alt="clip_image012" src="http://lh5.ggpht.com/_Yrm8x0k2PCg/SwFkonZtsDI/AAAAAAAAAK4/XJZi-mzYKMA/clip_image012_thumb%5B1%5D.jpg?imgmax=800" width="644" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Al grabar se grabará el campo creado en la EBAN.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A modo informativo dejo la función del resto de las funciones, sirven para hacer validaciones, mostrar mensajes, etc.&lt;/p&gt;  &lt;p&gt;Function exits&lt;/p&gt;  &lt;p&gt;The screen is linked to the standard program via function modules. There are function modules that:&lt;/p&gt;  &lt;p&gt;o Provide your subscreen with data (export)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;- EXIT_SAPLMEREQ_001 Export Data to Customer Subscreen for Purchase Requisition(PBO)&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;- EXIT_SAPLMEREQ_002 Prepare Customer Subscreen for Requisition (PAI Before Subscreen PAI)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;o Get data from your subscreens (import)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;- EXIT_SAPLMEREQ_003 Import Data from Customer Subscreen for Purchase Requisition&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You can set or supply your own data fields in the PBO function modules.You receive the current (possibly changed in comparison to the PBO call) standard program data in the PAI function module. You can return your fields to the standard program in the import function modules. For this purpose, read the current status of the purchase requisition object using the method get_data in a local structure of type mereq_item. Now write the customer data in this structure and reset the data in the purchase requisition object using the method set_data.&lt;/p&gt;  &lt;p&gt;You should note that function exits 001, 002, and 003 are determined for dialog purposes only and are not headed for when creating purchase requisitions using function modules or BAPIs. Do not issue any error messages in these function modules either. There is a separate function exit for verifying the customer fields (EXIT_SAPLMEREQ_005 Checking Customer's Own Purchase Requisition Data (Without Dialog)). The object reference, the new data, the data from the last verification, and the database status of the purchase requisition items are available to you here. Parameter IM-FULL_CHECK is set if the user has chosen to update or check explicitly. Parameter IM_ITEM_HAS_ERRORS informs you whether the purchase requisition item has been classified by the standard program as containing errors.&lt;/p&gt;  &lt;p&gt;The task of this function exit is to ensure the consistency of the customer-specific fields. You can also change standard fields using the public interface if_purchase_requisition_item. The fields listed in structure MEREQ_ITEM_S_CUST_ALLOWED are available for changing. You fill the return table EX_MESSAGES to issue the errors and warnings to the standard program and the user. The fields TYPE, ID, NUMBER, and MESSAGE_V1 thru MESSAGE_V4 are analyzed and added to the standard error log. You have to set the return parameter EX_RECHECK_ITEM if you have changed standard fields. The standard program checks the purchase requisition&lt;/p&gt;  &lt;p&gt;item after exiting the function exit again. You should note that the functions exits are chosen again when this is done. To avoid endless loops, you should not set this parameter every time. The purchase requisition is updated in two steps. In the first step (PREPARE), the function exit EXIT_SAPLMEREQ_008 (Prepare for Update of Customer's Own Purchase Requisition Data) is called up. The system tells you the old (temporary) purchase requisition number and the new purchase requisition number. In addition, the changes are given to tables EBAN and EBKN. You can no longer change the fields here. You use this module to prepare for updating your own data and tables. Do not execute any database operations or call any function modules for the update (in update task). Make a note of which data you want to update in your function group. You should note that more than one purchase requisition can be processed at the same time (for example, source of supply assignment or collective release). This function exit is processed once for each header in the purchase requisition. The second step in the update process performs the database operations&amp;#160; or calls the update modules. Function exit EXIT_SAPLMEREQ_006 (Update o Customer's Own Purchase Requisition Data for all PReqs Prepared). This function exit is called up only once for all purchase requisitions that have been changed. You now update the data that you noted in the first step. When all purchase requisitions have been successfully updated, function exit EXIT_SAPLMEREQ_004 (Reset Customer Data After Updating All Purchas Requisitions (Without Dialog)). You reset the data for your function group(s) here. &lt;/p&gt;  &lt;p&gt;If you want to read your own tables for this, you should use the function module EXIT_SAPLMEREQ_007. This is called when the purchase requisition is read from the database. You receive the transaction type via the purchase requisition header. The interface if_purchase_requsition_item provides a method,&amp;#160; GET_REQUISITION, that returns the purchase requisition header. Using method GET_TRANSACTION_STATE for interface if_purchase_requisition, you can determine the transaction type from field ex_document. &lt;/p&gt;  &lt;p&gt;o A Display&lt;/p&gt;  &lt;p&gt;o V Change&lt;/p&gt;  &lt;p&gt;o H Create&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-4310611798510707751?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4310611798510707751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4310611798510707751'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/11/nueva-solapa-en-tx-me51nme52nme53n.html' title='Nueva Solapa en tx ME51n/ME52n/ME53n'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_Yrm8x0k2PCg/SwFki171aeI/AAAAAAAAAKQ/z2hor6rgOCQ/s72-c/clip_image002_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-5541474619920343219</id><published>2009-09-29T16:27:00.001-03:00</published><updated>2009-09-29T16:27:59.913-03:00</updated><title type='text'>Crear un AUTHORITY-CHECK</title><content type='html'>&lt;p&gt;1 -Creamos en la SU20 un ámbito de autorización (elemento de dato) que luego usaremos en el objeto. &lt;a href="http://lh6.ggpht.com/_Yrm8x0k2PCg/SsJfooLN4ZI/AAAAAAAAAJU/q__sGXuTQ8c/s1600-h/image%5B2%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="26" alt="image" src="http://lh5.ggpht.com/_Yrm8x0k2PCg/SsJfpIvaSGI/AAAAAAAAAJY/SMNLGaF6p5c/image_thumb.png?imgmax=800" width="28" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Nombre del campo Z____ y ponemos el elemento de Dato correspondiente a ese campo.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Yrm8x0k2PCg/SsJfpj_-hNI/AAAAAAAAAJc/30o57f6792c/s1600-h/image%5B5%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="image" src="http://lh6.ggpht.com/_Yrm8x0k2PCg/SsJfqER3PQI/AAAAAAAAAJg/56GcBHAvPYE/image_thumb%5B1%5D.png?imgmax=800" width="221" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;y luego &lt;a href="http://lh6.ggpht.com/_Yrm8x0k2PCg/SsJfqgV9CpI/AAAAAAAAAJk/_47gX51YHP8/s1600-h/image%5B8%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="26" alt="image" src="http://lh6.ggpht.com/_Yrm8x0k2PCg/SsJfrCxj0uI/AAAAAAAAAJo/CNR6cdld19I/image_thumb%5B2%5D.png?imgmax=800" width="25" border="0" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2 –Creamos la clase de autorización en la SU21 &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Yrm8x0k2PCg/SsJfrg6LpSI/AAAAAAAAAJs/ftGKNTmmrP8/s1600-h/image%5B11%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="80" alt="image" src="http://lh4.ggpht.com/_Yrm8x0k2PCg/SsJfsMcdAeI/AAAAAAAAAJw/l2C68EyYuy0/image_thumb%5B3%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_Yrm8x0k2PCg/SsJfsvq0fCI/AAAAAAAAAJ0/PMNzote_pLw/s1600-h/image%5B14%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="77" alt="image" src="http://lh4.ggpht.com/_Yrm8x0k2PCg/SsJftq7DzOI/AAAAAAAAAJ4/b76KZO3UOnA/image_thumb%5B4%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;y luego posicionandonoss en la clase recién creada&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Yrm8x0k2PCg/SsJfuP2otFI/AAAAAAAAAJ8/faf64NsSW6c/s1600-h/image%5B17%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="90" alt="image" src="http://lh5.ggpht.com/_Yrm8x0k2PCg/SsJfugjQlGI/AAAAAAAAAKA/x7VJqPkAGsg/image_thumb%5B5%5D.png?imgmax=800" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Elegimos el nombre del objeto y ponemos el campo creado en el punto 1.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Yrm8x0k2PCg/SsJfvG-oBsI/AAAAAAAAAKE/9TMo__BMCz8/s1600-h/image%5B20%5D.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="244" alt="image" src="http://lh3.ggpht.com/_Yrm8x0k2PCg/SsJfvjHul1I/AAAAAAAAAKI/o8SSKpj8MKQ/image_thumb%5B6%5D.png?imgmax=800" width="237" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Grabamos y salimos.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;3- Definimos los valores posibles de nuestro campo definido y el BASIS asignará a los roles de los usuarios el objeto de autorización creado y pondrá los valores de cada usuario.&lt;/p&gt;  &lt;p&gt;4- En el código fuente&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160; AUTHORITY-CHECK OBJECT ‘ZBOTONES’&amp;#160;&amp;#160;&amp;#160; &lt;em&gt;“Objeto creado&lt;/em&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ID ‘ZUCOMM’ FIELD ‘SAVE’.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;em&gt;“sy-ucomm que tengo que verificar.&lt;/em&gt;      &lt;br /&gt;&amp;#160; IF sy-subrc EQ 0.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; “&lt;em&gt;El usuario tiene el valor SAVE para dicho campo en su rol&lt;/em&gt;      &lt;br /&gt;&amp;#160; ELSE.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; “&lt;em&gt;El usuario no tiene el valor SAVE para dicho campo en su rol&lt;/em&gt;      &lt;br /&gt;&amp;#160; ENDIF.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-5541474619920343219?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/5541474619920343219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/5541474619920343219'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/09/crear-un-authority-check.html' title='Crear un AUTHORITY-CHECK'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_Yrm8x0k2PCg/SsJfpIvaSGI/AAAAAAAAAJY/SMNLGaF6p5c/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-8132320140796413315</id><published>2009-09-23T16:36:00.001-03:00</published><updated>2009-09-23T16:36:00.560-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ABAP'/><title type='text'>Redondeo y decimales en ABAP</title><content type='html'>&lt;p&gt;Muchas veces tenesmo problemas con el redondeo, acá hay algunas instrucciones útiles para el manejo de los mismos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;DATA N TYPE P DECIMALS 2.     &lt;br /&gt;DATA M TYPE P DECIMALS 2 VALUE '-5.55'.      &lt;br /&gt;N = ABS( M ). WRITE: 'ABS: ', N.      &lt;br /&gt;N = SIGN( M ). WRITE: / 'SIGN: ', N.      &lt;br /&gt;N = CEIL( M ). WRITE: / 'CEIL: ', N.      &lt;br /&gt;N = FLOOR( M ). WRITE: / 'FLOOR:', N.      &lt;br /&gt;N = TRUNC( M ). WRITE: / 'TRUNC:', N.      &lt;br /&gt;N = FRAC( M ). WRITE: / 'FRAC: ', N.      &lt;br /&gt;* The output appears as follows:      &lt;br /&gt;*      &lt;br /&gt;* ABS: 5.55 (nro absoluto)      &lt;br /&gt;*      &lt;br /&gt;* SIGN: 1.00-      &lt;br /&gt;*      &lt;br /&gt;* CEIL: 5.00- (redondea hacia arriba)      &lt;br /&gt;*      &lt;br /&gt;* FLOOR: 6.00- (redondea hacia abajo)      &lt;br /&gt;*      &lt;br /&gt;* TRUNC: 5.00- (parte entera)      &lt;br /&gt;*      &lt;br /&gt;* FRAC: 0.55- (parte decimal)&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-8132320140796413315?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8132320140796413315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8132320140796413315'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/09/redondeo-y-decimales-en-abap.html' title='Redondeo y decimales en ABAP'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-686006158002340502</id><published>2009-08-25T10:08:00.001-03:00</published><updated>2009-08-25T10:08:01.536-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Report'/><title type='text'>Salvar datos en ALV editable con un status bar Z</title><content type='html'>&lt;p&gt;El otro d&amp;#237;a me cruce con un error muy bizarro. Yo ten&amp;#237;a un ALV editable al cual tuve que agregarle un status bar Z por agregar un bot&amp;#243;n nuevo.&lt;/p&gt;  &lt;p&gt;Copie la status bar standard a mi programa y lo modifique. La status bar STANDARD que esta en el grupo de funciones SALV, no tiene definido el Function Code del boton Grabar (SAVE). entonces le setee el nombre &amp;amp;SAVE.&lt;/p&gt;  &lt;p&gt;Que paso ? Si yo cambiaba el valor de algun campo editable del ALV al llegar al USER_COMMAND no ve&amp;#237;a el nuevo valor ingresado sino que ve&amp;#237;a el antiguo. Y eso andaba bien por lo cual el error deb&amp;#237;a estar en la status bar. Y efectivamente as&amp;#237; fue.&lt;/p&gt;  &lt;p&gt;Para que los datos de un ALV editable sea visibles en el FORM USER_COMMAND, el function code de la status bar tiene que ser &amp;amp;DATA_SAVE. De tener otro nombre la informaci&amp;#243;n no es pasada al USER_COMMAND.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-686006158002340502?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/686006158002340502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/686006158002340502'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/08/salvar-datos-en-alv-editable-con-un.html' title='Salvar datos en ALV editable con un status bar Z'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-113713296573860837</id><published>2009-06-01T16:57:00.001-03:00</published><updated>2009-06-01T16:57:29.688-03:00</updated><title type='text'>Colores en ALV</title><content type='html'>&lt;p&gt;Si corremos el reporte DEMO_LIST_FORMAT_COLOR_1, podemos ver los n&amp;#250;meros que podemos usar para los determinados colores en el ALV&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;CODIFICACION DE COLORES: El color del ALV sigue el siguiente formato CXYZ donde...   &lt;br /&gt;C-&amp;gt; indica que es un color    &lt;br /&gt;X-&amp;gt; indica el numero de color, que debe ser del 1 al 9    &lt;br /&gt;Y-&amp;gt; indica la intensidad: ('0'=off / '1'=on).    &lt;br /&gt;X-&amp;gt; indica si el color es inverso ('0'=off / '1'=on).&lt;/p&gt;  &lt;p&gt;Ejemplo para ver facilmente&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Yrm8x0k2PCg/SiQypnlUFXI/AAAAAAAAAJM/aeWZ0_e4bZc/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="177" alt="image" src="http://lh3.ggpht.com/_Yrm8x0k2PCg/SiQyqJ0yLCI/AAAAAAAAAJQ/Njr3M9sbrx8/image_thumb%5B2%5D.png?imgmax=800" width="475" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Por ejemplo C500 mostrar&amp;#225; un verde claro.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-113713296573860837?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/113713296573860837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/113713296573860837'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/06/colores-en-alv.html' title='Colores en ALV'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_Yrm8x0k2PCg/SiQyqJ0yLCI/AAAAAAAAAJQ/Njr3M9sbrx8/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-4560355244265699614</id><published>2009-05-08T15:22:00.001-03:00</published><updated>2009-05-08T15:22:41.902-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MM - Function'/><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><category scheme='http://www.blogger.com/atom/ns#' term='MM'/><title type='text'>MD_STOCK_REQUIREMENTS_LIST_API - MD04 - listado de doc. por Material/Centro</title><content type='html'>&lt;p&gt;Esta funci&amp;#243;n nos permite ver la informaci&amp;#243;n de la tx MD04.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Mi req. era realizar un reporte con las cantidades disponibles en Ordenes de compra, Ordenes previsionales, Ordenes de producci&amp;#243;n y Solped. Pero la funci&amp;#243;n trae muchos m&amp;#225;s doc. se pueden ver todos en el dominio DELKZ.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;A la funci&amp;#243;n ingresamos con Material y centro y en la tabla MDEZX estar&amp;#225; la informaci&amp;#243;n necesaria.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-4560355244265699614?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4560355244265699614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4560355244265699614'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/05/mdstockrequirementslistapi-md04-listado.html' title='MD_STOCK_REQUIREMENTS_LIST_API - MD04 - listado de doc. por Material/Centro'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-3744559006573022698</id><published>2009-04-16T15:31:00.001-03:00</published><updated>2009-04-16T15:31:49.250-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips And Tricks'/><title type='text'>Separar un texto largo cada X cantidad de char o por un símbolo de retorno de carro a una tabla</title><content type='html'>&lt;p&gt;Esta funci&amp;#243;n &lt;strong&gt;RKD_WORD_WRAP&lt;/strong&gt; , nos permitir&amp;#225; partir un texto largo en X cantidad de caracteres y adem&amp;#225;s podremos tener otro corte de control por un CHAR que le pasemos.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ejemplo:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_Yrm8x0k2PCg/Sed5jwZrDKI/AAAAAAAAAI8/56KW-IADIL8/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="86" alt="image" src="http://lh5.ggpht.com/_Yrm8x0k2PCg/Sed5kXRA9KI/AAAAAAAAAJA/eXHWx1p17lk/image_thumb%5B2%5D.png?imgmax=800" width="413" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;El resultado de esta corrida ser&amp;#225; una tabla de 7 registros, notese que si no existe el char de retorno de carro nos separar&amp;#225; cada 5 chars, si encuentra el simbolo cortar&amp;#225; en ese simbolo y comenzar&amp;#225; otro rengl&amp;#243;n.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Yrm8x0k2PCg/Sed5koDeb9I/AAAAAAAAAJE/XJeLU3xlX0w/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="127" alt="image" src="http://lh5.ggpht.com/_Yrm8x0k2PCg/Sed5lMDtwhI/AAAAAAAAAJI/CSnd6yi6vLI/image_thumb%5B3%5D.png?imgmax=800" width="118" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-3744559006573022698?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3744559006573022698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3744559006573022698'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/04/separar-un-texto-largo-cada-x-cantidad.html' title='Separar un texto largo cada X cantidad de char o por un símbolo de retorno de carro a una tabla'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_Yrm8x0k2PCg/Sed5kXRA9KI/AAAAAAAAAJA/eXHWx1p17lk/s72-c/image_thumb%5B2%5D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-1916118587799132530</id><published>2009-04-16T14:50:00.001-03:00</published><updated>2009-04-16T14:50:08.714-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips And Tricks'/><title type='text'>Pasar el signo negativo de la derecha a la izq</title><content type='html'>&lt;p&gt;Esto puede resultar tonto, pero hay veces en que los clientes quieren que los n&amp;#250;meros negativos tengan el signo a la izquierda y no a la der. Si bien esto podemos hacerlo trabajando con la cadena de caracteres hay una funci&amp;#243;n que nos simplifica la vida.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;CLOI_PUT_SIGN_IN_FRONT&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Ejemplo:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_Yrm8x0k2PCg/SedvzW0uxhI/AAAAAAAAAI0/ygVJa55hCp4/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="70" alt="image" src="http://lh5.ggpht.com/_Yrm8x0k2PCg/Sedvz5emhuI/AAAAAAAAAI4/HZ5t34vk-wc/image_thumb%5B1%5D.png?imgmax=800" width="286" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-1916118587799132530?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/1916118587799132530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/1916118587799132530'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/04/pasar-el-signo-negativo-de-la-derecha.html' title='Pasar el signo negativo de la derecha a la izq'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_Yrm8x0k2PCg/Sedvz5emhuI/AAAAAAAAAI4/HZ5t34vk-wc/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-4829237095122616190</id><published>2009-04-16T12:50:00.001-03:00</published><updated>2009-04-16T12:50:10.868-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MM - Function'/><category scheme='http://www.blogger.com/atom/ns#' term='MM'/><title type='text'>Función para ver características y clasificaciones de un Material - Lote</title><content type='html'>&lt;p&gt;La funci&amp;#243;n &lt;strong&gt;QC01_BATCH_VALUES_READ&lt;/strong&gt; nos permite ver facilmente las caracter&amp;#237;sticas de un Material-Lote&lt;/p&gt;  &lt;p&gt;Le pasamos Material, Centro (opcional) y Lote. Adem&amp;#225;s del idioma y fecha del d&amp;#237;a.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;CALL FUNCTION 'QC01_BATCH_VALUES_READ'       &lt;br /&gt;EXPORTING        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; I_VAL_MATNR&amp;#160;&amp;#160;&amp;#160; = I_DOCUMENT_DATA-MATNR        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; I_VAL_WERKS&amp;#160;&amp;#160;&amp;#160; = I_DOCUMENT_DATA-WERKS        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; I_VAL_CHARGE&amp;#160;&amp;#160; = I_DOCUMENT_DATA-CHARG        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; I_LANGUAGE&amp;#160;&amp;#160;&amp;#160;&amp;#160; = I_LANGUAGE        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; I_DATE&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = I_DATE        &lt;br /&gt;IMPORTING        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; E_CLASS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = L_CLASS        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; E_CLASS_TYPE&amp;#160;&amp;#160; = L_CLASS_TYPE        &lt;br /&gt;TABLES        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; T_VAL_TAB&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = L_VAL_TAB        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; T_CHAR_TAB&amp;#160;&amp;#160;&amp;#160;&amp;#160; = L_CHAR_TAB        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; T_ATT_TAB&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = L_ATT_TAB        &lt;br /&gt;EXCEPTIONS        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NO_CLASS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 01        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTERNAL_ERROR = 02        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NO_VALUES&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 03        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NO_CHARS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 04.&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Nos devuelve 3 tablas:&lt;/p&gt;  &lt;p&gt;1- Tiene todas las caracter&amp;#237;sticas con valor ese Material-Lote&lt;/p&gt;  &lt;p&gt;2- La siguiente nos pasa todas las caracter&amp;#237;sticas posibles que posee ese Material - Lote marc&amp;#225;ndonos cuales son las que est&amp;#225;n cargadas&lt;/p&gt;  &lt;p&gt;3- La &amp;#250;ltima posee los atributos t&amp;#233;cnicos de las caracter&amp;#237;sticas (si es num&amp;#233;rico, char, etc)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-4829237095122616190?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4829237095122616190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4829237095122616190'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/04/funcion-para-ver-caracteristicas-y.html' title='Función para ver características y clasificaciones de un Material - Lote'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-1735498149655998338</id><published>2009-04-16T12:28:00.001-03:00</published><updated>2009-04-16T12:28:55.042-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MM'/><title type='text'>Lista de materiales de un material en particular</title><content type='html'>&lt;p&gt;Dejo esta l&amp;#243;gica para obtener la lista de materiales de un material. Se que hay funciones para lograr lo mismo porque las he usado pero hoy en d&amp;#237;a no las tengo a mano.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;* Funcion para traer el num de material en el formato del sistema     &lt;br /&gt;CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EXPORTING      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; input&amp;#160; = wa_archivo-material      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IMPORTING      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; output = l_material.&lt;/p&gt;    &lt;p&gt;SELECT SINGLE stlal stlnr     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTO (wa_stlal, wa_stlnr)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM mast      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WHERE matnr EQ l_material.      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;SELECT stlkn     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM stas      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTO CORRESPONDING FIELDS OF TABLE it_stas      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WHERE stlnr EQ wa_stlnr AND      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; stlal EQ wa_stlal.      &lt;br /&gt;IF it_stas[] IS NOT INITIAL.      &lt;br /&gt;&amp;#160;&amp;#160; SELECT idnrk posnr      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FROM stpo      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTO CORRESPONDING FIELDS OF TABLE it_stpo      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FOR ALL ENTRIES IN it_stas      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WHERE stlnr EQ wa_stlnr AND      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; stlkn EQ it_stas-stlkn.      &lt;br /&gt;ENDIF.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;En la tabla it_stpo el campo IDNRK es el n&amp;#250;mero de material.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-1735498149655998338?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/1735498149655998338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/1735498149655998338'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/04/lista-de-materiales-de-un-material-en.html' title='Lista de materiales de un material en particular'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-7811012898872903220</id><published>2009-04-14T15:00:00.003-03:00</published><updated>2009-04-14T15:19:15.112-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Report'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips And Tricks'/><title type='text'>Radio Buttons dinámicos y ocultar/mostrar grupos de parámetros de selección</title><content type='html'>&lt;p&gt;Una vez necesite hacer una pantalla de selecci&amp;#243;n din&amp;#225;mica, es decir que si eleg&amp;#237;a un radio button deb&amp;#237;a mostrar X cantidad de par&amp;#225;metros y ocultar otros, y viceversa sin la necesidad de que tengamos que apretar un ENTER para que se dispare el evento AT-SELECTION-SCREEN.&lt;/p&gt;  &lt;p&gt;El siguiente c&amp;#243;digo lo arme como modo ejemplo para que se den cuenta de como usarlo&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;REPORT ZRADIO_BUTTONS.     &lt;br /&gt;PARAMETERS: p_1(10) MODIF ID A,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; p_2(2)&amp;#160;&amp;#160; MODIF ID B,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; p_3(5).      &lt;br /&gt;PARAMETERS: p_A RADIOBUTTON GROUP rad1 USER-COMMAND ACT DEFAULT 'X',      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; p_B RADIOBUTTON GROUP rad1.      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;AT SELECTION-SCREEN OUTPUT.     &lt;br /&gt;LOOP AT screen.      &lt;br /&gt;&amp;#160; IF p_A = 'X'.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IF screen-group1 = 'B'.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; screen-active = 0.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ENDIF.      &lt;br /&gt;&amp;#160; ELSEIF p_B = 'X'.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; IF screen-group1 = 'A'.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; screen-active = 0.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ENDIF.      &lt;br /&gt;&amp;#160; ENDIF.&lt;/p&gt;    &lt;p&gt;&amp;#160; MODIFY screen.     &lt;br /&gt;ENDLOOP.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;El MODIF ID lo que hace es darle un identificador a cada par&amp;#225;metro por lo cual no es necesario ocultar cada uno de los par&amp;#225;metros, sino que es m&amp;#225;s pr&amp;#225;ctico ocultar directamente todos los elementos de un grupo.&lt;/p&gt;  &lt;p&gt;La adici&amp;#243;n USER-COMMAND es la que permite que la selecci&amp;#243;n sea din&amp;#225;mica y que no haya que apretar un enter para ejecutar un PAI.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NOTA:&lt;/strong&gt; Al usar este m&amp;#233;todo es muy molesto tener par&amp;#225;metros de selecci&amp;#243;n OBLIGATORIOS, porque de no estar completos nos va a saltar la validaci&amp;#243;n y los radio button no funcionar&amp;#225;n de la forma deseada. As&amp;#237; que de usar Radio buttons din&amp;#225;micos la validaciones las deberemos hacer manualmente nosotros mismos.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-7811012898872903220?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/7811012898872903220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/7811012898872903220'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/04/radio-buttons-dinamicos-y.html' title='Radio Buttons dinámicos y ocultar/mostrar grupos de parámetros de selección'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-1143634548757060557</id><published>2009-04-14T12:58:00.002-03:00</published><updated>2009-04-14T15:08:52.451-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips And Tricks'/><title type='text'>Saltear falta de autorización para una transacción</title><content type='html'>&lt;p&gt;Existe una funci&amp;#243;n llamada: &lt;strong&gt;RS_HDSYS_CALL_TC_VARIANT&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ir a la SE37, ejecutar la funci&amp;#243;n, en el par&amp;#225;metro TCODE ponemos la transacci&amp;#243;n deseada y le sacamos la X al par&amp;#225;metro AUTHORITY-CHECK.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;NOTA: No es infalible, puede ser que igualmente no podamos usarlo y ojo porque queda en log el acceso.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-1143634548757060557?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/1143634548757060557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/1143634548757060557'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/04/saltear-falta-de-autorizacion-para-una.html' title='Saltear falta de autorización para una transacción'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-8836592366867281698</id><published>2009-03-31T16:41:00.001-03:00</published><updated>2009-03-31T16:41:06.527-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SD'/><title type='text'>Programa para la regeneración de fórmulas</title><content type='html'>&lt;p&gt;Luego de Crear alguna formula o de alg&amp;#250;n cambio a nivel de activaci&amp;#243;n. Necesitaremos correr el siguiente reporte&lt;/p&gt;  &lt;p&gt;RV80HGEN&lt;/p&gt;  &lt;p&gt;Este regenera las f&amp;#243;rmulas, al no hacer esto seguramente nos aparezcan Dump al momento de usar f&amp;#243;rmulas nuevas. Como buena pr&amp;#225;ctica siempre que se agregan f&amp;#243;rmulas deber&amp;#237;a de correrse.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-8836592366867281698?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8836592366867281698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8836592366867281698'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/03/programa-para-la-regeneracion-de.html' title='Programa para la regeneración de fórmulas'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-7445676299317250501</id><published>2009-03-31T16:40:00.001-03:00</published><updated>2009-03-31T16:40:57.074-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SD'/><title type='text'>Fórmulas de SD - VOFM - Agrupación y separación</title><content type='html'>&lt;p&gt;En la transacci&amp;#243;n VOFM encontramos varios menues donde entrar esto sirve para el uso de rutinas, que sirven para agrupaciones, calculo de condiciones, etc.&lt;/p&gt;  &lt;p&gt;La agrupaci&amp;#243;n y separaci&amp;#243;n sirve para que al momento de facturar pedidos o entregas por ejemplo tenga un cierto criterio de agrupaci&amp;#243;n. Por ejemplo se desea que si varias entregas tienen mismo destinatario (cliente) se agrupen en una sola factura para no hacer una por por cada entrega.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Se va a la secci&amp;#243;n &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_Yrm8x0k2PCg/SdJxxK6F3eI/AAAAAAAAAIQ/Pnmg2T8aF2E/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="81" alt="image" src="http://lh4.ggpht.com/_Yrm8x0k2PCg/SdJxxs9_nCI/AAAAAAAAAIU/TBGUMu3n-vM/image_thumb%5B1%5D.png?imgmax=800" width="396" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;La rutina que elegimos tiene que estar seteada en el customizing por el funcional SD&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;FORM DATEN_KOPIEREN_901.     &lt;br /&gt;*Criterio de Agrupamiento      &lt;br /&gt;&amp;#160; DATA: BEGIN OF ZUK,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; KUNNR TYPE LIKP-KUNNR,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; END OF ZUK. &lt;/p&gt;    &lt;p&gt;ZUK-KUNNR = LIKP-KUNNR. &lt;/p&gt;    &lt;p&gt;VBRK-ZUKRI = ZUK. &lt;/p&gt;    &lt;p&gt;ENDFORM.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Con esta subrutina se va a agrupar las entregas por cliente (KUNNR). Todos los campos que se agreguen a la estrutura ZUK (ZUKRI) van a ser criterios de agrupaci&amp;#243;n. Si dos entregas no coinciden en alguno de los campos especificados se hace una separaci&amp;#243;n.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-7445676299317250501?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/7445676299317250501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/7445676299317250501'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/03/formulas-de-sd-vofm-agrupacion-y.html' title='Fórmulas de SD - VOFM - Agrupación y separación'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_Yrm8x0k2PCg/SdJxxs9_nCI/AAAAAAAAAIU/TBGUMu3n-vM/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-8834412759582785491</id><published>2009-03-31T15:38:00.001-03:00</published><updated>2009-03-31T15:38:22.619-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CRM'/><title type='text'>Tabla útiles de CRM</title><content type='html'>&lt;ul&gt;   &lt;li&gt;&lt;strong&gt;CRMD_ORDERADM_H &lt;/strong&gt;- Cabecera de Orden &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;CRMD_ORDERADM_I&lt;/strong&gt; - Posici&amp;#243;n &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;BUT000&lt;/strong&gt; -La tabla de donde salen los nombres de los c&amp;#243;digos de Partner, se accede por el c&amp;#243;digo de Partner. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;SCPRIOT&lt;/strong&gt; - Prioridades de una Orden &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;QPCT&lt;/strong&gt; - Texto de Categor&amp;#237;as &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;AGR_1251&lt;/strong&gt; - Clase de operaci&amp;#243;n, entrando por roles - Function para ver roles de un user &amp;quot;/OSP/GET_R3_ROLES&amp;quot; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;TJ30T &lt;/strong&gt;- Textos para status de usuarios &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Generalmente las tablas comienzan con CRMD* las que tienen que ver con ordenes.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Tambi&amp;#233;n se puede usar la funci&amp;#243;n CRM_ORDER_READ para obtener todos los detalles de una determinada orden.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-8834412759582785491?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8834412759582785491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8834412759582785491'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/03/tabla-utiles-de-crm.html' title='Tabla útiles de CRM'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-6657516995695711218</id><published>2009-03-31T15:37:00.001-03:00</published><updated>2009-03-31T15:38:12.220-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Report'/><category scheme='http://www.blogger.com/atom/ns#' term='Program'/><title type='text'>Bajada de PDF de forma local</title><content type='html'>&lt;p&gt;Si bien existen las funciones para bajar un OTF (SapScript o Smartforms) a PDF de esta manera es mucho m&amp;#225;s sencilla, este programa ya tiene el proceso de conversi&amp;#243;n a&amp;#160; PDF, simplemente le pasamos la orden de SPOOL y la ruta donde queremos el archivo y listo.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;SUBMIT rstxpdft4      &lt;br /&gt;USING SELECTION-SCREEN '1000'       &lt;br /&gt;WITH spoolno EQ w_spool_num       &lt;br /&gt;WITH download EQ 'X'       &lt;br /&gt;WITH p_file EQ 'c:\download.pdf'       &lt;br /&gt;EXPORTING LIST TO MEMORY       &lt;br /&gt;AND RETURN.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-6657516995695711218?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6657516995695711218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6657516995695711218'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2009/03/bajada-de-pdf-de-forma-local.html' title='Bajada de PDF de forma local'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-416272027885089803</id><published>2008-12-15T18:01:00.001-02:00</published><updated>2008-12-15T18:01:56.477-02:00</updated><title type='text'>Ejecutar un comando en el application server</title><content type='html'>&lt;p&gt;Con la sentencia CALL 'SYSTEM' ID 'COMMAND' ejecutamos un comando del servidor. El siguiente ejemplo creaba un determinado directorio en el mismo.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;CONCATENATE 'mkdir' ' ' v_ruta ls_bil_invoice-HD_GEN-PAYER '\' ls_bil_invoice-HD_ORG-SALESORG '\' ls_bil_invoice-HD_GEN-BIL_DATE+4(2) '\'     &lt;br /&gt;INTO l_text. &lt;/p&gt;    &lt;p&gt;CALL 'SYSTEM' ID 'COMMAND' FIELD l_text.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-416272027885089803?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/416272027885089803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/416272027885089803'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/12/ejecutar-un-comando-en-el-application.html' title='Ejecutar un comando en el application server'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-7730876857444893905</id><published>2008-12-15T11:52:00.001-02:00</published><updated>2008-12-15T11:52:34.971-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Report'/><title type='text'>Crear ComboBox en reportes</title><content type='html'>&lt;p&gt;En SAP tenemos el Matchcode, pero muchas veces es tedioso ya que tarda. De esta forma tendremos un combobox.&lt;/p&gt;  &lt;p&gt;El par&amp;#225;metro ps_parm tendr&amp;#225; la opci&amp;#243;n elejida.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;TYPE-POOLS: vrm.     &lt;br /&gt;DATA: name TYPE vrm_id, list TYPE vrm_values, value LIKE LINE OF list.      &lt;br /&gt;PARAMETERS: ps_parm(10) AS LISTBOX VISIBLE LENGTH 10.      &lt;br /&gt;AT SELECTION-SCREEN OUTPUT.      &lt;br /&gt;&amp;#160; name = 'PS_PARM'.      &lt;br /&gt;&amp;#160; value-key = '1'. value-text = 'Linea 1'. APPEND value TO list.      &lt;br /&gt;&amp;#160; value-key = '2'. value-text = 'Linea 2'. APPEND value TO list.      &lt;br /&gt;&amp;#160; value-key = '3'. value-text = 'Linea 3'. APPEND value TO list.      &lt;br /&gt;&amp;#160; value-key = '4'. value-text = 'Linea 4'. APPEND value TO list.      &lt;br /&gt;&amp;#160; value-key = '5'. value-text = 'Linea 5'. APPEND value TO list.      &lt;br /&gt;&amp;#160; value-key = '6'. value-text = 'Linea 6'. APPEND value TO list.      &lt;br /&gt;&amp;#160; CALL FUNCTION 'VRM_SET_VALUES'      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EXPORTING      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; id&amp;#160;&amp;#160;&amp;#160;&amp;#160; = name      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; values = list.      &lt;br /&gt;START-OF-SELECTION.      &lt;br /&gt;&amp;#160; WRITE: / 'Parametros : ', ps_parm.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-7730876857444893905?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/7730876857444893905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/7730876857444893905'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/12/crear-combobox-en-reportes.html' title='Crear ComboBox en reportes'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-3855585882832421877</id><published>2008-12-12T10:29:00.001-02:00</published><updated>2008-12-12T10:29:37.730-02:00</updated><title type='text'>Bug - Smartforms sin valores en la interfaz</title><content type='html'>&lt;p&gt;A veces suele suceder que al modificar un smartforms, al problarlo hay datos que desaparecen como por arte de magia. Esto es un bug, por no usar el verificar y solamente el activar.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Si sucede esto, Verificar y luego Activar. Y se soluciona.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-3855585882832421877?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3855585882832421877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3855585882832421877'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/12/bug-smartforms-sin-valores-en-la.html' title='Bug - Smartforms sin valores en la interfaz'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-6091657312838300398</id><published>2008-12-10T17:07:00.001-02:00</published><updated>2008-12-10T17:07:41.743-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDOC'/><title type='text'>Creación de IDOCs</title><content type='html'>&lt;p&gt;El menu WEDI e SALE sirve para la administraci&amp;#243;n de IDOCs.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En la WE20 creamos el IDOC base. Un IDOC est&amp;#225; formado por segmentos, con la estructura especifica de los campos a transladar, suele ser una de cabecera y otra posici&amp;#243;n.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Con la WE81, luego debemos crear el tipo de mensaje. Esto es el evento que trasnsmite en si al IDOC un tipo de mensaje puede tener varios IDOCs base (ser&amp;#237;a ALGO similar a las clases de mensajes en las impresiones en SAP).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cuando tenemos el IDOC y el tipo de mensaje debemos relacionarlos para unirlos usamos la WE82.&lt;/p&gt;  &lt;p&gt;En la trx BD64 debemos ingresar el tipo de mensaje creado en el sistema l&amp;#243;gico y enlace correspondiente. (todo este seteo de enlaces todavia no lo vi, solamente agregue un IDOC a un ambiente ya creado.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En la WE02 podemos visualizar los IDOCs, ves su estado y contenido.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Dejo el c&amp;#243;digo fuente de la parte de envi&amp;#243; de IDOC de un programa que ya tiene en la tabla TI_HEADER los datos de cabecera y en TI_TABLE los datos de las posiciones.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;form enviar_idocs .      &lt;br /&gt;DATA:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; edidd_rec&amp;#160; TYPE edidd. &lt;/p&gt;    &lt;p&gt;v_msgtype = 'ZEXTBNK'.&amp;#160; &amp;quot;Nombre de tipo de mensaje      &lt;br /&gt;v_idoctp&amp;#160; = 'ZEXTBANK'.&amp;#160; &amp;quot;Nombre de IDOC base       &lt;br /&gt;CLEAR v_cont. &lt;/p&gt;    &lt;p&gt;* Por cada registro en la cabecera      &lt;br /&gt;&amp;#160; LOOP AT ti_header. &amp;quot;INTO header_rec. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; ADD 1 TO v_cont.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; MOVE 'ZFII039_HS' TO v_segnam. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; MOVE: ti_header-bukrs TO v_ZFII039_H-bukrs,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ti_header-DISKB TO v_ZFII039_H-DISKB. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; CLEAR edidd_rec.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; edidd_rec-segnum = v_cont.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; edidd_rec-segnam = v_segnam.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; edidd_rec-mandt&amp;#160; = sy-mandt.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; edidd_rec-sdata&amp;#160; = v_ZFII039_H.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; APPEND edidd_rec TO it_edidd. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; LOOP AT ti_table WHERE bukrs = ti_header-bukrs      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND diskb = ti_header-diskb. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ADD 1 TO v_cont.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v_segnam&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 'ZFII039_DS'. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MOVE: ti_table-bukrs TO v_ZFII039_D-bukrs,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ti_table-diskb TO v_ZFII039_D-diskb,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ti_table-azdat TO v_ZFII039_D-azdat,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ti_table-aznum TO v_ZFII039_D-aznum,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ti_table-waers TO v_ZFII039_D-waers,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ti_table-esbtr TO v_ZFII039_D-esbtr. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; edidd_rec-segnum = v_cont.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; edidd_rec-segnam = v_segnam.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; edidd_rec-mandt&amp;#160; = sy-mandt.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; edidd_rec-sdata&amp;#160; = v_ZFII039_D.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; APPEND edidd_rec TO it_edidd. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; ENDLOOP. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; CLEAR v_edidc.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; v_edidc-mestyp = v_msgtype.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; v_edidc-idoctp = v_idoctp.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CLEAR v_edidc-rcvpfc.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CLEAR v_edidc-sndpfc.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CLEAR v_cont. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EXPORTING       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; master_idoc_control&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = v_edidc       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TABLES       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; communication_idoc_control&amp;#160;&amp;#160;&amp;#160;&amp;#160; = it_edidc       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; master_idoc_data&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = it_edidd       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EXCEPTIONS       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; error_in_idoc_control&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 01       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; error_writing_idoc_status&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 02       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; error_in_idoc_data&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 03       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sending_logical_system_unknown = 04. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; REFRESH it_edidc.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; REFRESH it_edidd. &lt;/p&gt;    &lt;p&gt;&amp;#160; ENDLOOP. &amp;quot;Por cada registro en la cabecera      &lt;br /&gt;endform.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot; enviar_idocs&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Declaraciones&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;DATA: v_edidc&amp;#160;&amp;#160;&amp;#160; LIKE edidc,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v_msgtype&amp;#160; LIKE tbdme-mestyp,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v_segnam&amp;#160;&amp;#160; LIKE edidd-segnam,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v_idoctp&amp;#160;&amp;#160; LIKE bdaledc-idoctp,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v_cont&amp;#160;&amp;#160;&amp;#160;&amp;#160; TYPE i. &lt;/p&gt;    &lt;p&gt;* Variables para ALV      &lt;br /&gt;DATA:       &lt;br /&gt;&amp;#160; lv_fieldcat&amp;#160; TYPE slis_t_fieldcat_alv,       &lt;br /&gt;&amp;#160; lv_layout&amp;#160;&amp;#160;&amp;#160; TYPE slis_layout_alv,       &lt;br /&gt;&amp;#160; lv_repid&amp;#160;&amp;#160;&amp;#160;&amp;#160; TYPE sy-repid,       &lt;br /&gt;&amp;#160; lv_sorted&amp;#160;&amp;#160;&amp;#160; TYPE slis_t_sortinfo_alv,       &lt;br /&gt;&amp;#160; t_events&amp;#160;&amp;#160;&amp;#160;&amp;#160; TYPE slis_t_event,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot; Eventos.       &lt;br /&gt;&amp;#160; gt_header&amp;#160;&amp;#160;&amp;#160; TYPE slis_t_listheader,&amp;#160;&amp;#160;&amp;#160; &amp;quot; Tabla con el Titulo       &lt;br /&gt;&amp;#160; gt_sort&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TYPE slis_t_sortinfo_alv,&amp;#160; &amp;quot;tabla con orden y subtot       &lt;br /&gt;&amp;#160; wa_header&amp;#160;&amp;#160;&amp;#160; TYPE slis_listheader.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot; Work Area con el Titulo &lt;/p&gt;    &lt;p&gt;TYPES: BEGIN OF TYPE_FEBKO,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; HKONT TYPE FEBKO-HKONT, &amp;quot;Cuenta       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BUKRS TYPE FEBKO-BUKRS, &amp;quot;Sociedad       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AZDAT TYPE FEBKO-AZDAT, &amp;quot;Fecha extracto       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AZNUM TYPE FEBKO-AZNUM, &amp;quot;Numero extracto       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WAERS TYPE FEBKO-WAERS, &amp;quot;Moneda       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ESBTR TYPE FEBKO-ESBTR, &amp;quot;Importe       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ESVOZ TYPE FEBKO-ESVOZ, &amp;quot;Debe/Haber       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; HBKID TYPE FEBKO-HBKID, &amp;quot;Banco       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; HKTID TYPE FEBKO-HKTID, &amp;quot;Cuenta       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EFART TYPE FEBKO-EFART, &amp;quot;Tipo extracto M o E       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DISKB TYPE T035D-DISKB, &amp;quot;Codigo       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; END OF TYPE_FEBKO. &lt;/p&gt;    &lt;p&gt;TYPES: BEGIN OF TYPE_HEADER,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BUKRS TYPE FEBKO-BUKRS, &amp;quot;Sociedad       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DISKB TYPE T035D-DISKB, &amp;quot;Codigo       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; END OF TYPE_HEADER. &lt;/p&gt;    &lt;p&gt;DATA: TI_FEBKO TYPE STANDARD TABLE OF TYPE_FEBKO.      &lt;br /&gt;DATA: TI_FEBKO_AUX TYPE STANDARD TABLE OF TYPE_FEBKO WITH HEADER LINE.       &lt;br /&gt;DATA: TI_TABLE TYPE STANDARD TABLE OF TYPE_FEBKO WITH HEADER LINE.       &lt;br /&gt;DATA: TI_HEADER TYPE STANDARD TABLE OF TYPE_HEADER WITH HEADER LINE. &lt;/p&gt;    &lt;p&gt;DATA: WA_FEBKO TYPE TYPE_FEBKO.      &lt;br /&gt;DATA: WA_FEBKO_AUX TYPE TYPE_FEBKO. &lt;/p&gt;    &lt;p&gt;DATA: v_ZFII039_H LIKE ZFII039_H,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v_ZFII039_D LIKE ZFII039_D.&lt;/p&gt;    &lt;p&gt;DATA: it_edidd TYPE STANDARD TABLE OF edidd,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; it_edidc TYPE STANDARD TABLE OF edidc.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-6091657312838300398?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6091657312838300398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6091657312838300398'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/12/creacin-de-idocs.html' title='Creación de IDOCs'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-2217123866755578521</id><published>2008-12-10T17:06:00.003-02:00</published><updated>2008-12-10T17:07:02.811-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><title type='text'>FIMA_DAYS_AND_MONTHS_AND_YEARS</title><content type='html'>&lt;p&gt;Esta funci&amp;#243;n nos devuelve la diferencia en dias, meses y a&amp;#241;os entre dos fechas.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EXPORTING&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; i_date_from&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = s_badat2-low&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; i_date_to&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = s_badat2-high&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IMPORTING&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; e_days&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = gv_dias2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; E_MONTHS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; E_YEARS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-2217123866755578521?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2217123866755578521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2217123866755578521'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/12/fimadaysandmonthsandyears.html' title='FIMA_DAYS_AND_MONTHS_AND_YEARS'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-4610278376462524319</id><published>2008-12-10T17:06:00.001-02:00</published><updated>2008-12-10T17:06:05.486-02:00</updated><title type='text'>Refrescar un ALV luego de una Ejecuación de proceso que modifica la tabla interna</title><content type='html'>&lt;p&gt;Cuando en un ALV tenemos alg&amp;#250;n bot&amp;#243;n que ejecute un Batch Input o alg&amp;#250;n, proceso al Salvar y la informaci&amp;#243;n de la tabla interna del ALV debe refrescarse, para reflejar el proceso ejecutado, podemos usar este peq&amp;#250;e&amp;#241;o truco.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;*&amp;amp;---------------------------------------------------------------------*      &lt;br /&gt;*&amp;amp;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Form&amp;#160; PF_USER_COMMAND       &lt;br /&gt;*&amp;amp;---------------------------------------------------------------------*       &lt;br /&gt;FORM user_command1 USING p_okcode LIKE sy-ucomm&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;ok-code       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; w_selfield TYPE slis_selfield. &amp;quot;estruct. de linea       &lt;br /&gt;* Se selecciona que el ALV se actualice al mostrarse.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;w_selfield-refresh = 'X'.&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;CASE p_okcode.&lt;/p&gt;    &lt;p&gt;&amp;#160; WHEN '&amp;amp;DATA_SAVE'.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; PERFORM arma_datos_bapi_1.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IF g_cant_error IS INITIAL. &amp;quot;ROGI08102008       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PERFORM ejecutar_bapi1.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ENDIF.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;ROGI08102008       &lt;br /&gt;ENDCASE.&lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;ENDFORM.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot; PF_STATUS&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;En el USER_COMMAND Form agregamos lo que esta en negrita, esto hace que al ejecutar un bot&amp;#243;n del ALV se refresque la tabla interna, por lo tanto podemos directamente modificar la tabla interna a nuestro gusto que se vera refrejado en el ALV.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-4610278376462524319?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4610278376462524319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4610278376462524319'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/12/refrescar-un-alv-luego-de-una-ejecuacin.html' title='Refrescar un ALV luego de una Ejecuación de proceso que modifica la tabla interna'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-6823198709222822661</id><published>2008-11-04T17:53:00.001-02:00</published><updated>2008-11-04T17:53:32.638-02:00</updated><title type='text'>IWO1_ORDER_BADI - Badi de IW31,IW32</title><content type='html'>&lt;p&gt;Badi que se dispara en la tx IW31 e IW32.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-6823198709222822661?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6823198709222822661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6823198709222822661'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/11/iwo1orderbadi-badi-de-iw31iw32.html' title='IWO1_ORDER_BADI - Badi de IW31,IW32'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-8294961107045553537</id><published>2008-11-04T16:38:00.001-02:00</published><updated>2008-11-04T16:38:08.726-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MM - Function'/><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><title type='text'>MD_PEGGING_NODIALOG - Ordenes que posee una Solped</title><content type='html'>&lt;p&gt;Devuelve las ordenes que est&amp;#225;n asociadas a una solped.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ej:Bloque en el cual por cada solped encontrada para determinado Material-Centro busco las ordenes que est&amp;#225;n asociadas a esa solped.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;DATA: lt_mdpsx TYPE STANDARD TABLE OF mdps,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ls_mdpsx TYPE mdps,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; LT_MDRQX TYPE STANDARD TABLE OF mdrq,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ls_mdrqx TYPE mdrq,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; l_fixkz TYPE EBAN-fixkz,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; l_msg(100),      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; l_solped TYPE MDPS-DEL12,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; l_aufnr TYPE AUFK-AUFNR.&lt;/p&gt;    &lt;p&gt;*&amp;#160;&amp;#160;&amp;#160; *** Veo todas las solicitudes de pedidos en las que se encuentra el componente     &lt;br /&gt;CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'      &lt;br /&gt;EXPORTING      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; matnr&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = ls_resbd-MATNR      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; werks&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = ls_resbd-WERKS      &lt;br /&gt;TABLES      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MDPSX&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = lt_MDPSX[]      &lt;br /&gt;EXCEPTIONS      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MATERIAL_PLANT_NOT_FOUND&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 1      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PLANT_NOT_FOUND&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 2      &lt;br /&gt;OTHERS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 3.      &lt;br /&gt;IF sy-subrc = 0.      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160; *** Veo todas las ordenes asociadas con las solpeds.      &lt;br /&gt;LOOP AT lt_MDPSX INTO ls_mdpsx WHERE DELKZ = 'BA' AND FIX01 = 'X'.      &lt;br /&gt;CLEAR l_solped.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; l_solped = ls_mdpsx-DELNR.      &lt;br /&gt;CALL FUNCTION 'MD_PEGGING_NODIALOG'      &lt;br /&gt;EXPORTING      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; edelkz&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 'BA'      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; edelnr&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = l_solped &amp;quot;lt_MDPSX-DELNR      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EDELPS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = ls_mdpsx-DELPS      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ematnr&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = ls_resbd-MATNR      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ewerks&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = ls_resbd-WERKS      &lt;br /&gt;tables      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; imdrqx&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = LT_MDRQX[]      &lt;br /&gt;EXCEPTIONS      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ERROR&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 1      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NO_REQUIREMENTS_FOUND&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 2      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ORDER_NOT_FOUND&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 3      &lt;br /&gt;OTHERS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 4.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-8294961107045553537?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8294961107045553537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8294961107045553537'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/11/mdpeggingnodialog-ordenes-que-posee-una.html' title='MD_PEGGING_NODIALOG - Ordenes que posee una Solped'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-3210174178346186961</id><published>2008-11-04T16:31:00.001-02:00</published><updated>2008-11-04T16:33:24.238-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MM - Function'/><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><title type='text'>MD_STOCK_REQUIREMENTS_LIST_API - Lista de Solped por Componente</title><content type='html'>&lt;p&gt;Le pasamos Material y Centro y nos devuelve todas las Solped en las que ese componente se encuentra.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;DATA: lt_mdpsx TYPE STANDARD TABLE OF mdps,   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ls_mdpsx TYPE mdps.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;* *** Veo todas las solicitudes de pedidos en las que se encuentra el componente   &lt;br /&gt;CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'    &lt;br /&gt;EXPORTING    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; matnr&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = ls_resbd-MATNR    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; werks&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = ls_resbd-WERKS    &lt;br /&gt;TABLES    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MDPSX&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = lt_MDPSX[]    &lt;br /&gt;EXCEPTIONS    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MATERIAL_PLANT_NOT_FOUND&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 1    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PLANT_NOT_FOUND&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 2    &lt;br /&gt;OTHERS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 3.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-3210174178346186961?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3210174178346186961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3210174178346186961'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/11/mdstockrequirementslistapi-lista-de.html' title='MD_STOCK_REQUIREMENTS_LIST_API - Lista de Solped por Componente'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-612263700202649090</id><published>2008-11-04T16:29:00.001-02:00</published><updated>2008-11-04T16:29:44.438-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BADI'/><title type='text'>Extraer estructura de pantalla desde una BADI</title><content type='html'>&lt;p&gt;Con esta forma, peculiar, podemos levantar datos de pantalla. No me puse a investigarlo a fondo porque no ten&amp;#237;a tiempo. Seg&amp;#250;n tengo entendido tmb sirve para levantar hasta tablas internas.&lt;/p&gt;  &lt;p&gt;En este caso levanto la estructura resbd de la tx IW32.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;DATA:l_field(60)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TYPE C VALUE '(SAPLCOIH)RESBD',     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ls_resbd&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TYPE resbd.&lt;/p&gt;    &lt;p&gt;FIELD-SYMBOLS: &amp;lt;fs_resbd&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TYPE ANY.     &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Fetching the Component Item from the Screen. This is for read-only      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; purpose and content should not be changed.      &lt;br /&gt;ASSIGN (l_field) to &amp;lt;fs_resbd&amp;gt;.      &lt;br /&gt;if sy-subrc eq 0.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ls_resbd = &amp;lt;fs_resbd&amp;gt;.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; UNASSIGN &amp;lt;fs_resbd&amp;gt;.      &lt;br /&gt;endif.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-612263700202649090?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/612263700202649090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/612263700202649090'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/11/extraer-estructura-de-pantalla-desde.html' title='Extraer estructura de pantalla desde una BADI'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-4991806951100627854</id><published>2008-05-27T10:03:00.001-03:00</published><updated>2008-05-27T10:03:49.659-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BSP'/><title type='text'>Manejo de Mensajes en BSP</title><content type='html'>&lt;p&gt;El elemento a usar es &amp;lt;phtmlb:messageBar&amp;gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;phtmlb:messageBar id = &amp;quot;messageBar&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; type = &amp;quot;&amp;lt;%= gv_severity_str %&amp;gt;&amp;quot;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; text = &amp;quot;&amp;lt;%= gv_message %&amp;gt;&amp;quot;/&amp;gt; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;TYPE puede ser ERROR/WARNING/OK/STOP/LOADING/NONE/TEXT.&lt;/p&gt;  &lt;p&gt;ERROR-STOP:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/ramgv81/SDwGkoZF4GI/AAAAAAAAAEo/sA_bN-7wYJY/image%5B20%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="29" alt="image" src="http://lh5.ggpht.com/ramgv81/SDwGl4ZF4HI/AAAAAAAAAEw/DCz2edEnUKA/image_thumb%5B6%5D.png" width="139" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;WARNING:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/ramgv81/SDwGm4ZF4II/AAAAAAAAAE4/aMDDMxdCTQU/image%5B17%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="27" alt="image" src="http://lh5.ggpht.com/ramgv81/SDwGn4ZF4JI/AAAAAAAAAFA/2tXG-b-U0Sk/image_thumb%5B5%5D.png" width="153" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;OK:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/ramgv81/SDwGpIZF4KI/AAAAAAAAAFI/9C8FK9O1IVY/image%5B26%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="29" alt="image" src="http://lh6.ggpht.com/ramgv81/SDwGqIZF4LI/AAAAAAAAAFQ/SWRtN34NVdY/image_thumb%5B8%5D.png" width="148" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;LOADING: se mueve circularmente&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/ramgv81/SDwGq4ZF4MI/AAAAAAAAAFY/YQ9k4nX0B7E/image%5B29%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="28" alt="image" src="http://lh3.ggpht.com/ramgv81/SDwGrYZF4NI/AAAAAAAAAFg/-ADaoEtWdsU/image_thumb%5B9%5D.png" width="148" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;TEXT: Solo sale texto no se muestra icono.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/ramgv81/SDwGsIZF4OI/AAAAAAAAAFo/gnMIuVYYpEc/image%5B32%5D.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="27" alt="image" src="http://lh4.ggpht.com/ramgv81/SDwGsoZF4PI/AAAAAAAAAFw/vJ_ddSkQHfQ/image_thumb%5B10%5D.png" width="133" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;NONE: &lt;/p&gt;  &lt;p&gt;No sale el display por pantalla.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En el inputProcessing donde deseemos&amp;#160; setear o cambiar el mensaje o Tipo. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;gv_message = 'Usuario encontrado'.     &lt;br /&gt;gv_severity_str = 'OK'.&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-4991806951100627854?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4991806951100627854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4991806951100627854'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/05/manejo-de-mensajes-en-bsp.html' title='Manejo de Mensajes en BSP'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/ramgv81/SDwGl4ZF4HI/AAAAAAAAAEw/DCz2edEnUKA/s72-c/image_thumb%5B6%5D.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-8666736414945381891</id><published>2008-04-17T12:36:00.001-03:00</published><updated>2008-04-17T12:36:45.095-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Smartform'/><title type='text'>Estructura SFSY</title><content type='html'>&lt;p&gt;Similar a la estructura SYST posee informaci&amp;#243;n propia del smartforms que podemos ver en tiempo de ejecuci&amp;#243;n.&lt;/p&gt;  &lt;p&gt;PAGE   &lt;br /&gt;N&amp;#250;mero/Cantidad p&amp;#225;ginas&lt;/p&gt;  &lt;p&gt;FORMPAGES   &lt;br /&gt;Ctd.total p&amp;#225;ginas formularios&lt;/p&gt;  &lt;p&gt;JOBPAGES   &lt;br /&gt;Ctd.total p&amp;#225;ginas job de salida&lt;/p&gt;  &lt;p&gt;COPYCOUNT   &lt;br /&gt;Contador de copias ( 1 = original, 2 = 1&amp;#170; copia, ...)&lt;/p&gt;  &lt;p&gt;COPYCOUNT0   &lt;br /&gt;Contador de copias (0 = original, 1 = 1&amp;#170; copia...)&lt;/p&gt;  &lt;p&gt;DATE   &lt;br /&gt;Fecha y hora, fecha (servidor de aplicaciones) actual&lt;/p&gt;  &lt;p&gt;TIME   &lt;br /&gt;Fecha y hora, hora (servidor de aplicaciones) actual&lt;/p&gt;  &lt;p&gt;SUBRC   &lt;br /&gt;C&amp;#243;digo retorno, c&amp;#243;digo retorno tras sentencias ABAP&lt;/p&gt;  &lt;p&gt;USERNAME   &lt;br /&gt;Sistema SAP, nombre de acceso del usuario&lt;/p&gt;  &lt;p&gt;PAGENAME   &lt;br /&gt;Nombre p&amp;#225;gina + Variante&lt;/p&gt;  &lt;p&gt;WINDOWNAME   &lt;br /&gt;Nombre ventana + Variante&lt;/p&gt;  &lt;p&gt;XSF   &lt;br /&gt;Salida XSF activa/inactiva&lt;/p&gt;  &lt;p&gt;XDF   &lt;br /&gt;Smart Forms SAP: Salida activa XDF&lt;/p&gt;  &lt;p&gt;XDF2   &lt;br /&gt;Smart Forms SAP: Salida activa XDF&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-8666736414945381891?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8666736414945381891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8666736414945381891'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/04/estructura-sfsy.html' title='Estructura SFSY'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-505337159692491765</id><published>2008-04-17T12:24:00.001-03:00</published><updated>2008-04-17T12:32:42.465-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BADI'/><title type='text'>Como buscar BADIs</title><content type='html'>&lt;p&gt;Para buscar las badis que pasan en alg&amp;#250;n momento dado. Debemos poner un break point en la Clase. SE24 -&amp;gt; CL_EXITHANDLER&lt;/p&gt;  &lt;p&gt;Doble click en el m&amp;#233;todo GET_INSTANCE.&lt;/p&gt;  &lt;p&gt;Poner un break en la llamada del metodo get_class_name_by_interface. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;METHOD get_instance. &lt;/p&gt;    &lt;p&gt;&amp;#160; CLASS cl_badi_flt_data_trans_and_db DEFINITION LOAD. &lt;/p&gt;    &lt;p&gt;&amp;#160; DATA: exit TYPE REF TO object,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; type_ref TYPE REF TO cl_abap_typedescr,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; class_name TYPE seoclsname,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; abs_type_classname TYPE string,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; def_impl TYPE seex_boolean VALUE seex_false. &lt;/p&gt;    &lt;p&gt;&amp;#160; &lt;strong&gt;CALL METHOD cl_exithandler=&amp;gt;get_class_name_by_interface&lt;/strong&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; EXPORTING      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; instance&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = instance      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; IMPORTING      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; class_name&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = class_name      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CHANGING      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; exit_name&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = &lt;u&gt;exit_name&lt;/u&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; EXCEPTIONS      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; no_reference&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 1      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; no_interface_reference&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 2      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; no_exit_interface&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 3      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; data_incons_in_exit_managem&amp;#160;&amp;#160; = 4      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; class_not_implement_interface = 5      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; OTHERS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 6.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Cuando salte el break point hay que ver el valor de exit_name, ahi pasar&amp;#225;n todos los nombres de las BADIS. en la SE18 encontramos esos nombres, en la SE19 se implementa.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Otra forma para buscar las BADI, es buscando por Paquete (clase de desarrollo) obtener el paquete de la tx que deseamos en la se93 -&amp;gt; visualizar tomamos el paquete y en la se18 despu&amp;#233;s en la b&amp;#250;squeda ampliada buscamos por paquete y nos devuelve todas las BADIS del paquete.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-505337159692491765?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/505337159692491765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/505337159692491765'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/04/como-buscar-badis.html' title='Como buscar BADIs'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-5004247188834040856</id><published>2008-01-31T11:24:00.001-02:00</published><updated>2008-01-31T11:26:17.000-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDOC'/><title type='text'>Creación de IDOCs</title><content type='html'>&lt;p&gt;El menu WEDI e SALE sirve para la administraci&amp;#243;n de IDOCs.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En la WE20 creamos el IDOC base. Un IDOC est&amp;#225; formado por segmentos, con la estructura especifica de los campos a transladar, suele ser una de cabecera y otra posici&amp;#243;n.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Con la WE81, luego debemos crear el tipo de mensaje. Esto es el evento que trasnsmite en si al IDOC un tipo de mensaje puede tener varios IDOCs base (ser&amp;#237;a ALGO similar a las clases de mensajes en las impresiones en SAP).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cuando tenemos el IDOC y el tipo de mensaje debemos relacionarlos para unirlos usamos la WE82.&lt;/p&gt;  &lt;p&gt;En la trx BD64 debemos ingresar el tipo de mensaje creado en el sistema l&amp;#243;gico y enlace correspondiente. (todo este seteo de enlaces todavia no lo vi, solamente agregue un IDOC a un ambiente ya creado.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;En la WE02 podemos visualizar los IDOCs, ves su estado y contenido.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Dejo el c&amp;#243;digo fuente de la parte de envi&amp;#243; de IDOC de un programa que ya tiene en la tabla TI_HEADER los datos de cabecera y en TI_TABLE los datos de las posiciones.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;form enviar_idocs .      &lt;br /&gt;DATA:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; edidd_rec&amp;#160; TYPE edidd. &lt;/p&gt;    &lt;p&gt;v_msgtype = 'ZEXTBNK'.&amp;#160; &amp;quot;Nombre de tipo de mensaje      &lt;br /&gt;v_idoctp&amp;#160; = 'ZEXTBANK'.&amp;#160; &amp;quot;Nombre de IDOC base       &lt;br /&gt;CLEAR v_cont. &lt;/p&gt;    &lt;p&gt;* Por cada registro en la cabecera      &lt;br /&gt;&amp;#160; LOOP AT ti_header. &amp;quot;INTO header_rec. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; ADD 1 TO v_cont.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; MOVE 'ZFII039_HS' TO v_segnam. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; MOVE: ti_header-bukrs TO v_ZFII039_H-bukrs,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ti_header-DISKB TO v_ZFII039_H-DISKB. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; CLEAR edidd_rec.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; edidd_rec-segnum = v_cont.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; edidd_rec-segnam = v_segnam.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; edidd_rec-mandt&amp;#160; = sy-mandt.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; edidd_rec-sdata&amp;#160; = v_ZFII039_H.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; APPEND edidd_rec TO it_edidd. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; LOOP AT ti_table WHERE bukrs = ti_header-bukrs      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND diskb = ti_header-diskb. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ADD 1 TO v_cont.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v_segnam&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 'ZFII039_DS'. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MOVE: ti_table-bukrs TO v_ZFII039_D-bukrs,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ti_table-diskb TO v_ZFII039_D-diskb,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ti_table-azdat TO v_ZFII039_D-azdat,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ti_table-aznum TO v_ZFII039_D-aznum,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ti_table-waers TO v_ZFII039_D-waers,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ti_table-esbtr TO v_ZFII039_D-esbtr. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; edidd_rec-segnum = v_cont.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; edidd_rec-segnam = v_segnam.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; edidd_rec-mandt&amp;#160; = sy-mandt.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; edidd_rec-sdata&amp;#160; = v_ZFII039_D.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; APPEND edidd_rec TO it_edidd. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; ENDLOOP. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; CLEAR v_edidc.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; v_edidc-mestyp = v_msgtype.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; v_edidc-idoctp = v_idoctp.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CLEAR v_edidc-rcvpfc.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CLEAR v_edidc-sndpfc.       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CLEAR v_cont. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EXPORTING       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; master_idoc_control&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = v_edidc       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TABLES       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; communication_idoc_control&amp;#160;&amp;#160;&amp;#160;&amp;#160; = it_edidc       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; master_idoc_data&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = it_edidd       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EXCEPTIONS       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; error_in_idoc_control&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 01       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; error_writing_idoc_status&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 02       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; error_in_idoc_data&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = 03       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sending_logical_system_unknown = 04. &lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; REFRESH it_edidc.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; REFRESH it_edidd. &lt;/p&gt;    &lt;p&gt;&amp;#160; ENDLOOP. &amp;quot;Por cada registro en la cabecera      &lt;br /&gt;endform.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot; enviar_idocs&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Declaraciones&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;DATA: v_edidc&amp;#160;&amp;#160;&amp;#160; LIKE edidc,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v_msgtype&amp;#160; LIKE tbdme-mestyp,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v_segnam&amp;#160;&amp;#160; LIKE edidd-segnam,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v_idoctp&amp;#160;&amp;#160; LIKE bdaledc-idoctp,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v_cont&amp;#160;&amp;#160;&amp;#160;&amp;#160; TYPE i. &lt;/p&gt;    &lt;p&gt;* Variables para ALV      &lt;br /&gt;DATA:       &lt;br /&gt;&amp;#160; lv_fieldcat&amp;#160; TYPE slis_t_fieldcat_alv,       &lt;br /&gt;&amp;#160; lv_layout&amp;#160;&amp;#160;&amp;#160; TYPE slis_layout_alv,       &lt;br /&gt;&amp;#160; lv_repid&amp;#160;&amp;#160;&amp;#160;&amp;#160; TYPE sy-repid,       &lt;br /&gt;&amp;#160; lv_sorted&amp;#160;&amp;#160;&amp;#160; TYPE slis_t_sortinfo_alv,       &lt;br /&gt;&amp;#160; t_events&amp;#160;&amp;#160;&amp;#160;&amp;#160; TYPE slis_t_event,&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot; Eventos.       &lt;br /&gt;&amp;#160; gt_header&amp;#160;&amp;#160;&amp;#160; TYPE slis_t_listheader,&amp;#160;&amp;#160;&amp;#160; &amp;quot; Tabla con el Titulo       &lt;br /&gt;&amp;#160; gt_sort&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TYPE slis_t_sortinfo_alv,&amp;#160; &amp;quot;tabla con orden y subtot       &lt;br /&gt;&amp;#160; wa_header&amp;#160;&amp;#160;&amp;#160; TYPE slis_listheader.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot; Work Area con el Titulo &lt;/p&gt;    &lt;p&gt;TYPES: BEGIN OF TYPE_FEBKO,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; HKONT TYPE FEBKO-HKONT, &amp;quot;Cuenta       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BUKRS TYPE FEBKO-BUKRS, &amp;quot;Sociedad       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AZDAT TYPE FEBKO-AZDAT, &amp;quot;Fecha extracto       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AZNUM TYPE FEBKO-AZNUM, &amp;quot;Numero extracto       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WAERS TYPE FEBKO-WAERS, &amp;quot;Moneda       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ESBTR TYPE FEBKO-ESBTR, &amp;quot;Importe       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ESVOZ TYPE FEBKO-ESVOZ, &amp;quot;Debe/Haber       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; HBKID TYPE FEBKO-HBKID, &amp;quot;Banco       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; HKTID TYPE FEBKO-HKTID, &amp;quot;Cuenta       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EFART TYPE FEBKO-EFART, &amp;quot;Tipo extracto M o E       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DISKB TYPE T035D-DISKB, &amp;quot;Codigo       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; END OF TYPE_FEBKO. &lt;/p&gt;    &lt;p&gt;TYPES: BEGIN OF TYPE_HEADER,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; BUKRS TYPE FEBKO-BUKRS, &amp;quot;Sociedad       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DISKB TYPE T035D-DISKB, &amp;quot;Codigo       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; END OF TYPE_HEADER. &lt;/p&gt;    &lt;p&gt;DATA: TI_FEBKO TYPE STANDARD TABLE OF TYPE_FEBKO.      &lt;br /&gt;DATA: TI_FEBKO_AUX TYPE STANDARD TABLE OF TYPE_FEBKO WITH HEADER LINE.       &lt;br /&gt;DATA: TI_TABLE TYPE STANDARD TABLE OF TYPE_FEBKO WITH HEADER LINE.       &lt;br /&gt;DATA: TI_HEADER TYPE STANDARD TABLE OF TYPE_HEADER WITH HEADER LINE. &lt;/p&gt;    &lt;p&gt;DATA: WA_FEBKO TYPE TYPE_FEBKO.      &lt;br /&gt;DATA: WA_FEBKO_AUX TYPE TYPE_FEBKO. &lt;/p&gt;    &lt;p&gt;DATA: v_ZFII039_H LIKE ZFII039_H,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; v_ZFII039_D LIKE ZFII039_D.&lt;/p&gt;    &lt;p&gt;DATA: it_edidd TYPE STANDARD TABLE OF edidd,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; it_edidc TYPE STANDARD TABLE OF edidc.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-5004247188834040856?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/5004247188834040856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/5004247188834040856'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/01/creacin-de-idocs.html' title='Creación de IDOCs'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-2157270359506548703</id><published>2008-01-31T11:23:00.001-02:00</published><updated>2008-01-31T11:24:12.463-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><title type='text'>FIMA_DAYS_AND_MONTHS_AND_YEARS</title><content type='html'>&lt;p&gt;Esta funci&amp;#243;n nos devuelve la diferencia en dias, meses y a&amp;#241;os entre dos fechas.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EXPORTING&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; i_date_from&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = s_badat2-low&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; i_date_to&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = s_badat2-high&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IMPORTING&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; e_days&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = gv_dias2&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; E_MONTHS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; E_YEARS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-2157270359506548703?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2157270359506548703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2157270359506548703'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/01/fimadaysandmonthsandyears.html' title='FIMA_DAYS_AND_MONTHS_AND_YEARS'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-8428913889002245402</id><published>2008-01-14T17:45:00.001-02:00</published><updated>2008-01-14T17:45:13.845-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><title type='text'>BAPI_COMPANYCODE_GET_PERIOD</title><content type='html'>&lt;p&gt;Esta funci&amp;#243;n nos sirve para obtener el ejercicio desde una fecha dada, ya que algunas empresas no usan el a&amp;#241;o fiscal similar al calendario solar.&lt;/p&gt;  &lt;p&gt;Par&amp;#225;metros:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Sociedad&lt;/li&gt;    &lt;li&gt;Fecha&lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-8428913889002245402?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8428913889002245402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8428913889002245402'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/01/bapicompanycodegetperiod.html' title='BAPI_COMPANYCODE_GET_PERIOD'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-4932096509015834509</id><published>2008-01-14T17:37:00.001-02:00</published><updated>2008-01-14T17:37:55.533-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LDB'/><category scheme='http://www.blogger.com/atom/ns#' term='HR'/><title type='text'>Base de datos lógicas - HR</title><content type='html'>&lt;p&gt;Las base de datos l&amp;#243;gicas es una forma mas r&amp;#225;pida de obtener datos, la base de datos l&amp;#243;gica se compone de la pantalla de selecci&amp;#243;n y de los datos en si. La metodolog&amp;#237;a de b&amp;#250;squeda es de &amp;#225;rbol.&lt;/p&gt;  &lt;p&gt;En la SE36 podemos administrar la base de datos l&amp;#243;gicas.&lt;/p&gt;  &lt;p&gt;Dentro del c&amp;#243;digo fuente nos damos cuenta del uso de base de datos l&amp;#243;gicas al ver la instrucci&amp;#243;n GET.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;GET PERNR.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Esta instrucci&amp;#243;n obtiene los datos y los carga en una estructura. Si nosotros queremos filtrarlos por alg&amp;#250;n campo de su estructura debemos usar la sentencia CHECK.&lt;/p&gt;  &lt;p&gt;Dentro de una l&amp;#243;gica de BDL. Podemos extrae informaci&amp;#243;n de los infotipos usando el comando PROVIDE - ENDPROVIDE. (similar al select com&amp;#250;n y corriente)&lt;/p&gt;  &lt;p&gt;Para usar este comando hay que declarar los infotipos con la sentencia INFOTYPES.&lt;/p&gt;  &lt;p&gt;INFOTYPES:&amp;#160; 0001,&amp;#160; &amp;quot;Asignaci&amp;#243;n Organizacional   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 0002.&amp;#160; &amp;quot;Datos de Personal&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;*Te va traiendo todos los registros del infotipo 0 comprendidos entre pn-begda y pn-endda. (Base de datos logica PNP)   &lt;br /&gt;PROVIDE * FROM p0000 BETWEEN pn-begd AND pn-endda.&lt;/p&gt;  &lt;p&gt;...   &lt;br /&gt;ENDPROVIDE.&lt;/p&gt;  &lt;p&gt;*Te trae los registros del inotipo 1 y 8 entre '19000101' '99991231' con cada corte.   &lt;br /&gt;PROVIDE gsber abkrs FROM p0001 FROM p0008 BETWEEN '19000101' AND '99991231'.    &lt;br /&gt;ENDPROVIDE.&lt;/p&gt;  &lt;p&gt;*Esta macro te deja en la cabezera el ultimo registro del infotipo 1 comprendido entre esas fechas   &lt;br /&gt;rp-provide-from-last p0001 space pn-begda pn-endda.&lt;/p&gt;  &lt;p&gt;*Para validar la correcta ejecusi&amp;#243;n de esta sentencia se usa:&lt;/p&gt;  &lt;p&gt;IF PNP-SW-FOUND EQ '1'. &amp;quot;encontr&amp;#243; un registro&lt;/p&gt;  &lt;p&gt;...&lt;/p&gt;  &lt;p&gt;ENDIF.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;*Esta macro te deja en la cabezera el prime registro del infotipo 1 comprendido entre esas fechas    &lt;br /&gt;rp-provide-from-last p0001 space pn-begda pn-endda.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ejemplo de LDB&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre&gt;*Start of Selection Event&lt;br /&gt;*========================&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;*                                       &amp;quot;Retrieve Infotypes&lt;br /&gt;GET PERNR.&lt;br /&gt;*                                       &amp;quot;Get last IT 0000 record&lt;br /&gt;  RP-PROVIDE-FROM-LAST P0000 SPACE PN-BEGDA PN-ENDDA.&lt;br /&gt;*                                       &amp;quot;Check employee is active&lt;br /&gt;  CHECK P0000-STAT2 IN PNPSTAT2.&lt;br /&gt;*                                       &amp;quot;Retrieve Employee Name&lt;br /&gt;  RP-PROVIDE-FROM-LAST P0002 SPACE PN-BEGDA PN-ENDDA.&lt;br /&gt;*&lt;br /&gt;  format color col_heading.&lt;br /&gt;  Write : / 'Name       : ', p0002-inits(4), p0002-nachn(10),  80 '*',&lt;br /&gt;          / 'NINO       : ', p0002-perid,                      80 '*',&lt;br /&gt;          / 'Birth Date : ', p0002-gbdat,                      80 '*'.&lt;br /&gt;  skip 1.&lt;br /&gt;  format reset.&lt;br /&gt;*&lt;br /&gt;  perform process_repeating_group.&lt;br /&gt;*&lt;br /&gt;*End of Selection Event&lt;br /&gt;*========================&lt;br /&gt;END-OF-SELECTION.&lt;/pre&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-4932096509015834509?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4932096509015834509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4932096509015834509'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/01/base-de-datos-lgicas-hr.html' title='Base de datos lógicas - HR'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-7002862235238113505</id><published>2008-01-11T16:56:00.001-02:00</published><updated>2008-01-28T15:02:38.619-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Validacion OB28'/><title type='text'>Validaciones - OB28</title><content type='html'>&lt;p&gt;Las validaciones est&amp;#225;n regidas por Sociedad y por evento.&lt;/p&gt;  &lt;p&gt;Evento:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Cabecera de documento&lt;/li&gt;    &lt;li&gt;Posici&amp;#243;n de documento&lt;/li&gt;    &lt;li&gt;Documento Completo&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://lh3.google.com/ramgv81/R4e73kJx8xI/AAAAAAAAAEI/t2BgZMzc7_0/image%5B3%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="157" alt="image" src="http://lh3.google.com/ramgv81/R4e74kJx8yI/AAAAAAAAAEQ/iEW8WxMHmug/image_thumb%5B1%5D" width="324" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Grado de activ. significa si est&amp;#225; activo o no (1 = ACTIVO)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.google.com/ramgv81/R4e76UJx8zI/AAAAAAAAAEY/KwyEPh1Ljyw/image%5B8%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="306" alt="image" src="http://lh5.google.com/ramgv81/R4e78EJx80I/AAAAAAAAAEg/1oHcE8EPW-A/image_thumb%5B4%5D" width="504" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Ah&amp;#237; vemos todos los pasos, cada uno con sus respectivas condiciones, verificaciones y mensajes.&lt;/p&gt;  &lt;p&gt;En el caso de necesitar usar un user exit, en la solapa user exit. seleccionamos una y le damos al bot&amp;#243;n de visualizar c&amp;#243;digo.&lt;/p&gt;  &lt;p&gt;Necesitamos crear el modulo dentro del siguiente FORM&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;*----------------------------------------------------------------------*     &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FORM GET_EXIT_TITLES&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*----------------------------------------------------------------------*      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; returns name and title of all available standard-exits&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; every exit in this formpool has to be added to this form.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; You have to specify a parameter type in order to enable the&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; code generation program to determine correctly how to&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; generate the user exit call, i.e. how many and what kind of&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; parameter(s) are used in the user exit.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; The following parameter types exist:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; TYPE&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Description&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Usage&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160; ------------------------------------------------------------&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; C_EXIT_PARAM_NONE&amp;#160;&amp;#160; Use no parameter&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Subst. and Valid. *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; except B_RESULT&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; C_EXIT_PARAM_CLASS&amp;#160; Use a type as parameter&amp;#160; Subst. and Valid&amp;#160; *      &lt;br /&gt;*----------------------------------------------------------------------*      &lt;br /&gt;*&amp;#160; --&amp;gt;&amp;#160; EXIT_TAB&amp;#160; table with exit-name and exit-titles&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; structure: NAME(5), PARAM(1), TITEL(60)      &lt;br /&gt;*----------------------------------------------------------------------*      &lt;br /&gt;FORM get_exit_titles TABLES etab. &lt;/p&gt;    &lt;p&gt;&amp;#160; DATA: BEGIN OF exits OCCURS 50,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; name(5)&amp;#160;&amp;#160; TYPE c,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; param&amp;#160;&amp;#160;&amp;#160;&amp;#160; LIKE c_exit_param_none,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; title(60) TYPE c,      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; END OF exits.      &lt;br /&gt;*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!      &lt;br /&gt;* PLEASE DELETE THE FIRST '*' FORM THE BEGINING OF THE FOLLOWING LINES *      &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IF THE ACCOUNTING MODULE IS INSTALLED IN YOUR SYSTEM:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*&amp;#160; EXITS-NAME&amp;#160; = 'U101'.      &lt;br /&gt;*&amp;#160; EXITS-PARAM = C_EXIT_PARAM_CLASS.      &lt;br /&gt;*&amp;#160; EXITS-TITLE = TEXT-100.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;Posting date check      &lt;br /&gt;*&amp;#160; APPEND EXITS. &lt;/p&gt;    &lt;p&gt;&amp;#160; exits-name&amp;#160; = 'U100'.     &lt;br /&gt;&amp;#160; exits-param = c_exit_param_none.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;Complete data used in exit.      &lt;br /&gt;&amp;#160; exits-title = text-101.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;Posting date check      &lt;br /&gt;&amp;#160; APPEND exits.&lt;/p&gt;    &lt;p&gt; REFRESH etab.     &lt;br /&gt;&amp;#160; LOOP AT exits.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; etab = exits.      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; APPEND etab.      &lt;br /&gt;&amp;#160; ENDLOOP. &lt;/p&gt;    &lt;p&gt;ENDFORM.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;quot;GET_EXIT_TITLES&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Ahora creamos la subrutina U100&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;*---------------------------------------------------------------------*     &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; form U941&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*---------------------------------------------------------------------*      &lt;br /&gt;*&amp;#160; Valida las retenciones de la clase de doc.      &lt;br /&gt;*---------------------------------------------------------------------*      &lt;br /&gt;* &amp;lt;--&amp;#160; b_result&amp;#160;&amp;#160;&amp;#160; t = true&amp;#160; f = false&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; *      &lt;br /&gt;*---------------------------------------------------------------------*      &lt;br /&gt;FORM U941&amp;#160; USING B_RESULT.      &lt;br /&gt;DATA: l_ind TYPE WITH_ITEM-WT_WITHCD VALUE 'RB'. &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;#160; B_RESULT = B_TRUE.     &lt;br /&gt;&amp;#160; SELECT SINGLE * FROM WITH_ITEM      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WHERE WT_WITHCD = l_ind. &lt;/p&gt;    &lt;p&gt;&amp;#160; IF sy-subrc &amp;lt;&amp;gt; 0.     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; B_RESULT = B_FALSE.      &lt;br /&gt;* Mensaje de error      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; MESSAGE E067(z1) WITH BKPF-BLART l_ind.      &lt;br /&gt;&amp;#160; Endif.      &lt;br /&gt;CLEAR WITH_ITEM.      &lt;br /&gt;ENDFORM.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Si necesitamos crear SET ( rangos o juegos de datos) los creamos con la transacci&amp;#243;n GS01&lt;/p&gt;  &lt;p&gt;Creamos el SET, guardamos y manualmente hay que agregarlo a Orden de transporte al igual que las validaciones.&lt;/p&gt;  &lt;p&gt;Para transportar &amp;#233;stas hay que posicionarnos sobre la validaci&amp;#243;n, Menu Validaci&amp;#243;n -&amp;gt; Transportar.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-7002862235238113505?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/7002862235238113505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/7002862235238113505'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/01/validaciones-ob28.html' title='Validaciones - OB28'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-8516440296127356361</id><published>2008-01-02T11:04:00.001-02:00</published><updated>2008-01-02T11:04:22.355-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BTE'/><title type='text'>Creación de BTE</title><content type='html'>&lt;p&gt;Tx FIBF&lt;/p&gt;  &lt;p&gt;Investigar sobre los procesos,&amp;#233;sta opci&amp;#243;n nos tira todos los procesos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.google.com/ramgv81/R3uLeEJx8lI/AAAAAAAAACo/cU7R6UOWxeM/image%5B16%5D"&gt;&lt;img height="107" alt="image" src="http://lh3.google.com/ramgv81/R3uLgkJx8mI/AAAAAAAAACw/jzaEJh3MfdE/image_thumb%5B8%5D" width="324" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Luego de elegir el que nos sirve hacemos click en M&amp;#243;dulo funciones tipo.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.google.com/ramgv81/R3uLj0Jx8nI/AAAAAAAAAC4/e8TcXB705Rg/image%5B29%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="304" alt="image" src="http://lh3.google.com/ramgv81/R3uLmkJx8oI/AAAAAAAAADA/45QP6a-wZi8/image_thumb%5B15%5D" width="324" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Esto nos lleva a la se37 con el sample del proceso, el cual debemos copiar para ejecutar el nuestro con el c&amp;#243;digo fuente que deseemos, pero antes debemos crear el &amp;quot;Producto&amp;quot; (ser&amp;#237;a algo as&amp;#237; como el proyecto de ampliaci&amp;#243;n de la CMOD)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.google.com/ramgv81/R3uLoEJx8pI/AAAAAAAAADI/TT66gGlgENE/image%5B4%5D" target="_blank"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="93" alt="image" src="http://lh4.google.com/ramgv81/R3uLp0Jx8qI/AAAAAAAAADQ/a7mupzs5Rrc/image_thumb%5B2%5D" width="324" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; Cuando creemos un producto nuevo, debemos tildar el checkbox que indica si est&amp;#225; activado o no.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.google.com/ramgv81/R3uLrkJx8rI/AAAAAAAAADY/niRGR-iVx2o/image%5B28%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="159" alt="image" src="http://lh4.google.com/ramgv81/R3uLt0Jx8sI/AAAAAAAAADg/cxvV0KGwnO0/image_thumb%5B14%5D" width="324" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Luego creamos el &amp;quot;M&amp;#243;dulo de proceso&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.google.com/ramgv81/R3uLv0Jx8tI/AAAAAAAAADo/Ky3v5gpVHaI/image%5B12%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="106" alt="image" src="http://lh6.google.com/ramgv81/R3uLxUJx8uI/AAAAAAAAADw/Ojjl2e1XOMM/image_thumb%5B6%5D" width="324" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Ac&amp;#225; es donde debemos poner la copia de la funci&amp;#243;n ejemplo:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Ponemos el proceso (ampliaci&amp;#243;n que debemos usar).&lt;/li&gt;    &lt;li&gt;Ponemos la funci&amp;#243;n de copia creada del original con nuestro c&amp;#243;digo.&lt;/li&gt;    &lt;li&gt;Elejimos el producto (el proyecto de ampliaci&amp;#243;n creado anteriormente).&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://lh3.google.com/ramgv81/R3uLzkJx8vI/AAAAAAAAAD4/Y23xH8W71P0/image%5B24%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="137" alt="image" src="http://lh4.google.com/ramgv81/R3uL00Jx8wI/AAAAAAAAAEA/NT0mm9F3-zo/image_thumb%5B12%5D" width="324" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;A modo informativo dejo en ingles las diferencias entre BADI y BTE y como buscar BTEs&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Difference between BADI&amp;#8217;s and BTE&amp;#8217;s:&lt;/b&gt;    &lt;br /&gt;The concepts behind the Business Add-Ins enhancement technique and Open FI are basically the same. However, the two enhancement techniques do differ from each other in the following points:     &lt;br /&gt; Open FI can only be used to make program enhancements, that is, you can only enhance source code using Open FI. You cannot enhance user interface elements with Open FI like you can with Business Add-Ins.     &lt;br /&gt; Open FI assumes that enhancement will only take place on three levels (SAP - partners - customers), whereas with Business Add-Ins you can create and implement enhancements in as many software layers as you like.     &lt;br /&gt; Open FI uses function modules for program enhancements. With Business Add-Ins, ABAP Objects are used enhance programs.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;b&gt;Finding Business Transaction Events:&lt;/b&gt;    &lt;br /&gt; SAP Reference IMG -&amp;gt; Financial Accounting -&amp;gt; Financial Accounting Global Settings -&amp;gt; Business Transaction Events     &lt;br /&gt;&amp;#8226; For Publish and Subscribe Interfaces, Environment - &amp;gt; Info system (P/S)     &lt;br /&gt;&amp;#8226; For Process Interfaces, Environment -&amp;gt; Infosystem(Processes)     &lt;br /&gt; Find for Character String &amp;#8220;OPEN_FI_PERFORM&amp;#8221; in source code&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-8516440296127356361?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8516440296127356361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8516440296127356361'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2008/01/creacin-de-bte.html' title='Creación de BTE'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-8907339237233375552</id><published>2007-12-28T12:35:00.001-03:00</published><updated>2007-12-28T12:35:24.908-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DDIC'/><title type='text'>Clave foránea compuesta con constante</title><content type='html'>&lt;p&gt;Si necesitamos crear una clave for&amp;#225;nea compuesta porque el campo que deseamos validar no tiene una tabla de maestro y un valor es constante.&lt;/p&gt;  &lt;p&gt;Debemos setearlo de la siguiente manera:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.google.com/ramgv81/R3UXtjTHCXI/AAAAAAAAACY/ISDL9qrW91E/image%5B2%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="201" alt="image" src="http://lh4.google.com/ramgv81/R3UXuzTHCYI/AAAAAAAAACg/Esl1SmTn_Ko/image_thumb" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-8907339237233375552?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8907339237233375552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8907339237233375552'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/12/clave-fornea-compuesta-con-constante.html' title='Clave foránea compuesta con constante'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-6368609680650022628</id><published>2007-11-22T11:45:00.001-03:00</published><updated>2007-11-22T11:45:10.765-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SapScript'/><title type='text'>Info completa de un Sapscript</title><content type='html'>&lt;p&gt;Para ver toda la informaci&amp;#243;n de un Sapscript, es muy &amp;#250;til cuando queremos buscar alg&amp;#250;n campo en particular y no sabemos en que ventana se encuentra.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.google.com/ramgv81/R0WV826blQI/AAAAAAAAACI/DWdZtNtJzFo/image%5B3%5D"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="142" alt="image" src="http://lh6.google.com/ramgv81/R0WV9W6blRI/AAAAAAAAACQ/qy46fueLI3E/image_thumb%5B1%5D" width="334" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-6368609680650022628?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6368609680650022628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6368609680650022628'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/11/info-completa-de-un-sapscript.html' title='Info completa de un Sapscript'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-8921565851646217000</id><published>2007-11-22T11:27:00.001-03:00</published><updated>2007-11-22T11:34:08.840-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PS'/><title type='text'>Costos de PS</title><content type='html'>&lt;p&gt;Es algo bastante t&amp;#237;pico que te pidan reportes de PS usando costos, reales, comprometidos, etc.&lt;/p&gt;  &lt;p&gt;Resumiendo todo dato real, comprometido y presupuesto esta en la COSP y RPSCO (resumen de COSP)&lt;/p&gt;  &lt;p&gt;A estas tablas hay que acceder por el OBJNR del elemento imputado:&lt;/p&gt;  &lt;p&gt;Si es un grafo -&amp;gt; AUFK-OBJNR&lt;/p&gt;  &lt;p&gt;Si es una operaci&amp;#243;n -&amp;gt; AFVC-OBJNR (se ingresa por hoja de ruta que la podemos tomar de la CAUFV con el N&amp;#250;mero de grafo)&lt;/p&gt;  &lt;p&gt;Textos en ingl&amp;#233;s que me ayudaron a resolver el tema:&lt;/p&gt;  &lt;p&gt;The actual,budget and commitment values are stored in the one table COSP.   &lt;br /&gt;The values differentiate with field &lt;b&gt;VRGNG&lt;/b&gt; - &amp;quot;CO Business Transaction&amp;quot;.    &lt;br /&gt;If the record has in this field text '&lt;b&gt;COIN&lt;/b&gt;' it means that values are &amp;quot;actual&amp;quot;.    &lt;br /&gt;For example:    &lt;br /&gt;OBJNR PR00000101    &lt;br /&gt;GJAHR 2005    &lt;br /&gt;KSTAR 101101    &lt;br /&gt;VRGNG &lt;b&gt;COIN&lt;/b&gt;    &lt;br /&gt;TWEAR USD    &lt;br /&gt;WTG001 100,00    &lt;br /&gt;WTG002 200,00    &lt;br /&gt;...    &lt;br /&gt;It means that the element PR0000101 has the '&lt;b&gt;actual'&lt;/b&gt; operations refering    &lt;br /&gt;the cost element 101101, with values: 100,00 USD in january 2005 and     &lt;br /&gt;200,00 USD in february 2005.    &lt;br /&gt;The next row in the table COSP, clould look like this:    &lt;br /&gt;OBJNR PR00000101    &lt;br /&gt;GJAHR 2005    &lt;br /&gt;KSTAR 101101    &lt;br /&gt;VRGNG &lt;b&gt;RMBA&lt;/b&gt;    &lt;br /&gt;TWEAR USD    &lt;br /&gt;WTG001 100,00    &lt;br /&gt;WTG002 0,00    &lt;br /&gt;...    &lt;br /&gt;This means that there was a &lt;b&gt;'Purchase requisition'&lt;/b&gt; in january 2005     &lt;br /&gt;with decretation on object PR0000101.    &lt;br /&gt;And the next row, could be:    &lt;br /&gt;OBJNR PR00000101    &lt;br /&gt;GJAHR 2005    &lt;br /&gt;KSTAR 101101    &lt;br /&gt;VRGNG &lt;b&gt;RMBE&lt;/b&gt;    &lt;br /&gt;TWEAR USD    &lt;br /&gt;WTG001 0,00    &lt;br /&gt;WTG002 150,00    &lt;br /&gt;And that means that in february 2005 there was a &lt;b&gt;'Purchase order'&lt;/b&gt;    &lt;br /&gt;with value 150,00 USD decretated on this object.&lt;/p&gt;  &lt;p&gt;------------------------------------------------------------------------------&lt;/p&gt;  &lt;p&gt;RMBA is the &amp;quot;Purchase Requisition&amp;quot; (created in transaction ME51n)   &lt;br /&gt;RMBE is the &amp;quot;Purchase Order&amp;quot; (created in transaction ME21n).    &lt;br /&gt;But both of these operations sum into commitment.    &lt;br /&gt;RKP1 stands for &amp;quot;Plan&amp;quot;, but &lt;b&gt;depending on configuration&lt;/b&gt;,     &lt;br /&gt;one of plan's versions can be the budget.    &lt;br /&gt;For example you can say, that plan in version 0 is the budget.    &lt;br /&gt;The best it would be, if you perform the check on &lt;b&gt;your&lt;/b&gt; system:    &lt;br /&gt;1. Choose one order that you know it has represetaives data in your raport s_alr...    &lt;br /&gt;2. Open table AUFK, and write down the 'object number'- field OBJNR.    &lt;br /&gt;3. Open table COSP, and select data for OBJNR, that you recived in previous step.    &lt;br /&gt;4. Check what values do you have in the field VRGNG.&lt;/p&gt;  &lt;p&gt;------------------------------------------------------------------------------&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-8921565851646217000?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8921565851646217000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8921565851646217000'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/11/costos-de-ps.html' title='Costos de PS'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-8191431760517396133</id><published>2007-11-03T12:41:00.000-03:00</published><updated>2007-11-03T12:43:15.252-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dialog'/><title type='text'>Status bar Standard</title><content type='html'>Si deseamos tener la status bar standard debemos setearla de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MODULE status_0100 OUTPUT.&lt;br /&gt;  SET PF-STATUS space.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SET PF-STATUS space.&lt;/span&gt;&lt;br /&gt;ENDMODULE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-8191431760517396133?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8191431760517396133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8191431760517396133'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/11/status-bar-standard.html' title='Status bar Standard'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-6106141676952181494</id><published>2007-10-31T11:05:00.000-03:00</published><updated>2008-01-02T11:24:00.471-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><title type='text'>Tomar valores de un Pop Up</title><content type='html'>A veces en la impresión de algun documento u alguna otra cosa, necesitamos un corte de control para ingresar un valor y usarlo para algo.&lt;br /&gt;&lt;br /&gt;En este ejemplo se muestra como haces para realizar esto:&lt;br /&gt;&lt;br /&gt;report zjacprueba.&lt;br /&gt;data: V_NUMERO like sval OCCURS 0 WITH HEADER LINE..&lt;br /&gt;&lt;br /&gt;V_NUMERO-TABNAME = 'MARA'.   "Tabla de donde queremos coger el campo&lt;br /&gt;V_NUMERO-fieldname = 'MATNR'. "Campo que queremos pedir por pantalla   &lt;br /&gt;APPEND V_NUMERO.&lt;br /&gt;V_NUMERO-TABNAME = 'MARA'.&lt;br /&gt;V_NUMERO-FIELDNAME = 'MTART'.&lt;br /&gt;APPEND V_NUMERO.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'POPUP_GET_VALUES'&lt;br /&gt;  EXPORTING&lt;br /&gt;*   NO_VALUE_CHECK        = ' '&lt;br /&gt;  POPUP_TITLE           = 'Complete los campos'&lt;br /&gt;  START_COLUMN          = '5'&lt;br /&gt;  START_ROW             = '5'&lt;br /&gt;* IMPORTING&lt;br /&gt;*   RETURNCODE            =&lt;br /&gt; TABLES&lt;br /&gt;   FIELDS                = V_NUMERO.&lt;br /&gt;* EXCEPTIONS&lt;br /&gt;*   ERROR_IN_FIELDS       = 1&lt;br /&gt;*   OTHERS                = 2&lt;br /&gt;         .&lt;br /&gt;IF SY-SUBRC &lt;&gt; 0.&lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;br /&gt;*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;LOOP AT V_NUMERO.&lt;br /&gt;  WRITE :/ V_NUMERO-VALUE. "Valor dado por pantalla. &lt;br /&gt;ENDLOOP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-6106141676952181494?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6106141676952181494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6106141676952181494'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/tomar-valores-de-un-pop-up.html' title='Tomar valores de un Pop Up'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-6868608730195454420</id><published>2007-10-29T12:22:00.000-03:00</published><updated>2007-10-29T12:23:17.836-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Program'/><title type='text'>Buscador de User Exit por TCODE</title><content type='html'>*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp; Report  ZBUSCO_EXIT                                                 *&lt;br /&gt;*&amp;                                                                     *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;*&amp;                                                                     *&lt;br /&gt;*&amp;                                                                     *&lt;br /&gt;*&amp;---------------------------------------------------------------------*&lt;br /&gt;&lt;br /&gt;REPORT  ZBUSCO_EXIT no standard page heading.&lt;br /&gt;                                .&lt;br /&gt;tables : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir.&lt;br /&gt;         tables : tstct.&lt;br /&gt;data : jtab like tadir occurs 0 with header line.&lt;br /&gt;data : field1(30).&lt;br /&gt;data : v_devclass like tadir-devclass.&lt;br /&gt;parameters : p_tcode like tstc-tcode obligatory.&lt;br /&gt;&lt;br /&gt;select single * from tstc where tcode eq p_tcode.&lt;br /&gt;if sy-subrc eq 0.&lt;br /&gt;   select single * from tadir where pgmid = 'R3TR'&lt;br /&gt;                    and object = 'PROG'&lt;br /&gt;                    and obj_name = tstc-pgmna.&lt;br /&gt;   move : tadir-devclass to v_devclass.&lt;br /&gt;      if sy-subrc ne 0.&lt;br /&gt;         select single * from trdir where name = tstc-pgmna.&lt;br /&gt;         if trdir-subc eq 'F'.&lt;br /&gt;            select single * from tfdir where pname = tstc-pgmna.&lt;br /&gt;            select single * from enlfdir where funcname =&lt;br /&gt;            tfdir-funcname.&lt;br /&gt;            select single * from tadir where pgmid = 'R3TR'&lt;br /&gt;                               and object = 'FUGR'&lt;br /&gt;                               and obj_name eq enlfdir-area.&lt;br /&gt;&lt;br /&gt;            move : tadir-devclass to v_devclass.&lt;br /&gt;          endif.&lt;br /&gt;       endif.&lt;br /&gt;       select * from tadir into table jtab&lt;br /&gt;                     where pgmid = 'R3TR'&lt;br /&gt;                       and object = 'SMOD'&lt;br /&gt;                       and devclass = v_devclass.&lt;br /&gt;        select single * from tstct where sprsl eq sy-langu and&lt;br /&gt;                                         tcode eq p_tcode.&lt;br /&gt;        format color col_positive intensified off.&lt;br /&gt;        write:/(19) 'Transaction Code - ',&lt;br /&gt;             20(20) p_tcode,&lt;br /&gt;             45(50) tstct-ttext.&lt;br /&gt;                    skip.&lt;br /&gt;        if not jtab[] is initial.&lt;br /&gt;           write:/(95) sy-uline.&lt;br /&gt;           format color col_heading intensified on.&lt;br /&gt;           write:/1 sy-vline,&lt;br /&gt;                  2 'Exit Name',&lt;br /&gt;                 21 sy-vline ,&lt;br /&gt;                 22 'Description',&lt;br /&gt;                 95 sy-vline.&lt;br /&gt;           write:/(95) sy-uline.&lt;br /&gt;           loop at jtab.&lt;br /&gt;              select single * from modsapt&lt;br /&gt;                     where sprsl = sy-langu and&lt;br /&gt;                            name = jtab-obj_name.&lt;br /&gt;                   format color col_normal intensified off.&lt;br /&gt;                   write:/1 sy-vline,&lt;br /&gt;                          2 jtab-obj_name hotspot on,&lt;br /&gt;                         21 sy-vline ,&lt;br /&gt;                         22 modsapt-modtext,&lt;br /&gt;                         95 sy-vline.&lt;br /&gt;           endloop.&lt;br /&gt;           write:/(95) sy-uline.&lt;br /&gt;           describe table jtab.&lt;br /&gt;           skip.&lt;br /&gt;           format color col_total intensified on.&lt;br /&gt;           write:/ 'No of Exits:' , sy-tfill.&lt;br /&gt;        else.&lt;br /&gt;           format color col_negative intensified on.&lt;br /&gt;           write:/(95) 'No User Exit exists'.&lt;br /&gt;        endif.&lt;br /&gt;      else.&lt;br /&gt;          format color col_negative intensified on.&lt;br /&gt;          write:/(95) 'Transaction Code Does Not Exist'.&lt;br /&gt;      endif.&lt;br /&gt;&lt;br /&gt;at line-selection.&lt;br /&gt;   get cursor field field1.&lt;br /&gt;   check field1(4) eq 'JTAB'.&lt;br /&gt;   set parameter id 'MON' field sy-lisel+1(10).&lt;br /&gt;   call transaction 'SMOD' and skip first   screen.&lt;br /&gt;&lt;br /&gt;*---End of Program&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-6868608730195454420?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6868608730195454420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6868608730195454420'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/buscador-de-user-exit-por-tcode.html' title='Buscador de User Exit por TCODE'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-7360745979974333835</id><published>2007-10-29T01:29:00.000-03:00</published><updated>2007-10-29T01:31:25.793-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ABAP'/><title type='text'>SAP NETWEAVER 2007s Trial</title><content type='html'>Despues de instalar el trial y de hacerlo funcionar.&lt;br /&gt;&lt;br /&gt;El siguiente reporte nos genera la data del caso de vuelo SFLIGHT.&lt;br /&gt;SAPBC_DATA_GENERATOR&lt;br /&gt;&lt;br /&gt;PACKAGE del trial:&lt;br /&gt;&lt;br /&gt;SAP_ABAPWD                                                                    &lt;br /&gt;SWDP_DEMO_TUTORIALS              Demo Tutorials for Web Dynpro ABAP           &lt;br /&gt;Z_ABAP_BOOK                      Training and Demo Programs - ABAP Book       &lt;br /&gt;Z_FLIGHTMODEL_WS                 Web services for flight model                &lt;br /&gt;Z_NSPPOSTINST                    NSP Post Installation Steps&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-7360745979974333835?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/7360745979974333835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/7360745979974333835'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/sap-netweaver-2007s-trial.html' title='SAP NETWEAVER 2007s Trial'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-4546286843709550943</id><published>2007-10-28T23:56:00.000-03:00</published><updated>2007-10-28T23:57:26.945-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><title type='text'>SPELL_AMOUNT - Texto de importes</title><content type='html'>CALL FUNCTION 'SPELL_AMOUNT'&lt;br /&gt;EXPORTING&lt;br /&gt;AMOUNT = L_ENTRADA "Indicar importe&lt;br /&gt;CURRENCY = 'EUR' "Indicar moneda&lt;br /&gt;LANGUAGE = SY-LANGU "Indicar idioma texto&lt;br /&gt;IMPORTING&lt;br /&gt;IN_WORDS = L_RESULTADO&lt;br /&gt;EXCEPTIONS&lt;br /&gt;NOT_FOUND = 1&lt;br /&gt;TOO_LARGE = 2&lt;br /&gt;OTHERS = 3&lt;br /&gt;&lt;br /&gt;L_entrada es el importe que quieras traducir a letras. El resultado lo tendras en L_RESULTADO. Más detallado:&lt;br /&gt;L_RESULTADO-WORD = parte entera&lt;br /&gt;L_RESULTADO-IN_WORDS = parte decimal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-4546286843709550943?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4546286843709550943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4546286843709550943'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/spellamount-texto-de-importes.html' title='SPELL_AMOUNT - Texto de importes'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-6569399171650716700</id><published>2007-10-28T23:37:00.001-03:00</published><updated>2007-10-28T23:37:33.959-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Report'/><title type='text'>ALV - Catalogo</title><content type='html'>ALV – Catálogo&lt;br /&gt;&lt;br /&gt;ROW_POS:&lt;br /&gt;Solo se informará este campo en el caso en el que el report de salida sea multilínea. Valores: 0, 1, 2 y 3.&lt;br /&gt;&lt;br /&gt;COL_POS:&lt;br /&gt;Solo es relevante en el caso que se quiera que la salida en el listado tenga un orden distinto a su posición en la tabla interna de datos.&lt;br /&gt;&lt;br /&gt;TABNAME:&lt;br /&gt;Nombre de la tabla interna que contiene los datos a mostrar en el listado.&lt;br /&gt;&lt;br /&gt;REF_FIELDNAME:&lt;br /&gt;Nombre del campo de la tabla del diccionario de datos al cual está referenciado el campo de la tabla interna (en el caso en el que lo esté).&lt;br /&gt;&lt;br /&gt;CFIELDNAME:&lt;br /&gt;Nombre del campo de la tabla interna de datos que contiene la moneda para el campo importe.&lt;br /&gt;&lt;br /&gt;CTABNAME:&lt;br /&gt;Este dato sólo es relevante informarlo para listados con más de una cabecera.&lt;br /&gt;&lt;br /&gt;QFIELDNAME:&lt;br /&gt;Nombre del campo de la tabla interna de datos que contiene la unidad de medida para el campo cantidad.&lt;br /&gt;&lt;br /&gt;QTABNAME:&lt;br /&gt;Este dato solo es relevante informarlo para listados con más de una cabecera. &lt;br /&gt;&lt;br /&gt;OUTPUTLEN:&lt;br /&gt;Siempre que el campo a mostrar en el listado de salida no esté referenciado a ningún campo de tabla del diccionario, se especificará aquí la longitud de salida del campo.&lt;br /&gt;&lt;br /&gt;KEY:&lt;br /&gt;El campo del registro actual se tomará como clave si se marca este campo. No podrá ocultarse en el listado de salida este campo.&lt;br /&gt;&lt;br /&gt;KEY_SEL:&lt;br /&gt;El campo será clave, pero podrá no salir en el listado de salida.&lt;br /&gt;&lt;br /&gt;NO_OUT:&lt;br /&gt;El campo no será mostrado en el listado de salida.&lt;br /&gt;&lt;br /&gt;TECH:&lt;br /&gt;Si se marca este campo, el campo actual no puede nunca salir en el listado de salida.&lt;br /&gt;&lt;br /&gt;EMPHASIZE:&lt;br /&gt;Para mostrar el campo de algún color.&lt;br /&gt;&lt;br /&gt;HOTSPOT:&lt;br /&gt;El campo aparece como hotspot.&lt;br /&gt;&lt;br /&gt;FIX_COLUMN:&lt;br /&gt;Si se marca, este campo aparecería como columna fija.&lt;br /&gt;&lt;br /&gt;DO_SUM:&lt;br /&gt;Se calculará la suma de este campo.&lt;br /&gt;&lt;br /&gt;NO_SUM:&lt;br /&gt;No se calculará la suma de este campo.&lt;br /&gt;&lt;br /&gt;ICON:&lt;br /&gt;El campo será mostrado como un icono.&lt;br /&gt;&lt;br /&gt;SYMBOL:&lt;br /&gt;El campo será mostrado como un símbolo.&lt;br /&gt;&lt;br /&gt;JUST:&lt;br /&gt;Justificación del campo. R= justificado a la derecha, L= justificado a la izquierda, C= centrado.&lt;br /&gt;&lt;br /&gt;LZERO:&lt;br /&gt;Mostrará los campos de tipo NUMC justificados a la derecha y sin ceros a la izquierda.&lt;br /&gt;&lt;br /&gt;NO_SIGN:&lt;br /&gt;Mostrará el campo sin signos.&lt;br /&gt;&lt;br /&gt;NO_ZERO:&lt;br /&gt;Suprime los 0’s.&lt;br /&gt;&lt;br /&gt;EDIT_MASK:&lt;br /&gt;Mostrará el campo con una máscara.&lt;br /&gt;&lt;br /&gt;SELTEXT_L:&lt;br /&gt;Se mostrará en la cabecera de la columna el texto largo de la definición del campo en la tabla del diccinario de datos.&lt;br /&gt;&lt;br /&gt;SELTEXT_M:&lt;br /&gt;Se mostrará en la cabecera de la columna el texto medio de la definición del campo en la tabla del diccinario de datos.&lt;br /&gt;&lt;br /&gt;SELTEXT_S:&lt;br /&gt;Se mostrará en la cabecera de la columna el texto corto de la definición del campo en la tabla del diccinario de datos.&lt;br /&gt;&lt;br /&gt;DDICTXT:&lt;br /&gt;Especificará mediante L, M y S el texto largo, medio o corto que se utilizará en los títulos de las cabeceras.&lt;br /&gt;&lt;br /&gt;DATATYPE:&lt;br /&gt;Se especificará cuando el campo de la tabla interna de datos no esté referenciado a ningún campo de tabla del diccionario de datos.&lt;br /&gt;&lt;br /&gt;DDIC_OUTPUTLEN:&lt;br /&gt;Especifica la longitud de salida. Para campos no referenciados al diccionario de datos.&lt;br /&gt;&lt;br /&gt;SP_GROUP:&lt;br /&gt;Si se marca este campo, el campo actual pertenecerá a un grupo que se especificará después en el parámetro IT_SPECIAL_GROUPS.&lt;br /&gt;&lt;br /&gt;REPREP:&lt;br /&gt;El campo será tomado como un criterio de selección&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-6569399171650716700?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6569399171650716700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/6569399171650716700'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/alv-catalogo.html' title='ALV - Catalogo'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-618830835987020792</id><published>2007-10-28T23:24:00.000-03:00</published><updated>2007-10-28T23:25:28.190-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Report'/><title type='text'>Campo password (oculto) en reporte</title><content type='html'>Si se desea mostrar un como de entrada como texto oculto, o como un campo de password (ej. carácteres '****') debe insertar un código similar al siguiente ejemplo:&lt;br /&gt;&lt;br /&gt;PARAMETERS: P_PASSWD(8) MODIF ID MiTexto. &lt;--- "MiTexto" es un ID de grupo&lt;br /&gt;...&lt;br /&gt;AT SELECTION-SCREEN OUTPUT.&lt;br /&gt;LOOP AT SCREEN.&lt;br /&gt;IF SCREEN-GROUP1 = 'MiTexto'. "Comprueba si el ID es = al que queremos que se oculteSCREEN-INVISIBLE = '1'.&lt;br /&gt;MODIFY SCREEN.&lt;br /&gt;ENDIF.&lt;br /&gt;ENDLOOP.&lt;br /&gt;END-OF-SELECTION.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-618830835987020792?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/618830835987020792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/618830835987020792'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/campo-password-oculto-en-reporte.html' title='Campo password (oculto) en reporte'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-3584371326724289536</id><published>2007-10-28T23:22:00.000-03:00</published><updated>2007-10-28T23:23:06.725-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ABAP'/><title type='text'>Wildcard</title><content type='html'>Wildcard para busquedas.&lt;br /&gt;&lt;br /&gt;z*        Que comienzan con z&lt;br /&gt;*sale*    Que contienen el string sale, tal como rvsale07&lt;br /&gt;*f+       Que contienen una f como el carácter penúltimo, tal como rmlogifa&lt;br /&gt;rp+++sch  Que comienzan con rp, terminan en sch y contienen tres caracteres&lt;br /&gt;          cualesquiera entre medio, tal como rp012sch o rpinvsch&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-3584371326724289536?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3584371326724289536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3584371326724289536'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/wildcard.html' title='Wildcard'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-3408974187630083387</id><published>2007-10-28T23:20:00.000-03:00</published><updated>2007-10-28T23:22:13.610-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><title type='text'>Llamar aplicación externa de SAP</title><content type='html'>WS_EXECUTE permite ejecutar el programa externo de SAP, permite pasar parámetros.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'WS_EXECUTE' &lt;br /&gt;EXPORTING &lt;br /&gt;* DOCUMENT = ' ' &lt;br /&gt;* CD = ' ' &lt;br /&gt;COMMANDLINE = ' -min -a c:destino.zip c:1.txt c:2.txt' &lt;br /&gt;* INFORM = ' ' &lt;br /&gt;PROGRAM = 'winzip32.exe' &lt;br /&gt;* STAT = ' ' &lt;br /&gt;* WINID = ' ' &lt;br /&gt;* OSMAC_SCRIPT = ' ' &lt;br /&gt;* OSMAC_CREATOR = ' ' &lt;br /&gt;* WIN16_EXT = ' ' &lt;br /&gt;* EXEC_RC = ' ' &lt;br /&gt;* IMPORTING &lt;br /&gt;* RBUFF = &lt;br /&gt;* EXCEPTIONS &lt;br /&gt;* FRONTEND_ERROR = 1 &lt;br /&gt;* NO_BATCH = 2 &lt;br /&gt;* PROG_NOT_FOUND = 3 &lt;br /&gt;* ILLEGAL_OPTION = 4 &lt;br /&gt;* GUI_REFUSE_EXECUTE = 5 &lt;br /&gt;* OTHERS = 6 &lt;br /&gt;. &lt;br /&gt;IF sy-subrc &lt;&gt; 0. &lt;br /&gt;* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO &lt;br /&gt;* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-3408974187630083387?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3408974187630083387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3408974187630083387'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/llamar-aplicacin-externa-de-sap.html' title='Llamar aplicación externa de SAP'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-2635086527386546796</id><published>2007-10-28T23:15:00.000-03:00</published><updated>2007-10-28T23:16:29.671-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ABAP'/><title type='text'>System values</title><content type='html'>Para cuando no se tenga acceso a la se11&lt;br /&gt;&lt;br /&gt;SY-INDEX    Number of loop passes                               &lt;br /&gt;SY-PAGNO    Runtime: Current page in list                       &lt;br /&gt;SY-TABIX    Runtime: Current line of an internal table          &lt;br /&gt;SY-TFILL    Current number of entries in internal table         &lt;br /&gt;SY-TLOPC    Internal use                                        &lt;br /&gt;SY-TMAXL    Maximum number of entries in internal table         &lt;br /&gt;SY-TOCCU    OCCURS parameter with internal tables               &lt;br /&gt;SY-TTABC    Number of line last read in an internal table       &lt;br /&gt;SY-TSTIS    Internal use                                        &lt;br /&gt;SY-TTABI    Offset of internal table in roll area                      &lt;br /&gt;SY-DBCNT    Number of elements in edited dataset with DB operations    &lt;br /&gt;SY-FDPOS    Location of a string                                       &lt;br /&gt;SY-COLNO    Current column during list creation                        &lt;br /&gt;SY-LINCT    Number of list lines                                       &lt;br /&gt;SY-LINNO    Current line for list creation                             &lt;br /&gt;SY-LINSZ    Line size of list                                          &lt;br /&gt;SY-PAGCT    Page size of list from REPORT statement                    &lt;br /&gt;SY-MACOL    Number of columns from SET MARGIN                          &lt;br /&gt;SY-MAROW    No. of lines from SET MARGIN statement            &lt;br /&gt;SY-TLENG    Line width of an internal table                   &lt;br /&gt;SY-SFOFF    Internal use                                      &lt;br /&gt;SY-WILLI    Number of current window line                     &lt;br /&gt;SY-LILLI    Number of current list line                       &lt;br /&gt;SY-SUBRC    Return value after specific ABAP/4 statements     &lt;br /&gt;SY-FLENG    Internal use (field length)                       &lt;br /&gt;SY-CUCOL    Cursor position (column)                          &lt;br /&gt;SY-CUROW    Cursor position (line)                            &lt;br /&gt;SY-LSIND    Number of secondary list                                   &lt;br /&gt;SY-LISTI    Number of current list line                                &lt;br /&gt;SY-STEPL    Number of LOOP line at screen step                         &lt;br /&gt;SY-TPAGI    Flag indicating roll-out of internal table to paging area  &lt;br /&gt;SY-WINX1    Window coordinate (column left)                            &lt;br /&gt;SY-WINY1    Window coordinate (line left)                              &lt;br /&gt;SY-WINX2    Window coordinate (column right)                           &lt;br /&gt;SY-WINY2    Window coordinate (line right)                             &lt;br /&gt;SY-WINCO    Cursor position in window (column)                         &lt;br /&gt;SY-WINRO    Cursor position in window (line)                            &lt;br /&gt;SY-WINDI    Index of current window line                                &lt;br /&gt;SY-SROWS    Lines on screen                                             &lt;br /&gt;SY-SCOLS    Columns on screen                                           &lt;br /&gt;SY-LOOPC    Number of LOOP lines at screen step loop                    &lt;br /&gt;SY-FOLEN    Internal use (field output length)                          &lt;br /&gt;SY-FODEC    Internal use (field decimal places)                         &lt;br /&gt;SY-TZONE    Time difference from 'Greenwich Mean Time' (UTC) in seconds &lt;br /&gt;SY-DAYST    Summertime active ? ('daylight saving time')                &lt;br /&gt;SY-FTYPE    Internal use (field type)                                 &lt;br /&gt;SY-APPLI    SAP applications                                          &lt;br /&gt;SY-FDAYW    Factory calendar weekday                                  &lt;br /&gt;SY-CCURS    Rate specification/result field (CURRENCY CONVERT)        &lt;br /&gt;SY-CCURT    Table rate from currency conversion                       &lt;br /&gt;SY-DEBUG    Internal use                                              &lt;br /&gt;SY-CTYPE    Exchange rate type 'M','B','G' from CURRENCY CONVERSION   &lt;br /&gt;SY-INPUT    Internal use                                              &lt;br /&gt;SY-LANGU    SAP logon language key                                    &lt;br /&gt;SY-MODNO    Number of alternative modi       &lt;br /&gt;SY-BATCH    Background active (X)            &lt;br /&gt;SY-BINPT    Batch input active (X)           &lt;br /&gt;SY-CALLD    CALL mode active (X)             &lt;br /&gt;SY-DYNNR    Number of current screen         &lt;br /&gt;SY-DYNGR    Screen group of current screen   &lt;br /&gt;SY-NEWPA    Internal use                     &lt;br /&gt;SY-PRI40    Internal use                     &lt;br /&gt;SY-RSTRT    Internal use                     &lt;br /&gt;SY-WTITL    Standard page header indicator        &lt;br /&gt;SY-CPAGE    Current page number                   &lt;br /&gt;SY-DBNAM    Logical database for ABAP/4 program   &lt;br /&gt;SY-MANDT    Client number from SAP logon          &lt;br /&gt;SY-PREFX    ABAP/4 prefix for background jobs     &lt;br /&gt;SY-FMKEY    Current function code menu            &lt;br /&gt;SY-PEXPI    Print: Spool retention period         &lt;br /&gt;SY-PRINI    Internal use                          &lt;br /&gt;SY-PRIMM    Print: Print immediately              &lt;br /&gt;SY-PRREL    Print: Delete after printing             &lt;br /&gt;SY-PLAYO    Internal use                             &lt;br /&gt;SY-PRBIG    Print: Selection cover sheet             &lt;br /&gt;SY-PLAYP    Internal use                             &lt;br /&gt;SY-PRNEW    Print: New spool request (list)          &lt;br /&gt;SY-PRLOG    Internal use                             &lt;br /&gt;SY-PDEST    Print: Output device                     &lt;br /&gt;SY-PLIST    Print: Name of spool request (list name) &lt;br /&gt;SY-PAUTH    Internal use                             &lt;br /&gt;SY-PRDSN    Print: Name of spool dataset                  &lt;br /&gt;SY-PNWPA    Internal use                                  &lt;br /&gt;SY-CALLR    Print: ID for print dialog function           &lt;br /&gt;SY-REPI2    Internal use                                  &lt;br /&gt;SY-RTITL    Print: Report title of program to be printed  &lt;br /&gt;SY-PRREC    Print: Recipient                              &lt;br /&gt;SY-PRTXT    Print: Text for cover sheet                   &lt;br /&gt;SY-PRABT    Print: Department on cover sheet              &lt;br /&gt;SY-LPASS    Internal use                                  &lt;br /&gt;SY-NRPAG    Internal use                                    &lt;br /&gt;SY-PAART    Print: Format                                   &lt;br /&gt;SY-PRCOP    Print: Number of copies                         &lt;br /&gt;SY-BATZS    Background SUBMIT: Immediately                  &lt;br /&gt;SY-BSPLD    Background SUBMIT: List output to spool         &lt;br /&gt;SY-BREP4    Background SUBMIT: Root name of request report  &lt;br /&gt;SY-BATZO    Background SUBMIT: Once                         &lt;br /&gt;SY-BATZD    Background SUBMIT: Daily                        &lt;br /&gt;SY-BATZW    Background SUBMIT: Weekly                       &lt;br /&gt;SY-BATZM    Background SUBMIT: Monthly                   &lt;br /&gt;SY-CTABL    Exchange rate table from currency conversion &lt;br /&gt;SY-DBSY-S   System: Database system                      &lt;br /&gt;SY-DCSY-S   System: Dialog system                        &lt;br /&gt;SY-MACDB    Program: Name of file for matchcode access   &lt;br /&gt;SY-SY-SID   System: SAP system ID                        &lt;br /&gt;SY-OPSY-S   System: Operating system                     &lt;br /&gt;SY-PFKEY    Runtime: Current F key status                &lt;br /&gt;SY-SAPRL    System: SAP Release                          &lt;br /&gt;SY-TCODE    Session: Current transaction code                    &lt;br /&gt;SY-UCOMM    Interact.: Command field function entry              &lt;br /&gt;SY-CFWAE    Internal use                                         &lt;br /&gt;SY-CHWAE    Internal use                                         &lt;br /&gt;SY-SPONO    Runtime: Spool number for list output                &lt;br /&gt;SY-SPONR    Runtime: Spool number from TRANSFER statement        &lt;br /&gt;SY-WAERS    T001: Company code currency after reading B segment  &lt;br /&gt;SY-CDATE    Date of rate from currency conversion                &lt;br /&gt;SY-DATUM    system: Date                                         &lt;br /&gt;SY-SLSET    Name of selection set                            &lt;br /&gt;SY-SUBTY    ABAP/4: Call type for SUBMIT                     &lt;br /&gt;SY-SUBCS    Internal: CALL status of program                 &lt;br /&gt;SY-GROUP    Internal: Bundling                               &lt;br /&gt;SY-FFILE    Internal: Flat file (USING/GENERATING DATASET)   &lt;br /&gt;SY-UZEIT    system: Time                                     &lt;br /&gt;SY-DSNAM    Runtime: Name of dataset for spool output        &lt;br /&gt;SY-REPID    Program: Name of ABAP/4 program                  &lt;br /&gt;SY-TABID    Internal use                                     &lt;br /&gt;SY-TFDSN    Runtime: Dataset for data extracts                 &lt;br /&gt;SY-UNAME    Session: SAP user from SAP logon                   &lt;br /&gt;SY-LSTAT    Interact.: Status information for each list level  &lt;br /&gt;SY-ABCDE    Constant: Alphabet (A,B,C,...)                     &lt;br /&gt;SY-MARKY    Current line character for MARK                    &lt;br /&gt;SY-SFNAM    No longer used                                     &lt;br /&gt;SY-TNAME    Name of internal table after an access             &lt;br /&gt;SY-MSGLI    Interact.: Message line (line 23)                  &lt;br /&gt;SY-TITLE    Title of ABAP/4 program                            &lt;br /&gt;SY-ENTRY    Internal use                                    &lt;br /&gt;SY-LISEL    Interact.: Selected line                        &lt;br /&gt;SY-ULINE    Constant: Underline (---------...)              &lt;br /&gt;SY-XCODE    Extended command field                          &lt;br /&gt;SY-CPROG    Runtime: Main program                           &lt;br /&gt;SY-XPROG    Internal use (system-EXIT program)              &lt;br /&gt;SY-XFORM    Internal use (system-EXIT form)                 &lt;br /&gt;SY-LDBPG    Program: ABAP/4 database program for SY--DBNAM   &lt;br /&gt;SY-TVAR     Runtime: Text variable for ABAP/4 text elements &lt;br /&gt;SY-TVAR     Runtime: Text variable for ABAP/4 text elements  &lt;br /&gt;SY-TVAR     Runtime: Text variable for ABAP/4 text elements  &lt;br /&gt;SY-TVAR     Runtime: Text variable for ABAP/4 text elements  &lt;br /&gt;SY-TVAR     Runtime: Text variable for ABAP/4 text elements  &lt;br /&gt;SY-TVAR     Runtime: Text variable for ABAP/4 text elements  &lt;br /&gt;SY-TVAR     Runtime: Text variable for ABAP/4 text elements  &lt;br /&gt;SY-TVAR     Runtime: Text variable for ABAP/4 text elements  &lt;br /&gt;SY-TVAR     Runtime: Text variable for ABAP/4 text elements  &lt;br /&gt;SY-TVAR     Runtime: Text variable for ABAP/4 text elements  &lt;br /&gt;SY-MSGID    Message ID                         &lt;br /&gt;SY-MSGTY    Message type (E,I.W,...)           &lt;br /&gt;SY-MSGNO    Message number                     &lt;br /&gt;SY-MSGV     Message variable                   &lt;br /&gt;SY-MSGV     Message variable                   &lt;br /&gt;SY-MSGV     Message variable                   &lt;br /&gt;SY-MSGV     Message variable                   &lt;br /&gt;SY-ONCOM    Internal: ON COMMIT flag           &lt;br /&gt;SY-VLINE    Constant: Vertical bar             &lt;br /&gt;SY-WINSL    Interact.: Selected window line         &lt;br /&gt;SY-STACO    Interact.: List displayed from column   &lt;br /&gt;SY-STARO    Interact.: Page displayd from line      &lt;br /&gt;SY-DATAR    Flag: Data received                     &lt;br /&gt;SY-HOST     Host                                    &lt;br /&gt;SY-STLOCDB  Local database exists                   &lt;br /&gt;SY-STLOCOP  Local database operation                &lt;br /&gt;SY-STDATLO  Local date for user                     &lt;br /&gt;SY-STTIMLO  Local time for user                     &lt;br /&gt;SY-STTSTLO  Timestamp (date and time) for user             &lt;br /&gt;SY-STZONLO  Time zone of user                              &lt;br /&gt;SY-STDATUT  Global date related to UTC (GMT)               &lt;br /&gt;SY-STTIMUT  Global time related to UTC (GMT)               &lt;br /&gt;SY-STTSTUT  Timestamp (date and time) related to UTC (GMT)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-2635086527386546796?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2635086527386546796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2635086527386546796'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/system-values.html' title='System values'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-4280375986752000479</id><published>2007-10-28T23:13:00.000-03:00</published><updated>2007-10-28T23:14:33.786-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><title type='text'>PopUp de texto a Usuario</title><content type='html'>CALL FUNCTION 'TH_POPUP'&lt;br /&gt;       EXPORTING&lt;br /&gt;            CLIENT         = SY-MANDT&lt;br /&gt;            USER           = USR_TABL-BNAME&lt;br /&gt;            MESSAGE        = MESSAGE&lt;br /&gt;       EXCEPTIONS&lt;br /&gt;            USER_NOT_FOUND = 1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-4280375986752000479?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4280375986752000479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4280375986752000479'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/popup-de-texto-usuario.html' title='PopUp de texto a Usuario'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-2965837408173839846</id><published>2007-10-28T23:08:00.000-03:00</published><updated>2007-10-28T23:09:02.736-03:00</updated><title type='text'>Buscar un string en todos los programas</title><content type='html'>RSRSCAN1 - Search a String in all programs, and the list of hits in the program.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-2965837408173839846?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2965837408173839846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2965837408173839846'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/buscar-un-string-en-todos-los-programas.html' title='Buscar un string en todos los programas'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-848260289586546244</id><published>2007-10-28T23:07:00.001-03:00</published><updated>2007-10-28T23:07:43.870-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ABAP'/><title type='text'>Condición lógica de Strings</title><content type='html'>CO Contiene sólo.&lt;br /&gt;CN No contiene sólo.&lt;br /&gt;CA Contiene algún.&lt;br /&gt;NA No contiene algún.&lt;br /&gt;CS Contiene el string.&lt;br /&gt;NS No contiene el string.&lt;br /&gt;CP Contiene el pattern.&lt;br /&gt;‘*’ cualquier número de caracteres.&lt;br /&gt;‘+’ cualquier carácter.&lt;br /&gt;‘#’&lt;br /&gt;NP No contiene el pattern.&lt;br /&gt;‘*’ cualquier número de caracteres.&lt;br /&gt;‘+’ cualquier carácter.&lt;br /&gt;‘#’&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-848260289586546244?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/848260289586546244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/848260289586546244'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/condicin-lgica-de-strings.html' title='Condición lógica de Strings'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-3895535652428475231</id><published>2007-10-28T23:04:00.000-03:00</published><updated>2007-10-29T12:14:15.653-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Program'/><title type='text'>Download programa a un directorio</title><content type='html'>*----------------------------------------------------------------------*&lt;br /&gt;* Report: ZKBPROGS             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Function   : Up/Download ABAP reports complete with texts            *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Change Log :                 *&lt;br /&gt;* July 5, 1999         *&lt;br /&gt;*    - Combined existing programs that did the upload and download into*&lt;br /&gt;*    - one program.            *&lt;br /&gt;*    - Changed format that the reports are saved in to be compatible   *&lt;br /&gt;*      with Wolfgang Morgenthaler's upload/download program(YSTRASN00  *&lt;br /&gt;*      at www.antarcon.de).  Major differences between this program and*&lt;br /&gt;*      Wolfgang's are:&lt;br /&gt;*         - this program does not update TRDIR with the                *&lt;br /&gt;*           TRDIR entries that are in the program uploaded.  Instead,  *&lt;br /&gt;*           current users stats are used.          *&lt;br /&gt;*         - this program allows selection of reports from a list or    *&lt;br /&gt;*           a single report can be tuped in and uploaded               *&lt;br /&gt;*         - this program also updates TADIR so that a development class*&lt;br /&gt;*           is assigned to the program             *&lt;br /&gt;*         - this program checks to see if the program already has a    *&lt;br /&gt;*           TRDIR entry, and if it does, warns the user                *&lt;br /&gt;*         - this program will save/restore the program documenation too*&lt;br /&gt;*          *&lt;br /&gt;*          *&lt;br /&gt;*          *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;REPORT ZKBPROGS&lt;br /&gt;       NO STANDARD PAGE HEADING&lt;br /&gt;       LINE-SIZE  255.&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Declare Database Objects     *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;tables:&lt;br /&gt;  DOKIL,&lt;br /&gt;  TRDIR.&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Constants*&lt;br /&gt;CONSTANTS:&lt;br /&gt;  MC_TRDIR_IDENTIFIER(72)  TYPE C VALUE '%&amp;%&amp; RDIR',&lt;br /&gt;  MC_REPORT_IDENTIFIER(72) TYPE C VALUE '%&amp;%&amp; REPO',&lt;br /&gt;  MC_TEXT_IDENTIFIER(72)   TYPE C VALUE '%&amp;%&amp; TEXP',&lt;br /&gt;  MC_THEAD_IDENTIFIER(72)  TYPE C VALUE '%&amp;%&amp; HEAD',&lt;br /&gt;  MC_DOC_IDENTIFIER(72)    TYPE C VALUE '%&amp;%&amp; DOKL',&lt;br /&gt;  MC_TRDIR_SHORT(4)        TYPE C VALUE 'RDIR',&lt;br /&gt;  MC_REPORT_SHORT(4)       TYPE C VALUE 'REPO',&lt;br /&gt;  MC_TEXT_SHORT(4)         TYPE C VALUE 'TEXP',&lt;br /&gt;  MC_THEAD_SHORT(4)        TYPE C VALUE 'HEAD',&lt;br /&gt;  MC_DOC_SHORT(4)          TYPE C VALUE 'DOKP'.&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Declare Module level data structures             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;DATA: BEGIN OF MTAB_PROGRAM_SOURCE OCCURS 0,&lt;br /&gt;        LINE(72) TYPE C,&lt;br /&gt;      END OF MTAB_PROGRAM_SOURCE.&lt;br /&gt;DATA: MTAB_PROGRAM_TRDIR LIKE TRDIR OCCURS 0 WITH HEADER LINE.&lt;br /&gt;DATA: MTAB_PROGRAM_TEXTS LIKE TEXTPOOL OCCURS 0 WITH HEADER LINE.&lt;br /&gt;DATA: MSTR_THEAD LIKE THEAD.&lt;br /&gt;DATA: BEGIN OF MTAB_PROGRAM_FILE OCCURS 0,&lt;br /&gt;        LINE(275) TYPE C,&lt;br /&gt;      END OF MTAB_PROGRAM_FILE.&lt;br /&gt;DATA: BEGIN OF MTAB_DIRECTORY OCCURS 0,&lt;br /&gt;        NAME LIKE TRDIR-NAME,&lt;br /&gt;        DESC(72) TYPE C,&lt;br /&gt;        SAVENAME LIKE RLGRAP-FILENAME,&lt;br /&gt;      END OF MTAB_DIRECTORY.&lt;br /&gt;DATA: BEGIN OF MTAB_PROGRAM_DOCUMENTATION OCCURS 0,&lt;br /&gt;        LINE(255) TYPE C,&lt;br /&gt;      END OF MTAB_PROGRAM_DOCUMENTATION.&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Selection Screen             *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;*-- Options for upload/download of programs&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK FRM_OPTIONS WITH FRAME TITLE TEXT-UDL.&lt;br /&gt;PARAMETERS:&lt;br /&gt;  RB_DOWN RADIOBUTTON GROUP UDL DEFAULT 'X'.       " Download reports&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK FRM_TRDIR WITH FRAME TITLE TEXT-DIR.&lt;br /&gt;SELECT-OPTIONS:&lt;br /&gt;  S_NAME  FOR TRDIR-NAME,              " Program Name&lt;br /&gt;  S_SUBC  FOR TRDIR-SUBC               " Program Type&lt;br /&gt;          DEFAULT 'F' OPTION EQ SIGN E," Exclude Functions by default&lt;br /&gt;  S_CNAM  FOR TRDIR-CNAM               " Created by&lt;br /&gt;          DEFAULT SY-UNAME,&lt;br /&gt;  S_UNAM  FOR TRDIR-UNAM,              " Last Changed by&lt;br /&gt;  S_CDAT  FOR TRDIR-CDAT,              " Creation date&lt;br /&gt;  S_UDAT  FOR TRDIR-UDAT.              " Last update date&lt;br /&gt;SELECTION-SCREEN END OF BLOCK FRM_TRDIR.&lt;br /&gt;*-- Options for uploading programs&lt;br /&gt;PARAMETERS:&lt;br /&gt;  RB_UP   RADIOBUTTON GROUP UDL.       " Upload reports&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK FRM_UPLOAD WITH FRAME TITLE TEXT-UPL.&lt;br /&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;br /&gt;SELECTION-SCREEN COMMENT 1(29) TEXT-SNG.&lt;br /&gt;PARAMETERS:&lt;br /&gt;  RB_FILE RADIOBUTTON GROUP HOW DEFAULT 'X'.&lt;br /&gt;SELECTION-SCREEN COMMENT 33(42) TEXT-FNA.&lt;br /&gt;SELECTION-SCREEN END OF LINE.&lt;br /&gt;PARAMETERS:&lt;br /&gt;  RB_LIST RADIOBUTTON GROUP HOW.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK FRM_UPLOAD.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK FRM_OPTIONS.&lt;br /&gt;*-- Options for up/downloading programs&lt;br /&gt;SELECTION-SCREEN BEGIN OF BLOCK FRM_FILEN WITH FRAME TITLE TEXT-FIL.&lt;br /&gt;PARAMETERS:&lt;br /&gt;  RB_DOS  RADIOBUTTON GROUP FIL DEFAULT 'X', " Save to local&lt;br /&gt;  RB_UNIX RADIOBUTTON GROUP FIL,       " Save to UNIX&lt;br /&gt;  P_PATH  LIKE RLGRAP-FILENAME         " Path to save files to&lt;br /&gt;        DEFAULT 'c:\temp\'.&lt;br /&gt;SELECTION-SCREEN END OF BLOCK FRM_FILEN.&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_NAME-LOW.&lt;br /&gt;  CALL FUNCTION 'F4_PROGRAM'&lt;br /&gt;       EXPORTING&lt;br /&gt;            OBJECT             = S_NAME-LOW&lt;br /&gt;            SUPPRESS_SELECTION = 'X'&lt;br /&gt;       IMPORTING&lt;br /&gt;            RESULT             = S_NAME-LOW&lt;br /&gt;       EXCEPTIONS&lt;br /&gt;            OTHERS             = 1.&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_NAME-HIGH.&lt;br /&gt;  CALL FUNCTION 'F4_PROGRAM'&lt;br /&gt;       EXPORTING&lt;br /&gt;            OBJECT             = S_NAME-HIGH&lt;br /&gt;            SUPPRESS_SELECTION = 'X'&lt;br /&gt;       IMPORTING&lt;br /&gt;            RESULT             = S_NAME-HIGH&lt;br /&gt;       EXCEPTIONS&lt;br /&gt;            OTHERS             = 1.&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_UNAM-LOW.&lt;br /&gt;  PERFORM GET_NAME USING 'S_UNAM-LOW'&lt;br /&gt;                CHANGING S_UNAM-LOW.&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_UNAM-HIGH.&lt;br /&gt;  PERFORM GET_NAME USING 'S_UNAM-HIGH'&lt;br /&gt;                CHANGING S_UNAM-HIGH.&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_CNAM-LOW.&lt;br /&gt;  PERFORM GET_NAME USING 'S_CNAM-LOW'&lt;br /&gt;                CHANGING S_CNAM-LOW.&lt;br /&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_CNAM-HIGH.&lt;br /&gt;  PERFORM GET_NAME USING 'S_CNAM-HIGH'&lt;br /&gt;                CHANGING S_CNAM-HIGH.&lt;br /&gt;TOP-OF-PAGE.&lt;br /&gt;  IF RB_LIST = 'X'.&lt;br /&gt;    FORMAT COLOR COL_HEADING.&lt;br /&gt;    NEW-LINE.&lt;br /&gt;    WRITE: AT 3 TEXT-H01,&lt;br /&gt;           AT 15 TEXT-H03.&lt;br /&gt;    FORMAT COLOR OFF.&lt;br /&gt;  ENDIF.&lt;br /&gt;AT LINE-SELECTION.&lt;br /&gt;  CHECK RB_LIST = 'X'.                 " only do in list mode&lt;br /&gt;  READ LINE SY-CUROW FIELD VALUE MTAB_DIRECTORY-SAVENAME.&lt;br /&gt;*-- Read file into an internal table&lt;br /&gt;  PERFORM READ_REPORT_FROM_DISK TABLES MTAB_PROGRAM_FILE&lt;br /&gt;            USING  MTAB_DIRECTORY-SAVENAME.&lt;br /&gt;*-- Split table into TADIR entry, report lines, and report text&lt;br /&gt;  PERFORM SPLIT_INCOMING_FILE TABLES MTAB_PROGRAM_FILE&lt;br /&gt;                 MTAB_PROGRAM_SOURCE&lt;br /&gt;                 MTAB_PROGRAM_TEXTS&lt;br /&gt;                 MTAB_PROGRAM_DOCUMENTATION&lt;br /&gt;        CHANGING TRDIR&lt;br /&gt;                 MSTR_THEAD.&lt;br /&gt;*-- Save all of the data&lt;br /&gt;  PERFORM INSERT_NEW_REPORT TABLES MTAB_PROGRAM_SOURCE&lt;br /&gt;               MTAB_PROGRAM_TEXTS&lt;br /&gt;               MTAB_PROGRAM_DOCUMENTATION&lt;br /&gt;        USING  TRDIR&lt;br /&gt;               MSTR_THEAD.&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;* Start of processing          *&lt;br /&gt;*----------------------------------------------------------------------*&lt;br /&gt;START-OF-SELECTION.&lt;br /&gt;  FORMAT COLOR COL_NORMAL.&lt;br /&gt;  IF RB_DOWN = 'X'.&lt;br /&gt;    PERFORM DOWNLOAD_REPORTS.&lt;br /&gt;  ELSEIF RB_UP = 'X'.&lt;br /&gt;    PERFORM UPLOAD_REPORTS.&lt;br /&gt;  ENDIF.&lt;br /&gt;END-OF-SELECTION.&lt;br /&gt;  IF RB_DOWN = 'X'.&lt;br /&gt;    CONCATENATE P_PATH&lt;br /&gt;                'directory.txt'&lt;br /&gt;      INTO P_PATH.&lt;br /&gt;    PERFORM SAVE_TABLE_TO_FILE TABLES MTAB_DIRECTORY&lt;br /&gt;           USING  P_PATH.&lt;br /&gt;  ENDIF.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM UPLOAD_REPORTS   *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM UPLOAD_REPORTS.&lt;br /&gt;*-- Can upload a reports entered in selection criteria or&lt;br /&gt;*-- select from a list.  List can be from index.txt in same directory&lt;br /&gt;*-- (created by the download) or by reading the first line of each file&lt;br /&gt;*-- in the directory.&lt;br /&gt;  IF RB_FILE = 'X'. " Upload single program from a file&lt;br /&gt;*-- Read file into an internal table&lt;br /&gt;    PERFORM READ_REPORT_FROM_DISK TABLES MTAB_PROGRAM_FILE&lt;br /&gt;              USING  P_PATH.&lt;br /&gt;*-- Split table into TADIR entry, report lines, and report text&lt;br /&gt;    PERFORM SPLIT_INCOMING_FILE TABLES MTAB_PROGRAM_FILE&lt;br /&gt;                   MTAB_PROGRAM_SOURCE&lt;br /&gt;                   MTAB_PROGRAM_TEXTS&lt;br /&gt;                   MTAB_PROGRAM_DOCUMENTATION&lt;br /&gt;          CHANGING TRDIR&lt;br /&gt;                   MSTR_THEAD.&lt;br /&gt;*-- Save all of the data&lt;br /&gt;    PERFORM INSERT_NEW_REPORT TABLES MTAB_PROGRAM_SOURCE&lt;br /&gt;                 MTAB_PROGRAM_TEXTS&lt;br /&gt;                 MTAB_PROGRAM_DOCUMENTATION&lt;br /&gt;          USING  TRDIR&lt;br /&gt;                 MSTR_THEAD.&lt;br /&gt;  ELSEIF RB_LIST = 'X'. " Show list for user to choose from&lt;br /&gt;*-- get list of report names/descriptions from directory text&lt;br /&gt;    CONCATENATE P_PATH&lt;br /&gt;                'directory.txt'&lt;br /&gt;    INTO P_PATH.&lt;br /&gt;    PERFORM READ_REPORT_FROM_DISK TABLES MTAB_DIRECTORY&lt;br /&gt;              USING  P_PATH.&lt;br /&gt;    SORT MTAB_DIRECTORY.&lt;br /&gt;*-- Write out list of report names/descriptions&lt;br /&gt;    LOOP AT MTAB_DIRECTORY.&lt;br /&gt;      WRITE:&lt;br /&gt;        / MTAB_DIRECTORY-NAME UNDER TEXT-H01,&lt;br /&gt;          MTAB_DIRECTORY-DESC UNDER TEXT-H03,&lt;br /&gt;          MTAB_DIRECTORY-SAVENAME.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;*-- Process user selections for reports to upload.&lt;br /&gt;  ENDIF.&lt;br /&gt;ENDFORM.           " upload_reports&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM DOWNLOAD_REPORTS *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       From the user selections, get all programs that meet the      *&lt;br /&gt;*       criteria, and save them in ftab_program_directory.            *&lt;br /&gt;*       Also save the report to disk.             *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM DOWNLOAD_REPORTS.&lt;br /&gt;  DATA:&lt;br /&gt;    LC_FULL_FILENAME LIKE RLGRAP-FILENAME.&lt;br /&gt;*-- The table is put into an internal table because the program will&lt;br /&gt;*-- abend if multiple transfers to a dataset occur within a SELECT/&lt;br /&gt;*-- ENDSELCT (tested on 3.1H)&lt;br /&gt;  SELECT * FROM  TRDIR&lt;br /&gt;         INTO TABLE MTAB_PROGRAM_TRDIR&lt;br /&gt;         WHERE  NAME  IN S_NAME&lt;br /&gt;         AND    SUBC  IN S_SUBC&lt;br /&gt;         AND    CNAM  IN S_CNAM&lt;br /&gt;         AND    UNAM  IN S_UNAM&lt;br /&gt;         AND    CDAT  IN S_CDAT&lt;br /&gt;         AND    UDAT  IN S_UDAT.&lt;br /&gt;  LOOP AT MTAB_PROGRAM_TRDIR.&lt;br /&gt;*-- Clear out text and source code tables&lt;br /&gt;    CLEAR:&lt;br /&gt;      MTAB_PROGRAM_FILE,&lt;br /&gt;      MTAB_PROGRAM_SOURCE,&lt;br /&gt;      MTAB_PROGRAM_TEXTS,&lt;br /&gt;      MTAB_PROGRAM_DOCUMENTATION.&lt;br /&gt;    REFRESH:&lt;br /&gt;      MTAB_PROGRAM_FILE,&lt;br /&gt;      MTAB_PROGRAM_SOURCE,&lt;br /&gt;      MTAB_PROGRAM_TEXTS,&lt;br /&gt;      MTAB_PROGRAM_DOCUMENTATION.&lt;br /&gt;*-- Get the report&lt;br /&gt;    READ REPORT MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_SOURCE.&lt;br /&gt;*-- Get the text for the report&lt;br /&gt;    READ TEXTPOOL MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_TEXTS.&lt;br /&gt;*-- Get the documentation for the report&lt;br /&gt;    CLEAR DOKIL.&lt;br /&gt;    SELECT * UP TO 1 ROWS FROM DOKIL&lt;br /&gt;           WHERE  ID          = 'RE'&lt;br /&gt;           AND    OBJECT      = MTAB_PROGRAM_TRDIR-NAME&lt;br /&gt;           AND    LANGU       = SY-LANGU&lt;br /&gt;           AND    TYP         = 'E'&lt;br /&gt;           ORDER BY VERSION DESCENDING.&lt;br /&gt;    ENDSELECT.&lt;br /&gt;*-- Documentation exists for this object&lt;br /&gt;    IF SY-SUBRC = 0.&lt;br /&gt;      CALL FUNCTION 'DOCU_READ'&lt;br /&gt;           EXPORTING&lt;br /&gt;                ID      = DOKIL-ID&lt;br /&gt;                LANGU   = DOKIL-LANGU&lt;br /&gt;                OBJECT  = DOKIL-OBJECT&lt;br /&gt;                TYP     = DOKIL-TYP&lt;br /&gt;                VERSION = DOKIL-VERSION&lt;br /&gt;           IMPORTING&lt;br /&gt;                HEAD    = MSTR_THEAD&lt;br /&gt;           TABLES&lt;br /&gt;                LINE    = MTAB_PROGRAM_DOCUMENTATION&lt;br /&gt;           EXCEPTIONS&lt;br /&gt;                OTHERS  = 1.&lt;br /&gt;    ENDIF.&lt;br /&gt;*-- Put the report code and texts into a single file&lt;br /&gt;*-- Put the identifier line in so that the start of the TRDIR line&lt;br /&gt;*-- is marked&lt;br /&gt;    CONCATENATE MC_TRDIR_IDENTIFIER&lt;br /&gt;    MTAB_PROGRAM_TRDIR-NAME&lt;br /&gt;    INTO MTAB_PROGRAM_FILE-LINE.&lt;br /&gt;    APPEND MTAB_PROGRAM_FILE.&lt;br /&gt;*-- Add the TRDIR line&lt;br /&gt;    MTAB_PROGRAM_FILE-LINE = MTAB_PROGRAM_TRDIR.&lt;br /&gt;    APPEND MTAB_PROGRAM_FILE.&lt;br /&gt;*-- Put the identifier line in so that the start of the report code&lt;br /&gt;*-- is marked&lt;br /&gt;    CONCATENATE MC_REPORT_IDENTIFIER&lt;br /&gt;                MTAB_PROGRAM_TRDIR-NAME&lt;br /&gt;      INTO MTAB_PROGRAM_FILE-LINE.&lt;br /&gt;    APPEND MTAB_PROGRAM_FILE.&lt;br /&gt;*-- Add the report code&lt;br /&gt;    LOOP AT MTAB_PROGRAM_SOURCE.&lt;br /&gt;      MTAB_PROGRAM_FILE = MTAB_PROGRAM_SOURCE.&lt;br /&gt;      APPEND MTAB_PROGRAM_FILE.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;*-- Put the identifier line in so that the start of the report text&lt;br /&gt;*-- is marked&lt;br /&gt;    CONCATENATE MC_TEXT_IDENTIFIER&lt;br /&gt;                MTAB_PROGRAM_TRDIR-NAME&lt;br /&gt;      INTO MTAB_PROGRAM_FILE-LINE.&lt;br /&gt;    APPEND MTAB_PROGRAM_FILE.&lt;br /&gt;*-- Add the report texts&lt;br /&gt;    LOOP AT MTAB_PROGRAM_TEXTS.&lt;br /&gt;      MTAB_PROGRAM_FILE = MTAB_PROGRAM_TEXTS.&lt;br /&gt;      APPEND MTAB_PROGRAM_FILE.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;*-- Put the identifier line in so that the start of the THEAD record&lt;br /&gt;*-- is marked&lt;br /&gt;    CONCATENATE MC_THEAD_IDENTIFIER&lt;br /&gt;                MTAB_PROGRAM_TRDIR-NAME&lt;br /&gt;      INTO MTAB_PROGRAM_FILE-LINE.&lt;br /&gt;    APPEND MTAB_PROGRAM_FILE.&lt;br /&gt;    MTAB_PROGRAM_FILE = MSTR_THEAD.&lt;br /&gt;    APPEND MTAB_PROGRAM_FILE.&lt;br /&gt;*-- Put the identifier line in so that the start of the report&lt;br /&gt;*-- documentation is marked&lt;br /&gt;    CONCATENATE MC_DOC_IDENTIFIER&lt;br /&gt;                MTAB_PROGRAM_TRDIR-NAME&lt;br /&gt;      INTO MTAB_PROGRAM_FILE-LINE.&lt;br /&gt;    APPEND MTAB_PROGRAM_FILE.&lt;br /&gt;*-- Add the report documentation&lt;br /&gt;    LOOP AT MTAB_PROGRAM_DOCUMENTATION.&lt;br /&gt;      MTAB_PROGRAM_FILE = MTAB_PROGRAM_DOCUMENTATION.&lt;br /&gt;      APPEND MTAB_PROGRAM_FILE.&lt;br /&gt;    ENDLOOP.&lt;br /&gt;*-- Make the fully pathed filename that report will be saved to&lt;br /&gt;    CONCATENATE P_PATH&lt;br /&gt;                MTAB_PROGRAM_TRDIR-NAME&lt;br /&gt;                '.txt'&lt;br /&gt;      INTO LC_FULL_FILENAME.&lt;br /&gt;    PERFORM SAVE_TABLE_TO_FILE TABLES MTAB_PROGRAM_FILE&lt;br /&gt;           USING  LC_FULL_FILENAME.&lt;br /&gt;*-- Write out message with Program Name/Description&lt;br /&gt;    READ TABLE MTAB_PROGRAM_TEXTS WITH KEY ID = 'R'.&lt;br /&gt;    IF SY-SUBRC = 0.&lt;br /&gt;      MTAB_DIRECTORY-NAME = MTAB_PROGRAM_TRDIR-NAME.&lt;br /&gt;      MTAB_DIRECTORY-DESC = MTAB_PROGRAM_TEXTS-ENTRY.&lt;br /&gt;      MTAB_DIRECTORY-SAVENAME = LC_FULL_FILENAME.&lt;br /&gt;      APPEND MTAB_DIRECTORY.&lt;br /&gt;      WRITE: / MTAB_PROGRAM_TRDIR-NAME,&lt;br /&gt;               MTAB_PROGRAM_TEXTS-ENTRY(65) COLOR COL_HEADING.&lt;br /&gt;    ELSE.&lt;br /&gt;      MTAB_DIRECTORY-NAME = MTAB_PROGRAM_TRDIR-NAME.&lt;br /&gt;      MTAB_DIRECTORY-DESC = 'No description available'.&lt;br /&gt;      MTAB_DIRECTORY-SAVENAME = LC_FULL_FILENAME.&lt;br /&gt;      APPEND MTAB_DIRECTORY.&lt;br /&gt;      WRITE: / MTAB_PROGRAM_TRDIR-NAME.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;ENDFORM.           " BUILD_PROGRAM_DIRECTORY&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM SAVE_TABLE_TO_FILE                   *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........              *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  FTAB_TABLE            *&lt;br /&gt;*  --&gt;  F_FILENAME            *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM SAVE_TABLE_TO_FILE TABLES FTAB_TABLE&lt;br /&gt;    USING  F_FILENAME.&lt;br /&gt;  IF RB_DOS = 'X'.                  " Save file to presentation server&lt;br /&gt;    CALL FUNCTION 'WS_DOWNLOAD'&lt;br /&gt;         EXPORTING&lt;br /&gt;              FILENAME = F_FILENAME&lt;br /&gt;              FILETYPE = 'ASC'&lt;br /&gt;         TABLES&lt;br /&gt;              DATA_TAB = FTAB_TABLE&lt;br /&gt;         EXCEPTIONS&lt;br /&gt;              OTHERS   = 4.&lt;br /&gt;    IF SY-SUBRC NE 0.&lt;br /&gt;      WRITE: / 'Error opening dataset' COLOR COL_NEGATIVE,&lt;br /&gt;               F_FILENAME COLOR COL_NEGATIVE.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ELSE.            " Save file to application server&lt;br /&gt;    OPEN DATASET F_FILENAME FOR OUTPUT IN TEXT MODE.&lt;br /&gt;    IF SY-SUBRC = 0.&lt;br /&gt;      LOOP AT FTAB_TABLE.&lt;br /&gt;        TRANSFER FTAB_TABLE TO F_FILENAME.&lt;br /&gt;        IF SY-SUBRC NE 0.&lt;br /&gt;          WRITE: / 'Error writing record to file;' COLOR COL_NEGATIVE,&lt;br /&gt;                   F_FILENAME COLOR COL_NEGATIVE.&lt;br /&gt;        ENDIF.&lt;br /&gt;      ENDLOOP.&lt;br /&gt;    ELSE.&lt;br /&gt;      WRITE: / 'Error opening dataset' COLOR COL_NEGATIVE,&lt;br /&gt;               F_FILENAME COLOR COL_NEGATIVE.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDIF.           " End RB_DOS&lt;br /&gt;ENDFORM.           " SAVE_PROGRAM&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM READ_REPORT_FROM_DISK                *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       Read report into internal table.  Can read from local or      *&lt;br /&gt;*       remote computer       *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM READ_REPORT_FROM_DISK TABLES FTAB_TABLE&lt;br /&gt;       USING  F_FILENAME.&lt;br /&gt;  DATA:&lt;br /&gt;     LC_MESSAGE(128) TYPE C.&lt;br /&gt;  CLEAR   FTAB_TABLE.&lt;br /&gt;  REFRESH FTAB_TABLE.&lt;br /&gt;  IF RB_DOS = 'X'.&lt;br /&gt;    TRANSLATE F_FILENAME USING '/\'.   " correct slash for Dos PC file&lt;br /&gt;    CALL FUNCTION 'WS_UPLOAD'&lt;br /&gt;         EXPORTING&lt;br /&gt;              FILENAME            = F_FILENAME&lt;br /&gt;              FILETYPE            = 'ASC'&lt;br /&gt;         TABLES&lt;br /&gt;              DATA_TAB            = FTAB_TABLE&lt;br /&gt;         EXCEPTIONS&lt;br /&gt;              CONVERSION_ERROR    = 1&lt;br /&gt;              FILE_OPEN_ERROR     = 2&lt;br /&gt;              FILE_READ_ERROR     = 3&lt;br /&gt;              INVALID_TABLE_WIDTH = 4&lt;br /&gt;              INVALID_TYPE        = 5&lt;br /&gt;              NO_BATCH            = 6&lt;br /&gt;              UNKNOWN_ERROR       = 7&lt;br /&gt;              OTHERS              = 8.&lt;br /&gt;    IF SY-SUBRC &gt;&lt; 0.&lt;br /&gt;      WRITE: / 'Error reading file from local PC' COLOR COL_NEGATIVE.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ELSEIF RB_UNIX = 'X'.&lt;br /&gt;    TRANSLATE F_FILENAME USING '\/'.   " correct slash for unix&lt;br /&gt;    OPEN DATASET F_FILENAME FOR INPUT MESSAGE LC_MESSAGE IN TEXT MODE.&lt;br /&gt;    IF SY-SUBRC = 0.&lt;br /&gt;      DO.&lt;br /&gt;        READ DATASET F_FILENAME INTO FTAB_TABLE.&lt;br /&gt;        IF SY-SUBRC = 0.&lt;br /&gt;          APPEND FTAB_TABLE.&lt;br /&gt;        ELSE.&lt;br /&gt;          EXIT.&lt;br /&gt;        ENDIF.&lt;br /&gt;      ENDDO.&lt;br /&gt;      CLOSE DATASET F_FILENAME.&lt;br /&gt;    ELSE.&lt;br /&gt;      WRITE: / 'Error reading file from remote computer'&lt;br /&gt;  COLOR COL_NEGATIVE,&lt;br /&gt;             / LC_MESSAGE,&lt;br /&gt;             / F_FILENAME.&lt;br /&gt;      SY-SUBRC = 4.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ENDFORM.           " READ_REPORT_FROM_DISK&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM SPLIT_INCOMING_FILE                  *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........              *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  FTAB_PROGRAM_FILE     *&lt;br /&gt;*  --&gt;  FTAB_PROGRAM_SOURCE   *&lt;br /&gt;*  --&gt;  ` *&lt;br /&gt;*  --&gt;  FTAB_PROGRAM_TEXTS    *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM SPLIT_INCOMING_FILE TABLES FTAB_PROGRAM_FILE&lt;br /&gt;                 STRUCTURE MTAB_PROGRAM_FILE&lt;br /&gt;            FTAB_PROGRAM_SOURCE&lt;br /&gt;                 STRUCTURE MTAB_PROGRAM_SOURCE&lt;br /&gt;            FTAB_PROGRAM_TEXTS&lt;br /&gt;                 STRUCTURE MTAB_PROGRAM_TEXTS&lt;br /&gt;            FTAB_PROGRAM_DOCUMENTATION&lt;br /&gt;                STRUCTURE MTAB_PROGRAM_DOCUMENTATION&lt;br /&gt;   CHANGING FSTR_TRDIR&lt;br /&gt;            FSTR_THEAD.&lt;br /&gt;  DATA:&lt;br /&gt;    LC_DATATYPE(4) TYPE C,             " Type of data, REPO, TEXP, RDIR&lt;br /&gt;    LC_PROGRAM_FILE LIKE MTAB_PROGRAM_FILE.&lt;br /&gt;  LOOP AT FTAB_PROGRAM_FILE.&lt;br /&gt;    LC_PROGRAM_FILE = FTAB_PROGRAM_FILE.&lt;br /&gt;    CASE LC_PROGRAM_FILE(9).&lt;br /&gt;      WHEN MC_TRDIR_IDENTIFIER.&lt;br /&gt;        LC_DATATYPE = MC_TRDIR_SHORT.&lt;br /&gt;      WHEN MC_REPORT_IDENTIFIER.&lt;br /&gt;        LC_DATATYPE = MC_REPORT_SHORT.&lt;br /&gt;      WHEN MC_TEXT_IDENTIFIER.&lt;br /&gt;        LC_DATATYPE = MC_TEXT_SHORT.&lt;br /&gt;      WHEN MC_DOC_IDENTIFIER.&lt;br /&gt;        LC_DATATYPE = MC_DOC_SHORT.&lt;br /&gt;      WHEN MC_THEAD_IDENTIFIER.&lt;br /&gt;        LC_DATATYPE = MC_THEAD_SHORT.&lt;br /&gt;      WHEN OTHERS. " Actual contents of report, trdir, or text&lt;br /&gt;        CASE LC_DATATYPE.&lt;br /&gt;          WHEN MC_TRDIR_SHORT.&lt;br /&gt;            FSTR_TRDIR = FTAB_PROGRAM_FILE.&lt;br /&gt;          WHEN MC_REPORT_SHORT.&lt;br /&gt;            FTAB_PROGRAM_SOURCE = FTAB_PROGRAM_FILE.&lt;br /&gt;            APPEND FTAB_PROGRAM_SOURCE.&lt;br /&gt;          WHEN MC_TEXT_SHORT.&lt;br /&gt;            FTAB_PROGRAM_TEXTS = FTAB_PROGRAM_FILE.&lt;br /&gt;            APPEND FTAB_PROGRAM_TEXTS.&lt;br /&gt;          WHEN MC_THEAD_SHORT.&lt;br /&gt;            FSTR_THEAD = FTAB_PROGRAM_FILE.&lt;br /&gt;          WHEN MC_DOC_SHORT.&lt;br /&gt;            FTAB_PROGRAM_DOCUMENTATION = FTAB_PROGRAM_FILE.&lt;br /&gt;            APPEND FTAB_PROGRAM_DOCUMENTATION.&lt;br /&gt;        ENDCASE.&lt;br /&gt;    ENDCASE.&lt;br /&gt;  ENDLOOP.&lt;br /&gt;ENDFORM.           " SPLIT_INCOMING_FILE&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM INSERT_NEW_REPORT*&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........              *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  FTAB_PROGRAM_SOURCE   *&lt;br /&gt;*  --&gt;  FTAB_PROGRAM_TEXTS    *&lt;br /&gt;*  --&gt;  F_TRDIR               *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM INSERT_NEW_REPORT TABLES FTAB_PROGRAM_SOURCE&lt;br /&gt;              STRUCTURE MTAB_PROGRAM_SOURCE&lt;br /&gt;          FTAB_PROGRAM_TEXTS&lt;br /&gt;               STRUCTURE MTAB_PROGRAM_TEXTS&lt;br /&gt;          FTAB_PROGRAM_DOCUMENTATION&lt;br /&gt;               STRUCTURE MTAB_PROGRAM_DOCUMENTATION&lt;br /&gt;   USING  FSTR_TRDIR LIKE TRDIR&lt;br /&gt;          FSTR_THEAD LIKE MSTR_THEAD.&lt;br /&gt;  DATA:&lt;br /&gt;    LC_OBJ_NAME LIKE E071-OBJ_NAME,&lt;br /&gt;    LC_LINE2(40)     TYPE C,&lt;br /&gt;    LC_ANSWER(1)     TYPE C.&lt;br /&gt;*-- read trdir to see if the report already exists, if it does, prompt&lt;br /&gt;*-- user to overwrite or abort.&lt;br /&gt;  SELECT SINGLE * FROM TRDIR WHERE NAME = FSTR_TRDIR-NAME.&lt;br /&gt;  IF SY-SUBRC = 0. " Already exists&lt;br /&gt;    CONCATENATE 'want to overwrite report'&lt;br /&gt;                FSTR_TRDIR-NAME&lt;br /&gt;      INTO LC_LINE2 SEPARATED BY SPACE.&lt;br /&gt;    CONCATENATE LC_LINE2&lt;br /&gt;                '?'&lt;br /&gt;      INTO LC_LINE2.&lt;br /&gt;    CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'&lt;br /&gt;         EXPORTING&lt;br /&gt;              DEFAULTOPTION  = 'N'&lt;br /&gt;              TEXTLINE1   = 'The selected report already exists, do you'&lt;br /&gt;              TEXTLINE2      = LC_LINE2&lt;br /&gt;              TITEL          = 'Report already exists'&lt;br /&gt;              CANCEL_DISPLAY = SPACE&lt;br /&gt;         IMPORTING&lt;br /&gt;              ANSWER         = LC_ANSWER&lt;br /&gt;         EXCEPTIONS&lt;br /&gt;              OTHERS         = 1.&lt;br /&gt;  ELSE.&lt;br /&gt;    LC_ANSWER = 'J'.&lt;br /&gt;  ENDIF.&lt;br /&gt;  IF LC_ANSWER = 'J'.&lt;br /&gt;*-- Create the TADIR entry.  (TRDIR entry created by INSERT REPORT)&lt;br /&gt;    LC_OBJ_NAME = TRDIR-NAME.&lt;br /&gt;    CALL FUNCTION 'TR_TADIR_POPUP_ENTRY_E071'&lt;br /&gt;         EXPORTING&lt;br /&gt;              WI_E071_PGMID     = 'R3TR'&lt;br /&gt;              WI_E071_OBJECT    = 'PROG'&lt;br /&gt;              WI_E071_OBJ_NAME  = LC_OBJ_NAME&lt;br /&gt;              WI_TADIR_DEVCLASS = '$TMP'&lt;br /&gt;         EXCEPTIONS&lt;br /&gt;              EXIT              = 3&lt;br /&gt;              OTHERS            = 4.&lt;br /&gt;    IF SY-SUBRC = 0.&lt;br /&gt;*-- Create Report&lt;br /&gt;      INSERT REPORT FSTR_TRDIR-NAME FROM FTAB_PROGRAM_SOURCE.&lt;br /&gt;*-- Create Texts&lt;br /&gt;      INSERT TEXTPOOL FSTR_TRDIR-NAME FROM FTAB_PROGRAM_TEXTS&lt;br /&gt;             LANGUAGE SY-LANGU.&lt;br /&gt;*-- Save Documentation&lt;br /&gt;      CALL FUNCTION 'DOCU_UPDATE'&lt;br /&gt;           EXPORTING&lt;br /&gt;                HEAD    = FSTR_THEAD&lt;br /&gt;                STATE   = 'A'&lt;br /&gt;                TYP     = 'E'&lt;br /&gt;                VERSION = '1'&lt;br /&gt;           TABLES&lt;br /&gt;                LINE    = FTAB_PROGRAM_DOCUMENTATION&lt;br /&gt;           EXCEPTIONS&lt;br /&gt;                OTHERS  = 1.&lt;br /&gt;    ELSE.&lt;br /&gt;      WRITE: / 'Error updating the TADIR entry' COLOR COL_NEGATIVE,&lt;br /&gt;               'Program' COLOR COL_NEGATIVE INTENSIFIED OFF,&lt;br /&gt;               FSTR_TRDIR-NAME, 'was not loaded into SAP.'&lt;br /&gt;                  COLOR COL_NEGATIVE INTENSIFIED OFF.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ELSE.&lt;br /&gt;    WRITE: / FSTR_TRDIR-NAME COLOR COL_NEGATIVE,&lt;br /&gt;             'was not uploaded into SAP.  Action cancelled by user'&lt;br /&gt;                 COLOR COL_NEGATIVE INTENSIFIED OFF.&lt;br /&gt;  ENDIF.&lt;br /&gt;ENDFORM.           " INSERT_NEW_REPORT&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       FORM GET_NAME         *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       ........              *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*  --&gt;  VALUE(F_FIELD)        *&lt;br /&gt;*  --&gt;  F_NAME                *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;FORM GET_NAME USING VALUE(F_FIELD)&lt;br /&gt;           CHANGING F_NAME.&lt;br /&gt;  DATA: LTAB_FIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE,&lt;br /&gt;        LC_PROG LIKE D020S-PROG,&lt;br /&gt;        LC_DNUM LIKE D020S-DNUM.&lt;br /&gt;  TRANSLATE F_FIELD TO UPPER CASE.&lt;br /&gt;  refresh ltab_fields.&lt;br /&gt;  LTAB_FIELDS-FIELDNAME = F_FIELD.&lt;br /&gt;  append ltab_fields.&lt;br /&gt;  LC_PROG =  SY-REPID .&lt;br /&gt;  LC_DNUM =  SY-DYNNR .&lt;br /&gt;  CALL FUNCTION 'DYNP_VALUES_READ'&lt;br /&gt;       EXPORTING&lt;br /&gt;            DYNAME     = LC_PROG&lt;br /&gt;            DYNUMB     = LC_DNUM&lt;br /&gt;       TABLES&lt;br /&gt;            dynpfields = ltab_fields&lt;br /&gt;       EXCEPTIONS&lt;br /&gt;            OTHERS     = 01.&lt;br /&gt;  read table ltab_fields index 1.&lt;br /&gt;  IF SY-SUBRC EQ 0.&lt;br /&gt;    F_NAME = LTAB_FIELDS-FIELDVALUE.&lt;br /&gt;    refresh ltab_fields.&lt;br /&gt;  ENDIF.&lt;br /&gt;  CALL FUNCTION 'F4_USER'&lt;br /&gt;       EXPORTING&lt;br /&gt;            OBJECT = F_NAME&lt;br /&gt;       IMPORTING&lt;br /&gt;            RESULT = F_NAME.&lt;br /&gt;ENDFORM.           " GET_NAME&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Program Texts&lt;br /&gt;&lt;br /&gt;DIR             File Download Options (File Selection)&lt;br /&gt;FIL             File Options      &lt;br /&gt;FNA             Enter filename below (under File Options)&lt;br /&gt;H01             Prog Name&lt;br /&gt;H03             Program Description&lt;br /&gt;SNG             Upload a single file&lt;br /&gt;UDL             Upload to SAP/Download from SAP&lt;br /&gt;UPL             File Upload Options&lt;br /&gt;R               Backup/Restore program source code with texts&lt;br /&gt;P_PATH          Path to save programs to&lt;br /&gt;RB_DOS          Files on local computer&lt;br /&gt;RB_DOWN         Download Programs&lt;br /&gt;RB_FILE         Upload a single file&lt;br /&gt;RB_LIST         Select program(s) from a list           &lt;br /&gt;RB_UNIX         Files on remote computer                &lt;br /&gt;RB_UP           Upload Programs to SAP                  &lt;br /&gt;S_CDAT          Date Created        &lt;br /&gt;S_CNAM          Created by UserID   &lt;br /&gt;S_NAME          Program Name        &lt;br /&gt;S_SUBC          Program Type        &lt;br /&gt;S_UDAT          Date Changed        &lt;br /&gt;S_UNAM          Last Changed by UserID&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-3895535652428475231?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3895535652428475231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3895535652428475231'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/download-programa-un-directorio.html' title='Download programa a un directorio'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-1479606965925530970</id><published>2007-10-28T22:53:00.000-03:00</published><updated>2007-10-28T22:56:38.939-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Debbuging'/><title type='text'>Pop Up Debug</title><content type='html'>Crear un text con lo siguiente:&lt;br /&gt;&lt;br /&gt;[FUNCTION]&lt;br /&gt;&lt;br /&gt;Command=/H&lt;br /&gt;&lt;br /&gt;Title=Debugger&lt;br /&gt;&lt;br /&gt;Type=SystemCommand &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Luego... drag and drop en la ventana que queremos debbuguear.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-1479606965925530970?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/1479606965925530970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/1479606965925530970'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/pop-up-debug.html' title='Pop Up Debug'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-4206113607855623290</id><published>2007-10-18T17:21:00.000-03:00</published><updated>2007-10-18T17:24:04.140-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Report'/><title type='text'></title><content type='html'>Si deseamos insertar un texto en un selection screen debemos agregar el siguiente codigo.&lt;br /&gt;&lt;br /&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;br /&gt;  SELECTION-SCREEN COMMENT 1(66) TEXT-001 FOR FIELD p_path.&lt;br /&gt;SELECTION-SCREEN END OF LINE.&lt;br /&gt;&lt;br /&gt;y mantener el texto en Elementos de textos 001. (66 es el largo del texto introducido)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-4206113607855623290?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4206113607855623290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4206113607855623290'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/si-deseamos-insertar-un-texto-en-un.html' title=''/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-4093866177879514601</id><published>2007-10-18T17:05:00.000-03:00</published><updated>2007-10-18T17:07:46.010-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Report'/><title type='text'>Browser file en Matchcode</title><content type='html'>Es común necesitar de este browser cuando tenemos que elejir la ruta para abrir un archivo o para grabar uno.&lt;br /&gt;&lt;br /&gt;DATA: p_path_file TYPE STRING.&lt;br /&gt;&lt;br /&gt;PARAMETERS: p_path like rlgrap-filename.&lt;br /&gt;&lt;br /&gt;at selection-screen on value-request for p_path.&lt;br /&gt;  call function 'F4_FILENAME'&lt;br /&gt;       exporting&lt;br /&gt;            program_name  = sy-repid&lt;br /&gt;            dynpro_number = sy-dynnr&lt;br /&gt;            field_name    = 'PATH'&lt;br /&gt;       importing&lt;br /&gt;            file_name     = p_path.&lt;br /&gt;&lt;br /&gt;  p_path_file = p_path.&lt;br /&gt;&lt;br /&gt;la Función GUI_DOWNLOAD pide que el path sea un STRING, por eso le asigno el valor de p_path a p_path_file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-4093866177879514601?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4093866177879514601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4093866177879514601'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/browser-file-en-matchcode.html' title='Browser file en Matchcode'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-3283037598851781259</id><published>2007-10-18T16:59:00.001-03:00</published><updated>2007-10-18T17:05:17.870-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Report'/><title type='text'>Crear Matchcode (Search Help) con una tabla interna.</title><content type='html'>En un momento dado me pidieron hacer un reporte donde el matchode del campo lgort, traía todos los lgort (almacenes) de todos los centros y el requerimiento era solamente los de un determinado centro.&lt;br /&gt;&lt;br /&gt;Descubrí que se puede realizar un matchode dinamicamente con una tabla interna nuestra directamente desde el código.&lt;br /&gt;&lt;br /&gt;Código:&lt;br /&gt;&lt;br /&gt;At selection-screen on value-request for s_lgort-low.&lt;br /&gt;  Select LGORT LGOBE&lt;br /&gt;        from T001L&lt;br /&gt;        into table it_lgort&lt;br /&gt;        where werks = '2000'.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'&lt;br /&gt;  EXPORTING&lt;br /&gt;    RETFIELD               = 'LGORT'&lt;br /&gt;    WINDOW_TITLE           = 'Depósitos'&lt;br /&gt;    VALUE_ORG              = 'S'&lt;br /&gt;  TABLES&lt;br /&gt;    VALUE_TAB              = it_lgort&lt;br /&gt;    RETURN_TAB             = it_ret&lt;br /&gt;  EXCEPTIONS&lt;br /&gt;    PARAMETER_ERROR        = 1&lt;br /&gt;    NO_VALUES_FOUND        = 2&lt;br /&gt;    OTHERS                 = 3.&lt;br /&gt;&lt;br /&gt;IF SY-SUBRC = 0.&lt;br /&gt; read table it_ret index 1.&lt;br /&gt; move it_ret-fieldval to S_lgort-low.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;Esto muestra el almacén, la descripción del mismo, y al elejir uno nos lleva al select option la opción elejida.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-3283037598851781259?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3283037598851781259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/3283037598851781259'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/crear-matchcode-search-help-con-una.html' title='Crear Matchcode (Search Help) con una tabla interna.'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-2455256844180076607</id><published>2007-10-17T10:14:00.000-03:00</published><updated>2007-10-17T10:18:53.658-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Report'/><title type='text'>Problemas con el Filtro en reportes ALV</title><content type='html'>El problema que tenía era que al querer uhacer el filtro de un campo de 16 caracteres, el filtro solamente me dejaba cargar ingresar 10. Por lo tanto nunca realizaba el filtro correctamente.&lt;br /&gt;&lt;br /&gt;Hay varias notas con respecto a este tema, si tenes todas aplicadas, como era mi caso y ya no sabía que inventar.&lt;br /&gt;&lt;br /&gt;En un momento se iluminó la lamparita y lo solucioné utilizando lo siguiente:&lt;br /&gt;&lt;br /&gt;gt_fieldcat-Outputlen = 16.&lt;br /&gt;&lt;br /&gt;Esta propiedad del catalago es la que toma el filtro (ademas de ser la que determina el largo del campo a mostrarse).&lt;br /&gt;&lt;br /&gt;TIP: En los Filtros se pueden utilizar wildcards (ejemplo: *004)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-2455256844180076607?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2455256844180076607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2455256844180076607'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/problemas-con-el-filtro-en-reportes-alv.html' title='Problemas con el Filtro en reportes ALV'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-1116471080173574792</id><published>2007-10-10T16:33:00.000-03:00</published><updated>2007-10-10T17:37:21.792-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Function'/><title type='text'>Función GET_DYNP_VALUE</title><content type='html'>Esta función se suele usar en los Field Exits, o en alguna que otra exits.&lt;br /&gt;&lt;br /&gt;Con esta función podemos obtener el valor de un campo en la pantalla que estamos parados.&lt;br /&gt;&lt;br /&gt;Recibe 3 parametros:&lt;br /&gt;1- Campo&lt;br /&gt;2- Programa&lt;br /&gt;3- Pantalla&lt;br /&gt;&lt;br /&gt;y devuelve un STRING con el valor determinado.&lt;br /&gt;&lt;br /&gt;Example&lt;br /&gt;&lt;br /&gt;DATA: l_vkorg TYPE STRING.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'GET_DYNP_VALUE'&lt;br /&gt;  EXPORTING&lt;br /&gt;    I_FIELD             = 'RMMG1-VKORG'&lt;br /&gt;    I_REPID             = 'SAPLMGD1'&lt;br /&gt;    I_DYNNR             = '1004'&lt;br /&gt;  CHANGING&lt;br /&gt;    O_VALUE             = l_vkorg.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-1116471080173574792?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/1116471080173574792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/1116471080173574792'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/funcin-getdynpvalue.html' title='Función GET_DYNP_VALUE'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-8831575829151833193</id><published>2007-10-10T10:22:00.000-03:00</published><updated>2007-10-10T10:36:33.348-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB'/><title type='text'>Conectar SAP con DB SQL e insertar registros en el SQL directamente</title><content type='html'>En ABAP podemos grabar directamente en una DB externa a pedido de algún cliente, en este caso había que conectarse con una DB SQL Server, esto se realiza manteniendo una conexión con la DB y desde abap usando SQL NATIVO.&lt;br /&gt;&lt;br /&gt;Pasos a seguir.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1- Establecer la conexión via tx DBCO&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_Yrm8x0k2PCg/RwzTNMCoYmI/AAAAAAAAABQ/pk8ch4OCRtI/s1600-h/DBCO.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_Yrm8x0k2PCg/RwzTNMCoYmI/AAAAAAAAABQ/pk8ch4OCRtI/s320/DBCO.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5119699099937432162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Enlace DB&lt;/span&gt;: es el nombre que nosotros queramos es el nombre con el cual dsp en el Código usaremos.&lt;br /&gt;&lt;span style="font-style:italic;"&gt;SGBD&lt;/span&gt;: Es el tipo de Server MSS (SQL Server)&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Usuario y Password&lt;/span&gt; para acceder a la DB&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Info Con.&lt;/span&gt;: El string de conexión con la DB.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2- Código Fuente&lt;/span&gt;&lt;br /&gt;El SQL Nativo debemos ejecutarlo dentro de sentencias.&lt;br /&gt;EXEC SQL&lt;br /&gt;...&lt;br /&gt;ENDEXEC.&lt;br /&gt;&lt;br /&gt;"Primero nos conectamos &lt;br /&gt;      EXEC SQL.&lt;br /&gt;        CONNECT TO 'MULTINT3R' AS 'R'&lt;br /&gt;      ENDEXEC.&lt;br /&gt;&lt;br /&gt;      EXEC SQL.&lt;br /&gt;        SET CONNECTION 'R'&lt;br /&gt;      ENDEXEC.&lt;br /&gt;&lt;br /&gt;"Loopeamos la tabla interna que deseamos grabar e insertamos los valores&lt;br /&gt;       LOOP AT IT_SQL.&lt;br /&gt;        EXEC SQL.&lt;br /&gt;           INSERT INTO ZRemito&lt;br /&gt;           (Remito, RemitoInterno, OT, Modelo, IMEI, ModReemp, IMEIReemp, Garantia,                    Precio, Moneda, NroFormularioSIC,Operador, TipoReg, codFallaAccionParte,  FallaAccionParte, TextoFallaAccionParte, Cantidad, FechaHora,Usuario)&lt;br /&gt;           VALUES (:IT_SQL-REMITO, :IT_SQL-remito_sap, :IT_SQL-aufnr,:IT_SQL-Modelo, :IT_SQL-imei, :IT_SQL-modreemp,:IT_SQL-IMEIReemp, :IT_SQL-Garantia, :IT_SQL-Precio, :IT_SQL-Moneda, :IT_SQL-FSIC, :IT_SQL-Operador,:IT_SQL-LETRA, :IT_SQL-COD, :IT_SQL-Falla, :IT_SQL-Falla_t, :IT_SQL-Cantidad, :IT_SQL-Fecha, :IT_SQL-Usuario)&lt;br /&gt;        ENDEXEC.&lt;br /&gt;       ENDLOOP.&lt;br /&gt;&lt;br /&gt;       EXEC SQL.&lt;br /&gt;         SET CONNECTION DEFAULT&lt;br /&gt;       ENDEXEC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-8831575829151833193?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8831575829151833193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8831575829151833193'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/conectar-sap-con-db-sql-e-insertar.html' title='Conectar SAP con DB SQL e insertar registros en el SQL directamente'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_Yrm8x0k2PCg/RwzTNMCoYmI/AAAAAAAAABQ/pk8ch4OCRtI/s72-c/DBCO.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-4297818214221140049</id><published>2007-10-09T17:38:00.000-03:00</published><updated>2007-10-09T17:44:47.908-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='User Exit'/><category scheme='http://www.blogger.com/atom/ns#' term='SD-User Exit'/><title type='text'>User exit salvar factura</title><content type='html'>La ampliación que posee la exit al momento de salvar una factura, para poder hacer chequeos y validaciones antes de grabarse:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;SDVFX001 -&gt; FUNCTION EXIT_SAPLV60B_001 -&gt; INCLUDE ZXVVFU01&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;NOTA: Recordar que no solo la VF01 es usada en esta exit, por ej, la tx VF11 (anulación de facturas) tmb llama a esta exit así que debemos restringir el user exit condicionando por el SY-TCODE.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-4297818214221140049?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4297818214221140049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/4297818214221140049'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/user-exit-salvar-factura.html' title='User exit salvar factura'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-2711661009353254177</id><published>2007-10-09T17:27:00.000-03:00</published><updated>2007-10-09T17:58:59.303-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SD'/><title type='text'>Validación de Número de CAI</title><content type='html'>A veces tenemos que desarrollar validaciónes en cuanto al número de CAI.La tabla se mantiene por Customizing, se accede con la siguiente ruta.&lt;br /&gt;&lt;br /&gt;Componentes Multiaplicaciones -&gt; Funciones de aplicación generales -&gt; Numeración de documentos multiaplicaciones -&gt; Argentina -&gt; Define Print Authorization Codes.&lt;br /&gt;&lt;br /&gt;La tabla transparente es la J_1APACD.&lt;br /&gt;&lt;br /&gt;Los datos que necesitaremos para realizar el chequeo son:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Sociedad&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Lugar&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Tipo de document(FI)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Letra&lt;/li&gt;&lt;br /&gt;&lt;li&gt;fecha&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Ver tmb: &lt;a href="http://ramgv-sap.blogspot.com/2007/10/user-exit-salvar-factura.html"&gt;User exit al salvar una factura&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-2711661009353254177?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2711661009353254177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2711661009353254177'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/validacin-de-nmero-de-cai.html' title='Validación de Número de CAI'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-841159787550612846</id><published>2007-10-08T10:46:00.000-03:00</published><updated>2007-10-08T15:02:36.685-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BASIS'/><title type='text'>Autorizaciones para la visualización de Condiciones</title><content type='html'>En algunos clientes piden que ciertos usuarios no puedan visualizar las condiciones, de  por ejemplo un pedido.&lt;br /&gt;&lt;br /&gt;Esto no esta programado por SAP, pero la Nota 105621 que nos permite hacer esto.&lt;br /&gt;&lt;br /&gt;La nota crea un objeto de blockeo entonces solamente a los usuarios que nosotros querramos le agregaremos un perfil con permisos para ver todas las condiciones.&lt;br /&gt;&lt;br /&gt;Se se desea dividir los permisos. Por ej. Que ciertos usuarios vean los pedidos, pero no los contratos, o presupuestos. Para poder hacer esto cada uno debe tener un esquema de cálculo distinto. Sino no es posible.&lt;br /&gt;&lt;br /&gt;NOTA: Los permisos se setean a nivel de Esquema de calculo, no de Transacción.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-841159787550612846?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/841159787550612846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/841159787550612846'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/autorizaciones-para-la-visualizacin-de.html' title='Autorizaciones para la visualización de Condiciones'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-1747964649548766734</id><published>2007-10-08T10:37:00.000-03:00</published><updated>2007-10-08T10:44:24.455-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Webdynpro JAVA'/><title type='text'>Debugging ABAP de una Webdynpro</title><content type='html'>Requisitos: &lt;br /&gt;El JCO connector debe estar seteando en Single Server Connection.&lt;br /&gt;&lt;br /&gt;1.  Loguearse al sistema destino con el mismo nombre de usuario que esta seteado en el JCO connector.&lt;br /&gt;&lt;br /&gt;2.  Activar external debugging en ABAP Workbench.  &lt;br /&gt;a.  Ir a tx SE37, SE38, o SE80.  &lt;br /&gt;b.  Choose Utilidades-&gt; Opciones en ABAP Editor tab ir a Debugging.  &lt;br /&gt;c.  Poner el Usuario (JCO connector) Seleccionamos Actv. y Desactivamos IP matching&lt;br /&gt;d.  Salvamos.  &lt;br /&gt;3.  Ponemos breakpoint Externo in the ABAP code, en el código como cualquier otro.  &lt;br /&gt;&lt;br /&gt;Al correr la Webdynpro for Java, se detendra en el breakpoint puesto y podemos analizar la llamada.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-1747964649548766734?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/1747964649548766734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/1747964649548766734'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/debugging-abap-de-una-webdynpro.html' title='Debugging ABAP de una Webdynpro'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-7531573709831715738</id><published>2007-10-08T10:16:00.001-03:00</published><updated>2009-04-14T15:09:48.890-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Transactions'/><title type='text'>Crear transacción que ejecute directamente una vista de actualización.</title><content type='html'>Primero debemos tener echa una vista de actualización. Luego, si deseamos que el usuario ingrese una transacción y que le aparezca directamente la vista de actualización (modo update) para ya realizar cambios.&lt;br /&gt;&lt;br /&gt;En la SE93 (creación de Transacciones) Creamos una tx y elegimos el tipo Parámetros y la seteamos de la siguiente manera.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_Yrm8x0k2PCg/RwowicCoYlI/AAAAAAAAABI/vRx-DK-Iorg/s1600-h/sm30.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_Yrm8x0k2PCg/RwowicCoYlI/AAAAAAAAABI/vRx-DK-Iorg/s320/sm30.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5118957294660903506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lo que estamos haciendo es llamar a la SM30, salteando la primer pantalla y abajo seteamos el nombre de la vista a actualizar y el modo de Update, si queremos que se visualice solamente hay que modificar ese parametro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-7531573709831715738?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/7531573709831715738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/7531573709831715738'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/crear-transaccin-que-ejecute.html' title='Crear transacción que ejecute directamente una vista de actualización.'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_Yrm8x0k2PCg/RwowicCoYlI/AAAAAAAAABI/vRx-DK-Iorg/s72-c/sm30.JPG' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-8460630197085554626</id><published>2007-10-08T10:06:00.000-03:00</published><updated>2007-10-08T10:09:24.609-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BASIS'/><title type='text'>Parametros del servidor</title><content type='html'>En la tx rz10, podemos administrar los parámetros del servidor.&lt;br /&gt;&lt;br /&gt;Al realizar cambios hay que bajar y volver a subir el servidor, para que tome los cambios.&lt;br /&gt;&lt;br /&gt;Por ej: para que funcionen los Field Exits el siguiente parametro debe estar seteado.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;abap/fieldexit = YES&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-8460630197085554626?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8460630197085554626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/8460630197085554626'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/parametros-del-servidor.html' title='Parametros del servidor'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-2897494126951484559</id><published>2007-10-05T16:48:00.000-03:00</published><updated>2007-10-08T10:11:20.339-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Field Exit'/><title type='text'>Creación de Field Exits</title><content type='html'>Un Field Exit sirve funciona como un exit común, pero tiene ciertas particularidades y ademas el dominio abarca un solo campo (data element) y el dominio puede ser Global o especifico a Programa - Dynpro.&lt;br /&gt;&lt;br /&gt;Para Acceder al Menu de Field Exits.&lt;br /&gt;&lt;br /&gt;Tx CMOD y en el browser poner PRFB.&lt;br /&gt;&lt;br /&gt;Si creamos un Field Exits, debemos primero Crear un grupo de Función, ya que el Field Exits trabaja en una Función con un parametro de import y otro de export, equivalentes al valor que ingresa y al valor que sale.&lt;br /&gt;&lt;br /&gt;Luego de su creacion debemos Activarla para que surga efecto.&lt;br /&gt;&lt;br /&gt;En un Field exit no podemos usar ninguna de las siguientes instrucciones.&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;BREAK-POINT&lt;/li&gt;&lt;br /&gt;&lt;li&gt;CALL SCREEN&lt;/li&gt;&lt;br /&gt;&lt;li&gt;CALL DIALOG&lt;/li&gt;&lt;br /&gt;&lt;li&gt;CALL TRANSACTION&lt;/li&gt;&lt;br /&gt;&lt;li&gt;SUBMIT&lt;/li&gt;&lt;br /&gt;&lt;li&gt;COMMIT WORK&lt;/li&gt;&lt;br /&gt;&lt;li&gt;ROLLBACK WORK&lt;/li&gt;&lt;br /&gt;&lt;li&gt;MESSAGE I&lt;/li&gt;&lt;br /&gt;&lt;li&gt;MESSAGE W&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;NOTA: Para poder activar los Field Extis debemos tener el parémetro.&lt;br /&gt;abap/fieldexit = YES&lt;br /&gt;&lt;br /&gt;Seteado en el servidor. &lt;a href="http://ramgv-sap.blogspot.com/2007/10/parametros-del-servidor.html"&gt;Ver&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-2897494126951484559?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2897494126951484559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/2897494126951484559'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/creacion-de-field-exits.html' title='Creación de Field Exits'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-7039134831961485016.post-599702103430027877</id><published>2007-10-05T15:19:00.000-03:00</published><updated>2007-10-05T15:20:48.921-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Smartform'/><title type='text'>Traducir un Smartform</title><content type='html'>Si se desea traducir un smartforms Z de español y a ingles, debemos utilizar la transaccion SE63 para realizar la misma y luego transportarla.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;SE63 - Menu Traducción -&gt; R/3 Enterprise -&gt; Otros textos explicativos&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Elejimos  &lt;&gt; Smart Form SAP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En nombre de objeto ponemos el Smartforms que deseamos traducir. Con su repectivo Idioma origen y destino.&lt;br /&gt;Nos aparecera una Doble ventana en la superior estan los textos y debajo su valor (en el idioma original) con su respectivo tipografia.&lt;br /&gt;&lt;br /&gt;Nosotros debemos completar el cuadro de abajo elejiendo el valor que querramos en el idioma destino, o sea traducir nosotros la palabra del español a ingles.&lt;br /&gt;&lt;br /&gt;NOTA: tratar de dejar la misma alineación de los textos, asi no tenemos problemos con las posiciones.&lt;br /&gt;&lt;br /&gt;Al terminar, grabamos y activamos. Notese que no se genero ninguna orden de transporte.&lt;br /&gt;&lt;br /&gt;Para poder transportar la traducción debemos agregar nosotros mismos la traducción a una Orden de transporte (algo similar con los textos creados con la SO10).&lt;br /&gt;&lt;br /&gt;Ejecutar programa &lt;span dir="ltr"&gt;&lt;span style="" lang="EN-US"&gt;&lt;b style=""&gt;RS_LXE_RECORD_TORDER&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Elejimos &lt;span dir="ltr"&gt;&lt;span style="" lang="EN-US"&gt;&lt;i style=""&gt;Create Transport Request ( &lt;img src="http://help.sap.com/saphelp_nw04/helpdata/en/02/5bc33e3a443907e10000000a114084/h-00100010000_image001.gif" /&gt;)&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Ponemos el idioma Destino&lt;br /&gt;En Clase de orden elejimos T para que al liberar no se importen automaticamente en los otros sistemas o K para que siga la ruta especificada.&lt;br /&gt;&lt;br /&gt;Grabamos. Esto genera una orden sin objetos. Ahora debemos llenarla.&lt;br /&gt;&lt;br /&gt;Ejecutar programa &lt;span dir="ltr"&gt;&lt;span style="" lang="EN-US"&gt;&lt;b style=""&gt;RS_LXE_RECORD_TORDER&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Ponemos el Idioma Destino 'EN' (ingles)&lt;br /&gt;El tipo de objeto 'SSF' (Smartform)&lt;br /&gt;Y la fecha y autor para restingir busqueda.&lt;br /&gt;&lt;br /&gt;Nos aparecen las encontradas, ahi deberiamos ver la nuestra. La seleccionamos, ejecutamos y nos aparece un log de concluido.&lt;br /&gt;&lt;br /&gt;Vamos a la SE10 y vamos a ver nuestra orden creada con el respectivo Objeto de traducción. Listo para ser transportada a QA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7039134831961485016-599702103430027877?l=ramgv-sap.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/599702103430027877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7039134831961485016/posts/default/599702103430027877'/><link rel='alternate' type='text/html' href='http://ramgv-sap.blogspot.com/2007/10/traducir-un-smartform.html' title='Traducir un Smartform'/><author><name>Rodrigo Ariel Marcelo Giner de la Vega</name><uri>http://www.blogger.com/profile/00429269867506053766</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://img515.imageshack.us/img515/6756/thumbsmallxg7.jpg'/></author></entry></feed>
