<?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-7512010186908987712</id><updated>2012-02-10T01:32:49.712+01:00</updated><category term='letra'/><category term='EIPO-VERLD'/><category term='F1'/><category term='IDOC'/><category term='PATH'/><category term='fields-exits'/><category term='SAP GUI'/><category term='textos'/><category term='rendimiento'/><category term='cronomarcador'/><category term='saplogon'/><category term='7.0'/><category term='query'/><category term='netweaver'/><category term='PROTOCOLO'/><category term='HTTP'/><category term='tablas'/><category term='job'/><category term='izquierda'/><category term='dynpros'/><category term='IP'/><category term='PDA'/><category term='Formatos'/><category term='unicode'/><category term='BAPIRETURN'/><category term='transporte'/><category term='SAP MM'/><category term='&quot;signo negativo&quot;'/><category term='scripting'/><category term='EIPO'/><category term='fichero'/><category term='RFC'/><category term='BAPI'/><category term='SAP SD'/><category term='INTRASTAT'/><category term='scarr'/><category term='Foreign trade data (import/export)'/><category term='formularios'/><category term='field'/><category term='Búsqueda'/><category term='dwdm'/><category term='stms'/><category term='SE30'/><category term='SSO'/><category term='TRKORR'/><category term='links'/><category term='matchcode'/><category term='transacción'/><category term='importación'/><category term='BADI'/><category term='WM'/><category term='cambios'/><category term='updated was terminated'/><category term='DEBUGGING'/><category term='redondeo'/><category term='análisis'/><category term='cmod'/><category term='Colaborar'/><category term='mensajes'/><category term='modo'/><category term='OTR'/><category term='EDIT MASK'/><category term='HTML'/><category term='stock'/><category term='condiciones'/><category term='tipos_genéricos'/><category term='cálculo'/><category term='error'/><category term='fórmula'/><category term='Excepcion'/><category term='objetos ok_code evento dynpro'/><category term='exportar'/><category term='Excel'/><category term='ok_code'/><category term='SY'/><category term='actualización cancelada'/><category term='cliente'/><category term='fechas'/><category term='ordenes'/><category term='&quot;CLOI_PUT_SIGN_IN_FRONT&quot;'/><category term='Código Fuente'/><category term='FUNCIONES'/><category term='status'/><category term='esquema de cálculo'/><category term='copia homogenea'/><category term='rutinas de conversion'/><category term='Facturas'/><category term='IMAGEN'/><category term='Webdynpro'/><category term='se16n'/><category term='Frontend'/><category term='sflight'/><category term='Paginación'/><category term='Carpetas'/><category term='Post goods issue'/><category term='Dump'/><category term='Sapscript'/><category term='transportes'/><category term='Directorios'/><category term='SAT'/><category term='smartforms'/><category term='VOFM'/><category term='util'/><category term='Sustitución'/><category term='BW'/><category term='Entregas'/><category term='saldo'/><category term='PRFB'/><category term='Configurables'/><category term='ampliación'/><category term='ejemplos'/><category term='ascii'/><category term='sap'/><category term='traducción'/><category term='SAP FI'/><category term='TABLES'/><category term='sm13'/><category term='ASSIGN'/><category term='ABAP'/><category term='BI'/><category term='ALV'/><category term='exit'/><category term='clase'/><category term='E070L'/><category term='clipboard'/><category term='SELECTION-SCREEN'/><category term='Windows CE'/><category term='BSP'/><category term='código barras'/><title type='text'>SAPEROS ON LINE</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default?start-index=101&amp;max-results=100'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>115</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5273460796934244922</id><published>2011-12-01T10:35:00.003+01:00</published><updated>2011-12-01T11:29:58.673+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ejemplos'/><category scheme='http://www.blogger.com/atom/ns#' term='clase'/><category scheme='http://www.blogger.com/atom/ns#' term='sap'/><category scheme='http://www.blogger.com/atom/ns#' term='condiciones'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='análisis'/><title type='text'>Ahora lo entiendo TODO!</title><content type='html'>Muchas veces me he preguntado como puede ser que tantas veces hacer lo más sencillo en SAP sea tan complicado, se tengan que seguir tantos pasos y muchas veces no sepas porqué las cosas se han de hacer con "logica inversa"...&lt;br /&gt;Pues bien, hoy repasando un manual de OOP, he visto la luz:&lt;br /&gt;&lt;br /&gt;"friendship is one-sided:&lt;br /&gt;A class granting friendship is not automatically a friend of its friends. If a class&lt;br /&gt;granting friendship wants to access the non-public components of a friend, this&lt;br /&gt;friend must also explicitly grant friendship to it."&lt;br /&gt;&lt;br /&gt;O sea, Yo, como programador de SAP, soy amigo de SAP, pero SAP, pasa de mi cara olimpicamente...&lt;br /&gt;&lt;br /&gt;¿Alguien sabe donde està el pincho en la SPRO para que SAP sepa que soy su amigo?&lt;br /&gt;Sniff...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5273460796934244922?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5273460796934244922/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5273460796934244922' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5273460796934244922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5273460796934244922'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2011/12/ahora-lo-entiendo-todo.html' title='Ahora lo entiendo TODO!'/><author><name>Dump Boy</name><uri>http://www.blogger.com/profile/16374237374666614377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='9' src='http://1.bp.blogspot.com/-dMrtpfyEctc/TikyaLRxpSI/AAAAAAAAAA8/iVZfslLBX8s/s220/dumpboy.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-8325350846717480781</id><published>2011-07-26T17:00:00.005+02:00</published><updated>2011-07-26T17:13:29.836+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Colaborar'/><category scheme='http://www.blogger.com/atom/ns#' term='dynpros'/><category scheme='http://www.blogger.com/atom/ns#' term='textos'/><title type='text'>Misterios de SAP</title><content type='html'>Hola de nuevo,&lt;br /&gt;Hoy me he encontrado con &lt;s&gt;una de esas chorradas que tiene SAP&lt;/s&gt; un misterio de SAP...&lt;br /&gt;Creando una dynpro a uno de los campos de texto le he puesto el texto de salida: "Real", y al visualizar la dynpro, he visto que los otros campos salían con la fuente arial y este con la fuente courier...&lt;br /&gt;Después de varias pruebas he acabado por probar de escribir "Real_" (osease, con un espacio detrás) y ya me salía bien...&lt;br /&gt;Misterio misterioso!&lt;br /&gt;Alguien sabe de más "palabras reservadas" como por ejemplo "Real" que sea mejor no usar en dynpros para evitarte quejas de los keyusers?&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/7512010186908987712-8325350846717480781?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/8325350846717480781/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=8325350846717480781' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8325350846717480781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8325350846717480781'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2011/07/misterios-de-sap.html' title='Misterios de SAP'/><author><name>Dump Boy</name><uri>http://www.blogger.com/profile/16374237374666614377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='9' src='http://1.bp.blogspot.com/-dMrtpfyEctc/TikyaLRxpSI/AAAAAAAAAA8/iVZfslLBX8s/s220/dumpboy.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-8954973929519666293</id><published>2011-07-19T13:06:00.002+02:00</published><updated>2011-07-19T15:00:25.893+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='se16n'/><category scheme='http://www.blogger.com/atom/ns#' term='DEBUGGING'/><category scheme='http://www.blogger.com/atom/ns#' term='ABAP'/><title type='text'>Saltarte la falta de permisos en SE16n</title><content type='html'>en la ultima versión de SAP, aunque tengas los permisos en tipo full como desarollador la SE16n&lt;br /&gt;te la encuentras capada y no puedes &lt;s&gt;meter la zarpa&lt;/s&gt; actualizar las tablas de ninguna manera.&lt;br /&gt;La manera de &lt;s&gt;saltarte&lt;/s&gt; conseguir estos permisos es la siguiente:&lt;br /&gt;Vamos a la SE16n.&lt;br /&gt;escogemos nuestra tabla y ponemos todos los parametros por los que queremos filtrar.&lt;br /&gt;Le metemos el debuger /h.&lt;br /&gt;Le metemos el &amp;amp;sap_edit.&lt;br /&gt;F8&lt;br /&gt;Se nos abre el debuger.&lt;br /&gt;Vamos a -&amp;gt;Breakpoints -&amp;gt; Crear Breakpoint en -&amp;gt; sentencia.&lt;br /&gt;Le ponemos un breakpoint en "EXIT". aceptamos y le damos al F8&lt;br /&gt;nos saltará el breakpoint y veremos el debuger.&lt;br /&gt;Unas líneas más arriba veremos una senténcia que pone:&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000066;"&gt;if sy-subrc = 0 and not ld_pos is initial.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000066;"&gt;select single se16n_sap_edit from se16n_edit&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000066;"&gt;into ld_sap_edit&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000066;"&gt;where pos = ld_pos.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="color:#000066;"&gt;if sy-subrc = 0 and ld_sap_edit &amp;lt;&amp;gt; true.&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;en la primera linea de este código, le hemos de poner un breakpoint manual y darle a gravar.&lt;br /&gt;le damos al f8 y salimos sin poder editar a la pantalla de SE16n.&lt;br /&gt;volvemos a poner el /h y el &amp;amp;SAP_EDIT y volvemos a dar a f8.&lt;br /&gt;cargamos las variables sy-subrc o ld_pos para modificarlas.&lt;br /&gt;en ld_pos (por ejemplo) le ponemos: '0001'.&lt;br /&gt;le damos a F5 dos veces y cuando el programa pasa por el&lt;br /&gt;if sy-subrc = 0 and ld_sap_edit &amp;lt;&amp;gt; true.&lt;br /&gt;cargamos la variable ld_sap_edit para modificar y le cargamos el valor 'X'.&lt;br /&gt;le damos a F8 y voilà! ya tenemos permiso para trastear con los datos de nuestra tabla!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-8954973929519666293?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/8954973929519666293/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=8954973929519666293' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8954973929519666293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8954973929519666293'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2011/07/saltarte-la-falta-de-permisos-en-se16n.html' title='Saltarte la falta de permisos en SE16n'/><author><name>Dump Boy</name><uri>http://www.blogger.com/profile/16374237374666614377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='9' src='http://1.bp.blogspot.com/-dMrtpfyEctc/TikyaLRxpSI/AAAAAAAAAA8/iVZfslLBX8s/s220/dumpboy.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-236441321963348845</id><published>2011-06-30T10:34:00.003+02:00</published><updated>2011-06-30T10:41:30.293+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sflight'/><category scheme='http://www.blogger.com/atom/ns#' term='scarr'/><category scheme='http://www.blogger.com/atom/ns#' term='ejemplos'/><category scheme='http://www.blogger.com/atom/ns#' term='dwdm'/><title type='text'>DATOS PARA EJEMPLOS DE SAP</title><content type='html'>Seguramente todos conocereis algún ejemplo de código de SAP (ver transacción DWDM) que utiliza el conjunto de tablas de ejemplo de vuelos, reservas, compañías aéreas, etc. El problema es que a veces estas tablas no disponen de datos y es difícil probar qué hacen esos ejemplos. Esto tiene una solución muy fácil, con el report SAPBC_DATA_GENERATOR podemos generar un juego de datos automático para las tablas de ejemplo de SAP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-236441321963348845?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/236441321963348845/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=236441321963348845' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/236441321963348845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/236441321963348845'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2011/06/datos-para-ejemplos-de-sap.html' title='DATOS PARA EJEMPLOS DE SAP'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-7479370723457862279</id><published>2011-03-18T10:38:00.002+01:00</published><updated>2011-03-18T10:46:25.236+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP MM'/><category scheme='http://www.blogger.com/atom/ns#' term='BAPI'/><title type='text'>FUNCION PARA VER UNA FACTURA DE COMPRAS</title><content type='html'>&lt;div style="text-align: justify;"&gt;A falta de BAPIs sencillas e intuitivas (a menos que alguien me diga lo contrario) la función más fácil para ver una factura de compras con la transacción MIRO mediante es la siguiente:  &lt;style type="text/css"&gt;span { font-family: "Courier New"; font-size: 10pt; color: rgb(0, 0, 0); background: none repeat scroll 0% 0% rgb(255, 255, 255); }&lt;/style&gt; &lt;span&gt;&lt;span style="font-weight: bold;"&gt;MRM_POSITION_TREATM&lt;/span&gt; &lt;/span&gt;que cómo véis no es nada intuitiva. Lo mejor es copiar el siguiente código y nos quedamos tan anchos.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;span { font-family: "Courier New"; font-size: 10pt; color: rgb(0, 0, 0); background: none repeat scroll 0% 0% rgb(255, 255, 255); }.L0S32 { color: rgb(51, 153, 255); }.L0S33 { color: rgb(77, 166, 25); }.L0S52 { color: rgb(0, 0, 255); }&lt;/style&gt; &lt;span&gt;data: ls_rbkpv &lt;span class="L0S52"&gt;type  &lt;/span&gt;mrm_rbkpv.&lt;br /&gt;&lt;br /&gt;  ls_rbkpv-belnr = xbelnr.&lt;br /&gt;  ls_rbkpv-gjahr = xgjahr.&lt;br /&gt;&lt;br /&gt;  &lt;span class="L0S52"&gt;call &lt;/span&gt;&lt;span class="L0S52"&gt;function &lt;/span&gt;&lt;span class="L0S33"&gt;'MRM_POSITION_TREATM'&lt;/span&gt;&lt;br /&gt;    &lt;span class="L0S52"&gt;exporting&lt;/span&gt;&lt;br /&gt;      i_tcode             = sy-tcode&lt;br /&gt;      i_fcode             = &lt;span class="L0S33"&gt;'ITEM'&lt;/span&gt;&lt;br /&gt;      i_akt_typ           = &lt;span class="L0S33"&gt;'A'&lt;/span&gt;&lt;br /&gt;      i_kzverd            = &lt;span class="L0S33"&gt;'0'&lt;/span&gt;&lt;br /&gt;      i_aggr_list_version = &lt;span class="L0S33"&gt;''&lt;/span&gt;&lt;br /&gt;    &lt;span class="L0S52"&gt;changing&lt;/span&gt;&lt;br /&gt;      x_rbkpv             = ls_rbkpv&lt;br /&gt;    &lt;span class="L0S52"&gt;exceptions&lt;/span&gt;&lt;br /&gt;      rbdrseg_not_found   = &lt;span class="L0S32"&gt;1&lt;/span&gt;&lt;br /&gt;      invoice_locked      = &lt;span class="L0S32"&gt;2&lt;/span&gt;&lt;br /&gt;      &lt;span class="L0S52"&gt;others              &lt;/span&gt;= &lt;span class="L0S32"&gt;3.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  &lt;span class="L0S52"&gt;if &lt;/span&gt;sy-subrc &lt;&gt; &lt;span class="L0S32"&gt;0.&lt;/span&gt;&lt;br /&gt;    &lt;span class="L0S52"&gt;message &lt;/span&gt;&lt;span class="L0S52"&gt;id &lt;/span&gt;sy-msgid &lt;span class="L0S52"&gt;type &lt;/span&gt;sy-msgty &lt;span class="L0S52"&gt;number &lt;/span&gt;sy-msgno&lt;br /&gt;            &lt;span class="L0S52"&gt;with &lt;/span&gt;sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;br /&gt;  endif.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Saludos!&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-7479370723457862279?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/7479370723457862279/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=7479370723457862279' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7479370723457862279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7479370723457862279'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2011/03/funcion-para-ver-una-factura-de-compras.html' title='FUNCION PARA VER UNA FACTURA DE COMPRAS'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4110701338190691775</id><published>2011-01-24T11:43:00.007+01:00</published><updated>2011-03-18T10:38:26.277+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SY'/><category scheme='http://www.blogger.com/atom/ns#' term='letra'/><category scheme='http://www.blogger.com/atom/ns#' term='ascii'/><title type='text'>AVERIGUAR LA LETRA (MAYÚSCULA) SIGUIENTE</title><content type='html'>Saludos nobles saperos,&lt;br /&gt;He estado batallando con el código ascii para conseguir pasar una letra a ascii y después averiguar la letra siguiente sumándole n al ascii y pasando el ascii a char... y caca de la vaca... Además, me he encontrado que si trabajas con la 4.6 hace una cosa y si trabajas en versiones siguientes de SAP, hace otra... Mal!&lt;br /&gt;Al final, he descubierto un campo de sistema que casi que te consigue hacerlo sin programar... sy-abcde!&lt;br /&gt;al final el código me ha quedado tal que así:&lt;br /&gt;&lt;br /&gt;      letra(1) TYPE c,&lt;br /&gt;      letra2(1) TYPE c,&lt;br /&gt;&lt;br /&gt;DATA:&lt;br /&gt;      letra(1) TYPE c VALUE 'A',  "la letra de entrada&lt;br /&gt;      letra2(1) TYPE c, "la letra de salida&lt;br /&gt;      cont1 TYPE i,       "contador&lt;br /&gt;      cont2 TYPE i.     "contador&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;cont1 = 0.&lt;br /&gt;cont2 = 1.&lt;br /&gt;&lt;br /&gt;DO.&lt;br /&gt;  IF sy-subrc NE 0.&lt;br /&gt;    EXIT.&lt;br /&gt;  ELSE.&lt;br /&gt;    IF sy-abcde+cont1(1) EQ letra.&lt;br /&gt;      letra2 = sy-abcde+cont2.&lt;br /&gt;      EXIT.&lt;br /&gt;    ELSE.&lt;br /&gt;      cont1 = cont1 + 1.&lt;br /&gt;      cont2 = cont2 + 1.&lt;br /&gt;    ENDIF.&lt;br /&gt;  ENDIF.&lt;br /&gt;ENDDO.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;así pues, si igualmente queremos averiguar lo mismo pero con minúsculas (o combinado), podemos crearnos una var que contenga por ejemplo (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)... o cualquier cadena de carácteres que nuestro bienamado consultor tenga a bien mandarnos averiguar...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Venga pues, saludos y tal!&lt;br /&gt;P.D.: como siempre mis posts tipo chorrada, pero bueno, es lo que tiene ser un dumpero! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4110701338190691775?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4110701338190691775/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4110701338190691775' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4110701338190691775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4110701338190691775'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2011/01/averiguar-la-letra-mayuscula-siguiente.html' title='AVERIGUAR LA LETRA (MAYÚSCULA) SIGUIENTE'/><author><name>Dump Boy</name><uri>http://www.blogger.com/profile/16374237374666614377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='9' src='http://1.bp.blogspot.com/-dMrtpfyEctc/TikyaLRxpSI/AAAAAAAAAA8/iVZfslLBX8s/s220/dumpboy.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-3265200024437680930</id><published>2011-01-18T15:41:00.003+01:00</published><updated>2011-01-18T15:46:33.059+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAT'/><category scheme='http://www.blogger.com/atom/ns#' term='SE30'/><category scheme='http://www.blogger.com/atom/ns#' term='rendimiento'/><category scheme='http://www.blogger.com/atom/ns#' term='análisis'/><category scheme='http://www.blogger.com/atom/ns#' term='ABAP'/><title type='text'>NUEVO ANALISIS DE TIEMPO DE EJECUCION</title><content type='html'>Post rápido.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hay una nueva transacción, SAT, que es una nueva versión de la vieja y entrañable SE30. Para más datos:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/18210%3Futm_source%3Dtwitterfeed%26utm_medium%3Dtwitter%26utm_campaign%3DFeed%253A+SAPNetworkWeblogs+%2528SAP+Network+Weblogs%2529"&gt;http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/18210%3Futm_source%3Dtwitterfeed%26utm_medium%3Dtwitter%26utm_campaign%3DFeed%253A+SAPNetworkWeblogs+%2528SAP+Network+Weblogs%2529&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-3265200024437680930?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/3265200024437680930/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=3265200024437680930' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3265200024437680930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3265200024437680930'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2011/01/nuevo-analisis-de-tiempo-de-ejecucion.html' title='NUEVO ANALISIS DE TIEMPO DE EJECUCION'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-6127898827125179600</id><published>2010-12-21T09:50:00.002+01:00</published><updated>2010-12-21T10:00:51.863+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mensajes'/><title type='text'>MESSAGE "AVANZADO"</title><content type='html'>Todos conocemos la instrucción MESSAGE, si no la conoces deja este blog y cómprate algún libro del tipo ABAP for dummies... Bueno la cuestión es que hay un par de opciones en esta instrucción que no se utilizan mucho y no todo el mundo conoce.&lt;div&gt;&lt;br /&gt;&lt;div&gt;Casi siempre se utiliza el MESSAGE usando mensajes de una clase de mensajes de la transacción SE91 sin embargo podemos mostrar un mensaje directamente usando el texto de esta forma:&lt;/div&gt;&lt;div&gt;MESSAGE texto TYPE mtype.&lt;/div&gt;&lt;div&gt;Siendo &lt;i&gt;texto&lt;/i&gt; un texto de como máximo 300 caracteres y &lt;i&gt;mtype&lt;/i&gt; el tipo de mensaje.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Podemos forzar que un mensaje de un tipo se muestre como si fuera de otro añadiendo la opción DISPLAY LIKE mtype, donde &lt;i&gt;mtype&lt;/i&gt; es el tipo que debe mostrar. El mensaje se comportará como el tipo original pero mostrará el icono que le decimos en el DISPLAY LIKE. Esto es especialmente útil en mensajes del tipo I, de esos que muestran un popup, ya que sirve para cambiarle el icono por el que nosotros queramos para poder darle un mayor énfasis en el mensaje. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-6127898827125179600?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/6127898827125179600/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=6127898827125179600' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6127898827125179600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6127898827125179600'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/12/message-avanzado.html' title='MESSAGE &quot;AVANZADO&quot;'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2458993343394274767</id><published>2010-12-07T12:56:00.002+01:00</published><updated>2010-12-07T13:02:52.389+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='saplogon'/><title type='text'>¿DONDE ESTA MI SAPLOGON.INI?</title><content type='html'>SAP guarda los datos de las conexiones con los diferentes servidores de SAP en un archivo llamado saplogon.ini, básicamente es lo que se ve cuando arrancas el SAPlogon. Si quieres saber donde se guarda para hacer una copia de seguridad o para llevártelo a otro PC ahora te explico como hacerlo. Piensa que dependiendo del sistema operativo y de la versión estará en un sitio u otro. Vamos al tema:&lt;div&gt;Ejecuta el SAPlogon, ve a Opciones en el menú, en la versión que tengo yo (720) hay que dale al botón de arriba a la izquierda. Aparece una estructura de árbol a la izquierda, desplegar "Opciones de SAPlogon" y darle a "Ficheros de configuración". Ahora verás que a la derecha aparecen varios datos, busca en la lista de "Ficheros locales cargados" uno que pone "Conexión", ese es. Seguramente en otras versiones el tema cambiará ligeramente, se trata de ir buscando en las opciones a ver donde se define el fichero este.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2458993343394274767?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2458993343394274767/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2458993343394274767' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2458993343394274767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2458993343394274767'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/12/donde-esta-mi-saplogonini.html' title='¿DONDE ESTA MI SAPLOGON.INI?'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4531227585768150954</id><published>2010-09-07T15:28:00.003+02:00</published><updated>2010-09-07T15:42:36.924+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mensajes'/><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><category scheme='http://www.blogger.com/atom/ns#' term='Excepcion'/><title type='text'>MENSAJES DE ERROR EN FUNCIONES</title><content type='html'>Las funciones tienen un sistema de control de errores basado en excepciones. Sin embargo hay veces que ejecutamos un módulo de funciones y se produce un error generado por una instrucción MESSAGE que no lanza ninguna excepción. En estos casos el módulo de funciones termina pero no vuelve al punto desde donde se llamó sino que vuelve atrás en la jerarquía de llamadas hasta salir del programa.&lt;br /&gt;Para evitar este problema existe un código de excepción especial del sistema, el ERROR_MESSAGE. Si en la llamada a la función le añadimos la excepción ERROR_MESSAGE al producirse un error de tipo E o A el programa vuelve a la llamada de la función con el valor de SY-SUBRC que le hayamos puesto en la llamada. Los mensajes S, I y W son ignorados.&lt;br /&gt;Vamos a poner un ejemplo que no os veo muy convencidos...&lt;br /&gt;&lt;br /&gt;He aquí el módulo de funciones (no tiene definida ninguna excepción):&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;FUNCTION funcion_1.&lt;br /&gt;  MESSAGE e001.&lt;br /&gt;ENDFUNCTION&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Y aquí la llamada:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;PROGRAM programa_1.&lt;br /&gt;CALL FUNCTION 'FUNCION_1'&lt;br /&gt;  EXCEPTIONS&lt;br /&gt;    error_message = 1&lt;br /&gt;    OTHERS        = 2.&lt;br /&gt;&lt;br /&gt;IF sy-subrc NE 0.&lt;br /&gt;* Tratamiento de errores&lt;br /&gt;ENDIF.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4531227585768150954?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4531227585768150954/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4531227585768150954' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4531227585768150954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4531227585768150954'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/09/mensajes-de-error-en-funciones.html' title='MENSAJES DE ERROR EN FUNCIONES'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-206104972761430148</id><published>2010-09-01T12:45:00.005+02:00</published><updated>2010-09-01T16:35:24.755+02:00</updated><title type='text'>COMO HACER DEBUGGING DE JOBS</title><content type='html'>&lt;div&gt;Para poder debugar un job no siempre es posible ejecutar directamente el programa. A parte a veces los programas analizan si están siendo lanzados en fondo u online. Para poder debugarlo en las mismas condiciones que si se estuviera ejecuntado en fondo basta con introducir el OK-CODE "JDBG" desde la transacción se37, habiendo seleccionado el job correspondiente. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hay otra manera que además sirve para cazar procesos de fondo aunque no vengan por job (Idocs, perform en update-task,...). Cuando el proceso está corriendo es posible ir a la sm50 y allí ir a Programa/Modo -&gt; Programa -&gt; Debugging desde donde se accede al debugging del proceso seleccionado.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-206104972761430148?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/206104972761430148/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=206104972761430148' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/206104972761430148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/206104972761430148'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/09/como-hacer-debugging-de-jobs.html' title='COMO HACER DEBUGGING DE JOBS'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-1118318530341159185</id><published>2010-05-27T13:50:00.004+02:00</published><updated>2010-05-27T15:23:30.968+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='traducción'/><category scheme='http://www.blogger.com/atom/ns#' term='transporte'/><category scheme='http://www.blogger.com/atom/ns#' term='textos'/><title type='text'>TRANSPORTE DE TRADUCCIONES</title><content type='html'>Para facilitar la vida de los programadores existe el programa RS_LXE_RECORD_TORDER que permite transportar las traducciones sin tener que conocer los parámetros del catálogo de objetos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-1118318530341159185?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/1118318530341159185/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=1118318530341159185' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1118318530341159185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1118318530341159185'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/05/transporte-de-tranducciones_27.html' title='TRANSPORTE DE TRADUCCIONES'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5696886998630516101</id><published>2010-05-27T12:47:00.000+02:00</published><updated>2010-05-27T12:56:55.059+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IP'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP GUI'/><category scheme='http://www.blogger.com/atom/ns#' term='HTTP'/><category scheme='http://www.blogger.com/atom/ns#' term='RFC'/><category scheme='http://www.blogger.com/atom/ns#' term='PROTOCOLO'/><title type='text'>OBTENER LA DIRECCIÓN IP - OTROS PROTOCOLOS</title><content type='html'>HOla,&lt;br /&gt;&lt;br /&gt;En el anterior post, nuestro compañero Formulario-Man, nos habla de la detección de la IP del terminal desde el que nos conectamos utilizando la clase CL_GUI_FRONTEND_SERVICES. Esto es válido si nos conectamos vía SAP GUI, pero para otros protocolos sería necesario utilizar otras técnicas:&lt;br /&gt;&lt;br /&gt;1- Conexiones RFC: &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  CALL FUNCTION 'RFC_GET_ATTRIBUTES'&lt;br /&gt;    IMPORTING&lt;br /&gt;      caller_ip                 = caller_ip&lt;br /&gt;    EXCEPTIONS&lt;br /&gt;      system_call_not_supported = 1&lt;br /&gt;      no_rfc_communication      = 2&lt;br /&gt;      internal_error            = 3&lt;br /&gt;      OTHERS                    = 4.&lt;br /&gt;&lt;br /&gt;2 - Conexiones vía HTTP&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    CALL FUNCTION 'HTTP_GET_CURRENT_SERVER_CB'&lt;br /&gt;      IMPORTING&lt;br /&gt;        server_cb      = i_server&lt;br /&gt;      EXCEPTIONS&lt;br /&gt;        no_icf_session = 1&lt;br /&gt;        OTHERS         = 2.&lt;br /&gt;&lt;br /&gt;    IF sy-subrc &lt;&gt; 0.&lt;br /&gt;      RAISE no_http_server.&lt;br /&gt;    ELSE.&lt;br /&gt;&lt;br /&gt;      DATA: l_field TYPE string.&lt;br /&gt;&lt;br /&gt;      CALL METHOD i_server-&gt;request-&gt;if_http_entity~get_header_field(&lt;br /&gt;        EXPORTING&lt;br /&gt;          name = 'x-forwarded-for'&lt;br /&gt;        RECEIVING&lt;br /&gt;          value = l_field ).&lt;br /&gt;&lt;br /&gt;      IF l_field IS INITIAL.&lt;br /&gt;&lt;br /&gt;        c_server_net ?= i_server.&lt;br /&gt;        client_ip = c_server_net-&gt;c_caller_ip.&lt;br /&gt;&lt;br /&gt;      else.&lt;br /&gt;&lt;br /&gt;        client_ip = l_field.&lt;br /&gt;&lt;br /&gt;      ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En el caso de que nuestro programa se pueda llamar desde diferentes protocolos no conseguí encontrar una manera de detectar el protocolo más allá de ir probando (primero RFC, luego HTTP y si no asumimos que es SAP GUI).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5696886998630516101?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5696886998630516101/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5696886998630516101' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5696886998630516101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5696886998630516101'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/05/obtener-la-direccion-ip-otros.html' title='OBTENER LA DIRECCIÓN IP - OTROS PROTOCOLOS'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5922563518759082412</id><published>2010-04-27T09:40:00.002+02:00</published><updated>2010-04-27T09:46:18.233+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IP'/><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><category scheme='http://www.blogger.com/atom/ns#' term='Frontend'/><title type='text'>OBTENER LA DIRECCIÓN IP</title><content type='html'>Hoy toca algo fácil. A veces podemos necesitar obtener la dirección IP del usuario para, por ejemplo, distinguir entre dos usuarios que han entrado con el mismo usuario (sí, hay gente que hace eso! ;-P)&lt;div&gt;Para obtener la IP podemos utilizar un método de la clase CL_GUI_FRONTEND_SERVICES llamado GET_IP_ADDRESS. Te devuelve la IP formateda con los punticos y todo. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ejemplo:&lt;/div&gt;&lt;div&gt;&lt;div&gt;  DATA: g_ip TYPE apaccip_tp.&lt;/div&gt;&lt;div&gt;  g_ip = cl_gui_frontend_services=&gt;get_ip_address( ).&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por cierto, no está de más que le echéis un ojo a la clase CL_GUI_FRONTEND_SERVICES, tiene un montón de métodos útiles relacionados con el frontend.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5922563518759082412?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5922563518759082412/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5922563518759082412' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5922563518759082412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5922563518759082412'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/04/obtener-la-direccion-ip.html' title='OBTENER LA DIRECCIÓN IP'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4590117341734550996</id><published>2010-04-21T16:10:00.000+02:00</published><updated>2010-04-21T16:11:54.705+02:00</updated><title type='text'>ERROR AL ARRANCAR EL SCREEN PAINTER GRÁFICO</title><content type='html'>&lt;p class="MsoNormal"&gt;Si te da este error: &lt;span class="apple-style-span"&gt;&lt;span style="font-size: 10pt; font-family: &amp;quot;Lucida Console&amp;quot;; color: black;"&gt;"EU_SCRP_WN32: connection to partner ... broken" &lt;/span&gt;&lt;/span&gt;no desesperes… Ya lo he hecho yo… hay una nota (1459064) que habla de ello y te dice que la solución es hacer un upgrade del GRAPHICAL SCREEN PAINTER, para ello nos remite  a la nota 133903 donde podremos encontrar las instrucciones para hacer el upgrade correspondiente debido a al versión que tengamos. Siguiendo las instrucciones nuestro problema estará resuelto y podremos disfrutar de esas pequeñas cosas que hacen que tu rendimiento en el trabajo baje increíblemente.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;PD: A mi me ha pasado esto después de añadir el parche 17 del sapgui 710.&lt;/p&gt;&lt;p class="MsoNormal"&gt;(Enviado en nombre de RaFmaN)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4590117341734550996?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4590117341734550996/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4590117341734550996' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4590117341734550996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4590117341734550996'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/04/error-al-arrancar-el-screen-painter.html' title='ERROR AL ARRANCAR EL SCREEN PAINTER GRÁFICO'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2862895634329607458</id><published>2010-03-23T20:40:00.001+01:00</published><updated>2010-03-23T20:43:04.270+01:00</updated><title type='text'>ESTAMOS EN FACEBOOK.</title><content type='html'>Te invitamos a seguirnos en FACEBOOK&lt;div&gt;&lt;a href="http://www.facebook.com/pages/SAPEROS-ON-LINE/113109772032955?ref=mf"&gt;http://www.facebook.com/pages/SAPEROS-ON-LINE/113109772032955?ref=mf&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2862895634329607458?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2862895634329607458/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2862895634329607458' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2862895634329607458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2862895634329607458'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/03/estamos-en-facebook.html' title='ESTAMOS EN FACEBOOK.'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5407693307493867714</id><published>2010-03-02T11:12:00.002+01:00</published><updated>2010-04-27T09:50:02.036+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ejemplos'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><category scheme='http://www.blogger.com/atom/ns#' term='ABAP'/><title type='text'>LINKS INTERESANTES DE ABAP</title><content type='html'>&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); line-height: 19px; font-family:Verdana, sans-serif;font-size:13px;"&gt;&lt;p class="MsoNormal"&gt;Cientos de códigos ABAP interesantes: &lt;a href="http://wiki.sdn.sap.com/wiki/display/Snippets/Community+Code+Gallery"&gt;http://wiki.sdn.sap.com/wiki/display/Snippets/Community+Code+Gallery&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  Manual de ABAP en castellano online: &lt;a href="http://chihuantitos.wikispaces.com/file/list"&gt;http://chihuantitos.wikispaces.com/file/list&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); line-height: 19px; font-family:Verdana, sans-serif;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); line-height: 19px; font-family:Verdana, sans-serif;font-size:13px;"&gt;&lt;a href="http://chihuantitos.wikispaces.com/file/list"&gt;&lt;/a&gt;Gracias a los compañeros Joel Berga y Carmen García por compartir sus conocimientos.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  color: rgb(51, 51, 51); line-height: 19px; font-family:Verdana, sans-serif;font-size:13px;"&gt;(Enviado en nombre de RaFmaN)&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5407693307493867714?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5407693307493867714/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5407693307493867714' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5407693307493867714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5407693307493867714'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/03/links-interesantes-de-abap.html' title='LINKS INTERESANTES DE ABAP'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-57548121820370995</id><published>2010-02-26T11:58:00.002+01:00</published><updated>2010-02-26T12:00:45.193+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stock'/><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><category scheme='http://www.blogger.com/atom/ns#' term='cliente'/><category scheme='http://www.blogger.com/atom/ns#' term='tablas'/><title type='text'>SABER EL STOCK RESERVADO DE CLIENTE</title><content type='html'>&lt;p class="MsoNormal"&gt;Sudaremos bastante si queremos saber el stock reservado de cliente , cosa que se puede saber mediante la transacción MMBE marcando el flag “SEL. TAMBIÉN STOCK ESPECIALES”. Ocurre que no he encontrado ninguna función o bapi que me lo retornase de manera sencilla sin muchas historias, si que lo consigues mediante la función MD_STOCK_REQUIREMENTS_LIST_API. Pues bien, hay una tabla la T148K, que guarda el nombre de la tabla donde se guarda dicha información, así sabiendo esto podremos hacer un select a la tabla que nos diga para obtener el stock reservado de cliente o cualquier otro de carácter “especial”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Saludos desde el vil agujero donde me hospedo.&lt;/p&gt;&lt;p class="MsoNormal"&gt;(Enviado en nombre de RaFmaN)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-57548121820370995?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/57548121820370995/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=57548121820370995' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/57548121820370995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/57548121820370995'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/02/saber-el-stock-reservado-de-cliente.html' title='SABER EL STOCK RESERVADO DE CLIENTE'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-8289949681382007937</id><published>2010-02-11T18:31:00.003+01:00</published><updated>2010-02-11T18:37:01.118+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><category scheme='http://www.blogger.com/atom/ns#' term='textos'/><title type='text'>GESTION DE TEXTOS</title><content type='html'>&lt;div&gt;La gestión de textos en SAP se realiza con las siguientes funciones:&lt;/div&gt;&lt;div&gt;* INIT_TEXT: Inicializa las tablas internas.&lt;/div&gt;&lt;div&gt;* READ_TEXT: Lee un texto y lo devuelve en la tabla LINES. Si lo encuentra en memoria lo coge de ahí, si no se va a buscarlo a la BD.&lt;/div&gt;&lt;div&gt;* EDIT_TEXT: Llama al editor de textos de SAP. Si lo tenemos configurado nos aparecerá nuestro &amp;lt;IRONIA&amp;gt; queridísimo Word &amp;lt;/IRONIA&amp;gt;.&lt;/div&gt;&lt;div&gt;* SAVE_TEXT: Guarda el texto que hemos modificado.&lt;/div&gt;&lt;div&gt;* DELETE_TEXT: Borra el texto.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Las funciones SAVE_TEXT y DELETE_TEXT tienen el parámetro savemode_direct. Si lo marcamos con X guardará los cambios en la base de datos, si no lo marcamos sólo lo guardará en memoria y estarán ahí hasta que salgamos del programa.&lt;/div&gt;&lt;div&gt;Los textos se guardan en las tablas del sistema STXH (cabecera) y STXL (líneas).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para crear un nuevo tipo de objeto de texto, para por ejemplo asignárselo a un nuevo documento Z hay que parametrizar un poquito. Para ello tenemos la transacción SE75:&lt;/div&gt;&lt;div&gt;- Entrar en la transacción y marcar la opción Objetos de texto e IDs, luego le damos al botón de modificar.&lt;/div&gt;&lt;div&gt;- Ahora aparecerá una lista con todos los objetos de texto del sistema. Podemos crear uno nuevo o modificar uno existente. No voy a entrar en detalle con los campos que hay porque a) así os dejo que investiguéis un poco y b) no tengo ni puta idea de para qué sirven, siempre me los copio ;P&lt;/div&gt;&lt;div&gt;- También hay un botón que pone IDs de texto, ahí se crean los diferentes tipos de texto para el objeto que hemos creado. Por ejemplo, para el objeto de cabecera de pedidos de compra puedes tener multitud de textos relacionados, como el texto de cabecera, condiciones de entrega, condiciones de pago, modo de transporte, etc...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No he encontrado la forma de meter la descripción de estos IDs de texto en diferentes idiomas de una forma cómoda, así que siempre he tenido que hacerlo entrando a SAP en el idioma que toque y volviendo a editar las descripciones.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-8289949681382007937?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/8289949681382007937/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=8289949681382007937' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8289949681382007937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8289949681382007937'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/02/gestion-de-textos.html' title='GESTION DE TEXTOS'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-3268236352525176221</id><published>2010-02-10T21:16:00.003+01:00</published><updated>2010-02-10T21:27:51.924+01:00</updated><title type='text'>Saltarse las autorizaciones del usuario</title><content type='html'>Hola,&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Un año y pico después de mi última entrada (Debido a que, como saben los que leen este blog, que son los mismo que lo escriben, estoy incomunicado en un zulo bajo tierra) continuamos con nuestra labor evangelizadora en nombre de SAP (amén). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A veces, los requerimientos funcionales son contradictorios:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- Quiero que cierto programa  que ejecuta el usuario "automágicamente" me cree pedidos, mueva stock entre centros, regularice stock, si se producen errores borre documentos, se conecte con la Nasa,....&lt;/div&gt;&lt;div&gt;- El usuario no debe tener autorización a hacer nada, no sea que se equivoque.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Como resulta que el primer programa se ejecuta con las autorizaciones del usuario, podemos encontrar múltiples e interesantes problemas. Algunas BAPI's tienen la opción de saltarse la verificación de autorizaciones, pero no todas, ni siempre se utiliza BAPI's&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Una manera de solventarlo es crear un destino RFC que apunte al propio sistema y en el destino utilizar un usuario llamémosle RFCADMIN con permisos amplios, a imagen y semejanza del que se suele crear para los jobs, BATCHADMIN.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A partir de aquí, solo queda llamar a la función que nos da los errores de autorización con un call function 'XXXX' destination 'LO QUE TOQUE'.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;QED.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-3268236352525176221?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/3268236352525176221/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=3268236352525176221' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3268236352525176221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3268236352525176221'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/02/saltarse-las-autorizaciones-del-usuario.html' title='Saltarse las autorizaciones del usuario'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-7077720684440984951</id><published>2010-02-05T12:32:00.003+01:00</published><updated>2010-02-05T12:47:17.952+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='query'/><category scheme='http://www.blogger.com/atom/ns#' term='transporte'/><title type='text'>TRANSPORTAR QUERIES</title><content type='html'>Para transportar queries seguir estos pasos:&lt;div&gt;- Entrar en la transacción SQ02 y darle al botón del camión.&lt;/div&gt;&lt;div&gt;- Seleccionar el radio button de "Export" y marcar el checkbox "Sobreescritura permitida".&lt;/div&gt;&lt;div&gt;- En los rangos de abajo introducir los objetos que queremos transportar.&lt;/div&gt;&lt;div&gt;- Hay un checkbox de modo test que nos permite ver si meterá en la orden de transporte todos los objetos que queremos antes de ejecutarlo definitivamente, va bien si quieres transportar muchas cosas de golpe.&lt;/div&gt;&lt;div&gt;- Al ejecutar (F8) nos mostrará los objetos seleccionados y la orden de transporte que ha creado (si no es en modo test).&lt;/div&gt;&lt;div&gt;- Transportar la orden a productivo normalmente, SE10 + STMS.&lt;/div&gt;&lt;div&gt;- Volver a ejecutar la SQ02 en productivo marcando "Import"y en "Set de datos en imports" poner la orden de transporte. Si algunas opciones no aparecen (a mi me ha pasado) ejecutar el report RSAQR3TR en vez de la transacción SQ02.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-7077720684440984951?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/7077720684440984951/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=7077720684440984951' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7077720684440984951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7077720684440984951'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2010/02/transportar-queries.html' title='TRANSPORTAR QUERIES'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4628286006850095731</id><published>2009-11-19T16:29:00.013+01:00</published><updated>2009-11-19T17:08:33.000+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP GUI'/><category scheme='http://www.blogger.com/atom/ns#' term='dynpros'/><category scheme='http://www.blogger.com/atom/ns#' term='ok_code'/><title type='text'>Como dessarrollar tu propio MiniGui *</title><content type='html'>&lt;h1 style="text-align: justify;" class="ha"&gt;&lt;div&gt;  &lt;/div&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;  &lt;/div&gt;&lt;p  style="color: rgb(0, 0, 0); text-align: justify; font-weight: normal;font-family:arial;" class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;a style="" href="http://www.blogger.com/post-create.g?blogID=7512010186908987712#_ftn1" name="_ftnref1" title=""&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify; font-family: arial; color: rgb(0, 0, 0);"&gt;  &lt;/div&gt;&lt;/h1&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Un sistema Minigui, es aquel que usa terminales de mano (RF) para, por ejemplo en el almacén, realizar pickings, movimientos e inventarios… etc…&lt;br /&gt;&lt;br /&gt;La dificultad del mismo, estriba en que hay dos tipos de terminales de mano, los de formato estrecho y ancho.&lt;br /&gt;&lt;br /&gt;Los terminales estrechos tienen una resolución de pantalla de 16X20 caracteres (alto X ancho). Los terminales anchos muestran 8X40 carácteres.&lt;br /&gt;&lt;br /&gt;La manera que tiene SAP de resolver esto es creando una pantalla llamada Dynpro lógica que solo contiene un marco de subscreen y otras dos dynpros de subscreen llamadas físicas oactuales que son las que contienen los campos/botones a usar, una para cada tamaño de terminal. Y SAP, muestra; una u otra según los datos que el usuario tiene asignado en SAP para su terminal y almacén.&lt;br /&gt;&lt;br /&gt;Los puntos a resolver son:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal;font-family:Arial;font-size:100%;"  &gt;Asignar a cada usuario un terminal RF y entrar en SAP los datos de este usuario para su terminal y almacén (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;"&gt;un mismo usuario pod&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;ría tener varios terminales según el almacén en el que trabaje). &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: normal;font-family:Arial;font-size:100%;color:red;"   &gt;NORMALMENTE ESTE PUNTO NO TENDREMOS QUE HACERLO YA QUE SE HACE DESDE CONSULTORÍA!&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Crear el programa.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Crear las dynpros.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Programar la búsqueda de la pantalla por usuario.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;"&gt;Programar las rutinas del programa en sí.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h1 style="text-align: justify;" class="ha"&gt;  &lt;/h1&gt;      &lt;p style="" class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;1-&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;&lt;span style=";font-family:&amp;quot;;" &gt;           &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;"&gt;Vamos a LM00 (o SPRO – IMG Referencia SAP – Logistics Execution – Entrada de datos portátil – Gestión de cola por frecuencia radio – Asignar usuario a colas). Ela tabla de actualización que se nos muestra podemos añadir una entrada con los datos del usuario que nos interese.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;a style="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OP_o8ibxZHo/SwVlNEiOIVI/AAAAAAAAAAM/DdsbHoPlOJ8/s1600/minigui001.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 424px; height: 124px;" src="http://2.bp.blogspot.com/_OP_o8ibxZHo/SwVlNEiOIVI/AAAAAAAAAAM/DdsbHoPlOJ8/s320/minigui001.PNG" alt="" id="BLOGGER_PHOTO_ID_5405838202958127442" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;     &lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Y, le asignamos el tamaño de pantalla del terminal de mano que usará. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; font-weight: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;2-&lt;span style=""&gt;Creamos el programa como un modulpool normal, con sus includes del PBO, el PAI y el FORM.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; font-weight: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;3-&lt;span style=";font-family:&amp;quot;;" &gt;                 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Con dos dynpros. Cada una de estas dynpros será de uno de los dos tamaños (8x40 o 16x20), no importa cual, pero han de ser las dos iguales. Y contendrán solo un marco de subscreen que ocupe toda la pantalla y en “lista de elementos” solo contendrá el ok_code (y claro el nombre del subscreen).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;El nombre de estas dynpros será 8NXX (donde NXX será el nombre que queramos, yo uso 81XX para las dynpros 16x20 y 88XX para las dynpros 8x40). &lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Entonces, crearemos las dynpros “actuales”, que son las que el usuario verá con exactamente los mismos elementos pero con tamaño y distribución diferentes. El nombre de estas dynpros “actuales” será 9NXX (donde NXX será el nombre que queramos, yo uso 91XX para las dynpros 16x20 y 98XX para las dynpros 8x40):&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-weight: normal;font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;a-&lt;span style=";font-family:&amp;quot;;" &gt;                                         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;"&gt;Una de 16x20 que contiene los botones de función arriba de todo, distribuidos en dos líneas, y debajo los campos o lo que se necesite.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;span style="font-size:100%;"&gt;&lt;a style="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OP_o8ibxZHo/SwVlNTN-u7I/AAAAAAAAAAU/s0dHm2nQOWk/s1600/minigui002.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 182px; height: 320px;" src="http://3.bp.blogspot.com/_OP_o8ibxZHo/SwVlNTN-u7I/AAAAAAAAAAU/s0dHm2nQOWk/s320/minigui002.PNG" alt="" id="BLOGGER_PHOTO_ID_5405838206899764146" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-weight: normal;font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;b-&lt;span style=";font-family:&amp;quot;;" &gt;                                         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;"&gt;Otra de 8x40 que contiene los botones de función arriba de todo, distribuidos en una línea, y debajo los campos o lo que se necesite.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OP_o8ibxZHo/SwVlNkOvnoI/AAAAAAAAAAc/3a7iAtvm-LM/s1600/minigui003.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 158px;" src="http://1.bp.blogspot.com/_OP_o8ibxZHo/SwVlNkOvnoI/AAAAAAAAAAc/3a7iAtvm-LM/s320/minigui003.PNG" alt="" id="BLOGGER_PHOTO_ID_5405838211466370690" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt; font-weight: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;c-&lt;span style=";font-family:&amp;quot;;" &gt;                                          &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Fijaros que son absolutamente iguales, solo que distribuidas diferente, &lt;u&gt;los nombres de los campos han de ser exactamente iguales &lt;/u&gt;ya que tendrán la misma funcionalidad.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt; font-weight: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;d-&lt;span style=";font-family:&amp;quot;;" &gt;                                         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Estas subscreens, no han de contener el elemento ok_code, ya que se coge del marco de subscreen al que pertenecen.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt; font-weight: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;e-&lt;span style=";font-family:&amp;quot;;" &gt;                                         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;La nomenclatura 8XXX para las dynpros lógicas y 9XXX para las dynpros actuales es la recomendada por SAP. Yo le añado el 8NXX / 9NXX para clarificar aún más las cosas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; font-weight: normal;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;4-&lt;span style=";font-family:&amp;quot;;" &gt;                 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Volvemos a la se80 para programar la búsqueda de uno u otro tamaño de pantalla según el usuario que ejecute la transacción.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;"&gt;Primero de todo habremos de crearnos estos elementos de datos en nuestro report:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div  align="center" style="font-family:courier new;"&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse; width: 659px; height: 270px;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style="height: 123.55pt;"&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 17cm; height: 123.55pt;" valign="top" width="643"&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;DATA&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;: &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;OF&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; t_lrf_wkqu  &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;OCCURS&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;. &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;INCLUDE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;STRUCTURE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; lrf_wkqu.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;DATA&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;: &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;END&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;OF&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; t_lrf_wkqu.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;DATA&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; :  v_lgnum &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;LIKE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; lqua-lgnum,     &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;"Nº de almacén&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;        ok_code &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;LIKE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; sy-ucomm,&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;"Código de   pulsador/evento&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;v_logicalscreen &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;LIKE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; sy-dynnr,  &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;"dynpro lógica&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;v_actualscreen &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;LIKE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; sy-dynnr,   &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;"dynpro actual&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;               vc_9101(&lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;4&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;) &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;TYPE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;c&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;VALUE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;'9101'&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;,  &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;"dynpro 9101   16x20 0001&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;     vc_9102(&lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;4&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;) &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;TYPE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;c&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;VALUE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;'9102'&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;,  &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;"dynpro 9102   16x20 0002&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;     vc_9801(&lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;4&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;) &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;TYPE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;c&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;VALUE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;'9801'&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;,  &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;"dynpro 9801   8x40 0001&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;     vc_9802(&lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;4&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;) &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;TYPE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;c&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;VALUE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;'9802'&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.  &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;"dynpro 9802 8x40 0002&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Los elementos vc_nnnn contendrán el nombre de la dynpro física. Con lo cual tendremos tantas constantes con nombre de dynpro física como dynpros tengamos X 2.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;"&gt;Lo siguiente lo haremos desde el PBO de nuestras dynpros lógicas.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div  align="center" style="font-family:courier new;"&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 17cm;" valign="top" width="643"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;PROCESS BEFORE &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;OUTPUT&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;.&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;MODULE&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt; status_0100.&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;MODULE&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt; pbo8001.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;  &lt;p class="MsoNormal"  style="margin-left: 18pt; font-weight: normal;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Creamos dicho PBO (recordad, que ha de ser igual para las dos dynpros físicas de la misma dynpro lógica!)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="margin-left: 18pt; font-weight: normal;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;font-family:arial;" &gt;En “Module PBO8001” introduciremos:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div  align="center" style="font-family:courier new;"&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 17cm;" valign="top" width="643"&gt;   &lt;p class="MsoNormal"&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;MODULE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; pbo8001 &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;OUTPUT&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;v_logicalscreen = sy-dynnr.&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;PERFORM&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt; chequeo_autoridad. &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;"llamamos a ver si el   usuario tiene autorización para usar esta trans.&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;PERFORM&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; datos_de_usuario &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;USING&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; v_logicalscreen&lt;br /&gt;&lt;span style=""&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;CHANGING&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; v_actualscreen.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;ENDMODULE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;span style=""&gt;                 &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;" PBO8001&lt;span style=""&gt;    &lt;/span&gt;OUTPUT&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Lo que llama a un form donde chequearemos si el usuario tiene autorización para visualizar nuestra transacción.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span class="l1s311"  style="font-size:100%;"&gt;&lt;span style="font-style: normal;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span class="l1s311"  style="font-size:100%;"&gt;&lt;span style="font-style: normal;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;"&gt;En CHEQUEO_AUTORIDAD introducimos: &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div  align="center" style="font-family:courier new;"&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 17cm;" valign="top" width="643"&gt;   &lt;p class="MsoNormal"&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;FORM&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; chequeo_autoridad.&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;CALL&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;FUNCTION&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;'AUTHORITY_CHECK_TCODE'&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;EXPORTING&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;tcode&lt;span style=""&gt;  &lt;/span&gt;= sy-tcode&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;EXCEPTIONS&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;ok&lt;span style=""&gt;     &lt;/span&gt;= &lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;not_ok = &lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;OTHERS&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; = &lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;3&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;IF&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; sy-subrc &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;NE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;MESSAGE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; s172(&lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;00&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;) &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;WITH&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; sy-tcode.&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;ENDIF&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;ENDFORM&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;.&lt;span style=""&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;" chequeo_autoridad &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;"&gt;Y en&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;span style="font-weight: normal;"&gt;DATOS_DE_USUARIO pondremos:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div  align="center" style="font-family:courier new;"&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 17cm;" valign="top" width="643"&gt;   &lt;p class="MsoNormal"&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;FORM&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; datos_de_usuario &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;USING&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; p_v_logicalscreen&lt;br /&gt;&lt;span style=""&gt;                   &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;CHANGING&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; p_v_actualscreen.&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;DATA&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;:&lt;span style=""&gt;     &lt;/span&gt;lv_mensaje(&lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;50&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;).&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;CALL&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;FUNCTION&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;'L_USER_DATA_GET'&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;EXPORTING&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;i_uname&lt;span style=""&gt;        &lt;/span&gt;= sy-uname&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;TABLES&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;t_xuser&lt;span style=""&gt;        &lt;/span&gt;= t_lrf_wkqu&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;EXCEPTIONS&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;no_entry_found = &lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;OTHERS&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;&lt;span style=""&gt;         &lt;/span&gt;= &lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;IF&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; sy-subrc &lt;&gt; &lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;MESSAGE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; sy-msgid &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;TYPE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; sy-msgty &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;NUMBER&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; sy-msgno&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;WITH&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; sy-msgv1 sy-msgv2 sy-msgv3   sy-msgv4.&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;ELSE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;LOOP&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;AT&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; t_lrf_wkqu.&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;v_lgnum = t_lrf_wkqu-lgnum.&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;IF&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt; p_v_logicalscreen = &lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;8101&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;. &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;"si   estamos en la primera dynpro&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;&lt;br /&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;IF&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt; t_lrf_wkqu-devty = &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;'8X40'&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;. &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;"tamaño   grande de pantalla del usuario&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;&lt;br /&gt;&lt;span style=""&gt;          &lt;/span&gt;p_v_actualscreen = vc_9801.&lt;br /&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;ELSEIF&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt; t_lrf_wkqu-devty = &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;'16X20'&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;. &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;"tamaño   estrecho de&lt;span style=""&gt;  &lt;/span&gt;pantalla del usuario&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;&lt;br /&gt;&lt;span style=""&gt;          &lt;/span&gt;p_v_actualscreen = vc_9101.&lt;br /&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;ELSE&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;.&lt;br /&gt;&lt;span style=""&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;MESSAGE&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt; e001(zm001). &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;"No se ha podido determinar   el tamaño de terminal RF&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;&lt;br /&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;ENDIF&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;ELSEIF&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt; p_v_logicalscreen = &lt;/span&gt;&lt;span class="l1s321"  style="font-size:85%;"&gt;8102&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;. &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;"si   estamos en la primera dynpro&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;&lt;br /&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;IF&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt; t_lrf_wkqu-devty = &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;'8X40'&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;.&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;"tamaño grande de&lt;span style=""&gt;  &lt;/span&gt;pantalla del usuario&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;&lt;br /&gt;&lt;span style=""&gt;          &lt;/span&gt;p_v_actualscreen = vc_9802.&lt;br /&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;ELSEIF&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt; t_lrf_wkqu-devty = &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;'16X20'&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;. &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;"tamaño   estrecho de pantalla del usuario&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;&lt;br /&gt;&lt;span style=""&gt;          &lt;/span&gt;p_v_actualscreen = vc_9102.&lt;br /&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;ELSE&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;.&lt;br /&gt;&lt;span style=""&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;MESSAGE&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt; e001(zm001). &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;"No se ha podido determinar   el tamaño de terminal RF&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;&lt;br /&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;ENDIF&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;.&lt;br /&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;ENDIF&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;.&lt;br /&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;ENDLOOP&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;.&lt;br /&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;ENDIF&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;ENDFORM&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  &gt;.&lt;span style=""&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;" datos_de_usuario&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span class="l1s311"  style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;"&gt;Con lo que habremos obtenido o un mensaje de error o en v_actualscreen hemos guardado el nº de la dynpro física que hemos de usar en el call screen del PBO dejándolo tal y que así:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="" align="center"&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 17cm;" valign="top" width="643"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   &gt;PROCESS BEFORE &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;OUTPUT&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;MODULE&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   &gt; status_0100.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;MODULE&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   &gt; pbo8001.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;CALL&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   &gt; SUBSCREEN marco_subs_8001 INCLUDING &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;'ZMIREPORT_0001'&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   &gt; v_ac&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:100%;color:black;"   lang="EN-GB" &gt;&lt;span style="font-size:85%;"&gt;tualscreen.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s311"  style="font-size:100%;"&gt;*&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Con lo que conseguimos llamar a la dynpro lógica y en su subscreen llamaremos a la dynpro física que necesitamos según se ha determinado en datos_de_usuario.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;"&gt;Otra consideración más a tener en cuenta para las dynpros lógicas es que en el pai hemos de poner (como en toda buena subscreen vaya!):&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div align="center"&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 17cm;" valign="top" width="643"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   lang="EN-GB" &gt;PROCESS AFTER &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;" class="l1s521"  &gt;&lt;span lang="EN-GB"&gt;INPUT&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;" class="l1s521"  &gt;&lt;span lang="EN-GB"&gt;CALL&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   lang="EN-GB" &gt; SUBSCREEN marco_ss8001.&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  lang="EN-GB" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  lang="EN-GB" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Para recoger los datos que recibamos del subscreen y además no hemos de ponerle el user_command ya que lo recogeremos de las dynpros físicas que si que lo incluirán.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; font-weight: normal;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Y como conclusión a lo referente a la creación de dynpros es lo siguiente:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;"&gt;Para cada dynpro&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;  &lt;/span&gt;&lt;span style="font-weight: normal;"&gt;lógica crearemos un solo user_command que llamaremos desde las dynpros físicas:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div align="center"&gt;  &lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 17cm;" valign="top" width="643"&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   lang="EN-GB" &gt;PROCESS BEFORE &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;OUTPUT&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;module&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   lang="EN-GB" &gt; refresh_data.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;*&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   lang="EN-GB" &gt;&lt;br /&gt;PROCESS AFTER &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;INPUT&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;MODULE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-family:&amp;quot;;font-size:85%;color:black;"   lang="EN-GB" &gt; user_command_screen1.&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  lang="EN-GB" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  lang="EN-GB" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: normal;"&gt;Y es en este user_command_screen_n donde introduciremos el código usual en un user_command:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="" align="center"&gt;&lt;div style="text-align: left;"&gt;  &lt;/div&gt;&lt;table class="MsoTableGrid" style="border: medium none ; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"&gt;  &lt;tbody&gt;&lt;tr style=""&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0cm 5.4pt; width: 17cm; text-align: left;" valign="top" width="643"&gt;&lt;div style="text-align: center;"&gt;   &lt;/div&gt;&lt;p  style="text-align: left;font-family:courier new;" class="MsoNormal"&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;MODULE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; user_command_screen1 &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;INPUT&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;ok_code = sy-ucomm.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;CASE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; ok_code.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;WHEN&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;'BACK'&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;LEAVE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;PROGRAM&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;WHEN&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;'EXIT'&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;LEAVE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;PROGRAM&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;WHEN&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;'CANC'&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;LEAVE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;PROGRAM&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;WHEN&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;'CLR'&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;PERFORM&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; clear_all_data.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;WHEN&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;'NEXT'&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;IF&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; t_lqua[] &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;IS&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;NOT&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;INITIAL&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;CLEAR&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; sscc_actual.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;CALL&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;SCREEN&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s331"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;'8002'&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;ENDIF&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;WHEN&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; &lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;OTHERS&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;PERFORM&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt; check_readed_ssccc.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;ENDCASE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span class="l1s521"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;ENDMODULE&lt;/span&gt;&lt;/span&gt;&lt;span style="background: white none repeat scroll 0% 0%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;font-size:85%;color:black;"  lang="EN-GB" &gt;.                 &lt;/span&gt;&lt;span class="l1s311"  style="font-size:85%;"&gt;&lt;span lang="EN-GB"&gt;" USER_COMMAND_SCREEN1  INPUT&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"  style="font-size:100%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;  &lt;/div&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  lang="EN-GB" &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;5- Y solo faltará la programación del programa en sí, y el debugar, y el testear, y el volver a picar código mal especificado desde consultoría y desde el analista, y volver a debugar, y realizar los cambios que al user key se le olvidó de decirnos y volver a debugar e introducir los cambios que al jefe de almacén (y a sus secuaces) se les han ocurrido y volver a debugar y… … …&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;[1] &lt;/span&gt;&lt;span style="font-family: arial;"&gt;Un Minigui es un sistema SAP con terminales de mano(RF) . Como estos tienen un status-gui mini pues ya tenemos un minigui!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;A Raíz de esta chorrada, en una empresa en la que trabajamos algunos de los saperosonline donde hablábamos muchas veces del minigui; para un proyecto en concreto alguien dijo “-aquí se tiene que montar un minigui” y un gerente que no sabía lo que era, en vez de preguntar, se puso a buscar información por Internet, por el SDN, en todos sitios, y hasta acabó llamando a SAP España, donde conocía a alguien y le preguntó por el Minigui! Como no obtuvo respuesta, al final preguntó y… las risas que nos echamos!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style=""&gt;&lt;div style="" id="ftn1"&gt;&lt;p class="MsoFootnoteText"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4628286006850095731?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4628286006850095731/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4628286006850095731' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4628286006850095731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4628286006850095731'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2009/11/como-dessarrollar-tu-propio-minigui.html' title='Como dessarrollar tu propio MiniGui *'/><author><name>Dump Boy</name><uri>http://www.blogger.com/profile/16374237374666614377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='9' src='http://1.bp.blogspot.com/-dMrtpfyEctc/TikyaLRxpSI/AAAAAAAAAA8/iVZfslLBX8s/s220/dumpboy.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_OP_o8ibxZHo/SwVlNEiOIVI/AAAAAAAAAAM/DdsbHoPlOJ8/s72-c/minigui001.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5947245399100350632</id><published>2009-10-30T12:25:00.002+01:00</published><updated>2009-10-30T12:30:20.663+01:00</updated><title type='text'>CREAR ESTRUCTURAS DINAMICAMENTE</title><content type='html'>&lt;div style="text-align: justify;"&gt;En ocasiones &lt;s&gt;veo muertos&lt;/s&gt; queremos hacer una estructura en el código pero no sabemos los campos que van a tener, esto va bien, por ejemplo, para hacer un ALV con columnas dinámicas, es decir que pudiera haber 1 o más columnas dependiendo del tipo de ejecución o varias historias indeterminadas. En cualquier caso con este código se podrá crear una estructura dinámicamente con los campos en tiempo de ejecución:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;  data: l_dyns TYPE REF TO data.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  DATA: l_struc TYPE REF TO cl_rs_struc.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  FIELD-SYMBOLS: &lt;str&gt; TYPE ANY.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;* construyamos la estructura dinamicamente, en este caso centro y articulo&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  CREATE OBJECT l_struc.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;* añadimos los campos que queramos&lt;/div&gt;&lt;div style="text-align: justify;"&gt;    CALL METHOD l_struc-&gt;add_element(&lt;/div&gt;&lt;div style="text-align: justify;"&gt;      EXPORTING&lt;/div&gt;&lt;div style="text-align: justify;"&gt;        i_id = 'LS_EST'&lt;/div&gt;&lt;div style="text-align: justify;"&gt;        i_sconame = 'WERKS'&lt;/div&gt;&lt;div style="text-align: justify;"&gt;        i_type = 'WERKS_D'&lt;/div&gt;&lt;div style="text-align: justify;"&gt;    ).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;    CALL METHOD l_struc-&gt;add_element(&lt;/div&gt;&lt;div style="text-align: justify;"&gt;      EXPORTING&lt;/div&gt;&lt;div style="text-align: justify;"&gt;        i_id = 'LS_EST'&lt;/div&gt;&lt;div style="text-align: justify;"&gt;        i_sconame = 'MATNR'&lt;/div&gt;&lt;div style="text-align: justify;"&gt;        i_type = 'MATNR'&lt;/div&gt;&lt;div style="text-align: justify;"&gt;    ).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;* ahora la creamos&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  CALL METHOD l_struc-&gt;create(&lt;/div&gt;&lt;div style="text-align: justify;"&gt;    EXPORTING&lt;/div&gt;&lt;div style="text-align: justify;"&gt;      i_id = 'LS_EST'&lt;/div&gt;&lt;div style="text-align: justify;"&gt;      i_dynamic = 'X'&lt;/div&gt;&lt;div style="text-align: justify;"&gt;    RECEIVING&lt;/div&gt;&lt;div style="text-align: justify;"&gt;      r_r_data = l_dyns&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  ).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;* y aqui tenemos el resultado&lt;/div&gt;&lt;div style="text-align: justify;"&gt;  ASSIGN l_dyns-&gt;* TO &lt;str&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5947245399100350632?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5947245399100350632/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5947245399100350632' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5947245399100350632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5947245399100350632'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2009/10/crear-estructuras-dinamicamente.html' title='CREAR ESTRUCTURAS DINAMICAMENTE'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-7553117176897433032</id><published>2009-10-22T11:52:00.002+02:00</published><updated>2009-10-22T12:06:13.586+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><category scheme='http://www.blogger.com/atom/ns#' term='redondeo'/><title type='text'>REDONDEO</title><content type='html'>&lt;div&gt;Hola a todos, después de unos meses de estado vegetativo del blog vamos a ver si resucitamos un poquito. &lt;/div&gt;Para empezar suavemente hoy toca un tema sencillito: el redondeo de decimales con ABAP.&lt;div&gt;En ABAP sólo tenemos funciones básicas de redondeo hacia arriba o hacia abajo:&lt;/div&gt;&lt;div&gt;CEIL(x): Redondea X hacia arriba.&lt;/div&gt;&lt;div&gt;FLOOR(x): Redondea X hacia abajo.&lt;/div&gt;&lt;div&gt;Para hacer el redondeo común (el comercial) podemos usar la función ROUND. También nos sirve para redondear con diferente número de decimales.&lt;/div&gt;&lt;div&gt;Parámetros:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;DECIMALS:  Número de decimales&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;INPUT:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Número a redondear&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;SIGN:&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Tipo de redondeo (+ hacia arriba, - hacia abajo, X redondeo estándar)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PD: Saludos de parte del resto del equipo, que andan los pobres liados en un proyecto sin acceso al blog.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-7553117176897433032?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/7553117176897433032/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=7553117176897433032' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7553117176897433032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7553117176897433032'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2009/10/redondeo.html' title='REDONDEO'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-6106669143431904371</id><published>2009-02-26T11:00:00.009+01:00</published><updated>2009-02-26T11:27:25.476+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Configurables'/><category scheme='http://www.blogger.com/atom/ns#' term='BAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP SD'/><title type='text'>CREAR UN PEDIDO DE VENTAS CONFIGURABLE VIA BAPI</title><content type='html'>&lt;div style="text-align: justify;"&gt;Para crear un pedido de ventas con artículos configurable (configurable sales order) mediante via BAPI hay que rellenar unas tablas que vienen definidas en la &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;BAPI_SALESORDER_CREATEFROMDAT2&lt;/span&gt; y son aquellas que comienzan de la siguiente manera: ORDER_CFGS_*.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;El como rellenar estas tablas hay un ejemplo en la &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;nota OSS 549563&lt;/span&gt; pero de manera más sencilla y para un ejemplo muy sencillo escribo este post. Debido al desconocimiento del tema y la poca información compartida del tema para temas complejos remitios a dicha nota.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;El ejemplo que pongo es muy sencillo, se trata de un artículo configurable y en el que pondremos 3 caracteristicas: (sólo pongo el código referente a las tabla de configurables)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: left;"&gt;*   referenciar posición configurable&lt;br /&gt;&lt;/div&gt; &lt;span&gt;&lt;div style="text-align: left;"&gt;     lt_cfgs_ref-posex = &lt;span class="L1S33"&gt;'000010'&lt;/span&gt;. &lt;- pos.  pedido     &lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span&gt;     lt_cfgs_ref-config_id = &lt;span class="L1S33"&gt;'000001'&lt;/span&gt;. &lt;- nº de config. &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span&gt;     lt_cfgs_ref-root_id = &lt;span class="L1S33"&gt;'00000001'&lt;/span&gt;. &lt;- id en 2º  nivel     &lt;span class="L1S52"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span&gt;&lt;span class="L1S52"&gt;    APPEND&lt;/span&gt; lt_cfgs_ref.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: left;"&gt;*   indicar las caracteristicas&lt;br /&gt;&lt;/div&gt; &lt;span&gt;&lt;div style="text-align: left;"&gt;    lt_cfgs_value-config_id = &lt;span class="L1S33"&gt;'000001'&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    lt_cfgs_value-inst_id = &lt;span class="L1S33"&gt;'00000001'&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    lt_cfgs_value-charc = &lt;span class="L1S33"&gt;'YCARAC1'&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    lt_cfgs_value-&lt;span class="L1S52"&gt;value&lt;/span&gt; = 'xxx'.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    &lt;span class="L1S52"&gt;APPEND&lt;/span&gt; lt_cfgs_value. &lt;span class="L1S52"&gt;CLEAR&lt;/span&gt; lt_cfgs_value.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    lt_cfgs_value-config_id = &lt;span class="L1S33"&gt;'000001'&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    lt_cfgs_value-inst_id = &lt;span class="L1S33"&gt;'00000001'&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    lt_cfgs_value-charc = &lt;span class="L1S33"&gt;'YCARAC2'&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    lt_cfgs_value-&lt;span class="L1S52"&gt;value&lt;/span&gt; = 'xxx'.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    &lt;span class="L1S52"&gt;APPEND&lt;/span&gt; lt_cfgs_value. &lt;span class="L1S52"&gt;CLEAR&lt;/span&gt; lt_cfgs_value.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    lt_cfgs_value-config_id = &lt;span class="L1S33"&gt;'000001'&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    lt_cfgs_value-inst_id = &lt;span class="L1S33"&gt;'00000001'&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    lt_cfgs_value-charc = &lt;span class="L1S33"&gt;'YCARAC3'&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    lt_cfgs_value-&lt;span class="L1S52"&gt;value&lt;/span&gt; = 'xxx'.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;    &lt;span class="L1S52"&gt;APPEND&lt;/span&gt; lt_cfgs_value. &lt;span class="L1S52"&gt;CLEAR&lt;/span&gt; lt_cfgs_value.&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: left;"&gt;  &lt;span class="L1S52"&gt;CALL&lt;/span&gt; &lt;span class="L1S52"&gt;FUNCTION&lt;/span&gt; &lt;span class="L1S33"&gt;'BAPI_SALESORDER_CREATEFROMDAT2'&lt;/span&gt;&lt;br /&gt;&lt;/div&gt; &lt;span&gt;&lt;div style="text-align: left;"&gt;      [.....]&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;      order_cfgs_ref      = lt_cfgs_ref&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;      order_cfgs_value    = lt_cfgs_value.&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Notad que para una misma configuración se pueden crear varios perfiles con el identificador del inst_id (como un identificador de segundo nivel).&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-6106669143431904371?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/6106669143431904371/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=6106669143431904371' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6106669143431904371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6106669143431904371'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2009/02/crear-un-pedido-de-ventas-configurable.html' title='CREAR UN PEDIDO DE VENTAS CONFIGURABLE VIA BAPI'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2604005354664084857</id><published>2009-02-10T09:57:00.003+01:00</published><updated>2009-02-10T10:00:45.414+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP FI'/><title type='text'>CARGA DE ASIENTOS CONTABLES ESTÁNDAR</title><content type='html'>&lt;div style="text-align: justify;"&gt;Existe un programa estándar de carga de asientos contables hecho por la gentecilla de Waldorf que carga en el sistema asientos contables. Dado a que no es fácil del todo hacer este tipo de programas puede que sirva de ayuda o se adapte a vuestras necesidades.&lt;br /&gt;&lt;br /&gt;El programa en cuestión es: &lt;span style="font-weight: bold; color: rgb(255, 0, 0); font-style: italic;font-family:arial;" &gt;RFBIBL00&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Suerte.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2604005354664084857?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2604005354664084857/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2604005354664084857' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2604005354664084857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2604005354664084857'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2009/02/carga-de-asientos-contables-estandar.html' title='CARGA DE ASIENTOS CONTABLES ESTÁNDAR'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4101717845355759220</id><published>2009-02-02T15:03:00.007+01:00</published><updated>2009-02-02T15:14:38.788+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALV'/><category scheme='http://www.blogger.com/atom/ns#' term='Webdynpro'/><title type='text'>CREAR CHECKBOX EN UN ALV WEBDYNPRO</title><content type='html'>&lt;div  style="text-align: justify; font-family: verdana;font-family:arial;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); line-height: 19px;font-size:13;" &gt;&lt;div class="post-body"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;De forma muy parecida a &lt;/span&gt;&lt;span style="font-size:100%;"&gt;cuando hacemos un campo de un ALV editable vamos a hacer que un campo &lt;/span&gt;&lt;span style="font-size:100%;"&gt;de un ALV Webdynpro sea un checkbox. De hecho como tiene bastante sentido que sea también editable pongo el código fuente de las dos carácteristicas.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); line-height: 19px;font-family:Verdana;font-size:13;"  &gt;&lt;div style="font-family: verdana;font-family:arial;"  class="post-body"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);font-size:100%;" &gt;&lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;METHOD&lt;/span&gt; wddoinit .&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);font-size:100%;" &gt;&lt;span class="L1S31" style="background-color: rgb(255, 255, 255); font-style: italic; color: rgb(128, 128, 128);"&gt;* recuperar las caracteristicas del ALV&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);font-size:100%;" &gt;&lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;DATA&lt;/span&gt;: l_ref_interfacecontroller &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;REF&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TO &lt;/span&gt;iwci_salv_wd_table .&lt;br /&gt;&lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;DATA&lt;/span&gt;: l_value &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;REF&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TO&lt;/span&gt; cl_salv_wd_config_table.&lt;br /&gt;&lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;DATA&lt;/span&gt;: l_ref_cmp_usage &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;REF&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TO&lt;/span&gt;if_wd_component_usage.&lt;br /&gt;&lt;br /&gt;l_ref_cmp_usage = wd_this-&gt;wd_cpuse_alv( ).&lt;br /&gt;&lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;IF&lt;/span&gt; l_ref_cmp_usage-&gt;has_active_component( ) &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;IS&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;INITIAL&lt;/span&gt;.&lt;br /&gt;l_ref_cmp_usage-&gt;create_component( ).&lt;br /&gt;&lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;ENDIF&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;l_ref_interfacecontroller = wd_this-&gt;wd_cpifc_alv( ).&lt;br /&gt;l_value = l_ref_interfacecontroller-&gt;get_model( ).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);font-size:100%;" &gt;&lt;span class="L1S31" style="background-color: rgb(255, 255, 255); font-style: italic; color: rgb(128, 128, 128);"&gt;* hacer editable la columna status&lt;/span&gt;&lt;br /&gt;&lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;DATA&lt;/span&gt;: lr_column_settings &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;REF&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TO&lt;/span&gt;if_salv_wd_column_settings,&lt;br /&gt;l_column &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;REF&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TO&lt;/span&gt; cl_salv_wd_column,&lt;br /&gt;lr_table_settings &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;REF&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TO&lt;/span&gt;if_salv_wd_table_settings,.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;font-family:arial;"  class="post-body"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;font-family:arial;"  class="post-body"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);font-size:100%;" &gt;&lt;span class="Apple-style-span" style="color: rgb(128, 128, 128); font-style: italic;"&gt;* clases de edición de la columna&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;font-family:arial;"  class="post-body"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);font-size:100%;" &gt;&lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;DATA&lt;/span&gt;: lr_input_field &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;REF&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TO&lt;/span&gt; cl_salv_wd_uie_input_field,&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;font-family:arial;"  class="post-body"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);font-size:100%;" &gt;      lr_check &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;REF&lt;/span&gt; &lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;TO&lt;/span&gt; cl_salv_wd_uie_checkbox.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;font-family:arial;"  class="post-body"&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);font-size:100%;" &gt;&lt;br /&gt;&lt;span class="L1S31" style="background-color: rgb(255, 255, 255); font-style: italic; color: rgb(128, 128, 128);"&gt;* asignaciones&lt;/span&gt;&lt;br /&gt;lr_column_settings ?= l_value.&lt;br /&gt;lr_table_settings ?= l_value.&lt;br /&gt;&lt;br /&gt;&lt;span class="L1S31" style="background-color: rgb(255, 255, 255); font-style: italic; color: rgb(128, 128, 128);"&gt;* obtener la columna que queremos&lt;/span&gt;&lt;br /&gt;l_column = lr_column_settings-&gt;get_column( &lt;span class="L1S33" style="background-color: rgb(255, 255, 255); color: rgb(77, 166, 25);"&gt;'STATUS'&lt;/span&gt; ).&lt;br /&gt;&lt;br /&gt;&lt;span class="L1S31" style="background-color: rgb(255, 255, 255); font-style: italic; color: rgb(128, 128, 128);"&gt;* hacer la columna EDITABLE&lt;/span&gt;&lt;br /&gt;&lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;CREATE&lt;/span&gt; OBJECT lr_input_field&lt;br /&gt;&lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;EXPORTING&lt;/span&gt;&lt;br /&gt;value_fieldname = &lt;span class="L1S33" style="background-color: rgb(255, 255, 255); color: rgb(77, 166, 25);"&gt;'STATUS'&lt;/span&gt;.&lt;br /&gt;l_column-&gt;set_cell_editor( lr_input_field ).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;font-family:arial;"  class="post-body"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);font-size:100%;" &gt;&lt;span class="L1S31" style="background-color: rgb(255, 255, 255); font-style: italic; color: rgb(128, 128, 128);"&gt;* hacer la columna CHECKBOX&lt;/span&gt;&lt;br /&gt;&lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;CREATE&lt;/span&gt; OBJECT lr_check&lt;br /&gt;&lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;EXPORTING&lt;/span&gt;&lt;br /&gt;checked_fieldname = &lt;span class="L1S33" style="background-color: rgb(255, 255, 255); color: rgb(77, 166, 25);"&gt;'STATUS'&lt;/span&gt;.&lt;br /&gt;l_column-&gt;set_cell_editor( lr_check ).&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: verdana;font-family:arial;"  class="post-body"&gt;&lt;span style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);font-size:100%;" &gt;&lt;br /&gt;&lt;span class="L1S31" style="background-color: rgb(255, 255, 255); font-style: italic; color: rgb(128, 128, 128);"&gt;* finalmente hacerlo del modo escritura &lt;/span&gt;&lt;br /&gt;lr_table_settings-&gt;set_read_only( abap_false ).&lt;br /&gt;&lt;br /&gt;&lt;span class="L1S52" style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 255);"&gt;ENDMETHOD&lt;/span&gt;.&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="clear: both;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0);font-family:'Courier New';" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="post-footer" style="margin: 0px; padding: 0px 0px 0px 14px; font-size: 88%; color: rgb(153, 153, 153); background-image: url(http://www.blogblog.com/tictac_blue/tictac_grey.gif); background-repeat: no-repeat; background-position: 0px 8px;"&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4101717845355759220?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4101717845355759220/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4101717845355759220' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4101717845355759220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4101717845355759220'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2009/02/crear-checkbox-en-un-alv-webdynpro.html' title='CREAR CHECKBOX EN UN ALV WEBDYNPRO'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-923488495347252899</id><published>2009-01-27T18:27:00.005+01:00</published><updated>2009-01-27T18:34:47.407+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mensajes'/><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><category scheme='http://www.blogger.com/atom/ns#' term='RFC'/><title type='text'>EVITAR MENSAJES DE ERROR AL LLAMAR A UNA FUNCION</title><content type='html'>A veces podemos encontrarnos con el caso de que tenemos que llamar a una función y al encontrar un fallo ésta en vez de devolvernos una función nos obsequia con un bonito dump o un mensaje de error que no nos ha dejado gestionar a nosotros. Un ejemplo de esto es la función L_TO_CREATE_SINGLE. &lt;div&gt;Para evitar esta situación sólo hay que ejecutar el CALL FUNCTION con el añadido DESTINATION 'NONE', como si fuera una llamada RFC. Así SAP no muestra los mensajes sino que devuelve una excepción y podemos controlar el error con las variables del systema sy-*.&lt;/div&gt;&lt;div&gt;Este truco también nos sirve para ejecutar este tipo de funciones desde una RFC. Para ello simplemente la encapsulamos dentro de otra función Z y dentro hacemos el CALL FUNCTION con DESTINATION 'NONE'.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-923488495347252899?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/923488495347252899/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=923488495347252899' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/923488495347252899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/923488495347252899'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2009/01/evitar-mensajes-de-error-al-llamar-una.html' title='EVITAR MENSAJES DE ERROR AL LLAMAR A UNA FUNCION'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2419285101772591021</id><published>2009-01-12T18:02:00.003+01:00</published><updated>2009-01-12T18:25:15.064+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;signo negativo&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;CLOI_PUT_SIGN_IN_FRONT&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='dynpros'/><category scheme='http://www.blogger.com/atom/ns#' term='izquierda'/><category scheme='http://www.blogger.com/atom/ns#' term='rutinas de conversion'/><title type='text'>SIGNO NEGATIVO A LA IZQUIERDA EN UNA DYNPRO</title><content type='html'>&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Cándidos&lt;/span&gt; como son, los &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;usuarios&lt;/span&gt; a veces &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;hacen&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;preguntas&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;truculentas&lt;/span&gt;. ¿El &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;ejemplo&lt;/span&gt; de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;hoy&lt;/span&gt; es el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;siguiente&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Puede&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;aparecer&lt;/span&gt; el signo - a la &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;izquierda&lt;/span&gt; del número? La primera pregunta es, para &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;qué&lt;/span&gt;? &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;pero&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;bueno&lt;/span&gt;, una &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;vez&lt;/span&gt; superada la &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;incredulidad&lt;/span&gt; si se &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;quiere&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;tener&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;contento&lt;/span&gt; al &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;usuario&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;hay&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;varias&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;maneras&lt;/span&gt; de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;hacerlo&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;- La &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;más&lt;/span&gt; fácil es &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;utilizar&lt;/span&gt; un campo de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;texto&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;pero&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;esto&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;supone&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;código&lt;/span&gt; de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;conversión&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;numérico&lt;/span&gt; a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;caracter&lt;/span&gt; y viceversa.&lt;br /&gt;&lt;br /&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;Más&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;elegante&lt;/span&gt; es &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;utilizar&lt;/span&gt; una &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;exit&lt;/span&gt; de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;conversión&lt;/span&gt; Z (para crear una &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;podéis&lt;/span&gt; consultar &lt;a href="http://saperosonline.blogspot.com/2008/05/crear-tus-propias-rutinas-de-conversin.html"&gt;aquí&lt;/a&gt;) y &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;dentro&lt;/span&gt; de ella &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;poner&lt;/span&gt; el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;siguiente&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;código&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;CONVERSION&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;EXIT&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;ZXXXX&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_47"&gt;OUTPUT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } &lt;/style&gt; &lt;span&gt;&lt;span class="L1S52"&gt;DATA&lt;/span&gt;: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;CHAR&lt;/span&gt;(&lt;span class="L1S32"&gt;15)&lt;/span&gt; &lt;span class="L1S52"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;TYPE&lt;/span&gt;&lt;/span&gt; &lt;span class="L1S52"&gt;c&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_50"&gt;MOVE&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_51"&gt;INPUT&lt;/span&gt; TO &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_52"&gt;CHAR&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="L1S52"&gt;&lt;/span&gt;&lt;span class="L1S52"&gt;CALL&lt;/span&gt; &lt;span class="L1S52"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;FUNCTION&lt;/span&gt;&lt;/span&gt; &lt;span class="L1S33"&gt;'&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_54"&gt;CLOI&lt;/span&gt;_PUT_SIGN_IN_FRONT'&lt;/span&gt;&lt;br /&gt; &lt;span class="L1S52"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;CHANGING&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="L1S52"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;value&lt;/span&gt;&lt;/span&gt; = &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_57"&gt;CHAR&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="L1S52"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_58"&gt;WRITE&lt;/span&gt;&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_59"&gt;CHAR&lt;/span&gt; &lt;span class="L1S52"&gt;TO&lt;/span&gt; &lt;span class="L1S52"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_60"&gt;output&lt;/span&gt;&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_61"&gt;RIGHT-JUSTIFIED&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_62"&gt;CONVERSION&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_63"&gt;EXIT&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_64"&gt;ZXXXX&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_65"&gt;INPUT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } &lt;/style&gt;&lt;span&gt;&lt;span class="L1S52"&gt;&lt;/span&gt;&lt;span class="L1S52"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_66"&gt;output&lt;/span&gt; = &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_67"&gt;input&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_68"&gt;Agur&lt;/span&gt;(s)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2419285101772591021?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2419285101772591021/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2419285101772591021' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2419285101772591021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2419285101772591021'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2009/01/signo-negativo-la-izquierda-en-una.html' title='SIGNO NEGATIVO A LA IZQUIERDA EN UNA DYNPRO'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4234558594485947602</id><published>2008-12-24T12:58:00.003+01:00</published><updated>2008-12-24T13:04:35.637+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP FI'/><category scheme='http://www.blogger.com/atom/ns#' term='saldo'/><title type='text'>SABER EL SALDO DE UNA CUENTA DE MAYOR</title><content type='html'>&lt;div style="text-align: justify;"&gt;Si lo que estás buscando es cómo narices saber el saldo de una cuenta de mayor en un dia determinado la función &lt;span style="font-weight: bold;"&gt;BAPI_GL_ACC_GETPERIODBALANCES&lt;/span&gt; te ayudará bastante, aunque puede que no te ofrezca toda la ayuda que requieras, asi que te la tendrás que elaborar tu mismo.&lt;br /&gt;&lt;br /&gt;Esta función devuelve para una sociedad, una cuenta y un año todos los saldos de la cuenta en los diferentes periodos, que habitualmente suelen ser correspondientes con el mes. De esta manera si quiere saber que saldo tenía en la cuenta a final del mes de febrero deberás mirar el campo balance del resultado con el periodo correspondiente.&lt;br /&gt;&lt;br /&gt;Pero es posibles que necesites saber el saldo de la cuenta a mitad de un mes, por ejemplo. En este caso deberás saber el saldo de la cuenta al finalizar el mes anteriory mediante los movimientos de la BSIS deberás sumar o restar el valor al dicho saldo hasta llegar al dia requerido.&lt;br /&gt;&lt;br /&gt;Bones festes a tothom!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4234558594485947602?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4234558594485947602/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4234558594485947602' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4234558594485947602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4234558594485947602'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/12/saber-el-saldo-de-una-cuenta-de-mayor.html' title='SABER EL SALDO DE UNA CUENTA DE MAYOR'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-7028583566343875295</id><published>2008-12-11T16:28:00.005+01:00</published><updated>2008-12-11T16:47:10.429+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='clase'/><category scheme='http://www.blogger.com/atom/ns#' term='util'/><category scheme='http://www.blogger.com/atom/ns#' term='transacción'/><category scheme='http://www.blogger.com/atom/ns#' term='modo'/><title type='text'>ABRIR TRANSACCIÓN EN MODO NUEVO</title><content type='html'>Si queremos abrir una transacción en un nuevo módulo existe el módulo de función TH_CREATE_MODE. También existe la posibilidad de hacer mediante clase &lt;u&gt;&lt;strong&gt;CL_RECA_GUI_SERVICES.&lt;/strong&gt;&lt;/u&gt; La verdad es que no lo he probado pero tiene buena pinta....&lt;br /&gt;&lt;br /&gt;Visto en &lt;a class="sapLnkBld" href="https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/12377" onclick="this.href='https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/12377';" target="_top"&gt;&lt;b&gt;A Christmas Collection of Useful Classes&lt;/b&gt;&lt;/a&gt; donde hay toda una serie de clases más o menos útiles&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-7028583566343875295?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/7028583566343875295/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=7028583566343875295' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7028583566343875295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7028583566343875295'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/12/abrir-transaccin-en-modo-nuevo.html' title='ABRIR TRANSACCIÓN EN MODO NUEVO'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-6144068558230456147</id><published>2008-12-11T09:55:00.006+01:00</published><updated>2008-12-11T10:22:33.093+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='INTRASTAT'/><category scheme='http://www.blogger.com/atom/ns#' term='Foreign trade data (import/export)'/><category scheme='http://www.blogger.com/atom/ns#' term='EIPO'/><category scheme='http://www.blogger.com/atom/ns#' term='importación'/><category scheme='http://www.blogger.com/atom/ns#' term='EIPO-VERLD'/><title type='text'>DATOS DE IMPORTACIÓN</title><content type='html'>Si alguna vez has intentado modificar los datos de importación con la función BAPI_PO_CHANGE verás que no es posible, la nota 419838 explica porque:&lt;div&gt;&lt;span class="Apple-style-span" style="  "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 0, 153);"&gt;Furthermore, you cannot change import/export data using the BAPI_PO_CHANGE (due to technical reasons).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Ta claro, ¿No?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Pues nada, con la función EXPIMP_POSTING podrás modificar todos los datos de importación sin ningún problema.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Lo mismo se aplica para BAPI_PO_CREATE1.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } &lt;/style&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-6144068558230456147?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/6144068558230456147/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=6144068558230456147' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6144068558230456147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6144068558230456147'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/12/datos-de-importacin.html' title='DATOS DE IMPORTACIÓN'/><author><name>Pep del Viso</name><uri>http://www.blogger.com/profile/16044385404935629153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-1872202924389876742</id><published>2008-12-09T10:27:00.007+01:00</published><updated>2008-12-09T10:36:51.813+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entregas'/><category scheme='http://www.blogger.com/atom/ns#' term='BAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='Facturas'/><title type='text'>CREAR UNA FACTURA DE UNA ENTREGA</title><content type='html'>&lt;div style="text-align: justify;"&gt;Si estás intentando crear una factura desde una entrega con la función &lt;span&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;BAPI_BILLINGDOC_CREATEMULTIPLE&lt;/span&gt;&lt;/span&gt; no te compliques demasiado la vida, solo con rellenar los dos campos que pongo a continuación es suficiente:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;billlingdatain-ref_doc =  [entrega]&lt;entrega&gt;.&lt;/entrega&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;billlingdatain-ref_doc_ca = 'J'.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;No le des más vueltas, no tiene sentido.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-1872202924389876742?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/1872202924389876742/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=1872202924389876742' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1872202924389876742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1872202924389876742'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/12/crear-una-factura-de-una-entrega.html' title='CREAR UNA FACTURA DE UNA ENTREGA'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4352449226066582440</id><published>2008-11-20T18:27:00.004+01:00</published><updated>2008-11-26T10:38:27.824+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DEBUGGING'/><category scheme='http://www.blogger.com/atom/ns#' term='ABAP'/><title type='text'>BREAK POINT POR CÓDIGO A NIVEL DE USUARIO</title><content type='html'>&lt;div style="text-align: justify;"&gt;Hola a todos nuevamente.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Como todos sabemos el sistema de break points de Sap es como mínimo bastante chapucero , ya que si marcamos un break point de sesión, cuando escribimos o borramos código por encima se nos mueve ya que va a nivel de línea de programa. Esto a menudo lo solventamos poniendo la instrucción BREAK-POINT soble el código del programa, pero esto puede ser peligrosos si nos olvidamos esa instrucción en el programa y una vez transportados le pueda saltar el break-point a un incauto usuario y que se quede medio lelo. para evitar esto podemos unsar la instrucción BREAK seguida de nuestro nombre de usuario, por ejemplo "BREAK nombreusuario", y el programa solo se detendrá si el usuario es el que hemos indicado. Es una tontería pero para el que no lo sepa es muy útil.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;¡Un saludo!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4352449226066582440?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4352449226066582440/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4352449226066582440' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4352449226066582440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4352449226066582440'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/11/break-point-por-cdigo-nivel-de-usuario.html' title='BREAK POINT POR CÓDIGO A NIVEL DE USUARIO'/><author><name>Sir Artur Shogun</name><uri>http://www.blogger.com/profile/13568959206056178587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp1.blogger.com/_RnNmoD1OiLE/R8RPmW0muNI/AAAAAAAAAmM/17tNlYralFE/S220/Artur+Vikingo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-280718073091643148</id><published>2008-10-30T10:34:00.005+01:00</published><updated>2008-10-30T10:40:10.536+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BAPI'/><title type='text'>LA BAPI BAPI_SALESORDER_CHANGE NO PONE LA CANTIDAD</title><content type='html'>&lt;div style="text-align: justify;"&gt;Es curioso el comportamiento de la función  &lt;span&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span" style="color: rgb(204, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;BAPI_SALESORDER_CHANG&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(204, 0, 0);"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;E&lt;/span&gt;&lt;/span&gt; que tiene como misión hacer cambios sobre un pedido de venta cualquiera.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Pero puede ocurrirte que digas que quieres añadir una nueva linea al pedido y se pase por el forro las cantidades que le hayas indicado. Tranquilo, no desesperes, esto tiene solución y no es el suicidio. Seguramente hayas pasado los parámetros &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;"order_item_in(x)"&lt;/span&gt;&lt;/span&gt; pero no hayas pasado los parámetros &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;"schedule_lines(x)"&lt;/span&gt;&lt;/span&gt;. Este hecho es suficiente motivo para que no se pongan las cantidades indicadas, por lo tanto solo habrá que pasarle a la bapi dichas tablas y problema solucionado.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Que cosas tiene mi SAP.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-280718073091643148?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/280718073091643148/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=280718073091643148' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/280718073091643148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/280718073091643148'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/10/la-bapi-bapisalesorderchange-no-pone-la.html' title='LA BAPI BAPI_SALESORDER_CHANGE NO PONE LA CANTIDAD'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-7195230276750510287</id><published>2008-10-28T17:15:00.002+01:00</published><updated>2008-10-28T17:21:42.069+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='objetos ok_code evento dynpro'/><title type='text'>LANZAR OK_CODE DESDE EVENTO</title><content type='html'>Cuando en un dynpro conviven objetos y campos, al lanzar un evento de uno de esos objetos, por ejemplo doble-click, existe el problema de que, al no ejecutarse el PAI, en la implementación de la clase las variables correspondientes a los campos de pantalla no están informadas.&lt;br /&gt;Una solución es ejecutar un OK_CODE desde el evento y recuperar las variables de forma normal en el PAI. Para ello se utiliza el método &lt;span&gt;&lt;span style="font-weight: bold;"&gt;set_new_ok_code&lt;/span&gt; &lt;/span&gt;objeto&lt;span style="font-weight: bold;"&gt; cl_gui_cfw&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } &lt;/style&gt; &lt;span&gt;    &lt;span class="L1S52"&gt;CALL&lt;/span&gt; &lt;span class="L1S52"&gt;METHOD&lt;/span&gt; cl_gui_cfw=&gt;set_new_ok_code&lt;br /&gt;         &lt;span class="L1S52"&gt;EXPORTING&lt;/span&gt; new_code = &lt;span class="L1S33"&gt;'OK_CODE_A_LANZAR'&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Para que funcione correctamente es necesario declarar la clase:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S52 { color: #0000FF; } &lt;/style&gt; &lt;span&gt;&lt;span class="L1S52"&gt;CLASS&lt;/span&gt; cl_gui_cfw &lt;span class="L1S52"&gt;DEFINITION&lt;/span&gt; &lt;span class="L1S52"&gt;LOAD&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;br /&gt;E incluir el siguiente código al principio del PAI&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style: italic; color: #808080; } .L1S52 { color: #0000FF; } &lt;/style&gt; &lt;span&gt;  &lt;span class="L1S52"&gt;DATA&lt;/span&gt;: return_code &lt;span class="L1S52"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52"&gt;i&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;  &lt;span class="L1S52"&gt;CALL&lt;/span&gt; &lt;span class="L1S52"&gt;METHOD&lt;/span&gt; cl_gui_cfw=&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;dispatch&lt;/span&gt;&lt;br /&gt;    &lt;span class="L1S52"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;IMPORTING&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;return&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;code&lt;/span&gt; = &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;return&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;code&lt;/span&gt;.&lt;br /&gt;  &lt;span class="L1S52"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;IF&lt;/span&gt;&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;return&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;code&lt;/span&gt; &lt;&gt; cl_gui_cfw=&gt;rc_noevent.&lt;br /&gt;    &lt;span class="L1S31"&gt;" a control event occured =&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;exit&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;PAI&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="L1S52"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;CLEAR&lt;/span&gt;&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;ok&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;code&lt;/span&gt;.&lt;br /&gt;    &lt;span class="L1S52"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;EXIT&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;  &lt;span class="L1S52"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;ENDIF&lt;/span&gt;&lt;/span&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-7195230276750510287?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/7195230276750510287/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=7195230276750510287' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7195230276750510287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7195230276750510287'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/10/lanzar-okcode-desde-evento.html' title='LANZAR OK_CODE DESDE EVENTO'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-8914523657458840201</id><published>2008-10-24T11:25:00.004+02:00</published><updated>2008-10-24T11:32:54.089+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fichero'/><category scheme='http://www.blogger.com/atom/ns#' term='tablas'/><title type='text'>CARGAR / DESCARGAR DATOS DE UNA TABLA</title><content type='html'>Esta vez y sin que sirva de precedente voy a publicar un tema que no es original nuestro. Se trata de un programa que permite cargar y descargar datos de cualquier tabla de SAP desde ficheros de texto separados con tabuladores. Para que nadie se queje de que les robamos el material sólo os voy a poner el link:&lt;div&gt;&lt;a href="http://sapabap.iespana.es/sap/APC/ZAPC0042.HTML"&gt;http://sapabap.iespana.es/sap/APC/ZAPC0042.HTML&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El programa es de Andres Picazo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Por cierto, aprovecho para decir que si alguna de la información que encontrais en este blog os parece interesante y quereis publicarlo en vuestro propio blog podeis hacerlo, pero si sois tan amables poned alguna referencia a nuestra web, ¡que nos hace ilusión hombre!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-8914523657458840201?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/8914523657458840201/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=8914523657458840201' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8914523657458840201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8914523657458840201'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/10/cargar-descargar-datos-de-una-tabla.html' title='CARGAR / DESCARGAR DATOS DE UNA TABLA'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-1787059870293124098</id><published>2008-10-23T11:37:00.003+02:00</published><updated>2009-07-28T15:26:00.729+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='F1'/><category scheme='http://www.blogger.com/atom/ns#' term='dynpros'/><category scheme='http://www.blogger.com/atom/ns#' term='ok_code'/><title type='text'>MODIFICAR FUNCIÓN DE LA TECLA F1</title><content type='html'>A veces tareas tremendamente fáciles se vuelven un dolor de cabeza porque simplemente no sabemos donde está la opción adecuada en los menús. Eso me ha pasado a mi al intentar cambiar la funcionalidad de la tecla F1 en una dynpro para entrada de datos con un terminal de radiofrecuencia. Estos cacharros suelen tener pocas teclas y una de ellas es el F1, pero es de poca utilidad si sólo la podemos utilizar con el botón de ayuda de SAP.&lt;br /&gt;Lo primero que vemos al intentar modificar el status de la interfaz de la dynpro es que el botón de ayuda en la barra de iconos estándar (el interrogante dentro de la pelotita amarilla) está desactivado y no nos deja poner nuestro propio código de función. Además la tecla F1 tampoco aparece e la lista inferior de teclas de función disponibles.&lt;br /&gt;Después de romperme mucho los cuernos he encontrado que la solución es realmente fácil. Sólo hay que ir al menú &lt;span style="font-style:italic;"&gt;Utilidades -&gt; Cons.teclas función&lt;/span&gt; y nos aparecerá una pantalla con todas las teclas y sus códigos de función asignados y esta vez sí que, &lt;span class="Apple-style-span" style="font-style: italic;"&gt;et voilà&lt;/span&gt;  aparece el F1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-1787059870293124098?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/1787059870293124098/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=1787059870293124098' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1787059870293124098'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1787059870293124098'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/10/modificar-funcin-de-la-tecla-f1.html' title='MODIFICAR FUNCIÓN DE LA TECLA F1'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-1131701081408487674</id><published>2008-10-13T10:30:00.003+02:00</published><updated>2008-10-13T10:37:14.041+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='job'/><category scheme='http://www.blogger.com/atom/ns#' term='status'/><title type='text'>CONTROL DE EJECUCIÓN DE JOBS</title><content type='html'>A veces es necesario saber si un job se está ejecutando o no, por ejemplo para prevenir que se ejecute n veces y colapse la base de datos. El estatus de un job se guarda en la tabla &lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } &lt;/style&gt; &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;TBTCO &lt;/span&gt;en el campo &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;STATUS. &lt;/span&gt;El valor R es activo. Pero esto no es suficiente!!! Es posible que la tabla indique que está activo, pero que el work process se haya cancelado, ya que la actualización no se realiza "on the fly" por ello es necesario preguntarle al kernel (¿?) si el job en el work process está activo. Para ello existe la función nativa&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;    &lt;/span&gt;&lt;span class="L1S52"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;CALL&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;span class="L1S33"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;'BTC_CALL_KERNEL'&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="L1S52"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;span class="L1S33"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;'FCID'&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;span class="L1S52"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;FIELD&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;span class="L1S32"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;16&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;&lt;br /&gt;      &lt;/span&gt;&lt;span class="L1S52"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;span class="L1S33"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;'JONA'&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;span class="L1S52"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;FIELD&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; jobname&lt;br /&gt;      &lt;/span&gt;&lt;span class="L1S52"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;span class="L1S33"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;'JOCT'&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;span class="L1S52"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;FIELD&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; i_tbtco-jobcount&lt;br /&gt;      &lt;/span&gt;&lt;span class="L1S52"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;span class="L1S33"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;'WPNO'&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;span class="L1S52"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;FIELD&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; i_tbtco-wpnumber&lt;br /&gt;      &lt;/span&gt;&lt;span class="L1S52"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;span class="L1S33"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;'ACTV'&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; &lt;/span&gt;&lt;span class="L1S52"&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;FIELD&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt; active.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;si active = 0 e&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;stá activo &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-1131701081408487674?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/1131701081408487674/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=1131701081408487674' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1131701081408487674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1131701081408487674'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/10/control-de-ejecucin-de-jobs.html' title='CONTROL DE EJECUCIÓN DE JOBS'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5943861103768861036</id><published>2008-09-18T09:28:00.004+02:00</published><updated>2008-09-18T10:08:01.745+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BW'/><category scheme='http://www.blogger.com/atom/ns#' term='cronomarcador'/><category scheme='http://www.blogger.com/atom/ns#' term='BI'/><title type='text'>BI: PROBLEMA CON CRONOMARCADOR. REPETIR FUENTE DE DATOS</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BiUw2VVy7KA/SNIEq0h0DeI/AAAAAAAAAvo/1sCmUq_n8aI/s1600-h/pantallazo.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cuando se realiza una modificación en R/3 en el extractor, sobre todo si afecta a la estructura de transferencia, al ejecutar la carga desde BW da el siguiente error:&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); "&gt;&lt;img src="http://4.bp.blogspot.com/_BiUw2VVy7KA/SNIEq0h0DeI/AAAAAAAAAvo/1sCmUq_n8aI/s400/pantallazo.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5247261649541533154" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style=""&gt;Esto es por que BW no se ha "enterado" de la modicación. Como indica en el texto explicativo es necesario repetir la fuente de datos, cosa que puedes hacer desde INFOFUENTES o desde SISTEMAS FUENTES. Después debes activar la infofuente pero &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;atención!!&lt;/span&gt; cuando la actives la pestaña de estructura de transferencia debe estar desplegada, sino no se activa y no sirve (cosas de BW).&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5943861103768861036?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5943861103768861036/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5943861103768861036' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5943861103768861036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5943861103768861036'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/09/bi-problema-con-cronomarcador-repetir.html' title='BI: PROBLEMA CON CRONOMARCADOR. REPETIR FUENTE DE DATOS'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_BiUw2VVy7KA/SNIEq0h0DeI/AAAAAAAAAvo/1sCmUq_n8aI/s72-c/pantallazo.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-257121218699912654</id><published>2008-09-18T09:27:00.004+02:00</published><updated>2008-09-18T09:33:35.720+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><category scheme='http://www.blogger.com/atom/ns#' term='Post goods issue'/><category scheme='http://www.blogger.com/atom/ns#' term='Entregas'/><title type='text'>UN PAR DE APUNTES SOBRE WS_DELIVERY_UPDATE_2</title><content type='html'>&lt;div style="text-align: justify;"&gt;Esta funcion (&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 102);"&gt;WS_DELIVERY_UPDATE_2&lt;/span&gt;&lt;/span&gt;) como todo el mundo sabe o debería saber sirve para modificar una entrega pero hay un par de cositas que podemos destacar como detallitos de una función interesante:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- En la tabla VBPOK hay que poner como documento subsiguiente el mismo de la entrega, en el caso de que no haya documento subsiguiente&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;-  Marcar VBPOK-LIANP y poner VBKOK-KOMUE = 1, para que actualice la cantidad de entrega y el picking&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;- Si queremos hacer la contabilización de salida de mercancías de la entrega marcaremos el campo WBKOK-WABUC.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-257121218699912654?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/257121218699912654/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=257121218699912654' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/257121218699912654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/257121218699912654'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/09/un-par-de-apuntes-sobre.html' title='UN PAR DE APUNTES SOBRE WS_DELIVERY_UPDATE_2'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-262771950281189412</id><published>2008-07-31T11:10:00.003+02:00</published><updated>2008-07-31T11:58:41.192+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALV'/><category scheme='http://www.blogger.com/atom/ns#' term='Excel'/><title type='text'>MOSTRAR ALV COMO EXCEL</title><content type='html'>Desde un ALV es posible mostrar los datos en un Excel embebido simplemente pulsando el botón con el dibujito del Excel o con Ctrl+Shift+F7.&lt;br /&gt;En la mayoría de versiones funciona correctamente pero en la versión 2003 (y entiendo que en superiores) sólo muestra una hoja Excel en blanco, sin datos.&lt;br /&gt;Para solucionar este problema hay que cambiar la configuración de seguridad de Excel.&lt;br /&gt;Ir al menú &lt;span style="font-style:italic;"&gt;Herramientas -&gt; Macro -&gt; Seguridad&lt;/span&gt;, abrir la pestaña &lt;span style="font-style:italic;"&gt;Editores de Confianza&lt;/span&gt; y marcar la casilla &lt;span style="font-style:italic;"&gt;Confiar en el acceso a proyectos de Visual Basic&lt;/span&gt;.&lt;br /&gt;Cuando vuelvas a reiniciar el SAPGui ya te debería funcionar.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img262.imageshack.us/img262/1874/dibujo4iq3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 600px;" src="http://img262.imageshack.us/img262/1874/dibujo4iq3.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img401.imageshack.us/img401/3204/dibujo3vf9.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px;" src="http://img401.imageshack.us/img401/3204/dibujo3vf9.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-262771950281189412?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/262771950281189412/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=262771950281189412' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/262771950281189412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/262771950281189412'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/07/mostrar-alv-como-excel.html' title='MOSTRAR ALV COMO EXCEL'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-7303181894804389419</id><published>2008-07-14T13:08:00.002+02:00</published><updated>2008-07-14T13:23:29.091+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Búsqueda'/><category scheme='http://www.blogger.com/atom/ns#' term='Código Fuente'/><title type='text'>ESCANEAR CÓDIGO FUENTE ABAP</title><content type='html'>&lt;div&gt;¡Hello World!,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Soy nuevo por aquí así que me presento. Me llamo Artur, llevo un par de años y medio trabajando con ABAP y unos meses toqueteando cosas de BW, así que me han invitado a unirme al Blog para compartir truquillos que se me ocurran en ambas materias.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Para empezar me gustaría hablaros del programa RPR_ABAP_SOURCE_SCAN, que nos permite buscar un string en un rango de programas que le indiquemos. Muy útil para encontrar usos para una instrucción o uno de esos "yoestolohehechoenunprogramaperonorecuerdoencual".&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;¡Saludos a todos!&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_RnNmoD1OiLE/SHs2_fRZYZI/AAAAAAAAAm4/7uSGUd2T4GI/s1600-h/RPR_ABAP_SOURCE_SCAN.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5222828657220346258" style="CURSOR: hand" alt="" src="http://4.bp.blogspot.com/_RnNmoD1OiLE/SHs2_fRZYZI/AAAAAAAAAm4/7uSGUd2T4GI/s320/RPR_ABAP_SOURCE_SCAN.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-7303181894804389419?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/7303181894804389419/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=7303181894804389419' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7303181894804389419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7303181894804389419'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/07/escanear-cdigo-fuente-abap.html' title='ESCANEAR CÓDIGO FUENTE ABAP'/><author><name>Sir Artur Shogun</name><uri>http://www.blogger.com/profile/13568959206056178587</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://bp1.blogger.com/_RnNmoD1OiLE/R8RPmW0muNI/AAAAAAAAAmM/17tNlYralFE/S220/Artur+Vikingo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_RnNmoD1OiLE/SHs2_fRZYZI/AAAAAAAAAm4/7uSGUd2T4GI/s72-c/RPR_ABAP_SOURCE_SCAN.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-1832037494676210181</id><published>2008-06-26T11:39:00.004+02:00</published><updated>2008-06-26T11:41:40.040+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><category scheme='http://www.blogger.com/atom/ns#' term='clipboard'/><title type='text'>TRABAJAR CON EL CLIPBOARD (PORTAPAPELES)</title><content type='html'>Aunque obsoletas esta dos funciones para recuperar o copiar al portapapeles van de coña.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;CLPB_IMPORT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;CLPB_EXPORT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fáciles y sencillas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-1832037494676210181?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/1832037494676210181/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=1832037494676210181' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1832037494676210181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1832037494676210181'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/06/trabajar-con-el-clipboard-portapapeles.html' title='TRABAJAR CON EL CLIPBOARD (PORTAPAPELES)'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-6480430622630795005</id><published>2008-06-19T12:04:00.002+02:00</published><updated>2008-06-19T12:20:26.881+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALV'/><title type='text'>HACER EDITABLE UNA CELDA CONCRETA EN UN ALV</title><content type='html'>&lt;div style="text-align: justify;"&gt;Si queremos hacer una celda editable específicamente en un ALV deberemos tener en cuenta los siguientes conceptos:&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } &lt;/style&gt;1)  Deberemos ulitizar la funcion de ALV : &lt;span style="font-weight: bold;"&gt;"&lt;/span&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;REUSE_ALV_GRID_DISPLAY_LVC"&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;2)  La columna de la celda que queremos editar deberá ser editable en el catálogo.&lt;br /&gt;&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } &lt;/style&gt;3)  Hay que añadir un campo con una estructura, que realmente es una tabla, a la tabla interna que se le pasa a la funcion. Dicho campo sería del tipo &lt;span style="font-weight: bold;"&gt;"lvc_t_styl"&lt;/span&gt;.&lt;br /&gt;4) Debemos aplicar lógica inversa, es decir, en vez de hacer editable una celda, haremos no editable el resto de celdas. Para ello a los registros que queramos tener no editables hay que añadirle un registro a la tabla que se comentaba en el punto anterior cuyo campo &lt;span style="font-weight: bold;"&gt;STYLE&lt;/span&gt; tenga el valor &lt;span style="font-weight: bold; font-style: italic;"&gt;cl_gui_alv_grid=&gt;mc_style_disabled&lt;/span&gt; y en el campo &lt;span style="font-weight: bold;"&gt;FIELDNAME&lt;/span&gt; el nombre del campo/columna. Añadiendo esto este campo que en principio seria editable, porque asi se lo hemos dicho en el catálogo, ahora no lo será.&lt;br /&gt;5) Por último, y no por eso menos importante,  hay que decirle al layout del ALV que queremos hacer tal cosa, asi que en el campo &lt;span style="font-weight: bold;"&gt;STYLEFNAME&lt;/span&gt; tendremos que asignar el nombre del campo de nuestra tabla interna que contiene la tabla explicado en el punto 3.&lt;br /&gt;&lt;br /&gt;Y listo para funcionar...&lt;br /&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-6480430622630795005?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/6480430622630795005/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=6480430622630795005' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6480430622630795005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6480430622630795005'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/06/hacer-editable-una-celda-concreta-en-un.html' title='HACER EDITABLE UNA CELDA CONCRETA EN UN ALV'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4039021250180021883</id><published>2008-06-17T08:52:00.004+02:00</published><updated>2008-06-17T11:57:43.023+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WM'/><category scheme='http://www.blogger.com/atom/ns#' term='formularios'/><title type='text'>FORMULARIOS DE WM</title><content type='html'>Los formularios de WM (OT, Etiquetas,...) no se gestionan mediante mensajes desde la transacción NACE como la mayoría de formularios de R/3 sino que hay una transacción específica, &lt;span style="font-weight: bold;"&gt;OMLV&lt;/span&gt; "Control de impresión de gestión de almacenes". Además todos los formularios comparten programa de control (?) es el &lt;span style="font-weight: bold;"&gt;RLVSDR40&lt;/span&gt;. Es un report que tiene una pantalla de selección que permite probar los diferentes formularios&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4039021250180021883?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4039021250180021883/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4039021250180021883' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4039021250180021883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4039021250180021883'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/06/formularios-de-wm.html' title='FORMULARIOS DE WM'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-6742965497982257016</id><published>2008-06-16T09:29:00.006+02:00</published><updated>2008-06-19T12:20:57.277+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><category scheme='http://www.blogger.com/atom/ns#' term='fechas'/><title type='text'>FUNCIONES CON FECHAS</title><content type='html'>Os pongo unas funciones para cálculo de fechas y para obtener el día de la semana y festivos:&lt;br /&gt;&lt;br /&gt;CALCULATE_DATE: A partir de una fecha le dices cuantos días y meses debe añadir o quitar y te calcula la nueva fecha.&lt;br /&gt;&lt;br /&gt;RH_GET_DATE_DAYNAME: Le pasas la fecha, el idioma y el calendario (opcional) y te dice que día de la semana es y si es festivo.&lt;br /&gt;&lt;br /&gt;DAY_ATTRIBUTES_GET: Lo mismo que la anterior pero le pasas un rango de fechas y te devuelve una tabla con el nombre de los días de la semana y si son festivos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-6742965497982257016?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/6742965497982257016/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=6742965497982257016' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6742965497982257016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6742965497982257016'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/06/funciones-con-fechas.html' title='FUNCIONES CON FECHAS'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-1256873198932428255</id><published>2008-05-19T17:48:00.005+02:00</published><updated>2008-05-19T17:56:30.585+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SELECTION-SCREEN'/><category scheme='http://www.blogger.com/atom/ns#' term='dynpros'/><title type='text'>REPORT CON PESTAÑAS</title><content type='html'>Una forma muy simple de tener pestañas (Lengüetas) de selección sin tener que "currarse" una dynpro es tirar de la documentación de ABAP. (Si ... a veces sirve para algo) En el apartado selection-screen está este ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;REPORT ...&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN. &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;PARAMETERS: p1 TYPE c LENGTH 10,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;                             p2 TYPE c LENGTH 10,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;                             p3 TYPE c LENGTH 10. &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;SELECTION-SCREEN END OF SCREEN 100.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN. &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;PARAMETERS: q1 TYPE c LENGTH 10,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;                             q2 TYPE c LENGTH 10,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;                             q3 TYPE c LENGTH 10.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;SELECTION-SCREEN END OF SCREEN 200.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;SELECTION-SCREEN: BEGIN OF TABBED BLOCK mytab FOR 10 LINES,&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;                                          TAB (20) button1 USER-COMMAND push1  DEFAULT SCREEN 100, &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;                                          TAB (20) button2 USER-COMMAND push2  DEFAULT SCREEN 200, &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;                  END OF BLOCK mytab.&lt;br /&gt;INITIALIZATION.  &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;   button1 = 'Selection Screen 1'.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6666cc;"&gt;   button2 = 'Selection Screen 2'. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-1256873198932428255?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/1256873198932428255/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=1256873198932428255' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1256873198932428255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1256873198932428255'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/05/report-con-pestaas.html' title='REPORT CON PESTAÑAS'/><author><name>Pep del Viso</name><uri>http://www.blogger.com/profile/16044385404935629153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-1754022941648636298</id><published>2008-05-14T12:43:00.007+02:00</published><updated>2008-05-14T14:29:20.608+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tipos_genéricos'/><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><title type='text'>TIPOS GENÉRICOS</title><content type='html'>No sé si a vosotros pero a mí me da mucha rabia los dumps que salen por diferencia en formatos entre los parámetros que se pasan a las funciones y los que espera. Espera un STRING y casca porque le pasas un CHAR(10), ya que no realiza la conversión, y para evitar eso tienes que usar una variable auxiliar.  Para mí un gran descubrimiento fueron los tipos genéricos.   Os los describo a continuación: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;NUMERIC:       Compatible con I, P y F.&lt;/li&gt;&lt;li&gt;CSEQUENCE:       Compatible con C y STRING&lt;/li&gt;&lt;li&gt;XSEQUENCE:       Compatible con X y XSTRING. (byte mode)&lt;/li&gt;&lt;li&gt;CLIKE: Compatible con C, N, D,       T, STRING.&lt;/li&gt;&lt;li&gt;SIMPLE:       Compatible con todos los anteriores.  &lt;/li&gt;&lt;/ul&gt;Tampoco es una buena práctica usar siempre tipos genéricos pero para los casos en los que se esperan entradas numéricas o de texto, sin más requisitos, NUMERIC y CLIKE son de una gran ayuda.  &lt;br /&gt;Un ejemplo de utilización sería la función "convierte fechas" del post anterior, crear tus propias rutinas de conversión&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-1754022941648636298?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/1754022941648636298/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=1754022941648636298' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1754022941648636298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1754022941648636298'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/05/tipos-genricos.html' title='TIPOS GENÉRICOS'/><author><name>Alejo</name><uri>http://www.blogger.com/profile/09399247324831840848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-320371767791335726</id><published>2008-05-10T12:45:00.005+02:00</published><updated>2008-05-10T14:26:13.358+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EDIT MASK'/><category scheme='http://www.blogger.com/atom/ns#' term='rutinas de conversion'/><title type='text'>CREAR TUS PROPIAS RUTINAS DE CONVERSIÓN</title><content type='html'>&lt;div style="text-align: justify;"&gt;Ante todo la educación, lo primero presentarme. Soy Alejo, nuevo colaborador de Saperos On Line.&lt;br /&gt;Mi primer post es uno que ya publiqué en mi casi difunto miniblog en alejote.com&lt;br /&gt;&lt;/div&gt;&lt;p style="text-align: justify;"&gt;Mediante ABAP se puede cambiar el formato de una variable mediante muchas formas. Una de ellas es &lt;span style="font-weight: bold;"&gt;USING EDIT MASK '==CONV'&lt;/span&gt; siendo &lt;span style="font-weight: bold;"&gt;CONV&lt;/span&gt; el código de la rutina de conversión a aplicar de 5 caracteres como máximo. Estas son las mismas rutinas que se utilizan en los dominios, por ejemplo en el dominio &lt;span style="font-weight: bold;"&gt;KUNNR&lt;/span&gt; (nº de cliente) la rutina es &lt;span style="font-weight: bold;"&gt;ALPHA&lt;/span&gt;, rutina que llena de ceros el valor de la variable. Con doble click sobre la rutina &lt;span style="font-weight: bold;"&gt;ALPHA&lt;/span&gt; se puede ver que dirige entre otras a dos funciones &lt;span style="font-weight: bold;"&gt;CONVERSION_EXIT_ALPHA_INPUT&lt;/span&gt; y &lt;span style="font-weight: bold;"&gt;CONVERSION_EXIT_ALPHA_OUTPUT&lt;/span&gt;. Estas son las funciones que usa para mostrar las variables de una u otra forma. Cuando usamos &lt;span style="font-weight: bold;"&gt;USING EDIT MASK '==CONV'&lt;/span&gt; se llama a la función &lt;span style="font-weight: bold;"&gt;CONVERSION_EXIT_CONV_OUTPUT&lt;/span&gt; pasándole como parámetros la variable a la que queremos cambiar el formato. Hay una barbaridad de rutinas de conversión nada documentadas. Puedes buscar en la SE37 por &lt;span style="font-weight: bold;"&gt;CONVERSION_EXIT_*_*PUT&lt;/span&gt;. &lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;Bueno, ¿y qué pasa si no encuentro la rutina de conversión que estaba buscando? Pues te puedes crear una. Para ello simplemente te creas una función llamada &lt;span style="font-weight: bold;"&gt;CONVERSION_EXIT_ZXXXX_OUTPUT&lt;/span&gt; con &lt;span style="font-weight: bold;"&gt;XXXX&lt;/span&gt; los 4 caracteres que quieras y los parámetros de entrada y salida como los de cualquier función de conversión del estándar. Lo de la Z no es imprescindible pero me da que es necesario para no perderla en actualizaciones de SAP. Después puedes llamar a tu rutina con &lt;span style="font-weight: bold;"&gt;USING EDIT MASK '==ZXXXX'&lt;/span&gt;.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;Por ejemplo aquí tienes un convierte-fechas:&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: left;"&gt;FUNCTION conversion_exit_zfec1_output. *"----------------------------------------------------------------------&lt;br /&gt;*"*"Interfase local&lt;br /&gt;*"  IMPORTING&lt;br /&gt;*"     REFERENCE(INPUT) TYPE  CLIKE&lt;br /&gt;*"  EXPORTING&lt;br /&gt;*"     REFERENCE(OUTPUT) TYPE  CLIKE&lt;br /&gt;*"-------------------------------------------------------------------&lt;br /&gt; output = input.&lt;br /&gt; IF STRLEN( input ) = 8.&lt;br /&gt;   CONCATENATE input+6&lt;br /&gt;               input+4(2)&lt;br /&gt;               input(4)&lt;br /&gt;          INTO output.&lt;br /&gt; ENDIF.&lt;br /&gt;&lt;br /&gt;ENDFUNCTION.&lt;/div&gt;&lt;p style="text-align: justify;"&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-320371767791335726?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/320371767791335726/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=320371767791335726' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/320371767791335726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/320371767791335726'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/05/crear-tus-propias-rutinas-de-conversin.html' title='CREAR TUS PROPIAS RUTINAS DE CONVERSIÓN'/><author><name>Alejo</name><uri>http://www.blogger.com/profile/09399247324831840848</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-8494853793279530198</id><published>2008-05-07T12:01:00.008+02:00</published><updated>2008-05-08T17:40:20.874+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP FI'/><category scheme='http://www.blogger.com/atom/ns#' term='Sustitución'/><category scheme='http://www.blogger.com/atom/ns#' term='exit'/><title type='text'>EXITS DE SUSTITUCIÓN DE FI</title><content type='html'>&lt;div style="text-align: justify;"&gt;Crearemos una exit de sustitución de la siguiente manera:&lt;br /&gt;&lt;br /&gt;1) Primero iremos a la transacción &lt;span style="font-weight: bold;"&gt;GCX2&lt;/span&gt; y cambiaremos el programa que sale por defecto y crear nosotros una copia de este, por ejemplo RGGBS000 a ZRGGBS000. De esta manera podremos meter mano cuanto queramos. Evidentemente en el área funcional GBLS deberemos poner el programa copia que hemos creado.&lt;br /&gt;&lt;br /&gt;2) Editar el programa. Dentro del programa que hemos hecho copia haremos nuevas exits en la rutina "&lt;span style="font-style: italic; font-weight: bold;"&gt;get_exit_titles&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;" que posteriormente saldrán en un menú. Las nuevas exits pueden tener un parámetro o no. Este parámetro se definirá posteriormente. Los que tengan un parámetros deberán tener el valor "&lt;span style="font-weight: bold; font-style: italic;"&gt;c_exit_param_field&lt;/span&gt;" o si no tienen parametro "&lt;span style="font-weight: bold; font-style: italic;"&gt;c_exit_param_none&lt;/span&gt;". De paso también haremos los forms abajo pero los dejaremos vacíos de momento. Este proceso requiere mirar un poquito como está hecho por defecto y copiarlo, es muy sencillo.&lt;br /&gt;&lt;br /&gt;3) Lo siguiente que deberemos hacer es ejecutar el programa &lt;span style="font-weight: bold;"&gt;RGUGBR00&lt;/span&gt; que regenerará todo el &lt;s&gt;cacao que hemos montado&lt;/s&gt; proceso realizado. Marcar todas las opciones de la pantalla de selección del programa por si las moscas. Pero antes de hacer esto será indispensable ir a la tabla GB01 y quitar la X del campo excluir del registro que interese para que regenere todo sin excluir el campo que queremos modifcar.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;4) Posteriormente deberemos ir a la transacción &lt;span style="font-weight: bold;"&gt;OBBH&lt;/span&gt; y hacer doble click en el tipo de sustitución que proceda, en el nodo "&lt;span style="font-style: italic;"&gt;susticiones&lt;/span&gt;" del paso correspondiente deberemos añadir una exit según el tipo de campo corresponda. Por defecto viene uno que pone "Sólo exit" en el que deberemos poner exit que no tenga parámetros, si es necesario, claro. En la ayuda de búsqueda ya debería salir nuestra exit.&lt;br /&gt;&lt;br /&gt;En el caso de que queramos añadir un parámetro deberemos darle al icono que tiene el '+' justo encima de donde se ponen las exits y elegir el parámetro deseado y luego asignarle una exit que tenga el parámetro que coincida.&lt;br /&gt;&lt;br /&gt;5) Haciendo doble click accederemos al form de la exit para que se ponga lo deseado.&lt;br /&gt;&lt;br /&gt;6)  Y para acabar volveremos al inicio de la transacción OBBH y deberemos activa el tema, poniendo un '1' en el campo "&lt;span style="font-style: italic; font-weight: bold;"&gt;grado de activación&lt;/span&gt;".&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-8494853793279530198?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/8494853793279530198/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=8494853793279530198' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8494853793279530198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8494853793279530198'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/05/exits-de-sustucin-de-fi.html' title='EXITS DE SUSTITUCIÓN DE FI'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4882805891706859233</id><published>2008-04-30T12:31:00.004+02:00</published><updated>2008-04-30T13:02:13.080+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dump'/><category scheme='http://www.blogger.com/atom/ns#' term='Paginación'/><title type='text'>ERROR DE PAGINACION CON CARD_CLASS_READ_CHARACTS</title><content type='html'>&lt;style type="text/css"&gt;SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } &lt;/style&gt;&lt;div style="text-align: justify;"&gt;Si en un loop estás utilizando el módulo de funciones&lt;span style="font-weight: bold;"&gt; CARD_CLASS_READ_CHARACTS&lt;/span&gt; para saber las características de un artículo (realmente una clase), por ejemplo, puede ser que en un momento dado te genere un dump del tipo &lt;span style="font-weight: bold;"&gt;MEMORY_NO_MORE_PAGING&lt;/span&gt;. Esto es que hay demasiadas llamadas a la función y por cada llamada a esta función se hace un &lt;span style="font-weight: bold;"&gt;EXPORT MEMORY&lt;/span&gt; que hace desbordar la paginación del sistema.&lt;br /&gt;&lt;br /&gt;Esto ocurre porque internamente se va guardando las clases que se han ido introduciendo para mantener una caché interna y guardarse las clases ya procesadas para ganar tiempo.&lt;br /&gt;&lt;br /&gt;Para evitar este error hay un módulo de funciones que inicializa todas las tablas internas y exports hechos por la función y que no haya así desbordamiento de paginación.&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } &lt;/style&gt;Esta función es:   &lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;CTMS_CONFIGURATION_INITIALIZER&lt;/span&gt; &lt;/div&gt;&lt;span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4882805891706859233?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4882805891706859233/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4882805891706859233' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4882805891706859233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4882805891706859233'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/04/error-de-paginacion-con.html' title='ERROR DE PAGINACION CON CARD_CLASS_READ_CHARACTS'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-3389264136014917464</id><published>2008-04-24T13:03:00.004+02:00</published><updated>2008-04-24T13:12:32.309+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALV'/><category scheme='http://www.blogger.com/atom/ns#' term='exportar'/><category scheme='http://www.blogger.com/atom/ns#' term='fichero'/><title type='text'>AL EXPORTAR MI ALV A UN FICHERO DESAPARECEN COLUMNAS</title><content type='html'>&lt;div style="text-align: justify;"&gt;Tranquilo, no desesperes, mantengamos la calma... Pues si, desgraciadamente esto ocurre desesperando al personal en busca del problema y le deberemos echar las culpas al catálogo del ALV.&lt;br /&gt;&lt;br /&gt;Veamos pues... Seguramente por pantalla se vea una columna con esos datos que tanto te ha costado conseguir pero al exportarlo a un excel, fichero, etc... te sale la cabecera pero el dato se &lt;s&gt;lo pasa por el forro&lt;/s&gt; lo salta, pues seguramente no tengas en el catálogo el campo &lt;span style="font-weight: bold;"&gt;TABNAME&lt;/span&gt; y el &lt;span style="font-weight: bold;"&gt;FIELDNAME&lt;/span&gt; asignado. Asignando estos campos a la tabla interna y al campo de dicha tabla se soluciona el problema.&lt;br /&gt;&lt;br /&gt;Estos chicos de Walldorf...&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-3389264136014917464?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/3389264136014917464/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=3389264136014917464' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3389264136014917464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3389264136014917464'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/04/al-exportar-mi-alv-un-fichero.html' title='AL EXPORTAR MI ALV A UN FICHERO DESAPARECEN COLUMNAS'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-482216718601628928</id><published>2008-04-16T18:08:00.006+02:00</published><updated>2008-04-16T18:22:03.750+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='actualización cancelada'/><category scheme='http://www.blogger.com/atom/ns#' term='sm13'/><category scheme='http://www.blogger.com/atom/ns#' term='updated was terminated'/><title type='text'>"ACTUALIZACIÓN CANCELADA" si vale, y qué?</title><content type='html'>Al grabar documentos, sobre todo al contabilizarlos, a veces la operación termina correctamente, incluso nos devuelve el número de documento creado. La sorpresa viene al aparecer un mensaje en el inbox del sapmail, que estaba con telañas el pobre de lo poco que se usa, semejante a este:&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/amunoz/CONFIG%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BiUw2VVy7KA/SAYm1Bx62VI/AAAAAAAAAvY/CugGxvQUXHg/s1600-h/update+was+terminated.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 338px; height: 180px;" src="http://3.bp.blogspot.com/_BiUw2VVy7KA/SAYm1Bx62VI/AAAAAAAAAvY/CugGxvQUXHg/s320/update+was+terminated.jpg" alt="" id="BLOGGER_PHOTO_ID_5189878313043810642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Esto es un error en la actualización que por algún motivo, no me preguntes, no se trata en dialogo sino que queda en el Log de SAP. Para poder consultar este log hay que acceder a la transacción &lt;span style="font-weight: bold;"&gt;SM13&lt;/span&gt;, donde esta accesible con diversos filtros.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-482216718601628928?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/482216718601628928/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=482216718601628928' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/482216718601628928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/482216718601628928'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/04/actualizacin-cancelada-si-vale-y-qu.html' title='&quot;ACTUALIZACIÓN CANCELADA&quot; si vale, y qué?'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BiUw2VVy7KA/SAYm1Bx62VI/AAAAAAAAAvY/CugGxvQUXHg/s72-c/update+was+terminated.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-8575360620956513297</id><published>2008-04-15T12:28:00.007+02:00</published><updated>2008-04-24T13:21:23.937+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP FI'/><title type='text'>NAVEGAR A LA POSICION DE UN DOCUMENTO DE FI</title><content type='html'>&lt;div style="text-align: justify;"&gt;Normalmente para navegar a cualquier tipo de un documento suele haber alguna que otra función que lo hace, normalmente suelen tener el formato *_DISPLAY.&lt;br /&gt;&lt;br /&gt;En el caso de que se quiera navegar a la posicion de un documento de finanzas yo no he sido capaz de encontrar una función que indicándole la sociedad, año, documento y posición te lleve hasta ese punto, como por ejemplo lo hace la transacción FBL1N .&lt;br /&gt;&lt;br /&gt;Para ello me la he fabricado yo mismo y la he bautizado ZFI_ITEM_DOCUMENT_DISPLAY. Para ello hacemos lo siguiente:&lt;br /&gt;&lt;br /&gt;IMPORTING:&lt;br /&gt;- BURKS  "sociedad&lt;br /&gt;- BELNR  "documento FI&lt;br /&gt;- GJAHR  "año&lt;br /&gt;- BUZEI   "posición&lt;br /&gt;&lt;br /&gt;No es necesario un EXPORTING,  ya que solo navega.&lt;br /&gt;&lt;br /&gt;En los datos globales va lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L0S31 { font-style: italic; color: #808080; } .L0S32 { color: #3399FF; } .L0S52 { color: #0000FF; } &lt;/style&gt; &lt;span&gt; &lt;span class="L0S52"&gt;DATA&lt;/span&gt;: &lt;span class="L0S52"&gt;BEGIN&lt;/span&gt; &lt;span class="L0S52"&gt;OF&lt;/span&gt; buztab &lt;span class="L0S52"&gt;OCCURS&lt;/span&gt; &lt;span class="L0S32"&gt;30&lt;/span&gt;,&lt;br /&gt;      bukrs             &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; bseg-bukrs,&lt;br /&gt;      belnr             &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; bseg-belnr,&lt;br /&gt;      gjahr             &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; bseg-gjahr,&lt;br /&gt;      buzei             &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; bseg-buzei,&lt;br /&gt;      koart             &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; bseg-koart,&lt;br /&gt;      umskz             &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; bseg-umskz,&lt;br /&gt;      bschl             &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; bseg-bschl,&lt;br /&gt;      bstat             &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; bkpf-bstat,&lt;br /&gt;      mwart             &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; bseg-mwart,&lt;br /&gt;      mwskz             &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; skb1-mwskz,&lt;br /&gt;      flaen(&lt;span class="L0S32"&gt;1&lt;/span&gt;)          &lt;span class="L0S52"&gt;TYPE&lt;/span&gt; &lt;span class="L0S52"&gt;c&lt;/span&gt;,             &lt;span class="L0S31"&gt;" X = Posten geaendert&lt;/span&gt;&lt;br /&gt;    &lt;span class="L0S52"&gt;END&lt;/span&gt;   &lt;span class="L0S52"&gt;OF&lt;/span&gt; buztab.&lt;br /&gt;&lt;br /&gt;&lt;span class="L0S52"&gt;DATA&lt;/span&gt;: &lt;span class="L0S52"&gt;BEGIN&lt;/span&gt; &lt;span class="L0S52"&gt;OF&lt;/span&gt; new_doc,&lt;br /&gt;      bukrs &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; bkpf-bukrs,&lt;br /&gt;      belnr &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; bkpf-belnr,&lt;br /&gt;      gjahr &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; bkpf-gjahr,&lt;br /&gt;      bvorg &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; bkpf-bvorg,&lt;br /&gt;    &lt;span class="L0S52"&gt;END&lt;/span&gt; &lt;span class="L0S52"&gt;OF&lt;/span&gt; new_doc.&lt;br /&gt;&lt;br /&gt;&lt;span class="L0S52"&gt;DATA&lt;/span&gt;: tcode         &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; sy-tcode,&lt;br /&gt;    x_nochange(&lt;span class="L0S32"&gt;1&lt;/span&gt;) &lt;span class="L0S52"&gt;TYPE&lt;/span&gt; &lt;span class="L0S52"&gt;c&lt;/span&gt;,&lt;br /&gt;    ld_aktyp      &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; t020-aktyp,&lt;br /&gt;    buztab-zeile  &lt;span class="L0S52"&gt;LIKE&lt;/span&gt; sy-tabix,&lt;br /&gt;    x_commit(&lt;span class="L0S32"&gt;1&lt;/span&gt;)   &lt;span class="L0S52"&gt;TYPE&lt;/span&gt; &lt;span class="L0S52"&gt;c&lt;/span&gt;,&lt;br /&gt;    x_nextl(&lt;span class="L0S32"&gt;1&lt;/span&gt;)    &lt;span class="L0S52"&gt;TYPE&lt;/span&gt; &lt;span class="L0S52"&gt;c&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mientras que el código es muy sencillo y es el siguiente:&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } &lt;/style&gt; &lt;span&gt;  &lt;span class="L1S52"&gt;REFRESH&lt;/span&gt; buztab.&lt;br /&gt;buztab-bukrs = bukrs.&lt;br /&gt;buztab-belnr = belnr.&lt;br /&gt;buztab-gjahr = gjahr.&lt;br /&gt;buztab-buzei = buzei.&lt;br /&gt;&lt;span class="L1S52"&gt;APPEND&lt;/span&gt; buztab.&lt;br /&gt;&lt;span class="L1S52"&gt;CLEAR&lt;/span&gt; buztab.&lt;br /&gt;&lt;br /&gt;buztab-zeile = &lt;span class="L1S32"&gt;1&lt;/span&gt;.&lt;br /&gt;tcode = &lt;span class="L1S33"&gt;'FBL1'&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="L1S52"&gt;CALL&lt;/span&gt; &lt;span class="L1S52"&gt;DIALOG&lt;/span&gt; &lt;span class="L1S33"&gt;'RF_ZEILEN_ANZEIGE'&lt;/span&gt;&lt;br /&gt;&lt;span class="L1S52"&gt;EXPORTING&lt;/span&gt;&lt;br /&gt;  buztab&lt;br /&gt;  buztab-zeile&lt;br /&gt;  tcode         &lt;span class="L1S52"&gt;FROM&lt;/span&gt; tcode&lt;br /&gt;  status-&lt;span class="L1S52"&gt;detail&lt;/span&gt; &lt;span class="L1S52"&gt;FROM&lt;/span&gt; space&lt;br /&gt;  x_nochange&lt;br /&gt;  aktyp         &lt;span class="L1S52"&gt;FROM&lt;/span&gt; ld_aktyp&lt;br /&gt;&lt;span class="L1S52"&gt;IMPORTING&lt;/span&gt;&lt;br /&gt;  buztab&lt;br /&gt;  buztabi-&lt;span class="L1S52"&gt;index&lt;/span&gt; &lt;span class="L1S52"&gt;TO&lt;/span&gt; buztab-zeile&lt;br /&gt;  x_nextl&lt;br /&gt;  new_doc&lt;br /&gt;  t020-aktyp    &lt;span class="L1S52"&gt;TO&lt;/span&gt; ld_aktyp&lt;br /&gt;  x_commit.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Y ya tenemos nuestra función de navegación lista para funcionar...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ACTUALIZACION:&lt;/span&gt; Alejo nos muestra una manera &lt;s&gt;bastante&lt;/s&gt; muchísimo más sencilla, (donde va a parar) de hacer todo este proceso. Gracias!!!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-8575360620956513297?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/8575360620956513297/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=8575360620956513297' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8575360620956513297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8575360620956513297'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/04/navegar-la-posicion-de-un-documento-de.html' title='NAVEGAR A LA POSICION DE UN DOCUMENTO DE FI'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4665797671850275924</id><published>2008-04-10T09:40:00.002+02:00</published><updated>2008-04-10T09:49:47.011+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='se16n'/><category scheme='http://www.blogger.com/atom/ns#' term='tablas'/><title type='text'>MODIFICAR TABLAS, CUALQUIER TABLA</title><content type='html'>Siguiendo en nuestro afan por ser un poco más terroristas cada día hoy toca la &lt;span style="font-weight: bold;"&gt;se16n. &lt;/span&gt;Es conocida de casi todos pero, por si queda algún despistado, esta transacción es similar a la se16 pero con otro formato y visualización, hasta aquí todo normal. Pero si, en la pantalla de selección, introducimos en el campo de comando &lt;span style="font-weight: bold;"&gt;&amp;amp;sap_edit, &lt;/span&gt;al ejecutar la consulta podremos modificar todos los campos de la tabla. Fácil.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4665797671850275924?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4665797671850275924/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4665797671850275924' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4665797671850275924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4665797671850275924'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/04/modificar-tablas-cualquier-tabla.html' title='MODIFICAR TABLAS, CUALQUIER TABLA'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4264338101268474030</id><published>2008-04-10T09:13:00.005+02:00</published><updated>2008-04-10T09:40:25.515+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='transportes'/><category scheme='http://www.blogger.com/atom/ns#' term='stms'/><category scheme='http://www.blogger.com/atom/ns#' term='E070L'/><category scheme='http://www.blogger.com/atom/ns#' term='TRKORR'/><category scheme='http://www.blogger.com/atom/ns#' term='copia homogenea'/><title type='text'>CAMBIO SIGUIENTE Nº ORDEN DE TRANSPORTE</title><content type='html'>Vamos a seguir con el tema de los transportes. Cuando se hace una copia homogenea de una máquina (por ejemplo planchar desarrollo con productivo) a veces no se hace todo a maquina parada sino que el nuevo desarrollo se restaura de una copia de productivo de hace unos días. En ese caso es necesario transportar las ordenes de la cola de productivos posteriores a esa copia. Pero con eso no es suficiente, también es necesario cambiar el nº de la siguiente orden de transporte, si no asignará números que ya están creados. Para ello hay que modificar la tabla &lt;span style="font-weight: bold;"&gt;E070L&lt;/span&gt; (con la se16n por ejemplo).  Allí debe existir un único registro con 2 campos TRKORR y el número siguiente orden. Basta con cambiar el número y voilà&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4264338101268474030?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4264338101268474030/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4264338101268474030' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4264338101268474030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4264338101268474030'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/04/cambio-siguiente-n-orden-de-transporte.html' title='CAMBIO SIGUIENTE Nº ORDEN DE TRANSPORTE'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-3634007094282127467</id><published>2008-04-08T12:08:00.002+02:00</published><updated>2008-04-08T12:13:03.137+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='transporte'/><title type='text'>TRANSPORTES NO HABITUALES</title><content type='html'>&lt;div style="text-align: justify;"&gt;A veces hay que transportar ciertos objetos que no son demasiado habituales incluirlos en una orden y no encontramos la manera y nos produce un pequeño dolor de cabeza. He aquí algunos programas para ello:&lt;br /&gt;&lt;br /&gt;Para transportar...&lt;br /&gt;Variantes de report: programa &lt;span style="font-weight: bold;"&gt;RSTRANSP&lt;/span&gt;&lt;br /&gt;Objetos de textos (so10): programa &lt;span style="font-weight: bold;"&gt;RSTXTRAN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Si alguien sabe alguno más que lo diga... &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-3634007094282127467?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/3634007094282127467/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=3634007094282127467' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3634007094282127467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3634007094282127467'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/04/transportes-no-habituales.html' title='TRANSPORTES NO HABITUALES'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-8063527602386386297</id><published>2008-03-18T10:48:00.005+01:00</published><updated>2008-03-18T10:56:30.927+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='smartforms'/><category scheme='http://www.blogger.com/atom/ns#' term='formularios'/><title type='text'>SABER EL MODULO DE FUNCIONES DE UN SMARTFORM</title><content type='html'>&lt;div style="text-align: justify;"&gt;No siempre dos sistemas tienen el mismo módulo de funciones para un mismo smartform, para ellos existe una función que pasándole el nombre del smartform te devuelve el nombre. Así, con lo que te ha devuelto se debe hacer el CALL FUNCTION.&lt;br /&gt;&lt;br /&gt;El módulo de funciones es: &lt;span style="font-weight: bold;"&gt;SSF_FUNCTION_MODULE_NAME&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);font-size:85%;" &gt; CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'&lt;br /&gt; EXPORTING&lt;br /&gt;       formname           = 'ZMI_SMARTFORM'&lt;br /&gt;    IMPORTING&lt;br /&gt;       fm_name            = l_funcion&lt;br /&gt; EXCEPTIONS&lt;br /&gt;  no_form            = 1&lt;br /&gt;  no_function_module = 2&lt;br /&gt;  OTHERS             = 3.&lt;br /&gt;&lt;br /&gt;IF sy-subrc = 0.&lt;br /&gt;&lt;br /&gt;* llamar al smartform&lt;br /&gt;  CALL FUNCTION l_funcion&lt;br /&gt; EXPORTING&lt;br /&gt;  control_parameters = ls_conpar&lt;br /&gt;  output_options     = ls_output&lt;br /&gt;  user_settings      = ' '&lt;br /&gt;  header             = ls_header&lt;br /&gt; TABLES&lt;br /&gt;        items              = lt_items&lt;br /&gt; EXCEPTIONS&lt;br /&gt;  formatting_error   = 1&lt;br /&gt;        internal_error     = 2&lt;br /&gt;        send_error         = 3&lt;br /&gt;        user_canceled      = 4&lt;br /&gt;        OTHERS             = 5.&lt;br /&gt;&lt;br /&gt;ENDIF.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-8063527602386386297?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/8063527602386386297/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=8063527602386386297' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8063527602386386297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8063527602386386297'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/03/saber-el-modulo-de-funciones-de-un.html' title='SABER EL MODULO DE FUNCIONES DE UN SMARTFORM'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5890365653521887949</id><published>2008-03-12T14:59:00.003+01:00</published><updated>2008-03-12T13:05:14.892+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TABLES'/><category scheme='http://www.blogger.com/atom/ns#' term='ASSIGN'/><title type='text'>COMO SABER SI EXISTE UN CAMPO EN UNA TABLA</title><content type='html'>&lt;span style="color:#000000;"&gt;Hace un tiempo me toco hacer un programa que revisaba las tablas de punteros e informaba de las modificaciones pendientes de envío. Uno de los campos que tenía que mostrar era el artículo y el precio de la modificación, para lo cual necesitaba saber que artículo se había modificado y el valor de la condición, lo que obligaba a revisar las tablas Axxx. Para que el programa funcionase debía tener todas las tablas Axxx definidas con TABLES en el programa, lo cual queda bastante feo.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Ejemplo:&lt;/span&gt; &lt;span style="color:#6633ff;"&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;TABLES: a000, a001, a002, a003, a004, a005, a006, a007, a008, a009, a010&lt;br /&gt;, a011, a012, a013, a014, a015, a016, a017, a018, a019, a020, a021, a022&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color:#cc66cc;"&gt;.... , a399, a900, a901.&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#cc33cc;"&gt;* Y sigue ...&lt;br /&gt;* Asignar valor para comprobar si existe.&lt;br /&gt;FIELD-SYMBOLS &amp;lt;fs&amp;gt;.&lt;/span&gt; &lt;div&gt;&lt;span style="color:#cc33cc;"&gt;name = tabla. name+4 = '-MATNR'.&lt;br /&gt;ASSIGN TABLE FIELD (name) TO &amp;lt;fs&amp;gt;.&lt;br /&gt;IF ( &amp;lt;fs&amp;gt; IS ASSIGNED ).&lt;br /&gt;SELECT SINGLE matnr INTO &amp;lt;p&amp;gt;-matnr FROM (tabla)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;"&gt;Sin TABLES el resultado del assign podía ser erroneo. A parte de lo que afea el código "Ya lo he dicho, ¿No?" cada vez que un consultor decidía que se necesitaba una tabla A9xx nueva el programa dejaba de funcionar.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La solución que encontré, que además es mucho más elegante, es:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#6600cc;"&gt;DATA l_reg TYPE REF TO data.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6600cc;"&gt;FIELD-SYMBOLS : &amp;lt;struct&amp;gt; &lt;fs&gt;.&lt;struct&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#6600cc;"&gt;* Crea un registro con la información de como es la tabla.&lt;br /&gt;CREATE DATA l_reg TYPE (tabla).&lt;br /&gt;* Asignamos la estructura para poder consultarla&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#6600cc;"&gt;&lt;br /&gt;ASSIGN l_reg-&amp;gt;* TO &amp;lt;struct&amp;gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#6600cc;"&gt;* Preguntar si existe el componente MATNR&lt;br /&gt;ASSIGN COMPONENT 'MATNR' OF STRUCTURE &amp;lt;struct&amp;gt; TO &amp;lt;fs&amp;gt;.&lt;br /&gt;IF ( &amp;lt;fs&amp;gt; IS ASSIGNED ) .&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Y de esta forma nos podemos olvidar de definir y conocer previamente que tablas se usarán.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5890365653521887949?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5890365653521887949/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5890365653521887949' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5890365653521887949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5890365653521887949'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/01/como-saber-si-existe-un-campo-en-una.html' title='COMO SABER SI EXISTE UN CAMPO EN UNA TABLA'/><author><name>Pep del Viso</name><uri>http://www.blogger.com/profile/16044385404935629153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-7089258906065514683</id><published>2008-03-12T12:51:00.003+01:00</published><updated>2008-03-12T13:01:56.935+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BAPIRETURN'/><category scheme='http://www.blogger.com/atom/ns#' term='BAPI'/><title type='text'>LONGITUD CLASE DE MENSAJE</title><content type='html'>Si alguna vez usáis la función &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;BALW&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;BAPIRETURN&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;GET&lt;/span&gt;, ojo a la longitud de la clase de mensaje. Esta función solo hace caso de los 2 primeros &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;caracteres&lt;/span&gt;, como reza su código&lt;br /&gt;&lt;span style="color:#cc66cc;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc66cc;"&gt;* &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;process&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;field&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;return&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;code&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc66cc;"&gt;* &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;only&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;the&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;first&lt;/span&gt; 2 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;characters&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;of&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;message&lt;/span&gt;-id are &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;usable&lt;/span&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc66cc;"&gt;  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;if&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;cl&lt;/span&gt;+2(18) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;co&lt;/span&gt; ' '.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc66cc;"&gt;      &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;bapireturn&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;code&lt;/span&gt; = &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;cl&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc66cc;"&gt;      &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;bapireturn&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;code&lt;/span&gt;+2(3) = &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;number&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc66cc;"&gt;&lt;strong&gt;  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;else&lt;/span&gt;.&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc66cc;"&gt;&lt;strong&gt;      &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;raise&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;only&lt;/span&gt;_2_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;char&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;for&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;message&lt;/span&gt;_id.&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc66cc;"&gt;...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-7089258906065514683?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/7089258906065514683/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=7089258906065514683' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7089258906065514683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7089258906065514683'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/03/longitud-clase-de-mensaje.html' title='LONGITUD CLASE DE MENSAJE'/><author><name>Pep del Viso</name><uri>http://www.blogger.com/profile/16044385404935629153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5439472764415121755</id><published>2008-03-10T13:02:00.005+01:00</published><updated>2008-03-10T13:21:30.504+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><title type='text'>CONVERTIR CANTIDADES FIJAS (KGS, METROS...)</title><content type='html'>&lt;div style="text-align: justify;"&gt;Nuestro colaborador, compañero y mejor persona Pep del Viso, aunque vago para participar en estos menesteres me dice que para convertir cantidades en unidades de medidas constantes, por ejemplo kilos (siempre son 1000 gramos), hay una función que lo hace de coña.&lt;br /&gt;&lt;br /&gt;Dicha función es: &lt;span style="font-weight: bold;"&gt;CONVERSION_FACTOR_GET&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;¿Que es una tonteria? ¿Que puedes dividir o multiplicar por 1000? Pues mire ustez, sí. Pero es más cómodo que hacerlo y te evitas errores tontos. ¿Y para pasar de yardas a metros? ¿Y de libras a onzas? ¿Te sabes el factor de conversión? ¿Si?&lt;br /&gt;&lt;br /&gt;Gentileza de Pep del Viso.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5439472764415121755?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5439472764415121755/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5439472764415121755' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5439472764415121755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5439472764415121755'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/03/convertir-cantidades-fijas-kgs-metros.html' title='CONVERTIR CANTIDADES FIJAS (KGS, METROS...)'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-8251893159158875942</id><published>2008-03-06T17:49:00.004+01:00</published><updated>2008-03-06T18:03:27.096+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALV'/><title type='text'>CONTROLAR ACCIONES USUARIO EN ALV SIN PF-STATUS</title><content type='html'>&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } &lt;/style&gt;&lt;div style="text-align: justify;"&gt;La función &lt;span style="font-weight: bold;"&gt;REUSE_ALV_GRID_DISPLAY&lt;/span&gt; permite que puedas meter mano a las funcionalidad de los botones sin necesidad de hacer un &lt;span style="font-weight: bold;"&gt;SET PF-STATUS&lt;/span&gt; propio. Me explico, imaginate que necesitas saber si el usuario va a salir del listado ALV para darle un mensaje de advertencia e informar que no ha grabado datos.&lt;br /&gt;&lt;br /&gt;La manera más fácil de controlar esto es hacer un &lt;span style="font-weight: bold;"&gt;pf-status&lt;/span&gt; propio y con el &lt;span style="font-weight: bold;"&gt;user-command&lt;/span&gt; controlar si va a salir o no.&lt;br /&gt;&lt;br /&gt;Pero si queremos integrarnos con SAP os propongo la siguiente forma, para los disconformes y amantes de lo que nos ofrece el &lt;span style="font-weight: bold;"&gt;ALV&lt;/span&gt; (¿?).&lt;br /&gt;&lt;br /&gt;Hay que pasarle a la función &lt;span style="font-weight: bold;"&gt;REUSE_ALV_GRID_DISPLAY&lt;/span&gt; el parámetro &lt;span style="font-weight: bold;"&gt;IT_EVENT_EXIT&lt;/span&gt; en el que deberemos pasarle una tabla con el comando del status en el que te quieres meter e indicarle con una X si lo quieres que haga tu acción antes o después de la acción para la que está destinado ese botón. (o antes o después de los dolores)&lt;br /&gt;&lt;br /&gt;Una vez hecho esto, en nuestro &lt;span style="font-weight: bold;"&gt;USER_COMMAND&lt;/span&gt; deberemos controlar que si ha pulsado lo que buscas haga lo que tu quieras.&lt;br /&gt;&lt;br /&gt;Otro dia más...&lt;br /&gt;&lt;/div&gt;&lt;span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-8251893159158875942?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/8251893159158875942/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=8251893159158875942' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8251893159158875942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8251893159158875942'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/03/controlar-acciones-usuario-en-alv-sin.html' title='CONTROLAR ACCIONES USUARIO EN ALV SIN PF-STATUS'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2224679179548396120</id><published>2008-02-28T10:17:00.013+01:00</published><updated>2008-03-05T18:10:08.978+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><title type='text'>SIMPÁTICA CALCULADORA</title><content type='html'>Genial esta función que te muestra una calculadora: FITRV_CALCULATOR&lt;br /&gt;&lt;br /&gt;... y no hay que hacer nada!!! :D &lt;hola&gt;&lt;hola&gt;&lt;hola&gt;&lt;fs&gt; &lt;fs&gt;&lt;/fs&gt;&lt;/fs&gt;&lt;/hola&gt;&lt;/hola&gt;&lt;/hola&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2224679179548396120?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2224679179548396120/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2224679179548396120' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2224679179548396120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2224679179548396120'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/02/mostrar-una-calculadora-fcilmente.html' title='SIMPÁTICA CALCULADORA'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-8600570927830179245</id><published>2008-02-28T09:56:00.002+01:00</published><updated>2008-02-28T09:59:54.515+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formatos'/><title type='text'>CONVERTIR UN STRING EN UN XSTRING</title><content type='html'>Para convertir un string en un xstring, que por necesidades varias puede ocurrir hay que recurrir a esta paja ment... ejem... a este fragmento de código:&lt;br /&gt;&lt;br /&gt;DATA: CONVERTER TYPE REF TO CL_ABAP_CONV_OUT_CE.&lt;br /&gt;&lt;br /&gt;*-- Convert&lt;br /&gt;CONVERTER = CL_ABAP_CONV_OUT_CE=&gt;CREATE( ENCODING = 'DEFAULT' ).&lt;br /&gt;CONVERTER-&gt;RESET( ).&lt;br /&gt;CALL METHOD CONVERTER-&gt;WRITE&lt;br /&gt;  EXPORTING&lt;br /&gt;  DATA = sresul.&lt;br /&gt;resul = CONVERTER-&gt;GET_BUFFER( ).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-8600570927830179245?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/8600570927830179245/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=8600570927830179245' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8600570927830179245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8600570927830179245'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/02/convertir-un-string-en-un-xstring.html' title='CONVERTIR UN STRING EN UN XSTRING'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2171498464049482716</id><published>2008-02-25T13:44:00.003+01:00</published><updated>2008-02-28T10:00:12.364+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Formatos'/><title type='text'>QUITAR ACENTOS</title><content type='html'>Si necesitas quitar los aceptos de un texto puedes utilizar la función&lt;br /&gt;"SCP_REPLACE_STRANGE_CHARS".&lt;br /&gt;&lt;br /&gt;visto en &lt;a href="http://sap4.com/postlite7665-.html"&gt;sap abap en castellano&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2171498464049482716?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2171498464049482716/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2171498464049482716' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2171498464049482716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2171498464049482716'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/02/quitar-acentos.html' title='QUITAR ACENTOS'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-548518747165199742</id><published>2008-02-07T09:41:00.000+01:00</published><updated>2008-02-07T10:19:14.506+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALV'/><title type='text'>EL LAYOUT DEL ALV NO SE VISUALIZA COMO LO HE GRABADO</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;¿Estas haciendo un layout para subtotalizar por un campo de texto hecho por ti de una tabla interna? Lo grabas y pasa una cosa extraña... ¿Solo funciona a veces? ¿Hace cosas extrañas?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Muchas veces haces un campo concatenado para poner el texto que quieras y lo muestras en una columna de una ALV. Luego haces totales por un campo numérico y subtotales por el campo concatenado que has creado. Hasta el momento todo correcto... Pero luego cambiar el layout y chás!!! No se ve como lo has creado. Esto se debe a que tu campo no tiene un tipo predefinido.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Ejemplo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;De inicio tenemos esto....&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;data: begin of gt_tabla occurs 0,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;            concat(80),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;            precio type netpr,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;          end of gt_tabla.&lt;br /&gt;&lt;br /&gt;Para solucionarlo deberiamos hacer lo siguiente:&lt;br /&gt;-&gt; Buscar o crear un elemento de datos de 80 caracteres.&lt;br /&gt;-&gt; En el catalogo hacer:&lt;br /&gt;1) un ref_tabname a una tabla que esté incluido este elemento de datos,&lt;br /&gt;2) un ref_tabfieldname al campo de la tabla que se ha indicado en el ref_tabname,&lt;br /&gt;3) un fieldname al campo de la tabla de la concatenación, en nuestro caso CONCAT.&lt;br /&gt;&lt;br /&gt;Una vez hecho esto puedes ejecutar tranquilamente tu layout que funcionará correctamente.&lt;/span&gt;&lt;/span&gt;&lt;style type="text/css"&gt;SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0&lt;/style&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-548518747165199742?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/548518747165199742/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=548518747165199742' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/548518747165199742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/548518747165199742'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/02/el-layout-del-alv-no-se-visualiza-como.html' title='EL LAYOUT DEL ALV NO SE VISUALIZA COMO LO HE GRABADO'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-3043004588502150177</id><published>2008-02-06T11:41:00.000+01:00</published><updated>2008-02-06T11:55:21.279+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VOFM'/><category scheme='http://www.blogger.com/atom/ns#' term='esquema de cálculo'/><category scheme='http://www.blogger.com/atom/ns#' term='fórmula'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP SD'/><title type='text'>PROBLEMAS CON LAS FÓRMULAS DE LA VOFM</title><content type='html'>A veces, al crear un fórmula y transportarla, el programa marco (ej RV64ANNN) no se transporta por lo que la formula está, a todos los efectos, desactivada. Para solucionar esto puede ejecutar el programa &lt;span style="font-weight: bold;"&gt;RV80HGEN. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Más información &lt;a href="http://www.saptechsolutions.com/pdf/InsideVOFM.pdf"&gt;aquí&lt;/a&gt; (PDF).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-3043004588502150177?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/3043004588502150177/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=3043004588502150177' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3043004588502150177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3043004588502150177'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/02/problemas-con-la-formulas-de-la-vofm.html' title='PROBLEMAS CON LAS FÓRMULAS DE LA VOFM'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-495086415992732942</id><published>2008-01-31T16:32:00.000+01:00</published><updated>2008-01-31T16:44:41.628+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='condiciones'/><category scheme='http://www.blogger.com/atom/ns#' term='tablas'/><title type='text'>MOSTRAR EL NOMBRE DE UNA TABLA</title><content type='html'>En ocasiones nos interesa mostrar el nombre de una tabla de BBDD de la cual hemos recogido un dato...&lt;br /&gt;&lt;br /&gt;Por ejemplo si hemos de recoger una condición de descuento o de precio, puede ser que nos pidan de mostrar el nombre de la tabla donde lo hemos recogido para así poder referenciar en una dynpro que significa este valor. (Las condiciones que afectan al precio, según donde se han recogido afectan por ejemplo al articulo por proveedor, al articulo por proveedor/canal de distribución, al articulo por el volumen de este...).&lt;br /&gt;&lt;br /&gt;Osea, para recoger el nombre de la tabla, iremos a la tabla ‘dd02vv’ donde filtraremos por el nombre (el que queremos recoger no!!!! El nombre por el cual es conocida generalmente (MARA, T024, EINA...)) de nuestra tabla y por el idioma.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;         SELECT SINGLE&lt;/span&gt; ddtext&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;         FROM&lt;/span&gt; dd02vv&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;         INTO&lt;/span&gt; g_nomtab_tarifa&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;         WHERE&lt;/span&gt; tabname = &lt;span style="color:#33cc00;"&gt;'A044'&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;         AND &lt;/span&gt;ddlanguage = sy-langu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-495086415992732942?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/495086415992732942/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=495086415992732942' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/495086415992732942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/495086415992732942'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/01/mostrar-el-nombre-de-una-tabla.html' title='MOSTRAR EL NOMBRE DE UNA TABLA'/><author><name>Dump Boy</name><uri>http://www.blogger.com/profile/16374237374666614377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='9' src='http://1.bp.blogspot.com/-dMrtpfyEctc/TikyaLRxpSI/AAAAAAAAAA8/iVZfslLBX8s/s220/dumpboy.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-8302084643249609442</id><published>2008-01-18T23:24:00.000+01:00</published><updated>2008-01-19T08:15:34.696+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cálculo'/><category scheme='http://www.blogger.com/atom/ns#' term='ABAP'/><title type='text'>MI PROGRAMA NO SABE DIVIDIR!</title><content type='html'>Igual os ha pasado alguna vez que al realizar un cálculo matemático con números que contienen decimales el resultado es imprevisto. Os pongo un ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;data:  d_var1 type p decimals 2,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;           d_var2 type p decimals 2,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;           d_resultat type p decimals 2.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;d_var1 = '200.00'.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;d_var2 = '10.00'.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;d_resultat = d_var1 / d_var2.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El resultado esperado es d_resultat = '20.00'. Pues hay otro resultado posible, y es d_resultat =  '0.20'. &lt;span style="font-weight: bold;"&gt;WTF!&lt;/span&gt;  . No es un error del compilador, ni es el día de los santos inocentes. Lo más probable es que no tengas marcado en los atributos de programa el flag de &lt;span style="font-weight: bold;"&gt;cálculo de coma fija&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Esto es especialmente importante si el programa es estándar (Por ejemplo al realizar un formula del esquema de cálculo). Como nunca trabajamos con el programa superior, esto no es evidente.&lt;br /&gt;&lt;br /&gt;A mi la pregunta que realmente me intriga es ¿Para que sirve desmarcar este flag? O sea es evidente que es para no tener en cuenta los decimales al hacer los cálculos, pero para que?&lt;br /&gt;&lt;br /&gt;Se aceptan sugerencias. Algunas posibilidades son:&lt;br /&gt;&lt;br /&gt;- para perder varias horas de tu vida buscando la razón.&lt;br /&gt;- para poner nervioso a todo el mundo el día de un arranque.&lt;br /&gt;- Fue el resultado de una apuesta entre dos programadores de Walldorf en 1992.&lt;br /&gt;- Es una herencia de R/2. No queda nadie vivo que sepa la razón de por qué era así en R/2.&lt;br /&gt;- Todas las anteriores.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-8302084643249609442?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/8302084643249609442/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=8302084643249609442' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8302084643249609442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8302084643249609442'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/01/mi-programa-no-sabe-dividir.html' title='MI PROGRAMA NO SABE DIVIDIR!'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2527906068661406548</id><published>2008-01-14T11:52:00.001+01:00</published><updated>2008-01-14T12:09:55.470+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fichero'/><title type='text'>LEER UN FICHERO TXT CON TABULADORES</title><content type='html'>&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } &lt;/style&gt;&lt;div style="text-align: justify;"&gt;Cuando se quiera leer un fichero del tipo txt tabulado la función &lt;span style="font-weight: bold;"&gt;GUI_UPLOAD&lt;/span&gt; tiene un parámetro para tal efecto:  &lt;span style="font-style: italic;"&gt;has_file_separator&lt;/span&gt;. Marcando este parámetro de la función a 'X' devuelve correctamente cada campo tabulado del fichero en los campos de la tabla interna que se ha puesto en la recepción de la susodicha función.&lt;br /&gt;&lt;br /&gt;En el caso de que no se marcara este parámetro sucederá que te devolverá el registro del fichero como un churro de carácteres donde cada campo estará separado por # aunque no lo entederá como carácter si tu intención es hacer un split sobre el string devuelto.&lt;span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2527906068661406548?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2527906068661406548/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2527906068661406548' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2527906068661406548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2527906068661406548'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/01/leer-un-fichero-txt-con-tabuladores.html' title='LEER UN FICHERO TXT CON TABULADORES'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2750707545208852695</id><published>2008-01-09T18:41:00.000+01:00</published><updated>2008-01-09T18:46:50.297+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sapscript'/><category scheme='http://www.blogger.com/atom/ns#' term='formularios'/><title type='text'>IMPRESIÓN DE TEXTOS EN VERTICAL CON SAPSCRIPT</title><content type='html'>Muy util para, por ejemplo, al imprimir un formulario, que nos escriba la linea del registro mercantil en un lateral de la hoja en formato vertical.&lt;br /&gt;&lt;br /&gt;Preliminares.&lt;br /&gt;Para poder imprimir textos en vertical con SAPSCRIPT, primero de todo necesitaremos privilegios de administrador o Sap_all.&lt;br /&gt;&lt;br /&gt;·         Nos vamos a la transacción SPAD&lt;br /&gt;&lt;strong&gt;·&lt;/strong&gt;         En: [dispositivos de salida],  le daremos a (visualizar).&lt;br /&gt;&lt;strong&gt;·&lt;/strong&gt;         y una vez dentro le daremos al icono de modificar con lo que nos aparecen todas las opciones, entre ellas, nuevo y creación con modelo.&lt;br /&gt;&lt;strong&gt;·&lt;/strong&gt;         Crearemos un nuevo dispositivo ( o con modelo copiando el dispositivo LOCL a ZLOCL.&lt;br /&gt;&lt;strong&gt;·&lt;/strong&gt;         volveremos al inicio de la transacción y activaremos "GESTIÓN TOTAL" y clickaremos en la pestaña "Tp. dispos." (tipos de dispositivos).&lt;br /&gt;&lt;strong&gt;·&lt;/strong&gt;         Le daremos a (visualizar) en [Print controls] y una vez dentro en modificar (        ),  y  crear un nuevo print control.&lt;br /&gt;&lt;strong&gt;·&lt;/strong&gt;         Crearemos un PrintControl que llamaremos (P.ej.:) ZM100. y le daremos una definición.&lt;br /&gt;&lt;strong&gt;·&lt;/strong&gt;         Volvemos a SPAD/Tp.dispos. y en [Tipos de dispositivos] le daremos a (Visualizar). seleccionamos (P.ej.:)  HPLJ4 y le damos doble-click. Le damos ahora a la pestaña (Print Controls).&lt;br /&gt;Seleccionamos uno cualquiera de los print-controls y le damos a copiar o creamos una linea nueva .&lt;br /&gt;&lt;strong&gt;   ***&lt;/strong&gt; Según especificaciones del driver de la impresora, los comandos de impresión varian, pero podemos afirmar, que casi casi los drivers HP son un estandard,  con lo cual si conocemos sus ordenes de impresión, sus comandos, casi seguramente podremos usarlos con cualquier impresora del sistema (o al menos usarlos con pocas variaciones)&lt;br /&gt;&lt;strong&gt;·&lt;/strong&gt;         Para el caso que nos interesa, en el apartado Nom. (nombre, introduciremos el nombre del Print Control que hemos creado en el punto 7 (ZM100).&lt;br /&gt;&lt;strong&gt;·&lt;/strong&gt;         En (String de control) introduciremos lo siguiente:&lt;br /&gt;\e&amp;amp;a90P (con la barra)&lt;br /&gt;Lo que indica a la impresora que rote la pagina 90º (en el sentido de las agujas del reloj)&lt;br /&gt;&lt;strong&gt;·&lt;/strong&gt;         Repetiremos esto mismo para crear otro print-control que llamaremos ZM110 y que tendrá un String de control de valor [\e&amp;amp;aP]. que le da el valor original al sentido de impresión.&lt;br /&gt;&lt;br /&gt;En resumidas cuentas de lo que se trata es de engañar a la impresora para que a mitad de impresión, gire la  hoja, imprima el texto y vuelva a girar la hoja a la orientacion original.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2750707545208852695?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2750707545208852695/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2750707545208852695' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2750707545208852695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2750707545208852695'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/01/impresin-de-textos-en-vertical-con.html' title='IMPRESIÓN DE TEXTOS EN VERTICAL CON SAPSCRIPT'/><author><name>Dump Boy</name><uri>http://www.blogger.com/profile/16374237374666614377</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='9' src='http://1.bp.blogspot.com/-dMrtpfyEctc/TikyaLRxpSI/AAAAAAAAAA8/iVZfslLBX8s/s220/dumpboy.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5084450113058676749</id><published>2008-01-02T11:08:00.000+01:00</published><updated>2008-01-02T11:12:55.488+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Colaborar'/><title type='text'>AÑO NUEVO, COLABORADORES NUEVOS</title><content type='html'>&lt;div style="text-align: justify;"&gt;¿Quieres participar en el blog? ¿Sabes cositas de ABAP y SAP que no son muy comunes? Escribe un mail a &lt;span style="font-weight: bold; font-style: italic;"&gt;rafman.rfn@gmail.com&lt;/span&gt; contándonos brevemente quien eres y que experiencia tienes en el mundo SAP y si lo vemos conveniente serás un colaborador más.&lt;br /&gt;&lt;br /&gt;Hagamos grande este blog entre todos.&lt;br /&gt;&lt;br /&gt;2 Condiciones previas:&lt;br /&gt;- Añadir al blog cosas que sean poco comunes e interesantes&lt;br /&gt;- Respetar a los demás colaboradores y formatos&lt;br /&gt;&lt;br /&gt;Esperamos tu participación!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5084450113058676749?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5084450113058676749/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5084450113058676749' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5084450113058676749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5084450113058676749'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2008/01/ao-nuevo-colaboradores-nuevos.html' title='AÑO NUEVO, COLABORADORES NUEVOS'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-7761053909293028354</id><published>2007-12-04T16:53:00.001+01:00</published><updated>2008-02-28T10:01:10.262+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BSP'/><category scheme='http://www.blogger.com/atom/ns#' term='dynpros'/><category scheme='http://www.blogger.com/atom/ns#' term='SSO'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>COMO TRANSFERIR EL USUARIO SAP A UNA BSP LOCAL</title><content type='html'>&lt;span style="font-weight: bold;"&gt;OPCION 1. SINGLE SIGN ON.&lt;/span&gt;&lt;br /&gt;Es posible transferir la autentificación de un usuario desde SAPGUI a una BSP mediante la cookie de SSO (Single Sign On). Esto en palabras más llanas quiere decir que se puede llamar a una web generada con una BSP desde SAPGUI sin tener que volver a introducir el usuario y contraseña.&lt;br /&gt;1. Lo primero que debemos hacer es activar los tickets SSO de acceso para SAP:&lt;br /&gt;- Entrar en la transacción RZ10, seleccionar el perfil deseado y entrar en modo de modificación y actualización ampliada. Una vez dentro buscaremos los parámetros siguientes y les asignaremos nuevos valores:&lt;br /&gt; login/create_sso2_ticket = 1 -&gt; Si el ticket SSO incluye certificado&lt;br /&gt; login/create_sso2_ticket = 2 -&gt; Si el ticket SSO no incluye certificado (si tienes dudas pon este)&lt;br /&gt; login/accept_sso2_ticket = 1&lt;br /&gt;Si los parámetros no existen los crearemos.&lt;br /&gt;- Desde la transacción SICF activar el servicio /sap/public/myssocntl si no lo está ya.&lt;br /&gt;Para que estos cambios surtan efecto hay que reiniciar el servidor.&lt;br /&gt;2. Lo siguiente es preparar la llamada a la BSP:&lt;br /&gt;- Necesitaremos utilizar un control HTML_CONTROL desde donde lanzaremos la web, ya sea dentro del propio control de la dynpro como en el explorador web por defecto. En el programa SAPHTML_SSO_DEMO se puede ver un ejemplo.&lt;br /&gt;- Justo antes de mostrar la web con los métodos SHOW_URL o DETACH_URL_IN_BROWSER hay que llamar al siguiente método:&lt;br /&gt; CALL METHOD html_control-&gt;enable_sapsso&lt;br /&gt;   EXPORTING&lt;br /&gt;     enabled = 'x'.&lt;br /&gt;&lt;br /&gt;Más información: Nota OSS 612670 - SSO for local BSP calls using SAP GUI HTML Control&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OPCION 2. Paso de parámetros&lt;/span&gt;&lt;br /&gt;Otra opción bastante más cutre y mucho menos segura consiste en pasarle a la BSP el usuario y password como parámetros en la URL de la web. Para ello sólo hay que añadir los siguientes dos parámetros a la URL:&lt;br /&gt;?sap-user=[nombre_usuario]&amp;amp;sap-password=[password]&lt;br /&gt;No es recomendable si no se trata de conexiones locales ya que cualquiera que vea la URL puede ver el usuario y la contraseña pero puede servir para un apaño.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-7761053909293028354?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/7761053909293028354/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=7761053909293028354' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7761053909293028354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7761053909293028354'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/12/como-transferir-el-usuario-sap-una-bsp.html' title='COMO TRANSFERIR EL USUARIO SAP A UNA BSP LOCAL'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2220081528182965009</id><published>2007-11-20T15:16:00.000+01:00</published><updated>2007-11-22T10:47:36.519+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fields-exits'/><category scheme='http://www.blogger.com/atom/ns#' term='PRFB'/><category scheme='http://www.blogger.com/atom/ns#' term='cmod'/><category scheme='http://www.blogger.com/atom/ns#' term='exit'/><category scheme='http://www.blogger.com/atom/ns#' term='ampliación'/><category scheme='http://www.blogger.com/atom/ns#' term='field'/><title type='text'>FIELD-EXITS (PRFB  EN  CMOD)</title><content type='html'>Si, ya sabemos que no deben usarse, pero.... a veces la noche antes del arranque surge ese requerimiento que alguien olvidó decir/recoger y que el estándar no cubre y es eso o meterle un hachazo al estándar. Como siempre olvido la manera de activarlo, creo este post:&lt;br /&gt;&lt;br /&gt;CMOD --&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;ok&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;code&lt;/span&gt; = &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PRFB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para el que sea nuevo en esto (o muy puritano) recordaremos que es un &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;field&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;exit&lt;/span&gt;. Se trata de una funcionalidad que permite añadir código asociado a un campo de cualquier pantalla. A partir de la versión 4.6C los &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;field&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;exits&lt;/span&gt; están discontinuados. Aunque no he podido encontrar la razón oficial, teniendo en cuenta el efecto que potencialmente puede tener en el rendimiento (ejecutar un módulo de funciones con dios sabe qué en cada &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;intro&lt;/span&gt;) y las burradas que hacía la gente, supongo que el rendimiento es el principal responsable. En cualquier caso &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;tropocientas&lt;/span&gt; versiones después sigue siendo posible acceder a ella por lo que si la cosa se pone negra....&lt;br /&gt;&lt;br /&gt;Algunas  características:&lt;br /&gt;&lt;br /&gt;-El código se empaqueta en un módulo de función.&lt;br /&gt;&lt;br /&gt;-Es posible condicionar la ejecución de una &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;field&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;exit&lt;/span&gt; a un &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;dynpro&lt;/span&gt; concreta.&lt;br /&gt;&lt;br /&gt;- Se ejecuta en el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;PAI&lt;/span&gt; (bueno, justo antes), por lo que es necesario ejecutar alguna acción con la pantalla.&lt;br /&gt;&lt;br /&gt;-Existe un parámetro de instancia que controla si están activos o no: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;ABAP&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;FIELDEXIT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;-No pueden &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;debugarse&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;-Solo los campos de entrada disparan la ejecución de la &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;field&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;exit&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;-Solo los campos con &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_18"&gt;referencia&lt;/span&gt; al diccionario (elemento de datos) son susceptibles de tener &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;field&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;exit&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- El único parámetro de la función de &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;exit&lt;/span&gt; es el valor del campo. (Para recuperar valores de otros campos es posible enviarlos con otro &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;field&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;exit&lt;/span&gt;, con la pequeña limitación de que los &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;field&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;exit&lt;/span&gt; se ejecutan "aleatoriamente" o sea por que el campo esté &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_26"&gt;físicamente&lt;/span&gt; delante no quiere decir que se ejecute antes, tampoco es por orden alfabético, ni inverso,... (si alguien conoce el criterio que lo diga), aunque suelen comportarse siempre de la misma forma, por lo que si eres de los que en &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_27"&gt;Google&lt;/span&gt; pulsas "Voy a tener suerte" pues eso, prueba. Otra posibilidad algo más segura es tirar de las referencias en la memoria a las variables de los programas en &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_28"&gt;ejecución&lt;/span&gt; ( o sea (nombre _&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;include&lt;/span&gt;)nombre_variable ) (&lt;span style="color: rgb(255, 0, 0);"&gt;Nota a los editores: a ver quien hace un post de esto&lt;/span&gt;!!!!).&lt;br /&gt;&lt;br /&gt;- Otra cosa en el caso de table controls, la cosa se complica. En ese caso no es posible acceder en el momento en que se puede canviar el valor del campo al contenido de la tabla. Recordemos que el field-exit se ejecuta justo antes de PAI por lo que los valores de la pantalla no se han transmitido a los módulos de función. En ese caso hay que jugar con los SET y los GET.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2220081528182965009?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2220081528182965009/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2220081528182965009' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2220081528182965009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2220081528182965009'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/11/field-exits-prfb-en-cmod.html' title='FIELD-EXITS (PRFB  EN  CMOD)'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-7181620087535477285</id><published>2007-11-14T10:37:00.001+01:00</published><updated>2007-11-14T10:57:40.629+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><category scheme='http://www.blogger.com/atom/ns#' term='formularios'/><title type='text'>ERROR AL ESCRIBIR EL NUMERO 100 EN LETRAS</title><content type='html'>SAP dispone de la función SPELL_AMOUNT para traducir un numero a texto que se utiliza sobretodo para imprimir las cantidades de los cheques y documentos del estilo. Puede suceder que al imprimir números que contengan en número 100 en las centenas escriba lo siguiente:&lt;br /&gt;&lt;br /&gt;Número 1.160,00 -&gt; MIL &lt;span style="font-weight:bold;"&gt;100&lt;/span&gt; SESENTA con CERO céntimos.&lt;br /&gt;&lt;br /&gt;SAP no es capaz de escribir la palabra &lt;span style="font-weight:bold;"&gt;CIENTO&lt;/span&gt;.&lt;br /&gt;Para solucionar este error basta con modificar un registro de la tabla T015Z, que es donde se guardan los textos de los números.&lt;br /&gt;&lt;br /&gt;Buscamos la siguiente entrada:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_zF_iqb6T7xM/RzrEvrG4bNI/AAAAAAAACFE/IfGW91tAaB8/s1600-h/T015Z_BEF.JPG"&gt;&lt;img style="float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_zF_iqb6T7xM/RzrEvrG4bNI/AAAAAAAACFE/IfGW91tAaB8/s400/T015Z_BEF.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5132631048646585554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Y lo sustituimos editando la fila por:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_zF_iqb6T7xM/RzrFSLG4bOI/AAAAAAAACFM/4_LkLEyuBp0/s1600-h/T015Z_AFT.JPG"&gt;&lt;img style="float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_zF_iqb6T7xM/RzrFSLG4bOI/AAAAAAAACFM/4_LkLEyuBp0/s400/T015Z_AFT.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5132631641352072418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;No debemos olvidar meterlo en una orden de transporte si no queremos tener que irlo modificando en todas las máquinas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-7181620087535477285?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/7181620087535477285/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=7181620087535477285' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7181620087535477285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/7181620087535477285'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/11/error-al-escribir-el-numero-100-en.html' title='ERROR AL ESCRIBIR EL NUMERO 100 EN LETRAS'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_zF_iqb6T7xM/RzrEvrG4bNI/AAAAAAAACFE/IfGW91tAaB8/s72-c/T015Z_BEF.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2105747233135875896</id><published>2007-11-06T17:03:00.000+01:00</published><updated>2007-11-06T17:05:15.034+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Carpetas'/><category scheme='http://www.blogger.com/atom/ns#' term='Directorios'/><title type='text'>SELECCIONAR DIRECTORIOS DE TU PC</title><content type='html'>Para seleccionar un directorio solamente de tu PC hay que hacerlo de la siguiente manera:&lt;br /&gt;&lt;br /&gt;  DATA: gd_path TYPE string.&lt;br /&gt;&lt;br /&gt;  CALL METHOD cl_gui_frontend_services=&gt;directory_browse&lt;br /&gt;    EXPORTING&lt;br /&gt;      initial_folder  = 'C:'&lt;br /&gt;    CHANGING&lt;br /&gt;      selected_folder = gd_path.&lt;br /&gt;&lt;br /&gt;  CALL METHOD cl_gui_cfw=&gt;flush.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2105747233135875896?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2105747233135875896/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2105747233135875896' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2105747233135875896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2105747233135875896'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/11/seleccionar-directorios-de-tu-pc.html' title='SELECCIONAR DIRECTORIOS DE TU PC'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5170915125763728575</id><published>2007-11-02T13:30:00.000+01:00</published><updated>2007-11-02T13:41:18.139+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FUNCIONES'/><category scheme='http://www.blogger.com/atom/ns#' term='Dump'/><title type='text'>VERIFICAR EXISTENCIA FUNCION</title><content type='html'>Hola, para evitar el DUMP &lt;span style="color:#6600cc;"&gt;Function module "..." not found&lt;/span&gt;. porque no existe la función dinámica a la que se llama, puedes usar la función 'FUNCTION_EXISTS'&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;data: FUNCNAME LIKE RS38L-NAME value 'ZMI_FUNCION'.&lt;br /&gt;&lt;br /&gt;CALL FUNCTION 'FUNCTION_EXISTS'&lt;br /&gt;      EXPORTING&lt;br /&gt;            funcname = funcname&lt;br /&gt;     EXCEPTIONS&lt;br /&gt;            FUNCTION_NOT_EXIST = 1.&lt;br /&gt;&lt;br /&gt;if sy-subrc eq 0. &lt;span style="color:#333399;"&gt;"&lt;/span&gt;&lt;span style="color:#000099;"&gt; Si existe la función&lt;br /&gt;&lt;/span&gt;     CALL FUNCTION funcname&lt;br /&gt;....&lt;br /&gt;endif.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5170915125763728575?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5170915125763728575/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5170915125763728575' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5170915125763728575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5170915125763728575'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/11/verificar-existencia-funcion.html' title='VERIFICAR EXISTENCIA FUNCION'/><author><name>Pep del Viso</name><uri>http://www.blogger.com/profile/16044385404935629153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-3122137953439839812</id><published>2007-10-31T11:06:00.000+01:00</published><updated>2007-11-22T13:41:34.680+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynpros'/><title type='text'>DOBLE CLICK EN CAMPOS DE UN DYNPRO</title><content type='html'>Los campos de texto de un dynpro permiten activar una opción en los atributos (pestaña de visualización) que activa el evento del doble click sobre dicho campo. Para gestionar ese doble click debemos tener en el estatus de la dynpro el código de función que utilicemos en la tecla de función F2. Éste código de función será común a todos los campos que respondadn al doble click. Después en el tratamiento del OK_CODE del módulo USER_COMMAND podemos hacer un GET CURSOR FIELD y sabremos qué campo ha provocado el doble click.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-3122137953439839812?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/3122137953439839812/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=3122137953439839812' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3122137953439839812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3122137953439839812'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/10/doble-click-en-campos-de-un-dynpro.html' title='DOBLE CLICK EN CAMPOS DE UN DYNPRO'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-1872572853941295433</id><published>2007-10-19T10:00:00.000+02:00</published><updated>2007-10-19T11:32:32.681+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Excepcion'/><category scheme='http://www.blogger.com/atom/ns#' term='Dump'/><title type='text'>CONTROLAR UNA EXCEPCIÓN DE SISTEMA</title><content type='html'>Al más puro estilo C++ en Abap también podemos hacer try y catch. De hecho hay dos maneras aunque la primera parece estar obsoleta. En cualquier caso os muestro dos maneras de coger las excepciones del sistema y asi evitar el molesto dump.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1) &lt;/span&gt; Solo con la sentencia &lt;span style="font-weight: bold;"&gt;CATCH / ENDCATCH&lt;/span&gt;.&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;  l_num = 10.&lt;br /&gt;&lt;br /&gt;CATCH SYSTEM-EXCEPTIONS arithmetic_errors  = 5.&lt;br /&gt; l_resul = l_num / 0.&lt;br /&gt;ENDCATCH.&lt;br /&gt;&lt;br /&gt;IF sy-subrc = 5.&lt;br /&gt; WRITE 'Error!'.&lt;br /&gt;ENDIF.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) &lt;/span&gt;Con &lt;span style="font-weight: bold;"&gt;TRY y CATCH,&lt;/span&gt; manera que parece más correcta.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;DATA: oref TYPE REF TO cx_root,&lt;br /&gt;          text TYPE string.&lt;br /&gt;&lt;br /&gt;l_num = 10.&lt;br /&gt;&lt;br /&gt;TRY.&lt;br /&gt;   l_resul = l_num / 0.&lt;br /&gt; CATCH cx_sy_arithmetic_error INTO oref.&lt;br /&gt;   text = oref-&gt;get_text( ).&lt;br /&gt;ENDTRY.&lt;br /&gt;&lt;br /&gt;IF text IS NOT INITIAL.&lt;br /&gt; WRITE text.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;¿Pero qué excepciones de sistema puedo "catchear"? En la transacción se24 (clases) buscas por CX_SY* y te saldrán todas las clases que atrapan excepciones, y en la sentencia catch pones la que más te interese.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);font-size:78%;" &gt;    CATCH cx_sy_[la que sea]   &lt;la&gt;   INTO oref.&lt;/la&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-1872572853941295433?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/1872572853941295433/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=1872572853941295433' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1872572853941295433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1872572853941295433'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/10/controlar-una-excepcin-de-sistema.html' title='CONTROLAR UNA EXCEPCIÓN DE SISTEMA'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-8938011222294904315</id><published>2007-10-15T17:57:00.000+02:00</published><updated>2007-10-16T10:23:54.453+02:00</updated><title type='text'>DESCARGA DE FICHEROS A LOCAL OFF-LINE (via destino RFC)</title><content type='html'>Buscando otras cosas he encontrado en &lt;a href="http://sapabap.webcindario.com/pdf/RFCEXEC_manual.pdf"&gt;sap abap en castellano&lt;/a&gt; un manual para bajar ficheros off-line a local mediante un programa servidor RFC instalado en local y definiendo un destino RFC en el servidor.&lt;br /&gt;&lt;a href="http://sap4.com/"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-8938011222294904315?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/8938011222294904315/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=8938011222294904315' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8938011222294904315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8938011222294904315'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/10/descarga-de-ficheros-local-off-line-via.html' title='DESCARGA DE FICHEROS A LOCAL OFF-LINE (via destino RFC)'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5478011953236589835</id><published>2007-10-15T17:10:00.001+02:00</published><updated>2007-10-16T20:32:23.056+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Webdynpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows CE'/><category scheme='http://www.blogger.com/atom/ns#' term='PDA'/><title type='text'>CONFIGURAR UNA PDA CON WINDOWS CE PARA RESOLVER DOMINIOS</title><content type='html'>&lt;div style="text-align: justify;"&gt;Si se trabaja con PDA's que tengan instalado el sistema operativo Windows CE (ejem ejem) y querais resolver una dirección de un servidor os dareis cuenta rápidamente que por el método tradicional (archivo hosts) no se puede, básicamente porque no existe.&lt;br /&gt;&lt;br /&gt;Por lo tanto se deberá hacer lo siguiente:&lt;br /&gt;&lt;br /&gt;1) Agenciarte un editor de registro para tal efecto. (ya que Windows CE no lo incorpora)&lt;br /&gt;2) Colocarte en la siguiente carpeta HKEY_LOCAL_MACHINE\Comm\Tcpip\Hosts\&lt;br /&gt;3) Crear una nueva clave (key) con el nombre del dominio a resolver (p.e. servidor.dominio.com)&lt;br /&gt;4) Crear dentro de esta clave un valor binario llamado&lt;span style="font-style: italic; font-weight: bold;"&gt; ipaddr&lt;/span&gt; que en su valor contendrá la dirección IP en hexadecimal separadas por espacios. (p.e. C0 A8 01 01)&lt;br /&gt;5) Guardamos... et voilà!&lt;br /&gt;&lt;br /&gt;¿Que qué tiene esto que ver con SAP? Pues por ejemplo para ver una WebDynpro desde una PDA, porque las webdynpros solo admiten dominios estrictos, lo que viene a decir que no sirve poner la IP a pelo porque nos ofrecerá un bonito dump. Cosas de los de Walldorf...&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5478011953236589835?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5478011953236589835/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5478011953236589835' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5478011953236589835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5478011953236589835'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/10/configurar-una-pda-con-windows-ce-para.html' title='CONFIGURAR UNA PDA CON WINDOWS CE PARA RESOLVER DOMINIOS'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-6494630287444874324</id><published>2007-10-09T09:50:00.000+02:00</published><updated>2007-11-08T12:40:43.963+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sap'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='Webdynpro'/><category scheme='http://www.blogger.com/atom/ns#' term='ABAP'/><title type='text'>SOLUCIONAR ERROR DE INTERNET EXPLORER EN EDITOR WEBDYNPRO</title><content type='html'>El editor del layout de las view de una WebDynpro ABAP es una aplicación web que se visualiza integrado en el SAPGUI. A veces puedes encontrarte que al acceder a la se80 te aparezca un error en lugar del layout. Esto suele ser debido a que el servidor SAP no está registrado en el servidor de dominio. En caso de no poder registrarlo o carecer de él debe realizarse la siguiente entrada en el fichero host (c:\windows\system32\drivers\etc\hosts)&lt;br /&gt;&lt;br /&gt;10.1.1.1 (sustituir por la IP de vuestro servidor) server.empresa.com ([servidor].[dominio].[ext])&lt;br /&gt;&lt;br /&gt;esto es debido a que el WAS rechaza las peticiones que no se realizan con el nombre de dominio "estricto" (FQDN  Fully qualified domain name). Esto es aplicable por tanto no solo al editor si no a la ejecución de la aplicaciones Web desarrolladas en SAP (WebDynpro, BSP,...) y debe tenerse en cuenta de cara al despliegue de la aplicación.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-6494630287444874324?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/6494630287444874324/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=6494630287444874324' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6494630287444874324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6494630287444874324'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/10/solucionar-error-de-internet-explorer.html' title='SOLUCIONAR ERROR DE INTERNET EXPLORER EN EDITOR WEBDYNPRO'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-1487527538817411281</id><published>2007-10-08T18:16:00.000+02:00</published><updated>2007-10-08T18:25:09.751+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP GUI'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>VER EL "NEW VISUAL DESIGN" EN UN SAP GUI SCRIPT</title><content type='html'>&lt;div style="text-align: justify;"&gt;Cuando se hace un script para acceder al SAP GUI mediante un objeto embedido en el navegador la presentación que te da por defecto es la del aspecto visual antiguo. Para ver el nuevo, denominado &lt;span style="font-style: italic; font-weight: bold;"&gt;New Visual Design&lt;/span&gt;,  se debe hacer lo siguiente.&lt;br /&gt;&lt;br /&gt;1. Panel de control -&gt; CONFIGURACIÓN SAP&lt;br /&gt;2. En la pestaña &lt;span style="font-style: italic; font-weight: bold;"&gt;aplicaciones&lt;/span&gt; se deberá añadir el programa que está llamando al script. Como por ejemplo MSHTA.EXE en el caso que he probado yo.&lt;br /&gt;3. Editar el registro de windows (regedit) y mirar en la ruta &lt;span style="font-style: italic;"&gt;HKEY_CURRENT_USER/Sofware/SAP/General/Applications/&lt;nombre&gt;&lt;/span&gt; que el atributo Enjoy tenga el valor On. (En muchos casos esto no hay que hacerlo).&lt;br /&gt;&lt;br /&gt;Et voilà... magia potagia.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-1487527538817411281?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/1487527538817411281/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=1487527538817411281' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1487527538817411281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1487527538817411281'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/10/ver-el-new-visual-design-en-un-sap-gui.html' title='VER EL &quot;NEW VISUAL DESIGN&quot; EN UN SAP GUI SCRIPT'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4430019053697889976</id><published>2007-10-02T17:27:00.000+02:00</published><updated>2007-10-03T10:30:34.347+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='netweaver'/><category scheme='http://www.blogger.com/atom/ns#' term='7.0'/><category scheme='http://www.blogger.com/atom/ns#' term='unicode'/><category scheme='http://www.blogger.com/atom/ns#' term='transporte'/><category scheme='http://www.blogger.com/atom/ns#' term='ABAP'/><title type='text'>COMO SOBREVIVIR A LA PESADILLA UNICODE</title><content type='html'>&lt;div style="text-align: justify;"&gt;La versión 7.0 de Netweaver es "mandatory" &lt;a href="http://es.wikipedia.org/wiki/Unicode"&gt;unicode&lt;/a&gt;  y de 64 bits. Desde el punto de vista de la programación, eso (Unicode) quiere decir que para migrar programas Z de versiones anteriores hay que activar el flag de activar verificación unicode así como hacer algunas modificaciones al código (OPEN DATA SET, tratamiento de strings,...). Para ayudar en esta labor existe la transacción &lt;span style="font-weight: bold;"&gt;UCCHECK&lt;/span&gt;. Con ella es posible hacer el analisis de compatibilidad con unicode y, una vez solventados los problemas activar el flag de forma masiva generando una orden de transporte.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4430019053697889976?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4430019053697889976/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4430019053697889976' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4430019053697889976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4430019053697889976'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/10/como-sobrevivir-la-pesadilla-unicode.html' title='COMO SOBREVIVIR A LA PESADILLA UNICODE'/><author><name>r_daneel</name><uri>http://www.blogger.com/profile/03928486981180220890</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5973982904469756421</id><published>2007-09-18T16:56:00.001+02:00</published><updated>2007-09-18T16:57:38.044+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALV'/><category scheme='http://www.blogger.com/atom/ns#' term='dynpros'/><title type='text'>MOSTRAR UN POPUP CON UN ALV</title><content type='html'>&lt;div style="text-align: justify;"&gt;Muchas veces queremos mostrar un listado simple sin complicaciones al pulsar un botón. Hay una función muy interesante que. de muy fácil uso, te muestra un listado &lt;span style="font-weight: bold;"&gt;ALV&lt;/span&gt; en una pantalla tipo &lt;span style="font-weight: bold;"&gt;popup&lt;/span&gt;. Esta funcion es: &lt;span style="font-weight: bold;"&gt;REUSE_ALV_POPUP_TO_SELECT&lt;/span&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5973982904469756421?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5973982904469756421/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5973982904469756421' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5973982904469756421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5973982904469756421'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/09/mostrar-un-popup-con-un-alv.html' title='MOSTRAR UN POPUP CON UN ALV'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-8412629604289117977</id><published>2007-09-17T16:20:00.000+02:00</published><updated>2007-09-18T16:58:01.378+02:00</updated><title type='text'>IMPRIMIR IMAGENES EN COLOR DESDE SAPSCRIPT O SMARTFORMS</title><content type='html'>&lt;div style="text-align: justify;"&gt;En ocasiones puede suceder que al utilizar una imagen en formularios sapscript o smartforms procendente de la transacción SE78, en el momento de imprimirla el fondo blanco de la imagen aparezca de un color ligeramente grisáceo provocando un efecto bastante feo estéticamente. Este problema surge con imágenes con alta calidad de color y sólo es perceptible al cargarlas en la SE78. Para solucionarlo sólo tenemos que bajar la calidad del color de la imágen a 256 colores y los fondos blancos se verán perfectamente.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-8412629604289117977?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/8412629604289117977/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=8412629604289117977' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8412629604289117977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/8412629604289117977'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/09/imprimir-imagenes-en-color-desde.html' title='IMPRIMIR IMAGENES EN COLOR DESDE SAPSCRIPT O SMARTFORMS'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-6815894144623968755</id><published>2007-07-27T12:11:00.000+02:00</published><updated>2008-01-14T12:10:12.041+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fichero'/><category scheme='http://www.blogger.com/atom/ns#' term='PATH'/><title type='text'>SEPARAR EL NOMBRE DEL FICHERO DEL PATH</title><content type='html'>Si alguna vez necesitáis separar el nombre del fichero del &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;path&lt;/span&gt; donde se ubica podéis usar la función: 'SO_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SPLIT&lt;/span&gt;_FILE_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;AND&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;PATH&lt;/span&gt;'&lt;br /&gt;&lt;br /&gt;Adjunto ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);font-size:85%;" &gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PARAMETERS&lt;/span&gt;: &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;FILENAME&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;LIKE&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;RLGRAP&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;FILENAME&lt;/span&gt;.&lt;br /&gt;DATA: &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);font-size:85%;" &gt;F_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;PATH&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;LIKE&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;RLGRAP&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;FILENAME&lt;/span&gt;,&lt;br /&gt;F_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;NAME&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;LIKE&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;RLGRAP&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;FILENAME&lt;/span&gt;.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);font-size:85%;" &gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);font-size:85%;" &gt;&lt;span class="blsp-spelling-error"&gt;CALL&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;FUNCTION&lt;/span&gt; 'SO_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;SPLIT&lt;/span&gt;_FILE_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;AND&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;PATH&lt;/span&gt;'&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;EXPORTING&lt;/span&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;FULL&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;NAME&lt;/span&gt; = &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;FILENAME&lt;/span&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;IMPORTING&lt;/span&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;STRIPPED&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;NAME&lt;/span&gt; = F_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;NAME&lt;/span&gt;&lt;br /&gt;FILE_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;PATH&lt;/span&gt; = F_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;PATH&lt;/span&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;EXCEPTIONS&lt;/span&gt;&lt;br /&gt;X_ERROR = 1&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;OTHERS&lt;/span&gt; = 2.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;write&lt;/span&gt;: / '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;Filename&lt;/span&gt; ', &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;filename&lt;/span&gt;,&lt;br /&gt;/ '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;Name&lt;/span&gt; ', f_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;name&lt;/span&gt;,&lt;br /&gt;/ '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;Path&lt;/span&gt; ', f_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;path&lt;/span&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-6815894144623968755?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/6815894144623968755/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=6815894144623968755' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6815894144623968755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6815894144623968755'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/07/separar-el-nombre-del-fichero-del-path.html' title='SEPARAR EL NOMBRE DEL FICHERO DEL PATH'/><author><name>Pep del Viso</name><uri>http://www.blogger.com/profile/16044385404935629153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4942802490389581025</id><published>2007-07-19T10:51:00.000+02:00</published><updated>2007-07-19T16:00:00.645+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IMAGEN'/><title type='text'>CAMBIAR EL LOGO DEL MENÚ INICIAL</title><content type='html'>Para cambiar el logo del menú de inicio de SAP primero debemos cargar el logo en SAP. Usaremos la transacción SMW0 y marcaremos la opción "Datos binarios p.aplicaciones WebRFC", después le damos 2 veces al F8. Con el botón crear podemos crear un nuevo objeto y luego importar la imagen que queramos. &lt;br /&gt;Una vez tenemos nuestra imagen en el sistema ejecutaremos la transacción SM30 y editaremos la tabla SSM_CUST. En el registro con ID START_IMAGE escribiremos el código del objeto que hemos creado. Si queremos que la imagen se ajuste al tamaño del espacio podremos el valor YES en RESIZE_IMAGE.&lt;br /&gt;&lt;br /&gt;Notas: El formato de la imagen debe ser GIF o JPG. Es recomendable que la imagen no sea excesivamente grande ya que ocupará memoria en SAP y puede perjudicar el rendimiento de la máquina. La imagen se cambiará para TODOS los usuarios del sistema.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4942802490389581025?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4942802490389581025/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4942802490389581025' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4942802490389581025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4942802490389581025'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/07/cambiar-el-logo-del-men-inicial.html' title='CAMBIAR EL LOGO DEL MENÚ INICIAL'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5253330437926933708</id><published>2007-07-18T18:01:00.000+02:00</published><updated>2007-07-18T18:04:18.524+02:00</updated><title type='text'>AÑADIR INFORMACIÓN A LA PANTALLA DEL LOGON</title><content type='html'>&lt;div style="text-align: justify;"&gt;Para añadir información adicional a la pantalla del logon, por ejemplo la descripción de los mandantes, se debe hacer lo siguiente:&lt;br /&gt;&lt;br /&gt;- Transacción SE61&lt;br /&gt;- En clase de documento elegir "Texto general"&lt;br /&gt;- Crear el documento "ZLOGIN_SCREEN_INFO".&lt;br /&gt;- Escribir lo que te venga en gana.&lt;br /&gt;&lt;br /&gt;PD: El tipo de formato U sirve para los títulos&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5253330437926933708?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5253330437926933708/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5253330437926933708' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5253330437926933708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5253330437926933708'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/07/aadir-informacin-la-pantalla-del-logon.html' title='AÑADIR INFORMACIÓN A LA PANTALLA DEL LOGON'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-1183398763290011519</id><published>2007-07-11T11:07:00.000+02:00</published><updated>2007-07-11T11:12:27.499+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALV'/><category scheme='http://www.blogger.com/atom/ns#' term='Webdynpro'/><title type='text'>HACER UNA COLUMNA EDITABLE EN UN ALV WEBDYNPRO</title><content type='html'>&lt;div style="text-align: justify;"&gt;Hacer editable una columna en un ALV no es lo que se dice trivial precisamente. A continuación pongo el código necesario para tal efecto en el método WDDOINIT de la vista donde esté el ALV.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S52 { color: #0000FF; } &lt;/style&gt; &lt;span&gt;&lt;span class="L1S52"&gt;METHOD&lt;/span&gt; wddoinit .&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="L1S31"&gt;* recuperar las caracteristicas del ALV&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;   &lt;span class="L1S52"&gt;DATA&lt;/span&gt;: l_ref_interfacecontroller &lt;span class="L1S52"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52"&gt;REF&lt;/span&gt; &lt;span class="L1S52"&gt;TO&lt;/span&gt; iwci_salv_wd_table .&lt;br /&gt;  &lt;span class="L1S52"&gt;DATA&lt;/span&gt;: l_value &lt;span class="L1S52"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52"&gt;REF&lt;/span&gt; &lt;span class="L1S52"&gt;TO&lt;/span&gt; cl_salv_wd_config_table.&lt;br /&gt;  &lt;span class="L1S52"&gt;DATA&lt;/span&gt;: l_ref_cmp_usage &lt;span class="L1S52"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52"&gt;REF&lt;/span&gt; &lt;span class="L1S52"&gt;TO&lt;/span&gt; if_wd_component_usage.&lt;br /&gt;&lt;br /&gt;  l_ref_cmp_usage = wd_this-&gt;wd_cpuse_alv( ).&lt;br /&gt;  &lt;span class="L1S52"&gt;IF&lt;/span&gt; l_ref_cmp_usage-&gt;has_active_component( ) &lt;span class="L1S52"&gt;IS&lt;/span&gt; &lt;span class="L1S52"&gt;INITIAL&lt;/span&gt;.&lt;br /&gt;    l_ref_cmp_usage-&gt;create_component( ).&lt;br /&gt;  &lt;span class="L1S52"&gt;ENDIF&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;  l_ref_interfacecontroller = wd_this-&gt;wd_cpifc_alv( ).&lt;br /&gt;  l_value = l_ref_interfacecontroller-&gt;get_model( ).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style: italic; color: #808080; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } &lt;/style&gt; &lt;span&gt;&lt;span class="L1S31"&gt;* hacer editable la columna status&lt;/span&gt;&lt;br /&gt;  &lt;span class="L1S52"&gt;DATA&lt;/span&gt;: lr_column_settings &lt;span class="L1S52"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52"&gt;REF&lt;/span&gt; &lt;span class="L1S52"&gt;TO&lt;/span&gt; if_salv_wd_column_settings,&lt;br /&gt;        lr_input_field &lt;span class="L1S52"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52"&gt;REF&lt;/span&gt; &lt;span class="L1S52"&gt;TO&lt;/span&gt; cl_salv_wd_uie_input_field,&lt;br /&gt;        l_column &lt;span class="L1S52"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52"&gt;REF&lt;/span&gt; &lt;span class="L1S52"&gt;TO&lt;/span&gt; cl_salv_wd_column,&lt;br /&gt;        lr_table_settings &lt;span class="L1S52"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52"&gt;REF&lt;/span&gt; &lt;span class="L1S52"&gt;TO&lt;/span&gt; if_salv_wd_table_settings.&lt;br /&gt;&lt;br /&gt;&lt;span class="L1S31"&gt;* asignaciones&lt;/span&gt;&lt;br /&gt;  lr_column_settings ?= l_value.&lt;br /&gt;  lr_table_settings ?= l_value. &lt;br /&gt;&lt;br /&gt;&lt;span class="L1S31"&gt;* obtener la columna que queremos&lt;/span&gt;&lt;br /&gt;  l_column = lr_column_settings-&gt;get_column( &lt;span class="L1S33"&gt;'STATUS'&lt;/span&gt; ).&lt;br /&gt; &lt;br /&gt;&lt;span class="L1S31"&gt;* crear el parametro de entrada del metodo SET_CELL_EDITOR  &lt;/span&gt;&lt;br /&gt;  &lt;span class="L1S52"&gt;CREATE&lt;/span&gt; OBJECT lr_input_field&lt;br /&gt;    &lt;span class="L1S52"&gt;EXPORTING&lt;/span&gt;&lt;br /&gt;      value_fieldname = &lt;span class="L1S33"&gt;'STATUS'&lt;/span&gt;.&lt;br /&gt;  l_column-&gt;set_cell_editor( lr_input_field ).&lt;br /&gt; &lt;br /&gt;&lt;span class="L1S31"&gt;* finalmente hacerlo del modo escritura  &lt;/span&gt;&lt;br /&gt;  lr_table_settings-&gt;set_read_only( abap_false ).&lt;br /&gt;&lt;br /&gt;&lt;span class="L1S52"&gt;ENDMETHOD&lt;/span&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-1183398763290011519?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/1183398763290011519/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=1183398763290011519' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1183398763290011519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/1183398763290011519'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/07/hacer-una-columna-editable-en-un-alv.html' title='HACER UNA COLUMNA EDITABLE EN UN ALV WEBDYNPRO'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-6515588581215035001</id><published>2007-07-11T09:30:00.001+02:00</published><updated>2007-12-16T22:15:29.681+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='transporte'/><category scheme='http://www.blogger.com/atom/ns#' term='ordenes'/><title type='text'>DESCARGAR / CARGAR ORDENES LIBERADAS A LOCAL</title><content type='html'>&lt;div style="text-align: justify;"&gt;Buscando (otra cosa por supuesto) por la red he encontrado este &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;link&lt;/span&gt; &lt;a href="http://wiki.ittoolbox.com/index.php/Upload/download_SAP_transport_request"&gt;http://wiki.ittoolbox.com/index.php/Upload/download_SAP_transport_request&lt;/a&gt; con el código de un par de programas que permiten descargar ordenes a local y cargar ordenes locales en el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SAP&lt;/span&gt; al que estemos conectados.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-6515588581215035001?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/6515588581215035001/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=6515588581215035001' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6515588581215035001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/6515588581215035001'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/07/descargar-cargar-ordenes-liberadas.html' title='DESCARGAR / CARGAR ORDENES LIBERADAS A LOCAL'/><author><name>Pep del Viso</name><uri>http://www.blogger.com/profile/16044385404935629153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2497787405420998009</id><published>2007-07-10T12:09:00.000+02:00</published><updated>2007-07-11T12:06:06.973+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IDOC'/><title type='text'>BORRAR IDOCs</title><content type='html'>&lt;div style="TEXT-ALIGN: justify"&gt;Muchas veces queremos borrar IDOCs del sistema y no deseamos hacer archiving. El programa &lt;span style="COLOR: rgb(102,0,204)"&gt;RSETESTD&lt;/span&gt; &lt;span style="color:#993399;"&gt;- (Transacción WE11)&lt;/span&gt;  es la solución.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2497787405420998009?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2497787405420998009/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2497787405420998009' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2497787405420998009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2497787405420998009'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/07/borrar-idocs.html' title='BORRAR IDOCs'/><author><name>Pep del Viso</name><uri>http://www.blogger.com/profile/16044385404935629153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-3931321648218848439</id><published>2007-06-25T16:46:00.000+02:00</published><updated>2007-06-25T18:42:16.018+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALV'/><category scheme='http://www.blogger.com/atom/ns#' term='Webdynpro'/><title type='text'>MOSTRAR ICONOS EN UN ALV CON WEBDYNPROS</title><content type='html'>Para poder mostrar iconos en una celda de un ALV con webdynpros necesitamos utilizar dos campos de la estructura base del ALV. Uno de los campos servirá para guardar el nombre del icono y el otro es realmente el que muestra el icono.  En  nuestro ejemplo tenemos dos campos de tipo STRING, uno llamado ICONO, donde se guarda el nombre del icono y otro llamado ESTADO que será el que mostraremos en el ALV.&lt;br /&gt;En la función de tratamiento de los datos tendremos que rellenar el campo ICON con el icono que deseemos. Para ello podemos usar el include de iconos &amp;lt;icon&amp;gt;.&lt;br /&gt;En el método WDDOINIT de la vista hay que configurar el campo para mostrarlo como icono. Primero obtendremos la columna donde queremos mostrar el icono.&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style: italic; color: #808080; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } &lt;/style&gt; &lt;span&gt;&lt;span class="L1S31"&gt;* poner iconos&lt;/span&gt;&lt;br /&gt;l_column = l_value-&gt;if_salv_wd_column_settings~get_column( &lt;span class="L1S33"&gt;'ESTADO'&lt;/span&gt; ).&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Después generaremos un objeto de tipo imagen.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;  &lt;span class="L1S52"&gt;CREATE&lt;/span&gt; OBJECT lr_image.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; Se asigna el campo ICONO a la imagen y la imagen a la columna ESTADO.&lt;br /&gt;&lt;span&gt;&lt;br /&gt;&lt;span class="L1S31"&gt;* En el campo ICONO está el nombre del icono a mostrar en la columna ESTADO&lt;/span&gt;&lt;br /&gt;lr_image-&gt;set_source_fieldname( &lt;span class="L1S33"&gt;'ICONO'&lt;/span&gt; ).&lt;br /&gt;l_column-&gt;set_cell_editor( lr_image ).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Finalmente eliminamos el campo ICONO de la visualización ya que no nos interesa que aparezca el código del icono en el listado.&lt;br /&gt;&lt;span&gt;&lt;br /&gt;&lt;span class="L1S31"&gt;* borramos la columna ICONO, sólo es para uso interno&lt;/span&gt;&lt;br /&gt;l_value-&gt;if_salv_wd_column_settings~delete_column( &lt;span class="L1S33"&gt;'ICONO'&lt;/span&gt; ).&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-3931321648218848439?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/3931321648218848439/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=3931321648218848439' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3931321648218848439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3931321648218848439'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/06/mostrar-iconos-en-un-alv-con-webdynpros.html' title='MOSTRAR ICONOS EN UN ALV CON WEBDYNPROS'/><author><name>Formulario-Man</name><uri>http://www.blogger.com/profile/13510382201849395218</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2115722118357940773</id><published>2007-06-25T10:47:00.000+02:00</published><updated>2007-06-25T10:50:56.596+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALV'/><title type='text'>OBTENER LAS PROPIEDADES DE UN ALV</title><content type='html'>Para saber qué propiedades tiene un ALV (celda actual, scroll, celda seleccionada, etc...) que tenga un listado, no importa que esté llamada con cualquier función &lt;span style="font-style: italic;"&gt;REUSE&lt;/span&gt;, solamente hay que llamar a la función &lt;span style="font-weight: bold;"&gt;GET_GLOBALS_FROM_SLVC_FULLSCR.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2115722118357940773?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2115722118357940773/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2115722118357940773' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2115722118357940773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2115722118357940773'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/06/obtener-las-propiedades-de-un-alv.html' title='OBTENER LAS PROPIEDADES DE UN ALV'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-5250264711373088705</id><published>2007-06-07T16:09:00.000+02:00</published><updated>2007-06-07T16:16:20.530+02:00</updated><title type='text'>HACER QUE UNA ALV SEA INTERACTIVA (OOP)</title><content type='html'>&lt;div style="text-align: justify;"&gt;Si anteriormente explicábamos como hacer que una &lt;a href="http://saperosonline.blogspot.com/2007/04/hacer-que-una-alv-sea-interactiva.html"&gt;ALV fuese interactiva&lt;/a&gt; con el usuario, es decir, que en los campos editables de un &lt;span style="font-style: italic;"&gt;grid&lt;/span&gt; se escribiera algo y quedase guardado en la tabla interna, hoy vamos a explicar cuál es el comando homónimo en un ALV hecho con objetos con el que se utiliza para el grupo de funciones &lt;span style="font-weight: bold; font-style: italic;"&gt;REUSE_ALV&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Se trata de registra un evento en el &lt;span style="font-style: italic;"&gt;grid&lt;/span&gt; que hemos creado con la tecnología OOP. Exactamente con este código bastará.&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style: italic; color: #808080; } .L1S52 { color: #0000FF; } &lt;/style&gt; &lt;span&gt;&lt;span class="L1S31"&gt;* hacer que la ALV sea interactiva&lt;/span&gt;&lt;br /&gt;  &lt;span class="L1S52"&gt;CALL&lt;/span&gt; &lt;span class="L1S52"&gt;METHOD&lt;/span&gt; g_grid_alv-&gt;register_edit_event&lt;br /&gt;    &lt;span class="L1S52"&gt;EXPORTING&lt;/span&gt;&lt;br /&gt;      i_event_id = cl_gui_alv_grid=&gt;mc_evt_modified.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Donde el objeto &lt;span style="font-style: italic;"&gt;g_grid_alv&lt;/span&gt; es de la clase tipo &lt;span style="font-style: italic;"&gt;cl_gui_alv_grid&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-5250264711373088705?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/5250264711373088705/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=5250264711373088705' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5250264711373088705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/5250264711373088705'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/06/hacer-que-una-alv-sea-interactiva-oop.html' title='HACER QUE UNA ALV SEA INTERACTIVA (OOP)'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-3912303558714466923</id><published>2007-05-24T12:11:00.001+02:00</published><updated>2007-05-24T12:14:56.006+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sapscript'/><category scheme='http://www.blogger.com/atom/ns#' term='formularios'/><title type='text'>AÑADIR UN BITMAP A UN FORMULARIO SAPSCRIPT</title><content type='html'>&lt;div style="text-align: justify;"&gt;Si se quiere añadir un bitmap que se pueda ver desde la transacción &lt;span style="font-style: italic; font-weight: bold;"&gt;se78&lt;/span&gt; a un formulario sapscript sin necesidad de tener que transformarlo desde TIFF se puede conseguir mediante las siguiente instrucción:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/: BITMAP 'ZBMP' OBJECT GRAPHICS ID BMAP TYPE BCOL&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-3912303558714466923?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/3912303558714466923/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=3912303558714466923' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3912303558714466923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/3912303558714466923'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/05/aadir-un-bitmap-un-formulario-sapscript.html' title='AÑADIR UN BITMAP A UN FORMULARIO SAPSCRIPT'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-4946762460757620651</id><published>2007-05-24T09:24:00.000+02:00</published><updated>2007-05-24T09:29:47.191+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ALV'/><category scheme='http://www.blogger.com/atom/ns#' term='Webdynpro'/><title type='text'>PONER TOTALES DE UNA COLUMNA EN UN ALV WEBDYNPRO</title><content type='html'>Para añadir un total de una columna de un ALV de un webdynpro habrá que recuperar el campo del ALV del que queremos a hacer el total y añadirle una regla de agregación. El código es el siguiente dentro del &lt;span style="font-weight: bold; font-style: italic;"&gt;WDDOINIT &lt;/span&gt;para que se añada al inicio de cargar el ALV:&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;DATA: l_ref_interfacecontroller TYPE REF TO iwci_salv_wd_table .&lt;br /&gt;DATA: l_value TYPE REF TO cl_salv_wd_config_table.&lt;br /&gt;DATA: lr_field TYPE REF TO cl_salv_wd_field,&lt;br /&gt;      lr_aggr_rule TYPE REF TO cl_salv_wd_aggr_rule.&lt;br /&gt;&lt;br /&gt;l_ref_interfacecontroller = wd_this-&gt;wd_cpifc_alv( ).&lt;br /&gt;l_value = l_ref_interfacecontroller-&gt;get_model( ).&lt;br /&gt;&lt;br /&gt;lr_field = l_value-&gt;if_salv_wd_field_settings~get_field( 'VENTAS' ).&lt;br /&gt;lr_field-&gt;if_salv_wd_aggr~create_aggr_rule( ).&lt;br /&gt;lr_aggr_rule = lr_field-&gt;if_salv_wd_aggr~get_aggr_rule( ).&lt;br /&gt;lr_aggr_rule-&gt;set_aggregation_type( if_salv_wd_c_aggregation=&gt;aggrtype_total ).&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-4946762460757620651?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/4946762460757620651/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=4946762460757620651' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4946762460757620651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/4946762460757620651'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/05/poner-totales-de-una-columna-en-un-alv.html' title='PONER TOTALES DE UNA COLUMNA EN UN ALV WEBDYNPRO'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2561722924009631830</id><published>2007-05-22T10:52:00.000+02:00</published><updated>2007-05-22T10:57:55.921+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Webdynpro'/><title type='text'>MODIFICAR EL COLOR DE UNA COLUMNA EN UNA TABLA WEBDYNPRO</title><content type='html'>&lt;div style="text-align: justify;"&gt;Si tenemos una tabla corriente de un Webdynpro y queremos cambiar el color de una columna deberemos ir al método&lt;span style="font-weight: bold; font-style: italic;"&gt; WDDOMODIFYVIEW &lt;/span&gt;y copiar el siguiente código:&lt;br /&gt;&lt;br /&gt;     DATA: wd_table_column TYPE REF TO cl_wd_table_column.&lt;br /&gt;   &lt;br /&gt;     wd_table_column ?= view-&gt;get_element( 'TABLECOLUMN' ).&lt;br /&gt;     wd_table_column-&gt;set_cell_design( value = '02' ).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Hay que recuperar el elemento TABLECOLUMN (osea la columna de la tabla) y asignarle el diseño deseado, en este caso '02'.&lt;br /&gt;Los valores son los siguientes:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;00    standard&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;01    negative&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;02    positive&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;03    badvalue_dark&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;04    badvalue_medium&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;05    badvalue_light&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;06    criticalvalue_dark&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;07    criticalvalue_medium&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;08    criticalvalue_light&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;09    goodvalue_dark&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;10    goodvalue_medium&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;11    goodvalue_light&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;12    key_medium&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;13    group_level1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;14    group_level2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;15    group_level3&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;16    one&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;17    two&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;18    three&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;19    four&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2561722924009631830?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2561722924009631830/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2561722924009631830' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2561722924009631830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2561722924009631830'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/05/modificar-el-color-de-una-columna-en.html' title='MODIFICAR EL COLOR DE UNA COLUMNA EN UNA TABLA WEBDYNPRO'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7512010186908987712.post-2670991872773262226</id><published>2007-05-10T15:50:00.000+02:00</published><updated>2007-05-22T11:01:19.064+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP MM'/><category scheme='http://www.blogger.com/atom/ns#' term='BAPI'/><title type='text'>CREAR UN MOVIMIENTO DE MERCANCIAS 351 CON CENTRO ORIGEN Y DESTINO</title><content type='html'>&lt;div style="text-align: justify;"&gt;El caso que nos ocupa es hacer un movimiento 351 a un pedido de compras, emulando la transacción MB1B, con un centro de origen a otro de destino. Seguramente no descubra nada nuevo si os digo la bapi que hay que utilizar (  &lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } &lt;/style&gt; &lt;span&gt;BAPI_GOODSMVT_CREATE&lt;/span&gt;  ) pero nos hemos peleado bastante con la manera de llamarla, ya que nos devolvía errores muy diversos.&lt;br /&gt;&lt;br /&gt;Principalmente no hay que hacer nada raro, pero no hay que rellenar el campo MVT_IND que yo inicialmente le ponía una 'B' (referencia a pedido), pero por lo visto hay que dejarlo en blanco. Os paso el ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S52 { color: #0000FF; } &lt;/style&gt; &lt;span&gt;&lt;span class="L1S52"&gt;DATA&lt;/span&gt;: ls_gh &lt;span class="L1S52"&gt;LIKE&lt;/span&gt; bapi2017_gm_head_01,&lt;br /&gt;   ls_gc &lt;span class="L1S52"&gt;LIKE&lt;/span&gt; bapi2017_gm_code,&lt;br /&gt;   l_md &lt;span class="L1S52"&gt;TYPE&lt;/span&gt; bapi2017_gm_head_ret-mat_doc,&lt;br /&gt;   lt_gi &lt;span class="L1S52"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52"&gt;TABLE&lt;/span&gt; &lt;span class="L1S52"&gt;OF&lt;/span&gt; bapi2017_gm_item_create &lt;span class="L1S52"&gt;WITH&lt;/span&gt; &lt;span class="L1S52"&gt;HEADER&lt;/span&gt; &lt;span class="L1S52"&gt;LINE&lt;/span&gt;,&lt;br /&gt;   lt_rt &lt;span class="L1S52"&gt;TYPE&lt;/span&gt; &lt;span class="L1S52"&gt;TABLE&lt;/span&gt; &lt;span class="L1S52"&gt;OF&lt;/span&gt; bapiret2.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt; SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style: italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } &lt;/style&gt; &lt;span&gt;  ls_gh-pstng_date = sy-datum.&lt;br /&gt;ls_gc-gm_code = &lt;span class="L1S33"&gt;'04'&lt;/span&gt;.        &lt;span class="L1S31"&gt;"mb1b&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;lt_gi-material = ls_ekpo-matnr.&lt;br /&gt;lt_gi-plant = ls_ekko-reswk.&lt;span style="font-style: italic;"&gt; "centro de origen&lt;/span&gt;&lt;span class="L1S31"&gt;&lt;/span&gt;&lt;br /&gt;lt_gi-stge_loc = ls_ekpo-lgort.&lt;br /&gt;lt_gi-move_type = &lt;span class="L1S33"&gt;'351'&lt;/span&gt;.&lt;br /&gt;lt_gi-entry_qnt = &lt;span class="L1S32"&gt;1&lt;/span&gt;.&lt;br /&gt;&lt;span class="L1S31"&gt;&lt;/span&gt;  lt_gi-po_number = p_ebeln.&lt;br /&gt;lt_gi-po_item = p_ebelp.&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="L1S31"&gt;*  lt_gi-mvt_ind = 'B'. "importante no ponerlo&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;   &lt;span class="L1S52"&gt;APPEND&lt;/span&gt; lt_gi. &lt;span class="L1S52"&gt;CLEAR&lt;/span&gt; lt_gi.&lt;br /&gt;&lt;br /&gt;&lt;span class="L1S52"&gt;CALL&lt;/span&gt; &lt;span class="L1S52"&gt;FUNCTION&lt;/span&gt; &lt;span class="L1S33"&gt;'BAPI_GOODSMVT_CREATE'&lt;/span&gt;&lt;br /&gt; &lt;span class="L1S52"&gt;EXPORTING&lt;/span&gt;&lt;br /&gt;   goodsmvt_header  = ls_gh&lt;br /&gt;   goodsmvt_code    = ls_gc&lt;br /&gt; &lt;span class="L1S52"&gt;IMPORTING&lt;/span&gt;&lt;br /&gt;   materialdocument = l_md&lt;br /&gt; &lt;span class="L1S52"&gt;TABLES&lt;/span&gt;&lt;br /&gt;   goodsmvt_item    = lt_gi&lt;br /&gt;   &lt;span class="L1S52"&gt;return&lt;/span&gt;           = lt_rt.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Con esto y un bizcocho ya tienes el movimiento creado.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7512010186908987712-2670991872773262226?l=saperosonline.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://saperosonline.blogspot.com/feeds/2670991872773262226/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7512010186908987712&amp;postID=2670991872773262226' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2670991872773262226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7512010186908987712/posts/default/2670991872773262226'/><link rel='alternate' type='text/html' href='http://saperosonline.blogspot.com/2007/05/crear-un-movimiento-de-mercancias-351.html' title='CREAR UN MOVIMIENTO DE MERCANCIAS 351 CON CENTRO ORIGEN Y DESTINO'/><author><name>RaFmaN</name><uri>http://www.blogger.com/profile/10730928792879390502</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
