SlideShare una empresa de Scribd logo
1 de 192
Descargar para leer sin conexión
Blogdesap
  resumen 2010-11


http://blogdesap.blogspot.com
 Customizing, ABAP y noticias
Recopilación de los artículos publicados en blogdesap de los años 2010 y 2011
Puedes acceder a estos artículos y otros que voy publicando a través de

                                              http://blogdesap.blogspot.com
                                           http://www.facebook.com/blogdesap

Para seguir creciendo te agradezco que compartas este blog con tus amigos, conocidos y cualquier que esté interesado.
Puedes compartir este pdf libremente bajo las condiciones de la licencia Creative Commons




              Blogdesap: resumen 2010-11 por http://blogdesap.blogspot.com se encuentra bajo una Licencia
                  Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported.



Este PDF se ha generado gracias al proyecto http://fivefilters.org/ y a http://www.pdfill.com/pdf_tools_free.html

Las imágenes que aparecen publicadas son propiedad de sus autores y aparecen publicadas aquí bajo la licencia Creative
Commons que ellos mismos cedieron. A continuación se relaciona el origen de estas imágenes.

http://www.flickr.com/photos/wassmer/with/507367448/
http://www.flickr.com/photos/dangoodwin/
http://www.flickr.com/photos/21218849@N03/
http://www.flickr.com/photos/ex-smith/
http://www.flickr.com/photos/4nitsirk/
http://www.flickr.com/photos/22280677@N07/
http://farm3.static.flickr.com/2476/3554582379_1d2799f43f.jpg
http://farm1.static.flickr.com/14/93136022_25afa7e458.jpg
http://www.flickr.com/photos/n3wjack/4661409838/
http://www.flickr.com/photos/tapaponga/5320210904/
http://www.flickr.com/photos/smanography/3293101820/
http://www.flickr.com/photos/loop_oh/442225983/
http://www.flickr.com/photos/chucksimmins/3387412983/
http://www.flickr.com/photos/oarranzli/6006659634/
http://farm1.static.flickr.com/180/370973576_9c1c871c39.jpg
http://www.flickr.com/photos/timothymorgan/75593157/
http://www.flickr.com/photos/kaibara/2403072725/
http://farm4.static.flickr.com/3594/3548342923_ec24bb64cd.jpg
http://farm3.static.flickr.com/2066/2189073444_2d12b95515.jpg
http://www.flickr.com/photos/oarranzli/6269831858/
http://www.flickr.com/photos/adwentures/273706419/
http://www.flickr.com/photos/laurenmanning/2318794240/
http://www.flickr.com/photos/moneyblognewz/5264722308/
http://www.flickr.com/photos/teegardin/6094310934/
http://www.flickr.com/photos/richardwinchell/2831353173/
http://farm3.static.flickr.com/2568/4105756012_db89e4be50.jpg
http://www.flickr.com/photos/29456235@N04/5396894948/
http://www.flickr.com/photos/the_ewan/4197995951/
http://www.flickr.com/photos/field_museum_library/3589463707/
http://www.flickr.com/photos/wrobel/300002369/
http://www.flickr.com/photos/nationaalarchief/3333358117/
http://www.flickr.com/photos/amagill/3366720659/
http://farm4.static.flickr.com/3148/2899489909_07ba71a9fc.jpg
http://www.flickr.com/photos/imlsdcc/4669586118/
http://www.flickr.com/photos/cstrzrock/228748627/
http://www.flickr.com/photos/teegardin/5913014568/
http://www.flickr.com/photos/glennbatuyong/2594336182/
http://www.flickr.com/photos/kozumel/2228603119/
http://www.flickr.com/photos/jepoirrier/3266948575/
http://farm2.static.flickr.com/1129/1326652095_07b4d3d154.jpg
http://farm2.static.flickr.com/1358/1061729364_ef2813c845_m.jpg
http://www.flickr.com/photos/shht/2212700490/
http://www.flickr.com/photos/loop_oh/4023321360/
http://www.flickr.com/photos/oarranzli/6038438702/
http://www.flickr.com/photos/teegardin/6094263846/
http://www.flickr.com/photos/horiavarlan/
http://www.flickr.com/photos/zigazou76/3713380197/
http://www.flickr.com/photos/asurroca/51024419/
http://www.flickr.com/photos/mary-lynn/3517076586/
http://www.flickr.com/photos/dreamfish/3368619008/
http://www.flickr.com/photos/opensourceway/5392982007/
http://www.flickr.com/photos/sirspacepilot/5144846100/
http://www.flickr.com/photos/22280677@N07/3910685423/
http://www.flickr.com/photos/waterboysh/3400148085/
http://www.flickr.com/photos/redwoodphotography/3337240655/
http://www.flickr.com/photos/zigazou76/4481926257/
http://www.flickr.com/photos/library_of_congress/2179067793/
http://www.flickr.com/photos/zingyyellow/3237480458/
http://www.flickr.com/photos/sfllaw/302700951/
http://www.flickr.com/photos/jevnin/65560448/
http://www.flickr.com/photos/desigu/2735732309/
http://farm4.static.flickr.com/3393/4628277817_d0ab67f499.jpg
http://farm4.static.flickr.com/3393/4628277817_d0ab67f499.jpg
http://www.flickr.com/photos/oarranzli/5913181104/
http://www.flickr.com/photos/dm-set/4164144241/
http://farm3.static.flickr.com/2051/4515510954_2a2d6b1e67_m.jpg
http://www.flickr.com/photos/unanoslucror/5368674140/
http://farm4.static.flickr.com/3432/3190782601_8d28d13b32.jpg
http://farm4.static.flickr.com/3376/3518931365_1c26d256c9.jpg
http://www.flickr.com/photos/23126594@N00/2787395526/
http://www.flickr.com/photos/loozrboy/3023203627/
http://www.flickr.com/photos/loop_oh/3338084111/
http://farm2.static.flickr.com/1025/537590787_be834a854a.jpg
http://www.flickr.com/photos/vancouverfilmschool/3856598677/
http://farm2.static.flickr.com/1264/930660427_ab76c3de6a.jpg
http://www.flickr.com/photos/pleeker/5379549514/
http://www.flickr.com/photos/usnationalarchives/4265798115/
http://farm5.static.flickr.com/4014/4445019548_6bab33f713.jpg
http://www.flickr.com/photos/kheelcenter/5279194721/
http://farm1.static.flickr.com/75/195308824_94a800f3ed.jpg
http://www.flickr.com/photos/sblackley/1128813156/
http://farm3.static.flickr.com/2239/2072055045_8cb25cc173.jpg
http://www.flickr.com/photos/jess1820/5295917098/
http://www.flickr.com/photos/timoelliott/
http://www.flickr.com/photos/nasacommons/4861716142/

Los enlaces a los vídeos se encuentran en:

Navegación en queries SAP: http://youtu.be/54KsXMdY3vM
Crear equipos en SAP: http://youtu.be/INiiOMVnVHk
Envío del resultado de un job por mail: http://youtu.be/4pHYrLkjq4M
INDICE
0. Estreno del blog

ABAP
1. Query SAP (I): grupos de usuarios
2. Query SAP (II): infosets
3. Query SAP (III): crear una query
4. ABAP en queries: programas integrados
5. Navegación en queries
6. Una plantilla ABAP
7. Listados ALV
8. Crear variantes de report
9. Exportar listados ALV a hojas de cálculo
10. Recursos de programación ABAP
11. Batch input recorder
12. Procesar juegos de datos de batch input
13. Extracción de información a partir de jobs
14. Parametrización de tablas de control (table control) en transacciones
15. Crear tablas transparentes y estructuras
16. Vistas de actualización de tablas
17. Tablas del diccionario

BC
18. Transporte de órdenes entre sistemas
19. Copia de órdenes de transporte entre sistemas no conectados
20. Protección de mandantes
21. Documentos adjuntos GOS
22. Gestión de autorizaciones

FI
23. Periodos contables
24. Crear asientos contables
25. Códigos de operación en la norma 43 (España)
26. Traspaso de partidas entre documentos
27. IVA: una guía para el aumento en SAP
28. Retención del IRPF ampliada en clientes
29. Cierre del ejercicio

CO
30.Cierre del ejercicio
31. Clases de coste primarias
32. Clave de periodificación en contratos
33. Imputación por defecto de clases de coste
34. Modificar la cuenta de resultados

MM
35. Estrategias organizativas en compras
36. Determinar categorías de valoración
37. Determinación de cuentas en compras automáticamente
38. Tolerancias de precio en pedidos de compra
39. Verificación de facturas dobles
40. Modificación en masa de precios de proveedores
41. Movimientos de materiales entre sociedades
42. Actualización del registro info en pedidos de compras
43. Análisis de materiales obsoletos
44. Liberación de pedidos de compras
45. Inventarios puntuales
46. Inventarios periódicos

PM
47. Equipos en SAP
48. Planificación de mantenimientos preventivos
49. Impresión de órdenes de mantenimiento
50. Log de modificaciones en órdenes
51. Verificación de disponibilidades en órdenes de mantenimiento
52. Tabla de planificación de capacidades: colores
53. Tabla de planificación de capacidades: selección
54. Tabla de planificación de capacidades: layout
55. Horarios de trabajo de personal

PP
56. Definición de turnos y horarios en puestos de trabajo
57. Calendarios de trabajo en SAP
58. Stocks de seguridad (I): stock mínimo
59. Stocks de seguridad (II): perfil de cobertura
60. Gestión de la demanda por punto de pedido
61. Compensación de necesidades primarias

PS
62. Gestión de reclamaciones (I)
63. Gestión de reclamaciones (II)

SD
64. Fichero de población
65. Verificación de datos maestros: clientes
66. Condiciones de pago
67. Crear precios de venta
68. Gestión del riesgo en clientes
69. Determinación y substitución de materiales en ventas
70. Cross-selling
71. Ofertas y facturación de órdenes de servicio
72. Control de copia de documentos de ventas
73. Impresión de documentos en Comercial
74. Textos y observaciones en pedidos de venta
75. Añadir campos en listas de documentos comerciales
76. Anulación de facturas en masa
77. Sistema info de ventas
78. Simplificación de pantallas con variantes de transacción

VARIOS
79. Cambios en masa
80. Rangos numéricos
81. Roll out de una empresa (I): estructura de la empresa
82. Roll out de una empresa (II): módulos
83. Roll out de una empresa (III): gaps y desarrollos ABAP
84. Roll out de una empresa (IV): datos maestros

SAP
85. Enlaces relacionados con SAP
86. Especial Demo Jam
87. SAPTechEd Berlín 2010
88. Demo Jam SAPTechEd Las Vegas 2010
89. SAPPHIRENOW 2010
90. SAP Streamwork
91. Movilidad en SAP
92. IDES
20 December, 2011 | created using fivefilters.org


Estreno del blog                                                        módulos han ido evolucionando también. Yo emplearé la
                                                                        terminología de módulos como la he conocido, aunque es posible
                                                                        que en algunos casos ya no se los conozca como módulos sino
                                                                        como soluciones.

                                                                        SAP-AC: Contabilidad General.
                                                                        SAP-IM: Gestión de Inversiones.
                                                                        SAP-EC: Controlling Empresarial.
                                                                        SAP-RE: Bienes e Inmuebles.
                                                                        SAP-FI: Finanzas.
                                                                        SAP-CO: Controlling.
                                                                        SAP-TR: Tesorería.
                                                                        SAP-PS: Proyectos.
                                                                        SAP-WF: Workflow.
                                                                        SAP-IS: Soluciones Verticales.
                                                                        SAP-HR: Recursos Humanos . También tenemos SAP-HCM.
                                                                        SAP-PM: Mantenimiento.
                                                                        SAP-QM: Calidad.
                                                                        SAP-PP: Planificación y Producción.
                                                                        SAP-MM: Materiales.
                                                                        SAP-SD: Ventas y Distribución.
                                                                        SAP-LO: Logística.
                                                                        SAP-LE: Ejecución de Logística.
                                                                        SAP-CS: Servicio al Cliente.
                                                                        SAP-EHS: Medio Ambiente.

                                                                        Así, pues, intentaré utilizar esta clasificación en los posts que
                                                                        vaya subiendo en la medida de lo posible.

                                                                        Espero que el blog sea de interés para los que ahora estéis en
                                                                        este mundo del SAP y que no dudéis en dejar vuestros
                                                                        comentarios.

                                                                        Imagen de cabecera | Birkenzweig a través de Wylio
Bienvenidos al blog blogdesap.blogspot.com. El objetivo con el
que nace este blog es ser un lugar de información en el trabajo
diario con SAP. En él intentaré plasmar parte de las experiencias
que he tenido con SAP tanto desde un punto de vista funcional
como técnico. El blog recogerá, desde el punto de vista de un
consultor, tanto cuestiones de parametrización como de
programación ABAP.

A día de hoy, la Wikipedia define SAP como:

“a multinational software development and consulting
corporation, which provides enterprise software applications and
support to businesses of all sizes globally. Headquartered in
Walldorf, Germany, with regional offices around the world, SAP
is the largest software enterprise in Europe and the fourth
largest software enterprise in the world as of 2009. [2] The
company’s best known product is its SAP Enterprise Resource
Planning (SAP ERP) software.”

Es decir, SAP es la compañía. Y de entre los diferentes productos
que SAP comercializa, este blog tratará sobre el “Enterprise
Resource Planning” ERP de SAP, heredero de lo que se había
llamado SAP R/3, y cuyo nombre actual es SAP ECC.

Si bien es verdad que la terminología que emplea actualmente
SAP en su producto ha ido evolucionando, la base del producto
sigue siendo la misma, crear un entorno de gestión de
empresarial, donde cada área de la empresa esté integrada en
una estructura global. Anteriormente, estas áreas se definían por
módulos, pero a medida que el producto ha evolucionado, estos


                                                                    1
20 December, 2011 | created using fivefilters.org


Query SAP (I): grupos de                                                   Asignamos los usuarios: botón ‘Asignar usuario y Infosets”.
                                                                           Para permitir que un usuario modifique las queries del

usuarios                                                                   grupo de usuarios debemos mantener marcado el flag de
                                                                           autorización junto al nombre de usuario.




                                                                           Guardamos.

                                                                       Y ya hemos acabado el primer paso en la creación de una query.

                                                                       Imagen inicial | dangoodwin


¿Cómo puedo recuperar información almacenada en el sistema
acerca de mis clientes? ¿Y acerca de mis proveedores? ¿Y de mis
ventas? En definitiva, ¿cómo puedo obtener listados de consulta
sobre los datos que anteriormente he entrado en mi SAP?

Éste es el primer post de un grupo de tres sobre queries en SAP.
Una query en SAP es una herramienta que nos permite recuperar
información de la base de datos para generar listados de
información en tiempo real.

Es verdad que existen herramientas de programación ABAP que
ya nos permiten hacer listados y recuperar información de las
tablas de la base de datos. Sin embargo, con las queries no
tenemos necesidad de saber programar (aunque puede ser una
ayuda) y hace el proceso de construcción de listados una tarea
más rápida e intuitiva.

Siempre que creemos una query debemos seguir tres pasos
siempre en el siguiente orden.

–I: Crear un grupo de usuarios

–II: Crear un infoset.

–III: Crea la query.

Definición de un grupo de usuarios

Un grupo de usuarios es el primer paso en la creación de una
query SAP. En cada grupo asignamos los nombres de los usuarios
que tendrán acceso final à la query que generaremos. No es más
que una autorización para poder utilizar nuestra query a un
grupo ordenado de personas.

Por ejemplo, podemos determinar que las consultas o queries del
módulo SD sólo las podrán consultar aquellas personas de los
departamentos de Ventas y Marketing. En este caso, crearemos
un grupo de usarios llamado VENTAS donde incluiremos el
nombre de los usuarios de estos departamentos.

Funcionalidad

Herramientas /Workbench ABAP /Utilidades /Query SAP /SQ03 —
Grupo de usuarios

     Creamos y asignamos un nombre a nuestro grupo de
     usuarios: botón ‘Crear’.



                                                                   1
20 December, 2011 | created using fivefilters.org


Query SAP (II): infosets                                                     momento que cree el infoset sólo necesito información de
                                                                             una de las dos. Así me ahorro problemas en el futuro.




                                                                             Creamos el enlace entre ambas tablas añadiendo la nueva
                                                                             tabla VBAP. Automáticamente, SAP nos propone las
                                                                             conexiones entre tablas. Sin embargo, podéis borrar el
                                                                             enlace y asociarlo a través de otros campos (siempre que
                                                                             sean del mismo tipo, de lo contrario SAP no lo aceptará). Yo
                                                                             voy a aceptar la propuesta que me hace SAP. Atención, en
                                                                             este punto hay que decir que debemos tener cuidado con las
                                                                             tablas que utilizamos en nuestro join. SAP no suele tomarse
                                                                             muy bien las tablas cluster como la BSEG. En este caso es
Definición                                                                   mejor utilizar tablas transparentes como la BSID, BSAD,
                                                                             BSIK o BSAK.
El segundo paso en la creación de una query es la definición del
infoset asociado. Los infosets son vistas especiales de datos           Tratar /Insertar tabla
donde se agrupan todos los campos que se utilizarán en una
query. En un infoset enlazaremos diferentes tablas a través de
campos comunes y seleccionaremos qué campos queremos que
estén disponibles para nuestras queries. A su vez, asignaremos el
infoset a uno o más grupos de usuarios (recordad el post anterior
sobre grupos de usuarios).

Funcionalidad

Siguiendo con el ejemplo del anterior post vamos a crear un
infoset de información de ventas, en concreto, de las cantidades
que nuestros clientes nos han pedido en un rango de fechas. Para
ello debemos saber que la tabla en la que se almacena la
información de pedidos de clientes en SAP se encuentra en la
tabla VBAK. La información de las cantidades solicitadas se                  Volvemos hacia atrás y creamos los grupos de campos
encuentra en la tabla VBAP. También debemos saber que ambas                  (Pasar a /Back). Esto son una especie de carpetas donde
tablas se relacionan entre sí a través del campo “documento de               asignaremos los campos de nuestras disponibles para las
ventas” (VBAK-VBELN /VBAP-VBELN). Ahora podemos empezar                      futuras queries. Yo escogeré crear ‘Grupos de campos
a construir nuestro infoset.                                                 vacíos’ con lo que me creará dos carpetas, una para la tabla
                                                                             VBAK y otro para la VBAP sin ningún campo asignado.
    Entramos en la transacción de infosets.
                                                                             Arrastramos los campos de las tablas (parte izquierda de la
                                                                             pantalla) hacia los grupos de campos que hemos creado
Herramientas /Utilidades /Query SAP /SQ02 — Infosets
                                                                             (parte derecha de la pantalla). En mi caso, arrastro los
    Creamos un infoset, le damos una descripción y una tabla                 campos solicitante y documento de ventas de la VBAK
    base sobre la que generaremos nuestro infoset. En nuestro                y cantidad y material de la VBAP. Como veis sobre los
    caso sobre la tabla VBAK. En este apartado existen varias                campos solicitante y número de material SAP escribe una T.
    opciones: podemos crear el infoset realizando la consulta                Eso significa que asociado a estos códigos SAP
    sólo sobre una tabla en exclusiva, sobre varias tablas, sobre            internamente también arrastra sus descripciones, por lo que
    una base de datos lógica o incluso sobre datos externos.                 no hay que hacer ninguna selección hacia las tablas de
    Hay que pensar bien qué opción escoger ya que una vez se                 descripciones del solicitante (KNA1) ni del material (MAKT).
    ha creado ya no hay vuelta atrás. Por ejemplo, si escogemos
    crear un infoset a través de una tabla, si en el futuro
    decidimos añadir una nueva tabla tendremos que borrar el
    infoset y crear uno nuevo. Y eso será un problema mayor si
    ya hemos creado la query subsiguiente pues en ese caso
    también habría que borrar antes la query. Personalmente,
    siempre creo las queries vía unión de tablas aunque en el


                                                                    1
Además, para complicarlo un poco más voy a añadir un                   Volvemos a ‘Grupo de campos’. Vemos ahora que en la parte
     campo que no está en ninguna de las tablas. Por ejemplo, si            izquierda de la pantalla nos aparece un nuevo campo de
     la posición ha sido rechazada (lo que se indica en SAP                 datos ‘Campos adicionales’ que contiene el campo que
     a través del campo VBAP-ABGRU) le voy a dar la                         hemos creado. Lo que hay que hacer ahora es crear un
     descripción ‘Posición rechazada’. Esto sólo lo podemos                 nuevo grupo de campos y arrastrar nuestro campo adicional
     hacer mediante programación ABAP, una herramienta muy                  a este grupo de campos (también podríamos arrastrarlo
     interesante que nos permiten los infosets.                             a uno de los grupos de campos que ya tenemos).


Pasar a /Detalles

     Creamos el campo adicional y le damos descripción y tipo.




                                                                            Sólo nos queda grabar, verificar y activar nuestro infoset.

                                                                       Infoset /Grabar

                                                                       Infoset /Verificar

                                                                       Infoset /Generar

                                                                            Ya podemos volver à la pantalla inicial y asignar el infoset al
                                                                            grupo de usuarios que creamos anteriormente a través de la
                                                                            transacción SQ01 (ver el post anterior).

                                                                       Pasar a /Asignación a grupo de usuarios




                                                                       Imagen inicial | Samuel Mann




     Escribimos el coding para el campo. Verificamos el código
     ABAP (corregimos si es necesario) y grabamos.




                                                                   2
20 December, 2011 | created using fivefilters.org


Query SAP (III): crear                                                 estándar). Mi experiencia personal me dice que no merece
                                                                       la pena el trabajo de crear una query en un mandante de

una query                                                              desarrollo y luego transportarla hasta nuestro mandante
                                                                       productivo. Será más rápido y más fácil testear nuestra
                                                                       query si la creamos directamente en el área estándar. Para
                                                                       eso vamos a Entorno /Ámbitos funcionales /Área estándar
                                                                       (específico de mandante).
                                                                       Nuestra query la crearemos dentro del grupo de usuarios
                                                                       que creamos en el paso I. Por eso, iremos a Tratar /Cambiar
                                                                       grupo de usuarios /Ventas.
                                                                       Damos un nombre a nuestra query y la creamos.
                                                                       Automáticamente nos pedirá que la asignemos a un infoset
                                                                       (recordar el paso II). Evidentemente, asignaremos el infoset
                                                                       que ya habíamos creado previamente (SD_VENTAS).




                                                                       En la siguiente pantalla, SAP nos pide una descripción de la
                                                                       query. Podemos también indicar la variante de la pantalla
                                                                       de selección que queremos que se utilice por defecto al
                                                                       ejecutar la query. Esta variante la podemos crear cuando ya
                                                                       hayamos generado nuestra query y añadirla aquí
                                                                       directamente (campo Variante estándar). En esta pantalla
                                                                       también aparecen datos de ‘Formato de salida’. Aquí le
                                                                       podemos indicar a nuestra query cómo queremos que se
                                                                       muestre. Por defecto, utilizamos el “List Viewer ABAP”, es
                                                                       decir, el ALV típico. Aunque SAP nos da la posibilidad
                                                                       incluso de lanzar el resultado directamente hacia un Excel si
                                                                       así se quiere (EXCEL).
Definición

El tercer paso en la creación de una query es, precisamente, la
creación de la query propiamente dicha. Esto es un listado de
información extraída de la base de datos. Para ello es necesario
que previamente hayamos creado el grupo de usuarios al que
permitiremos extraer la información. Asimismo, debemos haber
creado el infoset donde indicamos las tablas de información
necesaria.

Crear una query consiste en generar una pantalla de selección de
la información y una disposición (layout) de salida de toda esta
documentación.

Funcionalidad

Sigamos con el ejemplo. Creamos una query de información de
ventas.

     Entramos en la transacción de queries.

Herramientas /Workbench ABAP /Utilidades /Query SAP /SQ01 —
Queries

     Podemos crear nuestra query bien en área estándar bien en
     ámbito global. Esto significa que podemos crear la query
                                                                       Pasamos a ‘Selección de grupos de campos’. Aquí debemos
     y luego transportarla (ámbito global) o bien crear la query
                                                                       seleccionar todos nuestros grupos de campos del infoset. O,
     directamente en nuestro entorno productivo (área
                                                                       si alguno de los grupos de campos no los quisiéramos


                                                                   1
utilizar en nuestra query, entonces simplemente no lo
seleccionamos.
En ‘Lista básica’ nos muestra los campos disponibles en
cada uno de los grupos de campos. Debemos seleccionar
aquellos que nos interesa que se muestren en la query. En
el caso del ejemplo, seleccionaré todos los campos. Como
veis los campos de texto, aunque no los habíamos
seleccionado directamente en nuestro infoset, sí que nos              Y así el layout de salida.
aparecen dentro de los campos disponibles. Eso es
simplemente porque los campos de código solicitante
y número de material siempre llevan asociadas sus
descripciones por defecto.
En la pantalla de ‘Selecciones’ creamos nuestra pantalla de
selección. Es decir, los criterios a partir de los cuales
buscaremos la información. Yo voy a marcar los campos
solicitante, material y documento de ventas.                      A partir de aquí ya podemos utilizar la funcionalidad propia de
                                                                  los listados ALV como descargar la información en Excel, hacer
                                                                  filtros, sumas, sumas parciales, etc.

                                                                  Enlaces | sappedia (añadido el 31/10/2010)
                                                                  Imagen | Ex-Smith




‘Lista básica’: aquí construimos la disposición de salida
donde indicamos qué campos queremos que se muestren en
el listado y en qué orden. Además, podemos también darle
algún formato especial como colores, guiones de
separación, etc. Yo voy a marcar todos los campos
disponibles y además voy a hacer que sea de verde intenso.
Para hacer eso hay que arrastrar el campo
‘Afirmativo(intenso)’ sobre el campo que queremos que sea
de otro color.




Grabo.
Así queda la pantalla de selección.




                                                              2
24 December, 2011 | created using fivefilters.org


ABAP en queries: programas                                               grupo inconexo de transacciones programadas bajo nombres Z*
                                                                         que, en el mejor de los casos, habremos agrupado en menús de

integrados                                                               usuario o en menús de favoritos. También nos da la posibilidad
                                                                         de crear consultas de información impensables en un join simple
                                                                         de tablas creado mediante la conexión gráfica. Podemos, por
                                                                         ejemplo, unir dos tablas pero manteniendo una como cabecera
                                                                         y la otra debajo de ésta con sus posiciones.

                                                                         Veamos esto último. Queremos mostrar pedidos de compra, con
                                                                         una línea de cabecera para cada pedido y siguiendo a esta
                                                                         cabecera, toda la serie de posiciones del pedido.

                                                                             Creamos el infoset marcando ‘Obtención de datos mediante
                                                                             programa’ y ‘Programa integrado’.




                                                                             El infoset nos exigirá que introduzcamos una estructura de
                                                                             datos. Por lo tanto, previamente debemos ir al diccionario
                                                                             y crear la estructura que soportará la salida de información.
                                                                             Este paso previo no lo explico pero tenéis un ejemplo en el
                                                                             siguiente enlace.

                                                                             En este punto, los campos disponibles serán los que nos
                                                                             indique nuestra estructura. Arrastraremos estos campos al
                                                                             grupo de campos que tengamos creados. Lo interesante
Siguiendo con una serie de artículos anteriores donde ya                     aquí, es que se nos abre un botón que no habíamos visto
explicaba como crear queries e infosets voy a intentar mostrar               hasta ahora. Este botón se llama ‘Programa de lectura de
otra manera realizar queries. En este caso vamos a integrar                  datos’ y nos señala el lugar a través del que haremos
programación ABAP en queries SAP. Se trata de utilizar toda la               nuestra programación ABAP. Así que lo marcamos.
potencia que nos dan las presentaciones vía query para mostrar
información, pero haciéndolo sin utilizar los joins gráficos de
tablas.

En un principio, las queries SAP se entienden como una forma
sencilla de extraer información de la extensa base de datos de
SAP. Para obtener esta información, la mejor manera es
                                                                             El editor ABAP que se nos abre consta de diversos eventos
utilizar la conexión gráfica de tablas en nuestros infosets. Sin
                                                                             donde escribimos nuestros comandos ABAP:
embargo, para aquellos que ya tengan conocimientos sencillos de
programación ABAP, SAP provee una herramienta de                                  Declaración de variables.
programación integrada en infosets. Con ella, no necesitamos
utilizar ninguna conexión gráfica, sino que podemos obtener
información a través de sentencias SQL y presentarlas en el
formato que nos dan las queries SAP.

¿Qué ventajas puede tener esta forma de crear queries? En
principio, la gran ventaja que yo observo es la posibilidad de
utilizar todo el “envoltorio” que nos da una query, con sus ALV y 
layouts. Nos quita trabajo ya que sólo debemos concentrarnos en
recuperar la información. De la presentación de ésta ya se ocupa
la query. Además, nos da un entorno organizado de listados ya                     Pantalla de selección. Definimos el pedido de compras
que nos permite tener todas nuestras consultas bajo la                            como parámetro de selección en nuestra query.
apariencia de la transacción de queries SQ01. Nos evita tener un                  Podemos indicar una descripción del parámetro para



                                                                     1
que no aparezca el nombre de la variable al ejecutar la       Un listado de las posiciones de un pedido con una cabecera para
          query. Para ello tenemos que ir à la pestaña ‘Delimit’        el pedido. El ejemplo es muy sencillo y poco significativo pero
          y haciendo doble click sobre el parámetro cambiamos           nos da una idea de la potencia de la herramienta.
          el texto de selección.
                                                                        Imagen inicial | 4nitsirk




          Extracción de datos.




          Salida de información.




     Generamos nuestro infoset.

     Asociamos el infoset a un grupo de usuarios.

     Creamos nuestra query normalmente.

Y éste es el resultado:




                                                                    2
24 December, 2011 | created using fivefilters.org


Navegación en queries                                                   Ahora cuando lancemos la query y hagamos doble click sobre un
                                                                        registro del listado vamos a tener la opción de escoger entre
                                                                        navegar à la transacción VA03 o à la MB52.

                                                                        En el siguiente vídeo explicativo se muestran todos los pasos:

                                                                        La navegación se realiza al hacer doble click sobre cualquier
                                                                        punto de un registro, independientemente del campo sobre el
                                                                        que se pulse. Entonce, ¿cómo determina SAP cuál es el campo
                                                                        que tiene que utilizar para navegar? Pues lo hace en base al ID
                                                                        del parámetro. SAP recorre todos los campos del registro
                                                                        y enlaza el ID del registro correcto con el ID del parámetro de
                                                                        entrada de la transacción. Entonces para verificar que la
                                                                        navegación funcionará correctamente debemos determinar cuál
                                                                        es el ID del parámetro. Eso lo hacemos mediante los siguientes
                                                                        pasos:

                                                                             Vamos al campo de entrada de nuestra transacción, por
                                                                             ejemplo el de la VA03

                                                                        Logística /Comercial /Ventas /Pedido /VA03 – Visualizar
Una de las peculiaridades de SAP es que estemos donde estemos
el sistema suele permitirnos saltar entre transacciones.                     Pulsamos F1.
Simplemente debemos situarnos encima de un campo, hacer
doble click y el sistema navegará a otra transacción relacionada             Marcamos ‘Datos técnicos’ o el icono ‘Martillo’.
con ese campo. Por ejemplo, si en la transacción en la que
estamos hay un campo con el código de un material, si hacemos                Verificamos que existe un valor dentro de ‘ID parámetro’.
doble click sobre éste SAP navega hacia la transacción del
maestro de materiales de ese código en concreto.

En otros artículos ya había explicado cómo crear queries. En esta
ocasión voy a ampliar estos posts con esta sencilla funcionalidad
de SAP, la navegación.

Caso

Tenemos una query que nos permite listar posiciones de pedidos
de venta donde nos muestra las posiciones de pedidos con el
código de material. Queremos que al hacer doble click sobre un
registro en concreto SAP nos muestre el stock disponible en
almacén de ese material y el pedido de ventas completo asociado
¿Cómo lo hacemos?

Solución

    Modificamos nuestra query.

Herramientas /Workbench ABAP /Utilidades /Query SAP /SQ01 –
Queries

    Vamos al menú Pasar a /Asignación del informe.

    Indicamos que nuestro tipo de informe será una
                                                                        Hacemos lo mismo para el campo de nuestra query, pero desde
    transacción. Igual que una transacción podríamos indicar un
                                                                        la transacción SE11
    report ABAP, una query, etc.
                                                                        Herramientas /Workbench ABAP /Desarrollo /SE11 – Dictionary
    Introducimos el nombre de nuestra transacción (VA03 para            ABAP
    visualizar el pedido de ventas completo)
                                                                             Introducimos el elemento de datos (VBELN_VA) en el campo
    Repetimos de nuevo para la otra transacción (MB52 para                   ‘tipo de datos’.
    visualizar el stock del material).
                                                                             Visualizar.
    Grabamos.


                                                                    1
Y en la pestaña propiedades adicionales el valor del ID del
    parámetro debería ser el mismo que hemos obtenido
    anteriormente.

Así podemos estar seguros que la navegación se hará
correctamente desde nuestra query.

Imagen | Svadilfari




                                                                  2
20 December, 2011 | created using fivefilters.org


Una plantilla ABAP                                                     ***************************************************
                                                                       *Declaración tablas internas
                                                                       ***************************************************
                                                                       *data: begin of it_tabla occurs 0,
                                                                       *
                                                                       * end of it_tabla.

                                                                       ***************************************************
                                                                       *Includes
                                                                       ***************************************************
                                                                       *include

                                                                       ***************************************************
                                                                       *** SELECTION-SCREEN 
                                                                       ***************************************************
                                                                       selection-screen begin of block b1.
                                                                       *select-options:
                                                                       *parameters: 
                                                                       selection-screen end of block b1.

                                                                       ***************************************************
                                                                       *** AT SELECTION-SCREEN
                                                                       ***************************************************
                                                                       *at selection-screen output.
Para los que tenéis que programar asiduamente aquí os dejo una         *
pequeña plantilla que quizás os sea de utilidad al hacer reports
en ABAP. A mí me ha ayudado y servido de guía muchas veces.            *at selection-screen on xxxxx.
                                                                       *
Plantilla
                                                                       ***************************************************
*&————————————————————-*                                               *** START-OF-SELECTION
*& Report                                                              ***************************************************
*Autor: Fecha:                                                         start-of-selection.
***************************************************
* Modificaciones:                                                      ***************************************************
* Fecha:                                                               *** SUBRUTINAS 
***************************************************                    ***************************************************
report zxxxxxx
                                                                       *&———————————————————–*
 no standard page heading
                                                                       *&———————————————————–*
 line-size 255.
                                                                       *& Form rutina
***************************************************                    *&———————————————————*
*Tablas                                                                * text
***************************************************                    *—————————————————————-*
*tables:                                                               * –> p1 text
                                                                       * 
***************************************************
*Type pools
***************************************************
*type-pools:

***************************************************
*Constantes
***************************************************
*constants:

***************************************************
*Variables globales
***************************************************
*data:

***************************************************
*Estructuras
***************************************************




                                                                   1
20 December, 2011 | created using fivefilters.org


Listados ALV                                                            end of i_nif.

                                                                            Seguidamente buscamos la información y la cargamos en la
                                                                            tabla interna i_nif. Ésta será nuestra tabla de output
                                                                            a mostrar.
                                                                            Definimos las parametrizaciones de impresión del ALV.

                                                                       clear e_print.
                                                                       e_print-no_print_selinfos = ‘X’.
                                                                       e_print-no_print_listinfos = ‘X’.

                                                                            Definimos la denominación de cada uno de los campos
                                                                            y cómo se referenciarán.

                                                                       wa_fieldcat-fieldname = ‘NIF’.
                                                                       wa_fieldcat-tabname = ‘I_NIF’.
                                                                       wa_fieldcat-seltext_m = ‘NIF’.
                                                                       append wa_fieldcat to t_fieldcat.
                                                                       clear wa_fieldcat.

                                                                            Definimos el layout del ALV.

                                                                       clear e_layout.
                                                                       e_layout-zebra = ‘X’.
                                                                       e_layout-colwidth_optimize = ‘X’.

                                                                            Llamamos à la función que genera el listado ALV
                                                                            ‘REUSE_ALV_GRID_DISPLAY’. Aquí indicamos el nombre de
                                                                            nuestro report, el layout (cómo se mostrarán las columnas),
En este post explicaré cómo crear un listado ALV sencillo.                  el catálogo de campos, si queremos que se puedan o no
                                                                            grabar variantes de layout y la tabla de output que contiene
Descripción                                                                 la información a mostrar. Por supuesto, esta función
                                                                            permite diversas parametrizaciones del ALV que se pueden
     En primer lugar creamos nuestro report ALV.                            consultar directamente en la documentación de la función.

Herramientas /Workbench ABAP /Desarrollo /SE38 — Editor                call function ‘REUSE_ALV_GRID_DISPLAY’
ABAP                                                                    exporting
                                                                        i_callback_program = xrepid
     Definimos las variables que utilizaremos en nuestro report.
                                                                        is_layout = e_layout
     Por regla general yo he utlizado en los reports ALV que he
                                                                        it_fieldcat = t_fieldcat
     escrito las siguientes variables:
                                                                        i_save = ‘A’
                                                                        is_print = e_print
*********************************************************
                                                                        tables
*Type pools 
                                                                        t_outtab = i_nifnecesidad
*********************************************************
                                                                        exceptions
type-pools: slis.
                                                                        program_error = 1
*********************************************************
                                                                        others = 2.
*Variables globales
                                                                       if sy-subrc 0.
*********************************************************
                                                                       endif.
data: xrepid like sy-repid
*********************************************************
                                                                            Añadimos los datos de cabecera. Estos datos de cabecera se
*Declaración tablas internas
                                                                            entrarán en una rutina que no se llamará formalmente ya
*********************************************************
                                                                            que la llamada se realizará desde el módulo de funciones
data:
                                                                            ‘REUSE_ALV_GRID_DISPLAY’.
 wa_fieldcat type slis_fieldcat_alv,
 t_fieldcat type slis_t_fieldcat_alv,                                  * Cabecera grande
 e_layout type slis_layout_alv,                                        wa_heading-typ = ‘H’.
 e_print type slis_print_alv.                                          wa_heading-info = ‘Cabecera’.
                                                                       append wa_heading to t_heading.
data:
                                                                       clear wa_heading.
 begin of i_nif occurs 0,
 xxx                                                                   * Cabecera pequeña



                                                                   1
wa_heading-typ = ‘S’.                                                    data:
wa_heading-info = ‘Subcabecera’.                                          wa_fieldcat type slis_fieldcat_alv,
append wa_heading to t_heading.                                           t_fieldcat type slis_t_fieldcat_alv,
clear wa_heading.                                                         e_layout type slis_layout_alv,
                                                                          e_print type slis_print_alv,
     Si además queremos añadir un logo a nuestro listado                  wa_heading type slis_listheader,
     deberemos subir la imagen a SAP (clase ‘PICTURES’, tipo              t_heading type slis_t_listheader.
     clase ‘OT’). Para ello utilizaremos la transacción OAER. En
     el siguiente link encontraréis toda la información para             *********************************************************
     hacerlo. Seguidamente habrá que llamar al módulo de                 *Includes
     funciones ‘REUSE_ALV_COMMENTARY_WRITE’ con                          *********************************************************
     nuestro logo. El inconveniente de este logo es que es visible       include .
     en SAP, pero no es posible imprimirlo.                              *********************************************************
                                                                         *** SELECTION-SCREEN
call function ‘REUSE_ALV_COMMENTARY_WRITE’                               *********************************************************
 exporting
                                                                         *********************************************************
 it_list_commentary = t_heading
                                                                         * Pantalla de selección 
 i_logo = ‘LOGO’.
                                                                         *********************************************************
Ejemplo                                                                  *
El siguiente es un ejemplo de listado que nos permite validar            select-options s_stcd1 for kna1-stcd1.
números de NIF.                                                          *********************************************************
                                                                         * At selection-screen
*&———————————————————————*                                               *********************************************************
*& Report ZVALIDANIF
*&                                                                       *********************************************************
*&———————————————————————*                                               *** START-OF-SELECTION 
*&                                                                       *********************************************************
*&                                                                       start-of-selection.
*&———————————————————————*
                                                                         * Funcion validacion nif
report zvalidanif.                                                        perform valida_nif.
*********************************************************
*Tablas                                                                  * Log: cómo se cargará
*********************************************************                 perform display_alv.
tables: kna1.                                                            *********************************************************
*********************************************************                * Performs Adicionales
*Type pools                                                              *********************************************************
*********************************************************
type-pools: slis.                                                        *&———————————————————————*
*********************************************************                *& Form display_alv
*Constantes                                                              *&———————————————————————*
*********************************************************                * text
*constants:                                                              *———————————————————————-*
*********************************************************                * –> p1 text
*Variables globales                                                      *  p1 text
*********************************************************                *  p1 text
data:                                                                    *  p1 text
 g_contador(4) type n,                                                   *  p1 text
 xrepid like sy-repid.                                                   *  p1 text
*********************************************************                * 
*Declaración tablas internas 
*********************************************************

data:
 begin of i_nif occurs 0,
 nif like kna1-stcd1,
 error(10),
 end of i_nif.

*********************************************************
*Estructuras
*********************************************************



                                                                     2
20 December, 2011 | created using fivefilters.org


Crear variantes de report                                                   Se nos despliega una ventana donde nos pide si queremos
                                                                            grabar. Por supuesto, le damos una descripción a nuestra
                                                                            variante y decimos que sí queremos grabar.




                                                                        Creación de una variante con parámetros

                                                                        Los valores que grabamos en una variante no necesariamente
                                                                        han de ser fijos. Podemos indicar datos que varíen según el día
                                                                        en que se lanza nuestro report por ejemplo. O incluso podemos
                                                                        hacer que un campo se grabe sin valores o impedir que un
                                                                        usuario pueda introducir valor alguno en un campo. Mejor verlo
                                                                        con un ejemplo.

Definición                                                                  Desde el editor ABAP recuperamos nuestra variante.

En SAP llamamos variante a una imagen de información fija                   Marcamos ‘Modificar’ con ‘Atributos’.
que podemos introducir en una pantalla de selección de una
transacción. Con una variante podemos introducir valores en
cada uno de los campos de una pantalla de selección y grabarla
para más tarde recuperarla de nuevo à la hora de ejecutar el
programa o transacción.

Las variantes se asocian comunmente a reports y listados de
SAP. Es más difícil asociarlas a transacciones de pantallas. Para
más información sobre este segundo caso consultar un post
anterior.

Ya había hablado sobre la posibilidad de utilizar variantes para
transacciones estándar de SAP. En este caso, comentaremos en
más detalle cómo crear una variante, cómo protegerlas y dónde               Desde la pantalla de ‘Atributos’ podemos modificar los
utilizarlas.                                                                atributos de cada uno de los campos que hay en nuestra
Creación de una variante                                                    pantalla de selección.


     Vamos a nuestro editor ABAP.                                                Proteger campo: marcamos los campos de sociedad
                                                                                 para que no se pueda modificar el valor.
Herramientas /Workbench ABAP /Desarrollo /SE38 — Editor
ABAP                                                                             Suprimir campo: marcamos el campo ‘Vía de pago’
                                                                                 para que éste no sea visible directamente en la pantalla
     Seleccionamos                                                               de selección.


Objetos parciales /Variantes /Modificar                                          Campo obligatorio: marcamos el campo ‘característica’
                                                                                 para que sea obligatorio introducir un valor para poder
     Damos un nombre a nuestra variante (no es necesario que                     ejecutar el report.
     empiece por Z).
                                                                                 Variables: creamos una fecha dinámica (D) con el valor
     Marcamos ‘Crear’ con ‘Valores’.                                             del última día del mes. La variante siempre contendrá
                                                                                 el valor del último día del mes en el que se lance el
     Se nos abre la pantalla de selección de nuestro report.                     report.
     Indicamos los valores que queremos dar a cada uno de los
     campos de la pantalla de selección.

     Salimos de la pantalla

Pasar a /Back




                                                                    1
En reports. Ejecutamos el report y desde la pantalla de
                                                                             selección seleccionamos

                                                                        Herramientas /Workbench ABAP /Desarrollo /SE38 — Editor
                                                                        ABAP

                                                                        Pasar a /Variantes /Traer

                                                                             En transacciones. Podemos hacer que la transacción se
                                                                             inicie directamente con la variante que hemos creado. Para
                                                                             ello, modificamos la transacción Z y en el apartado variante
                                                                             indicamos nuestra variante. De este modo, siempre que
                                                                             ejecutemos la transacción, automáticamente se lanzará con
                                                                             la variante que hayamos adjuntado.

                                                                        Herramientas /Workbench ABAP /Desarrollo /Otras herramientas
                                                                        /SE93 — Transacciones




    Grabamos.

                                                                             En jobs de fondo. Cuando lanzamos un report por job de
                                                                             fondo es obligatorio indicar una variante de ejecución. En el
                                                                             momento de crear nuestro job debemos indicar la variante.


    El resultado es una pantalla con valores dinámicos.                 Sistema /Servicios /Jobs /Definición job

                                                                             En queries. Al igual que podemos iniciar transacciones con
                                                                             una variante prefijada, también podemos iniciar queries con
                                                                             una variante prefijada.




Transporte de una variante entre entornos

Por lo general, una variante se puede crear y modificar desde el
entorno productivo SAP. Sin embargo, también es posible crear
variantes desde entornos de desarrollo y posteriormente
transportarlas a entornos productivos. Por supuesto, en este caso
las variantes sólo serán modificables desde desarrollo.

Para crear una variante que pueda ser transportada simplemente
debemos crearla con un nombre que empiece por CUS&
                                                                        Imagen inicial | *n3wjack’s world in pixels




Utilización de variantes



                                                                    2
24 December, 2011 | created using fivefilters.org


Exportar listados ALV
a hojas de cálculo




                                                                           Observamos que SAP nos ofrece la opción del formato en
                                                                           que queremos exportar nuestro listado de un desplegable.
                                                                           Marcamos la opción ‘StarOffice/OpenOffice’ e indicamos
                                                                           que queremos ‘Aplicar siempre el formato especificado’.
En este post “cortito” hago un resumen de los formatos de los
que disponemos a la hora de exportar nuestros listados ALV
                                                                           Grabamos nuestra hoja de cálculo con extensión .ods
a una hoja de cálculo. Antiguamente sólo podíamos exportar a un
único formato de hoja de cálculo, el omnipresente Microsoft            La próxima vez que intentemos volver a exportar nuestro listado
Excel. Afortunadamente, SAP se ha adaptado a los tiempos y ya          ALV SAP ya no nos volverá a preguntar por el formato y,
disponemos de otra variedad de formatos de hojas de cálculo            directamente, nos ofrecerá únicamente la opción
donde exportar información en la versión ECC de SAP.                   ‘StarOffice/OpenOffice’. Eso es porque SAP ha guardado a nivel
Actualmente los formatos soportados à la hora de exportar un           de usuario la opción predefinida de formato en la tabla
listado ALV a una hoja de cálculo son:                                 SALV_BS_ADMIN.


     Microsoft Excel.

     MTHML de Microsoft Excel

     StarOffice y OpenOffice. También soporta LibreOffice.

     Office XML                                                        ¿Qué hacer para reiniciar el valor por defecto para
                                                                       exportar a hoja de cálculo?
     Microsoft Excel XXL (formato antiguo).
                                                                           Ejecutar el programa SALV_BS_ADMIN_MAINTAIN con
De acuerdo a nuestros hábitos como usuarios SAP podemos                    parámetro ‘Display’.
indicar nuestro formato preferido à la hora de exportar listados
ALV.

¿Cómo marcar por defecto un formato específico?

Imaginemos que queremos exportar un listado de pedidos
incompletos a formato OpenOffice

     Lanzamos la transacción ‘Documentos comerciales
     incompletos’.

Logística /Comercial /Ventas /Sistemas de información /Pedidos             Marcar y borrar el registro de usuario que deseemos.
/V.02 — Pedidos incompletos

     Vamos a exportar nuestro listado mediante el menú Lista
     /Exportar /Hoja de cálculo.



                                                                       Más información | notas 876916 y 1080608




                                                                   1
Imagen inicial | tapaponga




                             2
24 December, 2011 | created using fivefilters.org


Recursos de programación
ABAP




                                                                        De todos modos, también podemos obtener el mismo resultado
                                                                        mientras escribimos nuestro código, nos posicionamos sobre una
                                                                        sentencia y pulsamos el botón F1.

                                                                        Programación de listados ALV y otras demos

                                                                        Si buscamos a través del sistema de información los paquetes
                                                                        SLIS y SABAPDEMOS también encontramos el código ABAP de
                                                                        programas escritos por SAP para utilización en demos y cursos
                                                                        de aprendizaje.
En este artículo voy a escribir sobrer aquellas herramientas que
conozco y que SAP nos provee para aprender a programar en               Herramientas /Workbench ABAP /Desarrollo /SE38 – Editor ABAP
ABAP. Son transacciones con código fuente que os pueden servir
para vuestros cursos de aprendizaje en este lenguaje propietario            Entramos en el editor ABAP.
SAP.
                                                                            Marcamos el matchcode.
Documentación ABAP y ejemplos
                                                                            Marcamos ‘Selección nueva’.
Herramientas /Workbench ABAP /Utilidades /ABAPDOCU –
Biblioteca de ejemplo
                                                                            Escribimos el nombre del paquete SLIS o SABAPDEMOS.




                                                                        Centro de presentaciones Enjoy
En esta transacción, SAP agrupa el código fuente de varios
programas de ejemplo para el autoaprendizaje. A través de varios        Aquí se agrupan los códigos de varios ejemplos. Se trata de una
nodos nos ofrece el código para aprender el uso de las sentencias       transacción para los que ya tenéis cierto conocimiento de
más frecuentes, programación de dynpros, de orientación                 programación ABAP. Cotiene ABAP orientado a objetos, la
a objetos, incluso el interfasado con JavaScript.                       evolución del lenguaje ABAP que permite crear programas algo
                                                                        más complejos.
Documentación de palabras claves
                                                                        Herramientas /Workbench ABAP /Utilidades /DWDM –
Herramientas /Workbench ABAP /Utilidades /ABAPHELP –
                                                                        Presentaciones
Documentación palabra clave

Con la ayuda de esta transación podemos acceder à la biblioteca
ABAP donde se encuentran documentadas las sentencias
utilizadas en este lenguaje. Simplemente, entramos en la
transacción y escribimos la sentencia de la cual queremos
documentación.




                                                                    1
Comida en vuelo/primer plato STICKET Billete de avión
                                                                         STRAVELAG Ag.viajes

                                                                         Imagen inicial | Shermeee




Juegos de datos de prueba

Seguro que más de uno se acuerda de las tablas SPFLI, SCARR
o SFLIGHT. Pues bien, bajo el paquete SAPBC_DATAMODEL se
esconden todas estas tablas que tan frecuentemente son
utilizadas en los cursos de formación ABAP. Se trata del modelo
de datos de vuelos que se suministra para hacer pruebas,
programar listados de ejemplo, etc. Pero antes de poder hacer
uso de ellas, es imprescindible llenarlas con datos. Mediante el
programa SAPBC_DATAGENERATOR podemos marcar cuántos
registros introducir en estas tablas o borrar su contenido
completamente para empezar de nuevo.

Herramientas /Workbench ABAP /Desarrollo /SE38 – Editor ABAP
/Programa SAPBC_DATAGENERATOR 




 

Una vez llenas ya podemos observar cómo quedan cada una de
ellas. Aquí dejo el listado completa de estas tablas de formación.

Herramientas /Workbench ABAP /Resumen /SE16 – Browser
de datos

TABLA DESCRIPCIÓN SAIRPORT Aeropuertos SAPLANE Avión
SBOOK Reservación de vuelo directo SBUSPART Interlocutor
cia.aérea SCARPLAN Asignación compañía aérea-avión SCARR
Compañía aérea SCITAIRP Asignación ciudad-aeropuerto
SCOUNTER Mostrador de venta SCPLANE Avión de carga
SCURR Tp.cambio p.modelo datos formación Workben SCURX
Moneda p.modelo datos formación Workbench SCUSTOM
Clientes vuelo SDESSERT Comida en vuelo/postre SFLIGHT
Vuelo SFLIMEAL Asignación vuelo-comida SGEOCITY Situación
geográfica de una ciudad SMACOURSE Comida en vuelo/plato
principal SMEAL Comida en vuelo SMEALT Comida en
vuelo/descripción SMENU Menú SNVOICE Factura SPFLI
Itinerario de vuelos SPPLANE Avión de pasajeros SSTARTER



                                                                     2
24 December, 2011 | created using fivefilters.org


Batch input recorder                                                       Grabación /Exportar.




                                                                           Copiamos el texto de nuestra grabación tantas veces como
                                                                           materiales tengamos, pero en un nuevo fichero .txt. Al
                                                                           mismo tiempo, modificamos la información. Por ejemplo, si
                                                                           necesitamos modificar el precio de cien materiales,
De vuelta en el blog. Esta vez con la herramienta batch input              entonces copiaremos el texto cien veces. Tras ello,
recorder. Para empezar, decir que llamamos programas de batch              borraremos y re-escribiremos el código de cada material
input a una serie de programas que se han venido utilizando para           y del nuevo precio en cada pieza de texto de la grabación.
la transferencia en masa de información hacia sistemas SAP.                Ya sé lo que estáis pensando, que esto es más fácil de decir
A menudo, estos programas se han integrado en otras                        que de hacer. Sin embargo, utilizando una sencilla hoja de
transacciones estándar como la típica legacy. Sin embargo, si              cálculo y algunas fórmulas puede llegar a ser un proceso
nuestras necesidades no pueden ser cubiertas por herramientas              sumamente rápido*.
estándar SAP, entonces nosotros mismos tendremos que escribir
nuestros programas de batch input. El resultado de la ejecución            A continuación, importamos el nuevo fichero a SAP.
de un programa de batch input es siempre un juego de datos que             Utilizamos para ello el menú Grabación /Importar.
podremos procesar posteriormente para realizar la transferencia
de información. En este artículo intento explicar cómo la
herramienta de grabación de batch inputs puede ayudarnos
a crear juegos de datos de batch input sin tener ningún
conocimiento de programación ABAP.                                         Al final, lo que hemos conseguido es generar un nuevo juego
                                                                           de datos de batch input. Lo único que nos queda por hacer
Voy a dibujar un escenario sencillo donde queremos actualizar
                                                                           es presionar el botón ‘Procesar’ y nuestros datos subirán
información en SAP a través de una transacción. Por ejemplo,
                                                                           a SAP como en cualquier batch input.
nuestra empresa desea modificar el precio de venta de todos sus
materiales a través de la transacción de registros de condición
VK12. Por supuesto, si tenemos una base de datos de cientos de
materiales la modificación manual puede suponer un trabajo
considerable. Por lo tanto, en condiciones normales, lo lógico
sería pedir a nuestro desarrollador ABAP que escribiese un
programa de batch input que tuviese en cuenta nuestra
necesidad. El programa escrito sería capaz de generar un juego
de datos que repitiese las pantallas y la transacción cientos de
veces (tantas veces como materiales hubiese en nuestra base
de datos).

Ahora bien, si no tenemos ningún conocimiento de programación
ABAP ni persona que nos pueda ayudar, la herramienta de
grabación de batch inputs nos puede ser de gran utilidad à la
hora de crear nuestro juego de datos. Por supuesto, sin saber
ABAP y en unos sencillos pasos:

    En primer lugar, vamos à la transacción de grabación de
    batch inputs SHDB.
                                                                       Como véis, unos sencillos pasos que nos permiten actualizar
                                                                       información en masa sin haber escrito ni una sola línea de código
    Creamos una nueva grabación de la transacción VK12
                                                                       ABAP. Por supuesto, no recomiendo esta herramienta para
    a través del botón ‘Nueva grabación’.
                                                                       transferencias de información complejas. Ni tampoco lo
                                                                       recomiendo como sustituto de otras herramientas estándar
    Exportamos la grabación a un fichero .txt siguiendo el menú



                                                                   1
legacy o bapis. Pero sí puede ser una herramienta interesante
para afrontar problemas sencillos si no tenemos conocimientos
suficientes de lenguaje ABAP.

*Una ayuda para completar el fichero .txt con la información
a subir. Utilizad una hoja de cálculo como Microsoft Excel,
numerad aquellos campos que queráis completar y utilizad
fórmulas del tipo buscarv o consultav para buscar y reemplazar
con la información de vuestra base de datos.

Imagen inicial | loop_oh




                                                                 2
24 December, 2011 | created using fivefilters.org


Procesar juegos de datos de                                             Herramientas /Gestión /Monitor /SM35 – Batch input

                                                                        Esto es lo que vemos en esta transacción:
batch input
                                                                            Campos para la selección de nuestro juego de datos:
                                                                            podemos filtrar entre los juegos de datos creados por
                                                                            usuario (campo ‘Autor), en un rango de fechas (campos ‘De’
                                                                            ‘a’) o según el nombre del juego de datos (campo ‘JD’).




                                                                            Del resultado de nuestro filtro vemos todos los juegos de
                                                                            datos que existen en el sistema, con su estado (nuevo, en
                                                                            ejecución, ejecutado correctamente, ejecutado con errores,
                                                                            etc.). Son especialmente interesantes los campos ‘Cantidad
                                                                            total de transacciones’, ‘transacciones procesadas con
                                                                            errores’, ‘transacciones procesadas’ y ‘dynpros’.

                                                                                 Cantidad total de transacciones: nos informa sobre el
                                                                                 total de transacciones que se ejecutarán en nuestro
                                                                                 juego de datos. Por ejemplo, si estamos dando de alta
                                                                                 el precio de compra de un registro info, entonces nos
                                                                                 informa del número de veces que se llamará à la
                                                                                 transacción ME11.

                                                                                 Transacciones procesadas con errores: una vez lanzado
Llamamos batch input a un tipo de proceso que se lanza en fondo                  el juego de datos, los errores que han generado cada
y mediante el cual podemos simular la introducción de datos en                   una de las transacciones se acumulan en este campo.
una transacción tal y como lo haríamos si la estuviésemos
procesando manualmente. La diferencia es que mediante batch                      Transacciones procesadas correctamente: igual que el
input podemos hacer esto proceso de forma repetitiva, cosa que                   anterior, pero que han finalizado con éxito.
si tuviéramos que llevarlo a cabo manualmente se convertiría en
un proceso muy tedioso.                                                          Dynpros: nos indica el número de pantallas que se han
                                                                                 procesado durante la ejecución del juego de datos.
Típicamente la programación de un batch input se utiliza para la
carga masiva de datos en SAP. Sin embargo, el resultado de un
programa de batch input no es la transferencia de datos
directamente a SAP, sino la generación de un juego de datos. En
este juego se guarda toda la información de la transacción
relevante para la carga (pantallas por las que se pasa, datos que
se deben poner en cada campo y las teclas que se pulsan).
                                                                            También vemos una serie de pestañas. En cada una de ellas,
En este post explico cómo tratar estos juegos de datos generados
                                                                            los juegos de datos se observan según su estado. En la
de modo que la información contenida en éstos se transfiera
                                                                            pestaña inicial observamos todos los juegos de datos, en la
completamente al sistema.
                                                                            pestaña ‘nuevo’ sólo aquellos juegos de datos aún no
Procesado on-line                                                           procesados, en ‘erróneos’ aquellos juegos de datos que han
                                                                            dado al menos un error durante su procesamiento, etc.
Al crear un juego de datos podemos decidir si lo queremos
procesar al momento o sólo crear el “fichero” del juego de datos
para su procesamiento posterior. Si decidimos procesarlo
inmediatamente, mediante una técnica de programación de
batch inputs denominada de CALL TRANSACTION, entonces la
transferencia de información será inmediata.

Procesado en fondo
                                                                        ¿Y cómo procesamos nuestro juego de datos?
Si, por el contrario, decidimos procesar el juego de datos
posteriormente, entonces debemos ir a
                                                                            Marcamos el juego de datos que queremos ejecutar




                                                                    1
y pulsamos el botón ‘Ejecutar’.                                       camino a seguir es diferente. No podemos hacerlo directamente
                                                                          a través de la transacción SM35. En este caso lo haremos
    Automáticamente nos abre tres posibilidades:                          mediante el programa RSBDCSUB.

         Ejecutar visible: esta opción nos permite observar paso          Herramientas /Workbench ABAP /Desarrollo /SE38 — Editor
         a paso cada una de las pantallas por las que va                  ABAP
         pasando. Recomendada cuando estamos haciendo
         pruebas pero totalmente desaconsejada cuando                         Escribimos el nombre de nuestro programa RSBDCSUB
         queremos hacer una carga muy grande de información.                  y ejecutamos.
         Si queréis salir de la ejecución en visible podéis pararla           Escribimos el nombre del juego de datos a planificar y la
         escribiendo /bend en la ventana de comandos.                         fecha en que se creó.
                                                                              Seleccionamos en el menú Programa /Ejecutar en proceso
         Visualizar sólo errores: en este caso la transferencia de
                                                                              de fondo.
         información se realizará sin que nosotros lo veamos
         directamente, pero se deterndrá cuando detecte un                    Introducimos los parámetros de impresión (si queremos que
         error en la información contenida en el juego de datos.              se imprima el log de resultado).
         Nos permite corregir el error directamente cuando                    Escribimos la fecha y hora en que queremos que se inicie el
         sucede. Se puede utilizar con cargas no muy grandes                  procesado del juego de datos.
         de información, pero no en procesos muy largos ya que
         nos obliga a estar delante del ordenador.

         Invisible: es la opción que se utiliza comunmente. Nos
         permite proceso el juego de datos en fondo sin ninguna
         intervención por nuestra parte. Los resultados
         y posibles errores ya los veremos en el log de la
         transacción de batch inputs SM35. Mientras se está
         realizando la transferencia de información el juego de
         datos pasa à la pestaña ‘En tratamiento’. Sabremos que
         el proceso ha finalizado cuando nuestro juego de datos
         pase à la pestaña de ‘Procesado’.



                                                                          Para ver si hemos creado correctamente el job de fondo:

                                                                          Sistema /Servicios /Jobs /Resumen jobs




                                                                          Y, de nuevo, para ver el estado en que se encuentra el proceso
Si todo ha resultado correcto el status del juego de datos se
                                                                          del juego de datos:
marcará como ‘procesado’ y pasará à la pestaña correspondiente.
De lo contrario, se marcará como ‘erróneo’ y pasará à la pestaña          Herramientas /Gestión /Monitor /SM35 – Batch input
‘erróneos’.
                                                                          Imagen inicial | simminch
¿Cómo ver qué ha ido mal?

    Hacemos doble click sobre el juego de datos.

    Marcamos la pestaña ‘Logs’. Buscamos aquellas líneas
    resaltadas ya que serán las que contienen el mensaje
    de error.

Planificación del procesado en fondo

Finalmente, si decidimos procesar el juego de datos con
posterioridad al lanzamiento del batch input, pero además
deseamos hacerlo en una fecha y hora determinadas, entonces el



                                                                      2
24 December, 2011 | created using fivefilters.org


Extracción de información
a partir de jobs




                                                                         Seguidamente pulsamos el botón ‘Parámetros de impresión’
                                                                         y luego ‘Atributos’. Nos aseguramos de que no se imprima
                                                                         automáticamente el resultado, sino que el listado quede en
                                                                         el spool.




En más de una ocasión deseamos extraer información de SAP
para analizarla externamente por ejemplo con Microsoft Excel.
Sin embargo, debido al tiempo que ocupa la ejecución de la
transacción no podemos hacerlo on-line. Si nos fijamos en el
parámetro abap/timeout fijado en el sistema, éste es demasiado
bajo como para lanzar el programa en un proceso diálogo.
Podemos visualizar este parámetro en nuestro sistema en la
transacción

Herramientas /CCMS /Configuration /RZ10 – System profile                 Grabamos y volvemos à la pantalla anterior.

Entonces, ¿cómo podemos consultar información en SAP si la               Pulsamos el botón ‘Condición inicio’ e indicamos cuándo
ejecución de una transacción consume mucho tiempo? La                    queremos que se inicie. Podemos indicar que se lance
respuesta es programando un job de fondo para la transacción.            inmediatamente, en una fecha y hora concretas, cuando
                                                                         finalice otro job, etc. En este caso voy a indicar que se lance
Crear un job de fondo
                                                                         inmediatamente. Y grabamos.
Imaginemos que queremos consultar la lista de saldos de
entradas de mercancías

Logística /Gestión de materiales /Gestión de stocks /Entorno
/Visualización de saldos /MB5S – Lista de saldo MSRF

    En primer lugar debemos conocer el programa que se
    esconde detrás de la transacción. Para ello vamos à la
    transacción y pulsamos el menú Sistema /Status. En el
    ejemplo el programa se llama RM07MSAL.

    Seguidamente vamos à la transacción que nos permitirá
    definir nuestro job y damos nombre a nuestro job.

    Herramientas /CCMS /Background processing /SM36 —
    Define job

    Pulsamos en el botón ‘Paso’ y escribimos el nombre del
    programa y la variante con la que lo lanzaremos.
                                                                         Volvemos à la pantalla anterior y grabamos el conjunto.

                                                                     Extraer la información de una orden de spool

                                                                     Una vez ha finalizado la ejecución del job podemos ir a recuperar
                                                                     la información de salida.

                                                                         Vamos al spool controller.

                                                                     Herramientas /CCMS /Print /SP01 – Output controller


                                                                 1
Buscamos una orden de spool que debe contener el nombre
     del programa que hemos lanzado.

     Marcamos esta orden y el botón ‘Lista ABAP’.




     Vamos al menú Orden spool /Transmitir /Grabar en fichero
     local.

     Nos abrirá una ventana e indicaremos el formato en que
     queremos guardar el listado. Ya la tenemos para tratar
     fuera de SAP.

Enviar la información de un job a una cuenta de mail

Otra opción es que à la finalización del job, éste envíe el
resultado directamente a nuestra cuenta de correo electrónico.
Para ello hay que incluir la dirección de correo electrónico à la
hora de crear el job en el botón ‘Destino listas spool’. La forma
detallada de hacerlo la tenéis en el siguiente enlace.

Podéis enviar la información:

     A una cuenta de correo individual.

Herramientas /CCMS /Background processing /SM36 — Define
job /Destino listas spool

     A un grupo de usuarios creando una lista de distribución
     mediante la transacción SO28

Éste es el último post de la temporada. El blog volverá en breve.
Os deseo que paséis unas buenas vacaciones si las tenéis. Nos
vemos à la vuelta.




                                                                    2
20 December, 2011 | created using fivefilters.org


Parametrización de tablas de                                                 Si queremos que nuestra disposición sea visible solamente
                                                                             durante esta sesión recuperaremos nuestra variante del
control (table control) en                                                   campo ‘Opción actual’ en el apartado ‘Seleccionar
                                                                             variantes’.
transacciones                                                                En cambio, si queremos que nuestra disposición sea visible
                                                                             siempre para nuestro usuario recuperaremos nuestra
                                                                             variante del campo ‘Parametrización estándar’ en el
                                                                             apartado ‘Seleccionar variantes’.

                                                                        Si, por el contrario, queremos que esta disposición afecte a todos
                                                                        los usuarios del sistema tendremos que trabajar como
                                                                        administradores. 

                                                                             Marcamos la opción ‘Responsable del sistema’. Esta opción
                                                                             está reservada al objeto de autorización S_ADMI_FCD.
                                                                             Activamos la disposición en la ventana que se nos abre
                                                                             a continuación.
                                                                             Si queremos, incluso podemos transportar la opción a otros
                                                                             sistemas (icono ‘Incluir en orden de transporte’).



La parametrización de tablas sirve para modificar el orden,
tamaño y número de campos a mostrar en una tabla de control
de una transacción.

Ejemplo

Si tomamos como ejemplo la tabla de posiciones que
encontramos en los pedidos de venta de forma estándar nos
podemos contrar con la siguiente distribución de campos…
posición, material, cantidad de pedido, un, r, denominación,
número de material del proveedor, tpos, etc.




Logística /Comercial /Ventas /Pedido /VA02 — Modificar

Si ésta no es la distribución que nos interesa la podemos cambiar
realizando los siguientes pasos:

    Marcamos aquellos campos que queremos cambiar y los
    arrastramos à la posición que a nosotros nos interese. Por
    ejemplo, en este caso voy a marcar el campo tipo de
    posición (Tpos) y lo voy a llevar detrás del de unidad de           Finalmente, hay que indicar que toda la información de
    medida (UM).                                                        disposición guardados se almacenan en la vista TCVIEW, à la
    Abrimos el icono configuración que se encuentra en la parte         cual podemos acceder a través de la transacción SM30. Por lo
    superior derecha de la tabla.                                       tanto, podemos copiar la disposición que hemos generado para
                                                                        un usuario replicando las entradas generadas en esta vista para
    En el campo ‘Variante’ del apartado ‘Gestionar variantes’
                                                                        el usuario correspondiente.
    asignamos un nombre a nuestra nueva disposición
    y marcamos el botón ‘Crear’.                                        Imagen | INTVGene




                                                                    1
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01
BlogDeSAP01

Más contenido relacionado

Similar a BlogDeSAP01

PROYECTO DE TESIS SISTEMA INTEGRAL DE COMPRA Y VENTA
PROYECTO DE TESIS SISTEMA INTEGRAL DE COMPRA Y VENTAPROYECTO DE TESIS SISTEMA INTEGRAL DE COMPRA Y VENTA
PROYECTO DE TESIS SISTEMA INTEGRAL DE COMPRA Y VENTARoyer Tuesta Salas
 
Marco teórico zapatería
Marco teórico zapateríaMarco teórico zapatería
Marco teórico zapateríaSwanny Aquino
 
Presentación e commerce.compressed
Presentación e commerce.compressedPresentación e commerce.compressed
Presentación e commerce.compressedMichel Tlapanco
 
Presentacion Prensa MBA del Siglo XXI
Presentacion Prensa MBA del Siglo XXIPresentacion Prensa MBA del Siglo XXI
Presentacion Prensa MBA del Siglo XXImbadelsigloxxi
 
5 el blog corporativo
5   el blog corporativo5   el blog corporativo
5 el blog corporativoEteam_es
 
Tic72 equipo10 tema21_rok_quickcart
Tic72 equipo10 tema21_rok_quickcartTic72 equipo10 tema21_rok_quickcart
Tic72 equipo10 tema21_rok_quickcartZaMm Pérz
 
ERP Social - NODOTIC [ES]
ERP Social - NODOTIC [ES]ERP Social - NODOTIC [ES]
ERP Social - NODOTIC [ES]nodotic
 
101 recomendaciones para mejorar tu sistema de calidad is0 9001
101 recomendaciones para mejorar tu sistema de calidad is0 9001101 recomendaciones para mejorar tu sistema de calidad is0 9001
101 recomendaciones para mejorar tu sistema de calidad is0 9001Daniel JRodríguez Mx
 
Guia 02 analisis de requerimientos (1)
Guia 02 analisis de requerimientos (1)Guia 02 analisis de requerimientos (1)
Guia 02 analisis de requerimientos (1)jennisena
 
Curso Online de Prestashop: Tu Negocio en la Red
Curso Online de Prestashop: Tu Negocio en la RedCurso Online de Prestashop: Tu Negocio en la Red
Curso Online de Prestashop: Tu Negocio en la RediLabora
 
Webquest de creatividad
Webquest de creatividadWebquest de creatividad
Webquest de creatividadEpoantCrea
 
Creación de tiendas woo commerce y páginas web - Ender, Factoría de Software
Creación de tiendas woo commerce y páginas web - Ender, Factoría de SoftwareCreación de tiendas woo commerce y páginas web - Ender, Factoría de Software
Creación de tiendas woo commerce y páginas web - Ender, Factoría de SoftwareJonathan Estrella
 
Diseño: ideas creativas que ayudan a vender
Diseño: ideas creativas que ayudan a venderDiseño: ideas creativas que ayudan a vender
Diseño: ideas creativas que ayudan a venderPymes 2.0
 

Similar a BlogDeSAP01 (20)

PROYECTO DE TESIS SISTEMA INTEGRAL DE COMPRA Y VENTA
PROYECTO DE TESIS SISTEMA INTEGRAL DE COMPRA Y VENTAPROYECTO DE TESIS SISTEMA INTEGRAL DE COMPRA Y VENTA
PROYECTO DE TESIS SISTEMA INTEGRAL DE COMPRA Y VENTA
 
Tema 3
Tema 3Tema 3
Tema 3
 
Marco teórico zapatería
Marco teórico zapateríaMarco teórico zapatería
Marco teórico zapatería
 
Wordpress
WordpressWordpress
Wordpress
 
Diseño pymes 2.0
Diseño pymes 2.0Diseño pymes 2.0
Diseño pymes 2.0
 
Bootcamp Javascript Online
Bootcamp Javascript OnlineBootcamp Javascript Online
Bootcamp Javascript Online
 
Como hacer un blog
Como hacer un blogComo hacer un blog
Como hacer un blog
 
Presentación e commerce.compressed
Presentación e commerce.compressedPresentación e commerce.compressed
Presentación e commerce.compressed
 
Presentacion Prensa MBA del Siglo XXI
Presentacion Prensa MBA del Siglo XXIPresentacion Prensa MBA del Siglo XXI
Presentacion Prensa MBA del Siglo XXI
 
Diseño pymes 2.0
Diseño pymes 2.0Diseño pymes 2.0
Diseño pymes 2.0
 
Diseño pymes 2.0
Diseño pymes 2.0Diseño pymes 2.0
Diseño pymes 2.0
 
5 el blog corporativo
5   el blog corporativo5   el blog corporativo
5 el blog corporativo
 
Tic72 equipo10 tema21_rok_quickcart
Tic72 equipo10 tema21_rok_quickcartTic72 equipo10 tema21_rok_quickcart
Tic72 equipo10 tema21_rok_quickcart
 
ERP Social - NODOTIC [ES]
ERP Social - NODOTIC [ES]ERP Social - NODOTIC [ES]
ERP Social - NODOTIC [ES]
 
101 recomendaciones para mejorar tu sistema de calidad is0 9001
101 recomendaciones para mejorar tu sistema de calidad is0 9001101 recomendaciones para mejorar tu sistema de calidad is0 9001
101 recomendaciones para mejorar tu sistema de calidad is0 9001
 
Guia 02 analisis de requerimientos (1)
Guia 02 analisis de requerimientos (1)Guia 02 analisis de requerimientos (1)
Guia 02 analisis de requerimientos (1)
 
Curso Online de Prestashop: Tu Negocio en la Red
Curso Online de Prestashop: Tu Negocio en la RedCurso Online de Prestashop: Tu Negocio en la Red
Curso Online de Prestashop: Tu Negocio en la Red
 
Webquest de creatividad
Webquest de creatividadWebquest de creatividad
Webquest de creatividad
 
Creación de tiendas woo commerce y páginas web - Ender, Factoría de Software
Creación de tiendas woo commerce y páginas web - Ender, Factoría de SoftwareCreación de tiendas woo commerce y páginas web - Ender, Factoría de Software
Creación de tiendas woo commerce y páginas web - Ender, Factoría de Software
 
Diseño: ideas creativas que ayudan a vender
Diseño: ideas creativas que ayudan a venderDiseño: ideas creativas que ayudan a vender
Diseño: ideas creativas que ayudan a vender
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 

Último (20)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 

BlogDeSAP01

  • 1. Blogdesap resumen 2010-11 http://blogdesap.blogspot.com Customizing, ABAP y noticias Recopilación de los artículos publicados en blogdesap de los años 2010 y 2011
  • 2. Puedes acceder a estos artículos y otros que voy publicando a través de http://blogdesap.blogspot.com http://www.facebook.com/blogdesap Para seguir creciendo te agradezco que compartas este blog con tus amigos, conocidos y cualquier que esté interesado. Puedes compartir este pdf libremente bajo las condiciones de la licencia Creative Commons Blogdesap: resumen 2010-11 por http://blogdesap.blogspot.com se encuentra bajo una Licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported. Este PDF se ha generado gracias al proyecto http://fivefilters.org/ y a http://www.pdfill.com/pdf_tools_free.html Las imágenes que aparecen publicadas son propiedad de sus autores y aparecen publicadas aquí bajo la licencia Creative Commons que ellos mismos cedieron. A continuación se relaciona el origen de estas imágenes. http://www.flickr.com/photos/wassmer/with/507367448/ http://www.flickr.com/photos/dangoodwin/ http://www.flickr.com/photos/21218849@N03/ http://www.flickr.com/photos/ex-smith/ http://www.flickr.com/photos/4nitsirk/ http://www.flickr.com/photos/22280677@N07/ http://farm3.static.flickr.com/2476/3554582379_1d2799f43f.jpg http://farm1.static.flickr.com/14/93136022_25afa7e458.jpg http://www.flickr.com/photos/n3wjack/4661409838/ http://www.flickr.com/photos/tapaponga/5320210904/ http://www.flickr.com/photos/smanography/3293101820/ http://www.flickr.com/photos/loop_oh/442225983/ http://www.flickr.com/photos/chucksimmins/3387412983/ http://www.flickr.com/photos/oarranzli/6006659634/ http://farm1.static.flickr.com/180/370973576_9c1c871c39.jpg http://www.flickr.com/photos/timothymorgan/75593157/ http://www.flickr.com/photos/kaibara/2403072725/ http://farm4.static.flickr.com/3594/3548342923_ec24bb64cd.jpg http://farm3.static.flickr.com/2066/2189073444_2d12b95515.jpg http://www.flickr.com/photos/oarranzli/6269831858/ http://www.flickr.com/photos/adwentures/273706419/ http://www.flickr.com/photos/laurenmanning/2318794240/ http://www.flickr.com/photos/moneyblognewz/5264722308/ http://www.flickr.com/photos/teegardin/6094310934/ http://www.flickr.com/photos/richardwinchell/2831353173/ http://farm3.static.flickr.com/2568/4105756012_db89e4be50.jpg http://www.flickr.com/photos/29456235@N04/5396894948/ http://www.flickr.com/photos/the_ewan/4197995951/ http://www.flickr.com/photos/field_museum_library/3589463707/ http://www.flickr.com/photos/wrobel/300002369/ http://www.flickr.com/photos/nationaalarchief/3333358117/ http://www.flickr.com/photos/amagill/3366720659/ http://farm4.static.flickr.com/3148/2899489909_07ba71a9fc.jpg http://www.flickr.com/photos/imlsdcc/4669586118/ http://www.flickr.com/photos/cstrzrock/228748627/ http://www.flickr.com/photos/teegardin/5913014568/ http://www.flickr.com/photos/glennbatuyong/2594336182/ http://www.flickr.com/photos/kozumel/2228603119/ http://www.flickr.com/photos/jepoirrier/3266948575/ http://farm2.static.flickr.com/1129/1326652095_07b4d3d154.jpg http://farm2.static.flickr.com/1358/1061729364_ef2813c845_m.jpg http://www.flickr.com/photos/shht/2212700490/ http://www.flickr.com/photos/loop_oh/4023321360/ http://www.flickr.com/photos/oarranzli/6038438702/ http://www.flickr.com/photos/teegardin/6094263846/ http://www.flickr.com/photos/horiavarlan/ http://www.flickr.com/photos/zigazou76/3713380197/ http://www.flickr.com/photos/asurroca/51024419/
  • 3. http://www.flickr.com/photos/mary-lynn/3517076586/ http://www.flickr.com/photos/dreamfish/3368619008/ http://www.flickr.com/photos/opensourceway/5392982007/ http://www.flickr.com/photos/sirspacepilot/5144846100/ http://www.flickr.com/photos/22280677@N07/3910685423/ http://www.flickr.com/photos/waterboysh/3400148085/ http://www.flickr.com/photos/redwoodphotography/3337240655/ http://www.flickr.com/photos/zigazou76/4481926257/ http://www.flickr.com/photos/library_of_congress/2179067793/ http://www.flickr.com/photos/zingyyellow/3237480458/ http://www.flickr.com/photos/sfllaw/302700951/ http://www.flickr.com/photos/jevnin/65560448/ http://www.flickr.com/photos/desigu/2735732309/ http://farm4.static.flickr.com/3393/4628277817_d0ab67f499.jpg http://farm4.static.flickr.com/3393/4628277817_d0ab67f499.jpg http://www.flickr.com/photos/oarranzli/5913181104/ http://www.flickr.com/photos/dm-set/4164144241/ http://farm3.static.flickr.com/2051/4515510954_2a2d6b1e67_m.jpg http://www.flickr.com/photos/unanoslucror/5368674140/ http://farm4.static.flickr.com/3432/3190782601_8d28d13b32.jpg http://farm4.static.flickr.com/3376/3518931365_1c26d256c9.jpg http://www.flickr.com/photos/23126594@N00/2787395526/ http://www.flickr.com/photos/loozrboy/3023203627/ http://www.flickr.com/photos/loop_oh/3338084111/ http://farm2.static.flickr.com/1025/537590787_be834a854a.jpg http://www.flickr.com/photos/vancouverfilmschool/3856598677/ http://farm2.static.flickr.com/1264/930660427_ab76c3de6a.jpg http://www.flickr.com/photos/pleeker/5379549514/ http://www.flickr.com/photos/usnationalarchives/4265798115/ http://farm5.static.flickr.com/4014/4445019548_6bab33f713.jpg http://www.flickr.com/photos/kheelcenter/5279194721/ http://farm1.static.flickr.com/75/195308824_94a800f3ed.jpg http://www.flickr.com/photos/sblackley/1128813156/ http://farm3.static.flickr.com/2239/2072055045_8cb25cc173.jpg http://www.flickr.com/photos/jess1820/5295917098/ http://www.flickr.com/photos/timoelliott/ http://www.flickr.com/photos/nasacommons/4861716142/ Los enlaces a los vídeos se encuentran en: Navegación en queries SAP: http://youtu.be/54KsXMdY3vM Crear equipos en SAP: http://youtu.be/INiiOMVnVHk Envío del resultado de un job por mail: http://youtu.be/4pHYrLkjq4M
  • 4. INDICE 0. Estreno del blog ABAP 1. Query SAP (I): grupos de usuarios 2. Query SAP (II): infosets 3. Query SAP (III): crear una query 4. ABAP en queries: programas integrados 5. Navegación en queries 6. Una plantilla ABAP 7. Listados ALV 8. Crear variantes de report 9. Exportar listados ALV a hojas de cálculo 10. Recursos de programación ABAP 11. Batch input recorder 12. Procesar juegos de datos de batch input 13. Extracción de información a partir de jobs 14. Parametrización de tablas de control (table control) en transacciones 15. Crear tablas transparentes y estructuras 16. Vistas de actualización de tablas 17. Tablas del diccionario BC 18. Transporte de órdenes entre sistemas 19. Copia de órdenes de transporte entre sistemas no conectados 20. Protección de mandantes 21. Documentos adjuntos GOS 22. Gestión de autorizaciones FI 23. Periodos contables 24. Crear asientos contables 25. Códigos de operación en la norma 43 (España) 26. Traspaso de partidas entre documentos 27. IVA: una guía para el aumento en SAP 28. Retención del IRPF ampliada en clientes 29. Cierre del ejercicio CO 30.Cierre del ejercicio 31. Clases de coste primarias 32. Clave de periodificación en contratos 33. Imputación por defecto de clases de coste 34. Modificar la cuenta de resultados MM 35. Estrategias organizativas en compras 36. Determinar categorías de valoración 37. Determinación de cuentas en compras automáticamente 38. Tolerancias de precio en pedidos de compra 39. Verificación de facturas dobles 40. Modificación en masa de precios de proveedores 41. Movimientos de materiales entre sociedades 42. Actualización del registro info en pedidos de compras 43. Análisis de materiales obsoletos 44. Liberación de pedidos de compras 45. Inventarios puntuales 46. Inventarios periódicos PM 47. Equipos en SAP 48. Planificación de mantenimientos preventivos 49. Impresión de órdenes de mantenimiento 50. Log de modificaciones en órdenes 51. Verificación de disponibilidades en órdenes de mantenimiento 52. Tabla de planificación de capacidades: colores 53. Tabla de planificación de capacidades: selección
  • 5. 54. Tabla de planificación de capacidades: layout 55. Horarios de trabajo de personal PP 56. Definición de turnos y horarios en puestos de trabajo 57. Calendarios de trabajo en SAP 58. Stocks de seguridad (I): stock mínimo 59. Stocks de seguridad (II): perfil de cobertura 60. Gestión de la demanda por punto de pedido 61. Compensación de necesidades primarias PS 62. Gestión de reclamaciones (I) 63. Gestión de reclamaciones (II) SD 64. Fichero de población 65. Verificación de datos maestros: clientes 66. Condiciones de pago 67. Crear precios de venta 68. Gestión del riesgo en clientes 69. Determinación y substitución de materiales en ventas 70. Cross-selling 71. Ofertas y facturación de órdenes de servicio 72. Control de copia de documentos de ventas 73. Impresión de documentos en Comercial 74. Textos y observaciones en pedidos de venta 75. Añadir campos en listas de documentos comerciales 76. Anulación de facturas en masa 77. Sistema info de ventas 78. Simplificación de pantallas con variantes de transacción VARIOS 79. Cambios en masa 80. Rangos numéricos 81. Roll out de una empresa (I): estructura de la empresa 82. Roll out de una empresa (II): módulos 83. Roll out de una empresa (III): gaps y desarrollos ABAP 84. Roll out de una empresa (IV): datos maestros SAP 85. Enlaces relacionados con SAP 86. Especial Demo Jam 87. SAPTechEd Berlín 2010 88. Demo Jam SAPTechEd Las Vegas 2010 89. SAPPHIRENOW 2010 90. SAP Streamwork 91. Movilidad en SAP 92. IDES
  • 6. 20 December, 2011 | created using fivefilters.org Estreno del blog módulos han ido evolucionando también. Yo emplearé la terminología de módulos como la he conocido, aunque es posible que en algunos casos ya no se los conozca como módulos sino como soluciones. SAP-AC: Contabilidad General. SAP-IM: Gestión de Inversiones. SAP-EC: Controlling Empresarial. SAP-RE: Bienes e Inmuebles. SAP-FI: Finanzas. SAP-CO: Controlling. SAP-TR: Tesorería. SAP-PS: Proyectos. SAP-WF: Workflow. SAP-IS: Soluciones Verticales. SAP-HR: Recursos Humanos . También tenemos SAP-HCM. SAP-PM: Mantenimiento. SAP-QM: Calidad. SAP-PP: Planificación y Producción. SAP-MM: Materiales. SAP-SD: Ventas y Distribución. SAP-LO: Logística. SAP-LE: Ejecución de Logística. SAP-CS: Servicio al Cliente. SAP-EHS: Medio Ambiente. Así, pues, intentaré utilizar esta clasificación en los posts que vaya subiendo en la medida de lo posible. Espero que el blog sea de interés para los que ahora estéis en este mundo del SAP y que no dudéis en dejar vuestros comentarios. Imagen de cabecera | Birkenzweig a través de Wylio Bienvenidos al blog blogdesap.blogspot.com. El objetivo con el que nace este blog es ser un lugar de información en el trabajo diario con SAP. En él intentaré plasmar parte de las experiencias que he tenido con SAP tanto desde un punto de vista funcional como técnico. El blog recogerá, desde el punto de vista de un consultor, tanto cuestiones de parametrización como de programación ABAP. A día de hoy, la Wikipedia define SAP como: “a multinational software development and consulting corporation, which provides enterprise software applications and support to businesses of all sizes globally. Headquartered in Walldorf, Germany, with regional offices around the world, SAP is the largest software enterprise in Europe and the fourth largest software enterprise in the world as of 2009. [2] The company’s best known product is its SAP Enterprise Resource Planning (SAP ERP) software.” Es decir, SAP es la compañía. Y de entre los diferentes productos que SAP comercializa, este blog tratará sobre el “Enterprise Resource Planning” ERP de SAP, heredero de lo que se había llamado SAP R/3, y cuyo nombre actual es SAP ECC. Si bien es verdad que la terminología que emplea actualmente SAP en su producto ha ido evolucionando, la base del producto sigue siendo la misma, crear un entorno de gestión de empresarial, donde cada área de la empresa esté integrada en una estructura global. Anteriormente, estas áreas se definían por módulos, pero a medida que el producto ha evolucionado, estos 1
  • 7. 20 December, 2011 | created using fivefilters.org Query SAP (I): grupos de Asignamos los usuarios: botón ‘Asignar usuario y Infosets”. Para permitir que un usuario modifique las queries del usuarios grupo de usuarios debemos mantener marcado el flag de autorización junto al nombre de usuario. Guardamos. Y ya hemos acabado el primer paso en la creación de una query. Imagen inicial | dangoodwin ¿Cómo puedo recuperar información almacenada en el sistema acerca de mis clientes? ¿Y acerca de mis proveedores? ¿Y de mis ventas? En definitiva, ¿cómo puedo obtener listados de consulta sobre los datos que anteriormente he entrado en mi SAP? Éste es el primer post de un grupo de tres sobre queries en SAP. Una query en SAP es una herramienta que nos permite recuperar información de la base de datos para generar listados de información en tiempo real. Es verdad que existen herramientas de programación ABAP que ya nos permiten hacer listados y recuperar información de las tablas de la base de datos. Sin embargo, con las queries no tenemos necesidad de saber programar (aunque puede ser una ayuda) y hace el proceso de construcción de listados una tarea más rápida e intuitiva. Siempre que creemos una query debemos seguir tres pasos siempre en el siguiente orden. –I: Crear un grupo de usuarios –II: Crear un infoset. –III: Crea la query. Definición de un grupo de usuarios Un grupo de usuarios es el primer paso en la creación de una query SAP. En cada grupo asignamos los nombres de los usuarios que tendrán acceso final à la query que generaremos. No es más que una autorización para poder utilizar nuestra query a un grupo ordenado de personas. Por ejemplo, podemos determinar que las consultas o queries del módulo SD sólo las podrán consultar aquellas personas de los departamentos de Ventas y Marketing. En este caso, crearemos un grupo de usarios llamado VENTAS donde incluiremos el nombre de los usuarios de estos departamentos. Funcionalidad Herramientas /Workbench ABAP /Utilidades /Query SAP /SQ03 — Grupo de usuarios Creamos y asignamos un nombre a nuestro grupo de usuarios: botón ‘Crear’. 1
  • 8. 20 December, 2011 | created using fivefilters.org Query SAP (II): infosets momento que cree el infoset sólo necesito información de una de las dos. Así me ahorro problemas en el futuro. Creamos el enlace entre ambas tablas añadiendo la nueva tabla VBAP. Automáticamente, SAP nos propone las conexiones entre tablas. Sin embargo, podéis borrar el enlace y asociarlo a través de otros campos (siempre que sean del mismo tipo, de lo contrario SAP no lo aceptará). Yo voy a aceptar la propuesta que me hace SAP. Atención, en este punto hay que decir que debemos tener cuidado con las tablas que utilizamos en nuestro join. SAP no suele tomarse muy bien las tablas cluster como la BSEG. En este caso es Definición mejor utilizar tablas transparentes como la BSID, BSAD, BSIK o BSAK. El segundo paso en la creación de una query es la definición del infoset asociado. Los infosets son vistas especiales de datos Tratar /Insertar tabla donde se agrupan todos los campos que se utilizarán en una query. En un infoset enlazaremos diferentes tablas a través de campos comunes y seleccionaremos qué campos queremos que estén disponibles para nuestras queries. A su vez, asignaremos el infoset a uno o más grupos de usuarios (recordad el post anterior sobre grupos de usuarios). Funcionalidad Siguiendo con el ejemplo del anterior post vamos a crear un infoset de información de ventas, en concreto, de las cantidades que nuestros clientes nos han pedido en un rango de fechas. Para ello debemos saber que la tabla en la que se almacena la información de pedidos de clientes en SAP se encuentra en la tabla VBAK. La información de las cantidades solicitadas se Volvemos hacia atrás y creamos los grupos de campos encuentra en la tabla VBAP. También debemos saber que ambas (Pasar a /Back). Esto son una especie de carpetas donde tablas se relacionan entre sí a través del campo “documento de asignaremos los campos de nuestras disponibles para las ventas” (VBAK-VBELN /VBAP-VBELN). Ahora podemos empezar futuras queries. Yo escogeré crear ‘Grupos de campos a construir nuestro infoset. vacíos’ con lo que me creará dos carpetas, una para la tabla VBAK y otro para la VBAP sin ningún campo asignado. Entramos en la transacción de infosets. Arrastramos los campos de las tablas (parte izquierda de la pantalla) hacia los grupos de campos que hemos creado Herramientas /Utilidades /Query SAP /SQ02 — Infosets (parte derecha de la pantalla). En mi caso, arrastro los Creamos un infoset, le damos una descripción y una tabla campos solicitante y documento de ventas de la VBAK base sobre la que generaremos nuestro infoset. En nuestro y cantidad y material de la VBAP. Como veis sobre los caso sobre la tabla VBAK. En este apartado existen varias campos solicitante y número de material SAP escribe una T. opciones: podemos crear el infoset realizando la consulta Eso significa que asociado a estos códigos SAP sólo sobre una tabla en exclusiva, sobre varias tablas, sobre internamente también arrastra sus descripciones, por lo que una base de datos lógica o incluso sobre datos externos. no hay que hacer ninguna selección hacia las tablas de Hay que pensar bien qué opción escoger ya que una vez se descripciones del solicitante (KNA1) ni del material (MAKT). ha creado ya no hay vuelta atrás. Por ejemplo, si escogemos crear un infoset a través de una tabla, si en el futuro decidimos añadir una nueva tabla tendremos que borrar el infoset y crear uno nuevo. Y eso será un problema mayor si ya hemos creado la query subsiguiente pues en ese caso también habría que borrar antes la query. Personalmente, siempre creo las queries vía unión de tablas aunque en el 1
  • 9. Además, para complicarlo un poco más voy a añadir un Volvemos a ‘Grupo de campos’. Vemos ahora que en la parte campo que no está en ninguna de las tablas. Por ejemplo, si izquierda de la pantalla nos aparece un nuevo campo de la posición ha sido rechazada (lo que se indica en SAP datos ‘Campos adicionales’ que contiene el campo que a través del campo VBAP-ABGRU) le voy a dar la hemos creado. Lo que hay que hacer ahora es crear un descripción ‘Posición rechazada’. Esto sólo lo podemos nuevo grupo de campos y arrastrar nuestro campo adicional hacer mediante programación ABAP, una herramienta muy a este grupo de campos (también podríamos arrastrarlo interesante que nos permiten los infosets. a uno de los grupos de campos que ya tenemos). Pasar a /Detalles Creamos el campo adicional y le damos descripción y tipo. Sólo nos queda grabar, verificar y activar nuestro infoset. Infoset /Grabar Infoset /Verificar Infoset /Generar Ya podemos volver à la pantalla inicial y asignar el infoset al grupo de usuarios que creamos anteriormente a través de la transacción SQ01 (ver el post anterior). Pasar a /Asignación a grupo de usuarios Imagen inicial | Samuel Mann Escribimos el coding para el campo. Verificamos el código ABAP (corregimos si es necesario) y grabamos. 2
  • 10. 20 December, 2011 | created using fivefilters.org Query SAP (III): crear estándar). Mi experiencia personal me dice que no merece la pena el trabajo de crear una query en un mandante de una query desarrollo y luego transportarla hasta nuestro mandante productivo. Será más rápido y más fácil testear nuestra query si la creamos directamente en el área estándar. Para eso vamos a Entorno /Ámbitos funcionales /Área estándar (específico de mandante). Nuestra query la crearemos dentro del grupo de usuarios que creamos en el paso I. Por eso, iremos a Tratar /Cambiar grupo de usuarios /Ventas. Damos un nombre a nuestra query y la creamos. Automáticamente nos pedirá que la asignemos a un infoset (recordar el paso II). Evidentemente, asignaremos el infoset que ya habíamos creado previamente (SD_VENTAS). En la siguiente pantalla, SAP nos pide una descripción de la query. Podemos también indicar la variante de la pantalla de selección que queremos que se utilice por defecto al ejecutar la query. Esta variante la podemos crear cuando ya hayamos generado nuestra query y añadirla aquí directamente (campo Variante estándar). En esta pantalla también aparecen datos de ‘Formato de salida’. Aquí le podemos indicar a nuestra query cómo queremos que se muestre. Por defecto, utilizamos el “List Viewer ABAP”, es decir, el ALV típico. Aunque SAP nos da la posibilidad incluso de lanzar el resultado directamente hacia un Excel si así se quiere (EXCEL). Definición El tercer paso en la creación de una query es, precisamente, la creación de la query propiamente dicha. Esto es un listado de información extraída de la base de datos. Para ello es necesario que previamente hayamos creado el grupo de usuarios al que permitiremos extraer la información. Asimismo, debemos haber creado el infoset donde indicamos las tablas de información necesaria. Crear una query consiste en generar una pantalla de selección de la información y una disposición (layout) de salida de toda esta documentación. Funcionalidad Sigamos con el ejemplo. Creamos una query de información de ventas. Entramos en la transacción de queries. Herramientas /Workbench ABAP /Utilidades /Query SAP /SQ01 — Queries Podemos crear nuestra query bien en área estándar bien en ámbito global. Esto significa que podemos crear la query Pasamos a ‘Selección de grupos de campos’. Aquí debemos y luego transportarla (ámbito global) o bien crear la query seleccionar todos nuestros grupos de campos del infoset. O, directamente en nuestro entorno productivo (área si alguno de los grupos de campos no los quisiéramos 1
  • 11. utilizar en nuestra query, entonces simplemente no lo seleccionamos. En ‘Lista básica’ nos muestra los campos disponibles en cada uno de los grupos de campos. Debemos seleccionar aquellos que nos interesa que se muestren en la query. En el caso del ejemplo, seleccionaré todos los campos. Como veis los campos de texto, aunque no los habíamos seleccionado directamente en nuestro infoset, sí que nos Y así el layout de salida. aparecen dentro de los campos disponibles. Eso es simplemente porque los campos de código solicitante y número de material siempre llevan asociadas sus descripciones por defecto. En la pantalla de ‘Selecciones’ creamos nuestra pantalla de selección. Es decir, los criterios a partir de los cuales buscaremos la información. Yo voy a marcar los campos solicitante, material y documento de ventas. A partir de aquí ya podemos utilizar la funcionalidad propia de los listados ALV como descargar la información en Excel, hacer filtros, sumas, sumas parciales, etc. Enlaces | sappedia (añadido el 31/10/2010) Imagen | Ex-Smith ‘Lista básica’: aquí construimos la disposición de salida donde indicamos qué campos queremos que se muestren en el listado y en qué orden. Además, podemos también darle algún formato especial como colores, guiones de separación, etc. Yo voy a marcar todos los campos disponibles y además voy a hacer que sea de verde intenso. Para hacer eso hay que arrastrar el campo ‘Afirmativo(intenso)’ sobre el campo que queremos que sea de otro color. Grabo. Así queda la pantalla de selección. 2
  • 12. 24 December, 2011 | created using fivefilters.org ABAP en queries: programas grupo inconexo de transacciones programadas bajo nombres Z* que, en el mejor de los casos, habremos agrupado en menús de integrados usuario o en menús de favoritos. También nos da la posibilidad de crear consultas de información impensables en un join simple de tablas creado mediante la conexión gráfica. Podemos, por ejemplo, unir dos tablas pero manteniendo una como cabecera y la otra debajo de ésta con sus posiciones. Veamos esto último. Queremos mostrar pedidos de compra, con una línea de cabecera para cada pedido y siguiendo a esta cabecera, toda la serie de posiciones del pedido. Creamos el infoset marcando ‘Obtención de datos mediante programa’ y ‘Programa integrado’. El infoset nos exigirá que introduzcamos una estructura de datos. Por lo tanto, previamente debemos ir al diccionario y crear la estructura que soportará la salida de información. Este paso previo no lo explico pero tenéis un ejemplo en el siguiente enlace. En este punto, los campos disponibles serán los que nos indique nuestra estructura. Arrastraremos estos campos al grupo de campos que tengamos creados. Lo interesante Siguiendo con una serie de artículos anteriores donde ya aquí, es que se nos abre un botón que no habíamos visto explicaba como crear queries e infosets voy a intentar mostrar hasta ahora. Este botón se llama ‘Programa de lectura de otra manera realizar queries. En este caso vamos a integrar datos’ y nos señala el lugar a través del que haremos programación ABAP en queries SAP. Se trata de utilizar toda la nuestra programación ABAP. Así que lo marcamos. potencia que nos dan las presentaciones vía query para mostrar información, pero haciéndolo sin utilizar los joins gráficos de tablas. En un principio, las queries SAP se entienden como una forma sencilla de extraer información de la extensa base de datos de SAP. Para obtener esta información, la mejor manera es El editor ABAP que se nos abre consta de diversos eventos utilizar la conexión gráfica de tablas en nuestros infosets. Sin donde escribimos nuestros comandos ABAP: embargo, para aquellos que ya tengan conocimientos sencillos de programación ABAP, SAP provee una herramienta de Declaración de variables. programación integrada en infosets. Con ella, no necesitamos utilizar ninguna conexión gráfica, sino que podemos obtener información a través de sentencias SQL y presentarlas en el formato que nos dan las queries SAP. ¿Qué ventajas puede tener esta forma de crear queries? En principio, la gran ventaja que yo observo es la posibilidad de utilizar todo el “envoltorio” que nos da una query, con sus ALV y  layouts. Nos quita trabajo ya que sólo debemos concentrarnos en recuperar la información. De la presentación de ésta ya se ocupa la query. Además, nos da un entorno organizado de listados ya Pantalla de selección. Definimos el pedido de compras que nos permite tener todas nuestras consultas bajo la como parámetro de selección en nuestra query. apariencia de la transacción de queries SQ01. Nos evita tener un Podemos indicar una descripción del parámetro para 1
  • 13. que no aparezca el nombre de la variable al ejecutar la Un listado de las posiciones de un pedido con una cabecera para query. Para ello tenemos que ir à la pestaña ‘Delimit’ el pedido. El ejemplo es muy sencillo y poco significativo pero y haciendo doble click sobre el parámetro cambiamos nos da una idea de la potencia de la herramienta. el texto de selección. Imagen inicial | 4nitsirk Extracción de datos. Salida de información. Generamos nuestro infoset. Asociamos el infoset a un grupo de usuarios. Creamos nuestra query normalmente. Y éste es el resultado: 2
  • 14. 24 December, 2011 | created using fivefilters.org Navegación en queries Ahora cuando lancemos la query y hagamos doble click sobre un registro del listado vamos a tener la opción de escoger entre navegar à la transacción VA03 o à la MB52. En el siguiente vídeo explicativo se muestran todos los pasos: La navegación se realiza al hacer doble click sobre cualquier punto de un registro, independientemente del campo sobre el que se pulse. Entonce, ¿cómo determina SAP cuál es el campo que tiene que utilizar para navegar? Pues lo hace en base al ID del parámetro. SAP recorre todos los campos del registro y enlaza el ID del registro correcto con el ID del parámetro de entrada de la transacción. Entonces para verificar que la navegación funcionará correctamente debemos determinar cuál es el ID del parámetro. Eso lo hacemos mediante los siguientes pasos: Vamos al campo de entrada de nuestra transacción, por ejemplo el de la VA03 Logística /Comercial /Ventas /Pedido /VA03 – Visualizar Una de las peculiaridades de SAP es que estemos donde estemos el sistema suele permitirnos saltar entre transacciones. Pulsamos F1. Simplemente debemos situarnos encima de un campo, hacer doble click y el sistema navegará a otra transacción relacionada Marcamos ‘Datos técnicos’ o el icono ‘Martillo’. con ese campo. Por ejemplo, si en la transacción en la que estamos hay un campo con el código de un material, si hacemos Verificamos que existe un valor dentro de ‘ID parámetro’. doble click sobre éste SAP navega hacia la transacción del maestro de materiales de ese código en concreto. En otros artículos ya había explicado cómo crear queries. En esta ocasión voy a ampliar estos posts con esta sencilla funcionalidad de SAP, la navegación. Caso Tenemos una query que nos permite listar posiciones de pedidos de venta donde nos muestra las posiciones de pedidos con el código de material. Queremos que al hacer doble click sobre un registro en concreto SAP nos muestre el stock disponible en almacén de ese material y el pedido de ventas completo asociado ¿Cómo lo hacemos? Solución Modificamos nuestra query. Herramientas /Workbench ABAP /Utilidades /Query SAP /SQ01 – Queries Vamos al menú Pasar a /Asignación del informe. Indicamos que nuestro tipo de informe será una Hacemos lo mismo para el campo de nuestra query, pero desde transacción. Igual que una transacción podríamos indicar un la transacción SE11 report ABAP, una query, etc. Herramientas /Workbench ABAP /Desarrollo /SE11 – Dictionary Introducimos el nombre de nuestra transacción (VA03 para ABAP visualizar el pedido de ventas completo) Introducimos el elemento de datos (VBELN_VA) en el campo Repetimos de nuevo para la otra transacción (MB52 para ‘tipo de datos’. visualizar el stock del material). Visualizar. Grabamos. 1
  • 15. Y en la pestaña propiedades adicionales el valor del ID del parámetro debería ser el mismo que hemos obtenido anteriormente. Así podemos estar seguros que la navegación se hará correctamente desde nuestra query. Imagen | Svadilfari 2
  • 16. 20 December, 2011 | created using fivefilters.org Una plantilla ABAP *************************************************** *Declaración tablas internas *************************************************** *data: begin of it_tabla occurs 0, * * end of it_tabla. *************************************************** *Includes *************************************************** *include *************************************************** *** SELECTION-SCREEN  *************************************************** selection-screen begin of block b1. *select-options: *parameters:  selection-screen end of block b1. *************************************************** *** AT SELECTION-SCREEN *************************************************** *at selection-screen output. Para los que tenéis que programar asiduamente aquí os dejo una * pequeña plantilla que quizás os sea de utilidad al hacer reports en ABAP. A mí me ha ayudado y servido de guía muchas veces. *at selection-screen on xxxxx. * Plantilla *************************************************** *&————————————————————-* *** START-OF-SELECTION *& Report *************************************************** *Autor: Fecha: start-of-selection. *************************************************** * Modificaciones: *************************************************** * Fecha: *** SUBRUTINAS  *************************************************** *************************************************** report zxxxxxx *&———————————————————–*  no standard page heading *&———————————————————–*  line-size 255. *& Form rutina *************************************************** *&———————————————————* *Tablas * text *************************************************** *—————————————————————-* *tables: * –> p1 text *  *************************************************** *Type pools *************************************************** *type-pools: *************************************************** *Constantes *************************************************** *constants: *************************************************** *Variables globales *************************************************** *data: *************************************************** *Estructuras *************************************************** 1
  • 17. 20 December, 2011 | created using fivefilters.org Listados ALV  end of i_nif. Seguidamente buscamos la información y la cargamos en la tabla interna i_nif. Ésta será nuestra tabla de output a mostrar. Definimos las parametrizaciones de impresión del ALV. clear e_print. e_print-no_print_selinfos = ‘X’. e_print-no_print_listinfos = ‘X’. Definimos la denominación de cada uno de los campos y cómo se referenciarán. wa_fieldcat-fieldname = ‘NIF’. wa_fieldcat-tabname = ‘I_NIF’. wa_fieldcat-seltext_m = ‘NIF’. append wa_fieldcat to t_fieldcat. clear wa_fieldcat. Definimos el layout del ALV. clear e_layout. e_layout-zebra = ‘X’. e_layout-colwidth_optimize = ‘X’. Llamamos à la función que genera el listado ALV ‘REUSE_ALV_GRID_DISPLAY’. Aquí indicamos el nombre de nuestro report, el layout (cómo se mostrarán las columnas), En este post explicaré cómo crear un listado ALV sencillo. el catálogo de campos, si queremos que se puedan o no grabar variantes de layout y la tabla de output que contiene Descripción la información a mostrar. Por supuesto, esta función permite diversas parametrizaciones del ALV que se pueden En primer lugar creamos nuestro report ALV. consultar directamente en la documentación de la función. Herramientas /Workbench ABAP /Desarrollo /SE38 — Editor call function ‘REUSE_ALV_GRID_DISPLAY’ ABAP  exporting  i_callback_program = xrepid Definimos las variables que utilizaremos en nuestro report.  is_layout = e_layout Por regla general yo he utlizado en los reports ALV que he  it_fieldcat = t_fieldcat escrito las siguientes variables:  i_save = ‘A’  is_print = e_print *********************************************************  tables *Type pools   t_outtab = i_nifnecesidad *********************************************************  exceptions type-pools: slis.  program_error = 1 *********************************************************  others = 2. *Variables globales if sy-subrc 0. ********************************************************* endif. data: xrepid like sy-repid ********************************************************* Añadimos los datos de cabecera. Estos datos de cabecera se *Declaración tablas internas entrarán en una rutina que no se llamará formalmente ya ********************************************************* que la llamada se realizará desde el módulo de funciones data: ‘REUSE_ALV_GRID_DISPLAY’.  wa_fieldcat type slis_fieldcat_alv,  t_fieldcat type slis_t_fieldcat_alv, * Cabecera grande  e_layout type slis_layout_alv, wa_heading-typ = ‘H’.  e_print type slis_print_alv. wa_heading-info = ‘Cabecera’. append wa_heading to t_heading. data: clear wa_heading.  begin of i_nif occurs 0,  xxx * Cabecera pequeña 1
  • 18. wa_heading-typ = ‘S’. data: wa_heading-info = ‘Subcabecera’.  wa_fieldcat type slis_fieldcat_alv, append wa_heading to t_heading.  t_fieldcat type slis_t_fieldcat_alv, clear wa_heading.  e_layout type slis_layout_alv,  e_print type slis_print_alv, Si además queremos añadir un logo a nuestro listado  wa_heading type slis_listheader, deberemos subir la imagen a SAP (clase ‘PICTURES’, tipo  t_heading type slis_t_listheader. clase ‘OT’). Para ello utilizaremos la transacción OAER. En el siguiente link encontraréis toda la información para ********************************************************* hacerlo. Seguidamente habrá que llamar al módulo de *Includes funciones ‘REUSE_ALV_COMMENTARY_WRITE’ con ********************************************************* nuestro logo. El inconveniente de este logo es que es visible include . en SAP, pero no es posible imprimirlo. ********************************************************* *** SELECTION-SCREEN call function ‘REUSE_ALV_COMMENTARY_WRITE’ *********************************************************  exporting *********************************************************  it_list_commentary = t_heading * Pantalla de selección   i_logo = ‘LOGO’. ********************************************************* Ejemplo * El siguiente es un ejemplo de listado que nos permite validar select-options s_stcd1 for kna1-stcd1. números de NIF. ********************************************************* * At selection-screen *&———————————————————————* ********************************************************* *& Report ZVALIDANIF *& ********************************************************* *&———————————————————————* *** START-OF-SELECTION  *& ********************************************************* *& start-of-selection. *&———————————————————————* * Funcion validacion nif report zvalidanif.  perform valida_nif. ********************************************************* *Tablas * Log: cómo se cargará *********************************************************  perform display_alv. tables: kna1. ********************************************************* ********************************************************* * Performs Adicionales *Type pools ********************************************************* ********************************************************* type-pools: slis. *&———————————————————————* ********************************************************* *& Form display_alv *Constantes  *&———————————————————————* ********************************************************* * text *constants: *———————————————————————-* ********************************************************* * –> p1 text *Variables globales *  p1 text ********************************************************* *  p1 text data: *  p1 text  g_contador(4) type n, *  p1 text  xrepid like sy-repid. *  p1 text ********************************************************* *  *Declaración tablas internas  ********************************************************* data:  begin of i_nif occurs 0,  nif like kna1-stcd1,  error(10),  end of i_nif. ********************************************************* *Estructuras ********************************************************* 2
  • 19. 20 December, 2011 | created using fivefilters.org Crear variantes de report Se nos despliega una ventana donde nos pide si queremos grabar. Por supuesto, le damos una descripción a nuestra variante y decimos que sí queremos grabar. Creación de una variante con parámetros Los valores que grabamos en una variante no necesariamente han de ser fijos. Podemos indicar datos que varíen según el día en que se lanza nuestro report por ejemplo. O incluso podemos hacer que un campo se grabe sin valores o impedir que un usuario pueda introducir valor alguno en un campo. Mejor verlo con un ejemplo. Definición Desde el editor ABAP recuperamos nuestra variante. En SAP llamamos variante a una imagen de información fija Marcamos ‘Modificar’ con ‘Atributos’. que podemos introducir en una pantalla de selección de una transacción. Con una variante podemos introducir valores en cada uno de los campos de una pantalla de selección y grabarla para más tarde recuperarla de nuevo à la hora de ejecutar el programa o transacción. Las variantes se asocian comunmente a reports y listados de SAP. Es más difícil asociarlas a transacciones de pantallas. Para más información sobre este segundo caso consultar un post anterior. Ya había hablado sobre la posibilidad de utilizar variantes para transacciones estándar de SAP. En este caso, comentaremos en más detalle cómo crear una variante, cómo protegerlas y dónde Desde la pantalla de ‘Atributos’ podemos modificar los utilizarlas. atributos de cada uno de los campos que hay en nuestra Creación de una variante pantalla de selección. Vamos a nuestro editor ABAP. Proteger campo: marcamos los campos de sociedad para que no se pueda modificar el valor. Herramientas /Workbench ABAP /Desarrollo /SE38 — Editor ABAP Suprimir campo: marcamos el campo ‘Vía de pago’ para que éste no sea visible directamente en la pantalla Seleccionamos de selección. Objetos parciales /Variantes /Modificar Campo obligatorio: marcamos el campo ‘característica’ para que sea obligatorio introducir un valor para poder Damos un nombre a nuestra variante (no es necesario que ejecutar el report. empiece por Z). Variables: creamos una fecha dinámica (D) con el valor Marcamos ‘Crear’ con ‘Valores’. del última día del mes. La variante siempre contendrá el valor del último día del mes en el que se lance el Se nos abre la pantalla de selección de nuestro report. report. Indicamos los valores que queremos dar a cada uno de los campos de la pantalla de selección. Salimos de la pantalla Pasar a /Back 1
  • 20. En reports. Ejecutamos el report y desde la pantalla de selección seleccionamos Herramientas /Workbench ABAP /Desarrollo /SE38 — Editor ABAP Pasar a /Variantes /Traer En transacciones. Podemos hacer que la transacción se inicie directamente con la variante que hemos creado. Para ello, modificamos la transacción Z y en el apartado variante indicamos nuestra variante. De este modo, siempre que ejecutemos la transacción, automáticamente se lanzará con la variante que hayamos adjuntado. Herramientas /Workbench ABAP /Desarrollo /Otras herramientas /SE93 — Transacciones Grabamos. En jobs de fondo. Cuando lanzamos un report por job de fondo es obligatorio indicar una variante de ejecución. En el momento de crear nuestro job debemos indicar la variante. El resultado es una pantalla con valores dinámicos. Sistema /Servicios /Jobs /Definición job En queries. Al igual que podemos iniciar transacciones con una variante prefijada, también podemos iniciar queries con una variante prefijada. Transporte de una variante entre entornos Por lo general, una variante se puede crear y modificar desde el entorno productivo SAP. Sin embargo, también es posible crear variantes desde entornos de desarrollo y posteriormente transportarlas a entornos productivos. Por supuesto, en este caso las variantes sólo serán modificables desde desarrollo. Para crear una variante que pueda ser transportada simplemente debemos crearla con un nombre que empiece por CUS& Imagen inicial | *n3wjack’s world in pixels Utilización de variantes 2
  • 21. 24 December, 2011 | created using fivefilters.org Exportar listados ALV a hojas de cálculo Observamos que SAP nos ofrece la opción del formato en que queremos exportar nuestro listado de un desplegable. Marcamos la opción ‘StarOffice/OpenOffice’ e indicamos que queremos ‘Aplicar siempre el formato especificado’. En este post “cortito” hago un resumen de los formatos de los que disponemos a la hora de exportar nuestros listados ALV Grabamos nuestra hoja de cálculo con extensión .ods a una hoja de cálculo. Antiguamente sólo podíamos exportar a un único formato de hoja de cálculo, el omnipresente Microsoft La próxima vez que intentemos volver a exportar nuestro listado Excel. Afortunadamente, SAP se ha adaptado a los tiempos y ya ALV SAP ya no nos volverá a preguntar por el formato y, disponemos de otra variedad de formatos de hojas de cálculo directamente, nos ofrecerá únicamente la opción donde exportar información en la versión ECC de SAP. ‘StarOffice/OpenOffice’. Eso es porque SAP ha guardado a nivel Actualmente los formatos soportados à la hora de exportar un de usuario la opción predefinida de formato en la tabla listado ALV a una hoja de cálculo son: SALV_BS_ADMIN. Microsoft Excel. MTHML de Microsoft Excel StarOffice y OpenOffice. También soporta LibreOffice. Office XML ¿Qué hacer para reiniciar el valor por defecto para exportar a hoja de cálculo? Microsoft Excel XXL (formato antiguo). Ejecutar el programa SALV_BS_ADMIN_MAINTAIN con De acuerdo a nuestros hábitos como usuarios SAP podemos parámetro ‘Display’. indicar nuestro formato preferido à la hora de exportar listados ALV. ¿Cómo marcar por defecto un formato específico? Imaginemos que queremos exportar un listado de pedidos incompletos a formato OpenOffice Lanzamos la transacción ‘Documentos comerciales incompletos’. Logística /Comercial /Ventas /Sistemas de información /Pedidos Marcar y borrar el registro de usuario que deseemos. /V.02 — Pedidos incompletos Vamos a exportar nuestro listado mediante el menú Lista /Exportar /Hoja de cálculo. Más información | notas 876916 y 1080608 1
  • 22. Imagen inicial | tapaponga 2
  • 23. 24 December, 2011 | created using fivefilters.org Recursos de programación ABAP De todos modos, también podemos obtener el mismo resultado mientras escribimos nuestro código, nos posicionamos sobre una sentencia y pulsamos el botón F1. Programación de listados ALV y otras demos Si buscamos a través del sistema de información los paquetes SLIS y SABAPDEMOS también encontramos el código ABAP de programas escritos por SAP para utilización en demos y cursos de aprendizaje. En este artículo voy a escribir sobrer aquellas herramientas que conozco y que SAP nos provee para aprender a programar en Herramientas /Workbench ABAP /Desarrollo /SE38 – Editor ABAP ABAP. Son transacciones con código fuente que os pueden servir para vuestros cursos de aprendizaje en este lenguaje propietario Entramos en el editor ABAP. SAP. Marcamos el matchcode. Documentación ABAP y ejemplos Marcamos ‘Selección nueva’. Herramientas /Workbench ABAP /Utilidades /ABAPDOCU – Biblioteca de ejemplo Escribimos el nombre del paquete SLIS o SABAPDEMOS. Centro de presentaciones Enjoy En esta transacción, SAP agrupa el código fuente de varios programas de ejemplo para el autoaprendizaje. A través de varios Aquí se agrupan los códigos de varios ejemplos. Se trata de una nodos nos ofrece el código para aprender el uso de las sentencias transacción para los que ya tenéis cierto conocimiento de más frecuentes, programación de dynpros, de orientación programación ABAP. Cotiene ABAP orientado a objetos, la a objetos, incluso el interfasado con JavaScript. evolución del lenguaje ABAP que permite crear programas algo más complejos. Documentación de palabras claves Herramientas /Workbench ABAP /Utilidades /DWDM – Herramientas /Workbench ABAP /Utilidades /ABAPHELP – Presentaciones Documentación palabra clave Con la ayuda de esta transación podemos acceder à la biblioteca ABAP donde se encuentran documentadas las sentencias utilizadas en este lenguaje. Simplemente, entramos en la transacción y escribimos la sentencia de la cual queremos documentación. 1
  • 24. Comida en vuelo/primer plato STICKET Billete de avión STRAVELAG Ag.viajes Imagen inicial | Shermeee Juegos de datos de prueba Seguro que más de uno se acuerda de las tablas SPFLI, SCARR o SFLIGHT. Pues bien, bajo el paquete SAPBC_DATAMODEL se esconden todas estas tablas que tan frecuentemente son utilizadas en los cursos de formación ABAP. Se trata del modelo de datos de vuelos que se suministra para hacer pruebas, programar listados de ejemplo, etc. Pero antes de poder hacer uso de ellas, es imprescindible llenarlas con datos. Mediante el programa SAPBC_DATAGENERATOR podemos marcar cuántos registros introducir en estas tablas o borrar su contenido completamente para empezar de nuevo. Herramientas /Workbench ABAP /Desarrollo /SE38 – Editor ABAP /Programa SAPBC_DATAGENERATOR    Una vez llenas ya podemos observar cómo quedan cada una de ellas. Aquí dejo el listado completa de estas tablas de formación. Herramientas /Workbench ABAP /Resumen /SE16 – Browser de datos TABLA DESCRIPCIÓN SAIRPORT Aeropuertos SAPLANE Avión SBOOK Reservación de vuelo directo SBUSPART Interlocutor cia.aérea SCARPLAN Asignación compañía aérea-avión SCARR Compañía aérea SCITAIRP Asignación ciudad-aeropuerto SCOUNTER Mostrador de venta SCPLANE Avión de carga SCURR Tp.cambio p.modelo datos formación Workben SCURX Moneda p.modelo datos formación Workbench SCUSTOM Clientes vuelo SDESSERT Comida en vuelo/postre SFLIGHT Vuelo SFLIMEAL Asignación vuelo-comida SGEOCITY Situación geográfica de una ciudad SMACOURSE Comida en vuelo/plato principal SMEAL Comida en vuelo SMEALT Comida en vuelo/descripción SMENU Menú SNVOICE Factura SPFLI Itinerario de vuelos SPPLANE Avión de pasajeros SSTARTER 2
  • 25. 24 December, 2011 | created using fivefilters.org Batch input recorder Grabación /Exportar. Copiamos el texto de nuestra grabación tantas veces como materiales tengamos, pero en un nuevo fichero .txt. Al mismo tiempo, modificamos la información. Por ejemplo, si necesitamos modificar el precio de cien materiales, De vuelta en el blog. Esta vez con la herramienta batch input entonces copiaremos el texto cien veces. Tras ello, recorder. Para empezar, decir que llamamos programas de batch borraremos y re-escribiremos el código de cada material input a una serie de programas que se han venido utilizando para y del nuevo precio en cada pieza de texto de la grabación. la transferencia en masa de información hacia sistemas SAP. Ya sé lo que estáis pensando, que esto es más fácil de decir A menudo, estos programas se han integrado en otras que de hacer. Sin embargo, utilizando una sencilla hoja de transacciones estándar como la típica legacy. Sin embargo, si cálculo y algunas fórmulas puede llegar a ser un proceso nuestras necesidades no pueden ser cubiertas por herramientas sumamente rápido*. estándar SAP, entonces nosotros mismos tendremos que escribir nuestros programas de batch input. El resultado de la ejecución A continuación, importamos el nuevo fichero a SAP. de un programa de batch input es siempre un juego de datos que Utilizamos para ello el menú Grabación /Importar. podremos procesar posteriormente para realizar la transferencia de información. En este artículo intento explicar cómo la herramienta de grabación de batch inputs puede ayudarnos a crear juegos de datos de batch input sin tener ningún conocimiento de programación ABAP. Al final, lo que hemos conseguido es generar un nuevo juego de datos de batch input. Lo único que nos queda por hacer Voy a dibujar un escenario sencillo donde queremos actualizar es presionar el botón ‘Procesar’ y nuestros datos subirán información en SAP a través de una transacción. Por ejemplo, a SAP como en cualquier batch input. nuestra empresa desea modificar el precio de venta de todos sus materiales a través de la transacción de registros de condición VK12. Por supuesto, si tenemos una base de datos de cientos de materiales la modificación manual puede suponer un trabajo considerable. Por lo tanto, en condiciones normales, lo lógico sería pedir a nuestro desarrollador ABAP que escribiese un programa de batch input que tuviese en cuenta nuestra necesidad. El programa escrito sería capaz de generar un juego de datos que repitiese las pantallas y la transacción cientos de veces (tantas veces como materiales hubiese en nuestra base de datos). Ahora bien, si no tenemos ningún conocimiento de programación ABAP ni persona que nos pueda ayudar, la herramienta de grabación de batch inputs nos puede ser de gran utilidad à la hora de crear nuestro juego de datos. Por supuesto, sin saber ABAP y en unos sencillos pasos: En primer lugar, vamos à la transacción de grabación de batch inputs SHDB. Como véis, unos sencillos pasos que nos permiten actualizar información en masa sin haber escrito ni una sola línea de código Creamos una nueva grabación de la transacción VK12 ABAP. Por supuesto, no recomiendo esta herramienta para a través del botón ‘Nueva grabación’. transferencias de información complejas. Ni tampoco lo recomiendo como sustituto de otras herramientas estándar Exportamos la grabación a un fichero .txt siguiendo el menú 1
  • 26. legacy o bapis. Pero sí puede ser una herramienta interesante para afrontar problemas sencillos si no tenemos conocimientos suficientes de lenguaje ABAP. *Una ayuda para completar el fichero .txt con la información a subir. Utilizad una hoja de cálculo como Microsoft Excel, numerad aquellos campos que queráis completar y utilizad fórmulas del tipo buscarv o consultav para buscar y reemplazar con la información de vuestra base de datos. Imagen inicial | loop_oh 2
  • 27. 24 December, 2011 | created using fivefilters.org Procesar juegos de datos de Herramientas /Gestión /Monitor /SM35 – Batch input Esto es lo que vemos en esta transacción: batch input Campos para la selección de nuestro juego de datos: podemos filtrar entre los juegos de datos creados por usuario (campo ‘Autor), en un rango de fechas (campos ‘De’ ‘a’) o según el nombre del juego de datos (campo ‘JD’). Del resultado de nuestro filtro vemos todos los juegos de datos que existen en el sistema, con su estado (nuevo, en ejecución, ejecutado correctamente, ejecutado con errores, etc.). Son especialmente interesantes los campos ‘Cantidad total de transacciones’, ‘transacciones procesadas con errores’, ‘transacciones procesadas’ y ‘dynpros’. Cantidad total de transacciones: nos informa sobre el total de transacciones que se ejecutarán en nuestro juego de datos. Por ejemplo, si estamos dando de alta el precio de compra de un registro info, entonces nos informa del número de veces que se llamará à la transacción ME11. Transacciones procesadas con errores: una vez lanzado Llamamos batch input a un tipo de proceso que se lanza en fondo el juego de datos, los errores que han generado cada y mediante el cual podemos simular la introducción de datos en una de las transacciones se acumulan en este campo. una transacción tal y como lo haríamos si la estuviésemos procesando manualmente. La diferencia es que mediante batch Transacciones procesadas correctamente: igual que el input podemos hacer esto proceso de forma repetitiva, cosa que anterior, pero que han finalizado con éxito. si tuviéramos que llevarlo a cabo manualmente se convertiría en un proceso muy tedioso. Dynpros: nos indica el número de pantallas que se han procesado durante la ejecución del juego de datos. Típicamente la programación de un batch input se utiliza para la carga masiva de datos en SAP. Sin embargo, el resultado de un programa de batch input no es la transferencia de datos directamente a SAP, sino la generación de un juego de datos. En este juego se guarda toda la información de la transacción relevante para la carga (pantallas por las que se pasa, datos que se deben poner en cada campo y las teclas que se pulsan). También vemos una serie de pestañas. En cada una de ellas, En este post explico cómo tratar estos juegos de datos generados los juegos de datos se observan según su estado. En la de modo que la información contenida en éstos se transfiera pestaña inicial observamos todos los juegos de datos, en la completamente al sistema. pestaña ‘nuevo’ sólo aquellos juegos de datos aún no Procesado on-line procesados, en ‘erróneos’ aquellos juegos de datos que han dado al menos un error durante su procesamiento, etc. Al crear un juego de datos podemos decidir si lo queremos procesar al momento o sólo crear el “fichero” del juego de datos para su procesamiento posterior. Si decidimos procesarlo inmediatamente, mediante una técnica de programación de batch inputs denominada de CALL TRANSACTION, entonces la transferencia de información será inmediata. Procesado en fondo ¿Y cómo procesamos nuestro juego de datos? Si, por el contrario, decidimos procesar el juego de datos posteriormente, entonces debemos ir a Marcamos el juego de datos que queremos ejecutar 1
  • 28. y pulsamos el botón ‘Ejecutar’. camino a seguir es diferente. No podemos hacerlo directamente a través de la transacción SM35. En este caso lo haremos Automáticamente nos abre tres posibilidades: mediante el programa RSBDCSUB. Ejecutar visible: esta opción nos permite observar paso Herramientas /Workbench ABAP /Desarrollo /SE38 — Editor a paso cada una de las pantallas por las que va ABAP pasando. Recomendada cuando estamos haciendo pruebas pero totalmente desaconsejada cuando Escribimos el nombre de nuestro programa RSBDCSUB queremos hacer una carga muy grande de información. y ejecutamos. Si queréis salir de la ejecución en visible podéis pararla Escribimos el nombre del juego de datos a planificar y la escribiendo /bend en la ventana de comandos. fecha en que se creó. Seleccionamos en el menú Programa /Ejecutar en proceso Visualizar sólo errores: en este caso la transferencia de de fondo. información se realizará sin que nosotros lo veamos directamente, pero se deterndrá cuando detecte un Introducimos los parámetros de impresión (si queremos que error en la información contenida en el juego de datos. se imprima el log de resultado). Nos permite corregir el error directamente cuando Escribimos la fecha y hora en que queremos que se inicie el sucede. Se puede utilizar con cargas no muy grandes procesado del juego de datos. de información, pero no en procesos muy largos ya que nos obliga a estar delante del ordenador. Invisible: es la opción que se utiliza comunmente. Nos permite proceso el juego de datos en fondo sin ninguna intervención por nuestra parte. Los resultados y posibles errores ya los veremos en el log de la transacción de batch inputs SM35. Mientras se está realizando la transferencia de información el juego de datos pasa à la pestaña ‘En tratamiento’. Sabremos que el proceso ha finalizado cuando nuestro juego de datos pase à la pestaña de ‘Procesado’. Para ver si hemos creado correctamente el job de fondo: Sistema /Servicios /Jobs /Resumen jobs Y, de nuevo, para ver el estado en que se encuentra el proceso Si todo ha resultado correcto el status del juego de datos se del juego de datos: marcará como ‘procesado’ y pasará à la pestaña correspondiente. De lo contrario, se marcará como ‘erróneo’ y pasará à la pestaña Herramientas /Gestión /Monitor /SM35 – Batch input ‘erróneos’. Imagen inicial | simminch ¿Cómo ver qué ha ido mal? Hacemos doble click sobre el juego de datos. Marcamos la pestaña ‘Logs’. Buscamos aquellas líneas resaltadas ya que serán las que contienen el mensaje de error. Planificación del procesado en fondo Finalmente, si decidimos procesar el juego de datos con posterioridad al lanzamiento del batch input, pero además deseamos hacerlo en una fecha y hora determinadas, entonces el 2
  • 29. 24 December, 2011 | created using fivefilters.org Extracción de información a partir de jobs Seguidamente pulsamos el botón ‘Parámetros de impresión’ y luego ‘Atributos’. Nos aseguramos de que no se imprima automáticamente el resultado, sino que el listado quede en el spool. En más de una ocasión deseamos extraer información de SAP para analizarla externamente por ejemplo con Microsoft Excel. Sin embargo, debido al tiempo que ocupa la ejecución de la transacción no podemos hacerlo on-line. Si nos fijamos en el parámetro abap/timeout fijado en el sistema, éste es demasiado bajo como para lanzar el programa en un proceso diálogo. Podemos visualizar este parámetro en nuestro sistema en la transacción Herramientas /CCMS /Configuration /RZ10 – System profile Grabamos y volvemos à la pantalla anterior. Entonces, ¿cómo podemos consultar información en SAP si la Pulsamos el botón ‘Condición inicio’ e indicamos cuándo ejecución de una transacción consume mucho tiempo? La queremos que se inicie. Podemos indicar que se lance respuesta es programando un job de fondo para la transacción. inmediatamente, en una fecha y hora concretas, cuando finalice otro job, etc. En este caso voy a indicar que se lance Crear un job de fondo inmediatamente. Y grabamos. Imaginemos que queremos consultar la lista de saldos de entradas de mercancías Logística /Gestión de materiales /Gestión de stocks /Entorno /Visualización de saldos /MB5S – Lista de saldo MSRF En primer lugar debemos conocer el programa que se esconde detrás de la transacción. Para ello vamos à la transacción y pulsamos el menú Sistema /Status. En el ejemplo el programa se llama RM07MSAL. Seguidamente vamos à la transacción que nos permitirá definir nuestro job y damos nombre a nuestro job. Herramientas /CCMS /Background processing /SM36 — Define job Pulsamos en el botón ‘Paso’ y escribimos el nombre del programa y la variante con la que lo lanzaremos. Volvemos à la pantalla anterior y grabamos el conjunto. Extraer la información de una orden de spool Una vez ha finalizado la ejecución del job podemos ir a recuperar la información de salida. Vamos al spool controller. Herramientas /CCMS /Print /SP01 – Output controller 1
  • 30. Buscamos una orden de spool que debe contener el nombre del programa que hemos lanzado. Marcamos esta orden y el botón ‘Lista ABAP’. Vamos al menú Orden spool /Transmitir /Grabar en fichero local. Nos abrirá una ventana e indicaremos el formato en que queremos guardar el listado. Ya la tenemos para tratar fuera de SAP. Enviar la información de un job a una cuenta de mail Otra opción es que à la finalización del job, éste envíe el resultado directamente a nuestra cuenta de correo electrónico. Para ello hay que incluir la dirección de correo electrónico à la hora de crear el job en el botón ‘Destino listas spool’. La forma detallada de hacerlo la tenéis en el siguiente enlace. Podéis enviar la información: A una cuenta de correo individual. Herramientas /CCMS /Background processing /SM36 — Define job /Destino listas spool A un grupo de usuarios creando una lista de distribución mediante la transacción SO28 Éste es el último post de la temporada. El blog volverá en breve. Os deseo que paséis unas buenas vacaciones si las tenéis. Nos vemos à la vuelta. 2
  • 31. 20 December, 2011 | created using fivefilters.org Parametrización de tablas de Si queremos que nuestra disposición sea visible solamente durante esta sesión recuperaremos nuestra variante del control (table control) en campo ‘Opción actual’ en el apartado ‘Seleccionar variantes’. transacciones En cambio, si queremos que nuestra disposición sea visible siempre para nuestro usuario recuperaremos nuestra variante del campo ‘Parametrización estándar’ en el apartado ‘Seleccionar variantes’. Si, por el contrario, queremos que esta disposición afecte a todos los usuarios del sistema tendremos que trabajar como administradores.  Marcamos la opción ‘Responsable del sistema’. Esta opción está reservada al objeto de autorización S_ADMI_FCD. Activamos la disposición en la ventana que se nos abre a continuación. Si queremos, incluso podemos transportar la opción a otros sistemas (icono ‘Incluir en orden de transporte’). La parametrización de tablas sirve para modificar el orden, tamaño y número de campos a mostrar en una tabla de control de una transacción. Ejemplo Si tomamos como ejemplo la tabla de posiciones que encontramos en los pedidos de venta de forma estándar nos podemos contrar con la siguiente distribución de campos… posición, material, cantidad de pedido, un, r, denominación, número de material del proveedor, tpos, etc. Logística /Comercial /Ventas /Pedido /VA02 — Modificar Si ésta no es la distribución que nos interesa la podemos cambiar realizando los siguientes pasos: Marcamos aquellos campos que queremos cambiar y los arrastramos à la posición que a nosotros nos interese. Por ejemplo, en este caso voy a marcar el campo tipo de posición (Tpos) y lo voy a llevar detrás del de unidad de Finalmente, hay que indicar que toda la información de medida (UM). disposición guardados se almacenan en la vista TCVIEW, à la Abrimos el icono configuración que se encuentra en la parte cual podemos acceder a través de la transacción SM30. Por lo superior derecha de la tabla. tanto, podemos copiar la disposición que hemos generado para un usuario replicando las entradas generadas en esta vista para En el campo ‘Variante’ del apartado ‘Gestionar variantes’ el usuario correspondiente. asignamos un nombre a nuestra nueva disposición y marcamos el botón ‘Crear’. Imagen | INTVGene 1