guias 100% revisadas sqvi sap

51
Query SAP (I): grupos de usuarios DOMINGO, 28 DE MARZO DE 2010 inCompartir ¿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.

Upload: alvaro-villegas

Post on 17-Nov-2015

118 views

Category:

Documents


6 download

DESCRIPTION

Guias 100% Revisadas SQVI SAP

TRANSCRIPT

Query SAP (I): grupos de usuariosDOMINGO, 28 DE MARZO DE 2010inCompartir

Cmo puedo recuperar informacin almacenada en el sistema acerca de mis clientes? Y acerca de mis proveedores? Y de mis ventas? En definitiva, cmo 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 informacin de la base de datos para generar listados de informacin en tiempo real.

Es verdad que existen herramientas de programacin ABAP que ya nos permiten hacer listados y recuperar informacin 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 construccin de listados una tarea ms rpida 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.

Definicin de un grupo de usuariosUn grupo de usuarios es el primer paso en la creacin de una query SAP. En cada grupo asignamos los nombres de los usuarios que tendrn acceso final a la query que generaremos. No es ms que una autorizacin para poder utilizar nuestra query a un grupo ordenado de personas.

Por ejemplo, podemos determinar que las consultas o queries del mdulo SD slo las podrn 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: botn 'Crear'. Asignamos los usuarios: botn 'Asignar usuario y Infosets". Para permitir que un usuario modifique las queries del grupo de usuarios debemos mantener marcado el flag de autorizacin junto al nombre de usuario.

Guardamos.Y ya hemos acabado el primer paso en la creacin de una query.

Query SAP (II): infosetsDOMINGO, 4 DE ABRIL DE 2010inCompartir

El segundo paso en la creacin de una query es la definicin del infoset asociado. Los infosets son vistas especiales de datos donde se agrupan todos los campos que se utilizarn en una query. En un infoset enlazaremos diferentes tablas a travs de campos comunes y seleccionaremos qu campos queremos que estn disponibles para nuestras queries. A su vez, asignaremos el infoset a uno o ms grupos de usuarios (recordad el post anterior sobre grupos de usuarios).

FuncionalidadSiguiendo con el ejemplo del anterior post vamos a crear un infoset de informacin 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 informacin de pedidos de clientes en SAP se encuentra en la tabla VBAK. La informacin de las cantidades solicitadas se encuentra en la tabla VBAP. Tambin debemos saber que ambas tablas se relacionan entre s a travs del campo "documento de ventas" (VBAK-VBELN / VBAP-VBELN). Ahora podemos empezar a construir nuestro infoset. Entramos en la transaccin de infosets.Herramientas / Utilidades / Query SAP / SQ02 - Infosets Creamos un infoset, le damos una descripcin y una tabla base sobre la que generaremos nuestro infoset. En nuestro caso sobre la tabla VBAK. En este apartado existen varias opciones: podemos crear el infoset realizando la consulta slo sobre una tabla en exclusiva, sobre varias tablas, sobre una base de datos lgica o incluso sobre datos externos. Hay que pensar bien qu opcin escoger ya que una vez se ha creado ya no hay vuelta atrs. Por ejemplo, si escogemos crear un infoset a travs de una tabla, si en el futuro decidimos aadir 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 tambin habra que borrar antes la query. Personalmente, siempre creo las queries va unin de tablas aunque en el momento que cree el infoset slo necesito informacin de una de las dos. As me ahorro problemas en el futuro.

Creamos el enlace entre ambas tablas aadiendo la nueva tabla VBAP. Automticamente, SAP nos propone las conexiones entre tablas. Sin embargo, podis borrar el enlace y asociarlo a travs 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. Atencin, 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 mejor utilizar tablas transparentes como la BSID, BSAD, BSIK o BSAK.Tratar / Insertar tabla

Volvemos hacia atrs y creamos los grupos de campos (Pasar a / Back). Esto son una especie de carpetas donde asignaremos los campos de nuestras disponibles para las futuras queries. Yo escoger crear 'Grupos de campos vacos' con lo que me crear dos carpetas, una para la tabla VBAK y otro para la VBAP sin ningn campo asignado. Arrastramos los campos de las tablas (parte izquierda de la pantalla) hacia los grupos de campos que hemos creado (parte derecha de la pantalla). En mi caso, arrastro los campos solicitante y documento de ventas de la VBAK y cantidad y material de la VBAP. Como veis sobre los campos solicitante y nmero de material SAP escribe una T. Eso significa que asociado a estos cdigos SAP internamente tambin arrastra sus descripciones, por lo que no hay que hacer ninguna seleccin hacia las tablas de descripciones del solicitante (KNA1) ni del material (MAKT).

Adems, para complicarlo un poco ms voy a aadir un campo que no est en ninguna de las tablas. Por ejemplo, si la posicin ha sido rechazada (lo que se indica en SAP a travs del campo VBAP-ABGRU) le voy a dar la descripcin 'Posicin rechazada'. Esto slo lo podemos hacer mediante programacin ABAP, una herramienta muy interesante que nos permiten los infosets.Pasar a / Detalles Creamos el campo adicional y le damos descripcin y tipo.

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

Volvemos a 'Grupo de campos'. Vemos ahora que en la parte izquierda de la pantalla nos aparece un nuevo campo de datos 'Campos adicionales' que contiene el campo que hemos creado. Lo que hay que hacer ahora es crear un nuevo grupo de campos y arrastrar nuestro campo adicional a este grupo de campos (tambin podramos arrastrarlo a uno de los grupos de campos que ya tenemos).

Slo nos queda grabar, verificar y activar nuestro infoset.Infoset / GrabarInfoset / VerificarInfoset / Generar Ya podemos volver a la pantalla inicial y asignar el infoset al grupo de usuarios que creamos anteriormente a travs de la transaccin SQ01 (ver el post anterior).Pasar a / Asignacin a grupo de usuarios

Query SAP (III): crear una queryDOMINGO, 11 DE ABRIL DE 2010inCompartir

Definicin de queryEl tercer paso en la creacin de una query es, precisamente, la creacin de la query propiamente dicha. Esto es un listado de informacin extrada de la base de datos. Para ello es necesario que previamente hayamos creado el grupo de usuarios al que permitiremos extraer la informacin. Asimismo, debemos haber creado el infoset donde indicamos las tablas de informacin necesaria.

Crear una query consiste en generar una pantalla de seleccin de la informacin y una disposicin (layout) de salida de toda esta documentacin.

FuncionalidadSigamos con el ejemplo. Creamos una query de informacin de ventas. Entramos en la transaccin de queries.Herramientas / Workbench ABAP / Utilidades / Query SAP / SQ01 - Queries Podemos crear nuestra query bien en rea estndar bien en mbito global. Esto significa que podemos crear la query y luego transportarla (mbito global) o bien crear la query directamente en nuestro entorno productivo (rea estndar). Mi experiencia personal me dice que no merece la pena el trabajo de crear una query en un mandante de desarrollo y luego transportarla hasta nuestro mandante productivo. Ser ms rpido y ms fcil testear nuestra query si la creamos directamente en el rea estndar. Para eso vamos a Entorno / mbitos funcionales / rea estndar (especfico 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. Automticamente nos pedir que la asignemos a un infoset (recordar el paso II). Evidentemente, asignaremos el infoset que ya habamos creado previamente (SD_VENTAS).

En la siguiente pantalla, SAP nos pide una descripcin de la query. Podemos tambin indicar la variante de la pantalla de seleccin que queremos que se utilice por defecto al ejecutar la query. Esta variante la podemos crear cuando ya hayamos generado nuestra query y aadirla aqu directamente (campo Variante estndar). En esta pantalla tambin aparecen datos de 'Formato de salida'. Aqu le podemos indicar a nuestra query cmo queremos que se muestre. Por defecto, utilizamos el "List Viewer ABAP", es decir, el ALV tpico. Aunque SAP nos da la posibilidad incluso de lanzar el resultado directamente hacia un Excel si as se quiere (EXCEL).

Pasamos a 'Seleccin de grupos de campos'. Aqu debemos seleccionar todos nuestros grupos de campos del infoset. O, si alguno de los grupos de campos no los quisiramos utilizar en nuestra query, entonces simplemente no lo seleccionamos. En 'Lista bsica' 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 habamos seleccionado directamente en nuestro infoset, s que nos aparecen dentro de los campos disponibles. Eso es simplemente porque los campos de cdigo solicitante y nmero de material siempre llevan asociadas sus descripciones por defecto. En la pantalla de 'Selecciones' creamos nuestra pantalla de seleccin. Es decir, los criterios a partir de los cuales buscaremos la informacin. Yo voy a marcar los campos solicitante, material y documento de ventas.

'Lista bsica': aqu construimos la disposicin de salida donde indicamos qu campos queremos que se muestren en el listado y en qu orden. Adems, podemos tambin darle algn formato especial como colores, guiones de separacin, etc. Yo voy a marcar todos los campos disponibles y adems 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 seleccin.

Y as el layout de salida.

A partir de aqu ya podemos utilizar la funcionalidad propia de los listados ALV como descargar la informacin en Excel, hacer filtros, sumas, sumas parciales, etc.

ABAP en queries: programas integradosDOMINGO, 27 DE MARZO DE 2011inCompartir

Siguiendo con una serie de artculos anteriores donde ya explicaba como crearquerieseinfosetsvoy a intentar mostrar otra manera realizar queries. En este caso vamos a integrar programacinABAPen queries SAP. Se trata de utilizar toda la potencia que nos dan las presentaciones va query para mostrar informacin, pero hacindolo sin utilizar losjoins grficosde tablas.

En un principio, las queriesSAP se entienden como una forma sencilla de extraer informacin de la extensa base de datos de SAP. Paraobtener esta informacin, la mejor manera es utilizarla conexin grfica de tablas en nuestros infosets. Sin embargo, para aquellos que ya tengan conocimientos sencillos de programacin ABAP, SAP provee una herramienta de programacin integrada en infosets. Con ella, no necesitamos utilizar ninguna conexin grfica, sino que podemos obtener informacin a travs de sentenciasSQLy 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 susALVylayouts. Nos quita trabajo ya que slo debemos concentrarnos en recuperar la informacin. De la presentacin de sta ya se ocupa la query. Adems, nos da un entorno organizado de listados ya que nos permite tener todas nuestras consultas bajo la apariencia de la transaccin de queries SQ01. Nos evita tener un grupo inconexo de transacciones programadas bajo nombres Z* que, en el mejor de los casos, habremos agrupado en mens de usuario o en mens de favoritos. Tambin nos da la posibilidad de crear consultas de informacin impensables en un join simple de tablas creado mediante la conexin grfica. 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 lnea de cabecera para cada pedido y siguiendo a esta cabecera, toda la serie de posiciones del pedido. Creamos el infoset marcando Obtencin de datos mediante programa y Programa integrado.

El infoset nos exigir que introduzcamos unaestructurade datos. Por lo tanto, previamente debemos ir al diccionario y crear la estructura que soportar la salida de informacin. Este paso previo no lo explico pero tenis un ejemplo en el siguienteenlace. En este punto, los campos disponibles sern los que nos indique nuestra estructura. Arrastraremos estos campos al grupo de campos que tengamos creados. Lo interesante aqu, es que se nos abre un botn que no habamos visto hasta ahora. Este botn se llama Programa de lectura de datos y nos seala el lugar a travs del que haremos nuestra programacin ABAP. As que lo marcamos.

El editor ABAP que se nos abre consta de diversos eventos donde escribimos nuestros comandos ABAP: Declaracin de variables.

Pantalla de seleccin. Definimos el pedido de compras como parmetro de seleccin en nuestra query. Podemos indicar una descripcin del parmetro para que no aparezca el nombre de la variable al ejecutar la query. Para ello tenemos que ir a la pestaa Delimit y haciendo doble click sobre el parmetro cambiamos el texto de seleccin.

Extraccin de datos.

Salida de informacin.

Generamos nuestro infoset. Asociamos el infoset a un grupo de usuarios. Creamos nuestra query normalmente.Y ste es el resultado:

Un listado de las posiciones de un pedido con una cabecera para el pedido. El ejemplo es muy sencillo y poco significativo pero nos da una idea de la potencia de la herramienta.

Cmo encontrar tablas de una transaccinLUNES, 2 DE JULIO DE 2012inCompartirQuisiera saber qu campos y tablas utiliza este programa... Tengo que encontrar las tablas de la base de datos donde guarda la informacin esta transaccin... Son preguntas que seguro que nos hemos hecho ms de una vez. Quiz, solamente para preparar una query, quizpara utilizar la tabla en un listado o quiz para comparar la informacin en SAP con la que tenemos en nuestros excels.Sea cual sea la razn, en este artculo voy a enumerar varias formasdedetectar los campos y las tablas que utilizan las transacciones de SAP.

Imagen debenaballen pixabay

Datos tcnicos (F1-F9)Es quizs, la forma ms rpida. Supone utilizar la ayuda propia de los campos de las transaccin SAP directamente. Lovoy a mostrar en un ejemplo con la transaccin VA02. Llamamos a nuestra transaccinVA02 Nos situamos sobre el campo. Apretamos la teclaF1. Pulsamos el botnDatos tcnicos (F9 o icono del martillo).Nos fijamos en los datos que aparecen a continuacin deTablayNombre de campoya que contienen precisamente la informacin que buscamos, la tabla que almacena la informacin del campo sobre el cual nos habamos posicionado. En este caso la tabla es laVBAKy el campo es elVBELN.

Pero tambin tenemos que fijarnos en el valor que aparece a continuacin deClase tabla. Si el valor que se indica establa transparentepodemos estar seguros de que es una tabla que almacena informacin, pero si se indica que laclase de tablaes unaestructura, entonces debemos seguir buscando para encontrar la tabla transparente que contiene la informacin.

Ayudas de bsqueda o matchcodesConsiste en buscar las tablas a partir delmatchcodeasociado al campo de nuestra transaccin.Por ejemplo, con la transaccinVF03seguiramos estos pasos: Nos posicionamos sobre el campo. Seguimos los pasos del apartado anterior (F1-F9). Buscamos el valor que aparece a continuacin deAyuda de bsqueda. En este caso encontramos que el valor esVMCF. Hacemos doble click. Como hay matchcodes incluidos seguimos haciendo doble click para navegar a cualquiera de los matchcodes. Hacemos doble click sobre el valor del apartadoMtodo de seleccinpara llegar finalmente a las tablas incluidas en el matchcode.

Include TOP de programaSi sabemos leer el cdigo ABAP del programa podemos buscar los nombres de tablas directamente sobre el cdigo. Escribimos la transaccin. Por ejemplo,VF03 Seguimos los pasos del primer apartado (F1-F9). Hacemos doble click sobre el nombre del programa para navegar hasta l. Buscamos en el programa un include que seguramente acaba con las letras _TOP. Buscamos la sentenciaTABLES. Tras esta sentencia encontraremos las tablas que utiliza el programa.A veces no existe ningn include que contenga las letras _TOP. En ese caso es suficiente con hacer una bsqueda directa de la sentenciaTABLES.

Trace SQLConsiste en hacer una llamada a la transaccinST05.Herramientas / Workbench ABAP / Test / ST05 Trace SQL Llamamos a la transaccinST05 Marcamosactivate trace. En otro modo, llamamos a nuestra transaccin problemtica, en este caso laMM02. Volvemos aST05y marcamosdeactivate trace. PulsamosDisplay Trace.

El listado que nos muestra la transaccinST05es el conjunto de tablas y llamadas que hemos realizado cuando hemos ejecutado la transaccinMM02. A partir de aqu debemos decidir cul de todas las tablas que nos muestra es la nuestra. Admito que esta forma de buscar informacin es complicada ya que supone navegar entre la gran cantidad de tablas que en una sola transaccin puede llegar a llamar SAP.

Listados de tablasUtilizar alguno de los muchos listadosque corren por internet con la informacin de tablas que utiliza SAP. Podis utilizar un listado detablas de este blog, uno demundosap, uno de lasdn, etc.

Referencia de utilizacinConsiste en hacer las bsqueda de forma inversa. Hasta ahora empezbamos en una transaccin para llegar a las tablas y campos incluidos en la transaccin. Aqu se trata de empezar por un campo o tabla para llegar a la transaccin que los utiliza.

Herramientas / Workbench ABAP / Desarrollo / SE11 Diccionario ABAP Escribimos la tabla de base de datos que queramos. Por ejemplo, laVBAK. Pulsamos visualizar. Marcamos el campoVBELN. Vamos al menUtilidades / Referencia de utilizacin. Marcamosutilizacin en programas.Nos mostrar la lista de programas que utilizan ese campode tabla. Si sabemos cul es el nombre del programa podemos seguir profundizando hasta llegar a la transaccin.

Transporte de textos estndar entre sistemasMARTES, 1 DE OCTUBRE DE 2013inCompartir1En SAP la mayora de modificaciones realizadas sobre los entornos de desarrollo se copian al sistema productivo medianterdenes de transporte. Sin embargo, existen objetos que no generan rdenes de transporte. Por ejemplo, lasnumeraciones, los formularios SAPscript o los textos estndar.

Imagen propiedad deGeralt

Los textos estndar son textos fijos que creamos en SAP en, sobre todo, formularios smartforms o sapscripts. Van a contener tantas lneas de informacin como nosotros queramos.

1. Cmo crear un texto estndar

En este ejemplo voy a crear un texto de direccin.

Herramientas / Imprimir formularios / SAPscript / SO10 - Textos estndar Entramos en la transaccin SO10 Damos nombre a nuestro texto, le asignamos el tipo direccin (ADRS) e indicamos que vamos a crearlo en idioma espaol. Pulsamos el botn 'Crear'.

Escribimos nuestro texto y guardamos.

2. Cmo transportar un texto estndar

Sin embargo, mientras realizamos todos los pasos nos habremos dado cuenta que nuestro texto estndar no ha generado ninguna orden de transporte. Por lo tanto, no lo podremos transportar automticamente. Para transportarlo tenemos, sin embargo, otras opciones.

Utilizar el programa RSTXTRANHerramientas / Workbench ABAP / Desarrollo / SE38 - Editor ABAP

Ejecutamos el programa. Rellenamos los datos que nos solicita en pantalla.

Seleccionamos nuestro texto y pulsamos 'intro'. Ahora al pulsar el botn 'Pasar txt. a correc' SAP generar una orden de transporte. Podemos seleccionar una que ya exista e incluir el texto en esa orden o crear otra completamente nueva.Utilizar la funcin grficasta es una funcionalidad obsoleta. Se utilizaba antiguamente para subir imgenes a SAP como texto. Aunque para lo que nos ocupa an se puede usar.

Herramientas / Imprimir formularios / Gestin / SE78 - Funcin grfica

Ejecutamos la transaccin. Nos posicionamos sobre nuestro tipo de texto. En nuestro caso el tipo 'ADRS' de direccin.

Escribimos nuestro texto estndar y su idioma. Pulsamos el botn 'Transportar'. El sistema nos solicitar la creacin de una nueva orden de transporte.Crear la orden de transporte manualmenteLa nota65253explica la forma de crear rdenes de transporte manualmente para textos estndar en dos sencillos pasos. Ejecutar la transaccin SE01. Aadir bajo la tarea el objeto como TEXT, ZADRS_SIGNATURE, ADRS, S.

Cmo crear una transaccinLUNES, 15 DE SEPTIEMBRE DE 2014inCompartir7La transaccin es la unidad de trabajo para los usuarios de SAP. En general, cada transaccin llama a un programa escrito en SAP y realiza una funcin especfica dentro del ERP. Transacciones estndar existen muchas y ya se han tratado previamente en el blog.

Transacciones en finanzasTransacciones en logstica

sobre una imagen deniekverlaand

Sin embargo, en este caso vamos a definir los diferentes tipos de transacciones que se pueden crear en SAP.

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

Transaccin de dilogoSon transacciones aplicadas a programacin de dilogo o dynpros. Si nuestra transaccin se compone de diferentes pantallas en una secuencia determinada mediante la creacin de una transaccin de dilogo deberemos indicar el programa principal y la primera pantalla o dynpro de la secuencia.

Creando la transaccin con los parmetros indicados podemos conseguir crear una transaccin que sera rplica de la transaccin XD03 pues llama a la primera pantalla del programa de visualizar datos maestros de cliente. Pero cuidado porque eso no significa que sea funcional. Las transacciones de dilogo se deben utilizar para nuestros programas de dilogo Z.

Transaccin de reportUn tipo de transaccin aplicado a programas de report o listados tpicos. En este tipo de programas hay tpicamente una entrada de datos a travs de una pantalla de seleccin, un proceso de datos interno y finalmente una salida de informacin del resultado del proceso que suele ser en forma de listado. Slo existe un programa asociado y no se crean dynpros o imgenes adicionales.

En el ejemplo se ha creado una transaccin de report para listar stocks ya que llama al mismo programa que la transaccin MB52, aunque en este caso no es funcional. Para un tutorial detallado de cmo crear reports que poder utilizar en transacciones de report es interesante revisar los siguientes artculos.

Tutorial ABAP bsico (I): crear un reportTutorial ABAP bsico (II): declaracin de datosTutorial ABAP bsico (III): pantallas de seleccinTutorial ABAP bsico (IV): recuperar datosTutorial ABAP bsico (V): hola mundo

Transaccin de varianteTransacciones especiales donde se pueden definir cmo van a mostrarse los diferentes campos de otra transaccin. Podemos indicar qu campos mostrar y qu campos no mosrar. Para crear una transaccin de variante debemos indicar previamente la transaccin estndar de la cual vamos a crear nueva transaccin; adems la transaccin a modificar debe permitir el uso de transacciones de variantes pues no todas lo permiten; finalmente ha de tener una variante previamente creada. Un ejemplo de cmo crear una transaccin de variante lo tenis en un artculo anterior.

Simplificacin de pantallas con variantes de transaccin

Transaccin con parmetrosEn una transaccin con parmetros se utilizan transacciones previas (estndar o no) para crear una nueva transaccin. En este caso la transaccin con parmetros permite asignar valores fijos a campos de la pantalla inicial de la transaccin previa. Con ello se consigue lanzar la transaccin previa siempre con la misma informacin fija. Es til cuando un usuario debe introducir la misma informacin siempre para entrar en una misma transaccin o cuando queremos crear vistas de tablas.

Para la creacin de vistas de tablas mediante transacciones con parmetros puede ser interesante visitar el artculo

Navegacin en queriesDOMINGO, 19 DE JUNIO DE 2011inCompartir

Una de las peculiaridades de SAP es que estemos donde estemos el sistema suele permitirnos saltar entre transacciones. Simplemente debemos situarnos encima de un campo, hacer doble click y el sistema navegar a otra transaccin relacionada con ese campo. Por ejemplo, si en la transaccin en la que estamos hay un campo con el cdigo de un material, si hacemos doble click sobre ste SAP navega hacia la transaccin delmaestro de materialesde ese cdigo en concreto.

En otros artculos ya haba explicado cmo crearqueries. En esta ocasin voy a ampliar estos posts con esta sencilla funcionalidad de SAP, la navegacin.

CasoTenemos una query que nos permite listar posiciones depedidos de ventadonde nos muestra las posiciones de pedidos con el cdigo de material. Queremos que al hacer doble click sobre un registro en concreto SAP nos muestre elstockdisponible en almacn de ese material y el pedido de ventas completo asociado Cmo lo hacemos?

Solucin Modificamos nuestra query.Herramientas / Workbench ABAP / Utilidades / Query SAP / SQ01 Queries Vamos al menPasar a / Asignacin del informe. Indicamos que nuestro tipo de informe ser una transaccin. Igual que una transaccin podramos indicar un report ABAP, una query, etc. Introducimos el nombre de nuestra transaccin (VA03 para visualizar el pedido de ventas completo) Repetimos de nuevo para la otra transaccin (MB52 para visualizar el stock del material). Grabamos.Ahora cuando lancemos la query y hagamos doble click sobre un registro del listado vamos a tener la opcin de escoger entre navegar a la transaccin VA03 o a la MB52.

En el siguiente vdeo explicativo se muestran todos los pasos:

La navegacin se realiza al hacer doble click sobre cualquier punto de un registro, independientemente del campo sobre el que se pulse. Entonce, cmo determina SAP cul es el campo que tiene que utilizar para navegar? Pues lo hace en base al ID del parmetro. SAP recorre todos los campos del registro y enlaza el ID del registro correcto con el ID del parmetro de entrada de la transaccin. Entonces para verificar que la navegacin funcionar correctamente debemos determinar cul es el ID del parmetro. Eso lo hacemos mediante los siguientes pasos: Vamos al campo de entrada de nuestra transaccin, por ejemplo el de la VA03Logstica / Comercial / Ventas / Pedido / VA03 Visualizar Pulsamos F1. Marcamos Datos tcnicos o el icono Martillo. Verificamos que existe un valor dentro de ID parmetro.

Hacemos lo mismo para el campo de nuestra query, pero desde la transaccin SE11

Herramientas / Workbench ABAP / Desarrollo / SE11 Dictionary ABAP Introducimos el elemento de datos (VBELN_VA) en el campo tipo de datos. Visualizar. Y en la pestaa propiedades adicionales el valor del ID del parmetro debera ser el mismo que hemos obtenido anteriormente.As podemos estar seguros que la navegacin se har correctamente desde nuestra query.

Crear estrategias de liberacin en pedidos decomprasPublicado el26 febrero, 2011deRoberto Espinosa17 Votes

En muchas organizaciones, la gestin de las compras esta restringida por importes, de forma que cuando se superan unos determinados valores de compra, se requieren una o varias aprobaciones de personas diferentes a la que esta gestionando la compra. Esta persona o personas son los que realmente estan autorizando la compra.Sap nos permite por estandar configurar estas autorizaciones a travs de lasestrategias de liberacin. En nuestro ejemplo, las vamos a realizar a nivel de pedido de compra (Importe total del pedido), solo en una organizacin de compras. Sap tambin lo permite a nivel de solicitudes de pedido.La estrategia de liberacin a definir va a ser la siguiente:Importe de la compraLiberadorObservaciones

Inferior a 1000 EurosCompradorTambin podran liberar el supervisor de compras o el controller

Entre 1000 y 3000 EurosSupervisor de ComprasTambin podra liberar el controller. Aunque libere el comprador, siempre se va a quedar bloqueado hasta que liberen uno de los otros dos.

Mayor o igual a 3000 EurosSupervisor de Compras (1er nivel)Hasta que no libera el supervisor, no puede liberar el controller (es una especie de visado).El comprador no puede liberar nada.

Controller (2 nivel)

Veamos los pasos necesarios para configurar esta funcionalidad en el sistema:Ruta de customizing:Gestion de Materiales > Compras > Pedido > Procedimiento de liberacion para pedidos.

1. Creacin de caractersticas.A travs de las caractersticas definimos los criterios que vamos a poder utilizar posteriormente para hacer la clasificacin de las liberaciones. Aqu definiremos aquellos campos del pedido para los que luego vamos a definir una condicin que determina en que estado se quedan los pedidos y quien va a poder liberarlos.Para crear una caracterstica, indicaremos un nombre (es recomendable que empiezen todas por Z_), y a continuacin una descripcin, y un campo de referencia (en la pestaa datos adicionales). En la tabla CEKKO (Comunicacin determinacin-estrategia de liber.docum.comp.) tenemos los campos ms habituales del pedido que se pueden utilizar en las estrategias de liberacin.En nuestro ejemplo, vamos a crear tres caractersticas: Clase de pedido: Z_EKKO_BSART. Por si tuvieramos varios tipos de documentos de compras y solo quisieramos restringir para una en concreto. Organizacin de compras: Z_EKKO_EKORG. En cada organizacin de compras podemos tener unos criterios de importes diferentes, por ejemplo. Valor neto de pedido: Z_EKKO_GNETW. Con esta caractersticas vamos a controlar los importes totales de los pedidos.2. Creacin de clase (agrupacin de caractersticas).La clase es el agrupador de caractersticas que luego vamos a asignar a los grupos de liberacin. Todo las caractersticas que incluyamos en la clase estarn disponibles en la definicin de las estrategia de liberacin.La categora de la clase siempre ha de ser 032 Estrategia de liberacin.

3. Creacin de grupos de liberacin.Los grupos de liberacin son el elemento sobre el que vamos a definir las diferentes estrategias de liberacin. Es el elemento bsico a partir del cual vamos a ir definiendo el resto. En el grupo de liberacin se indica la Clase que hemos definido antes, y que determina, como hemos indicado, que campos del pedido tenemos disponible para nuestra clasificacin y determinacin de los procedimientos de liberacin.

4.Creacin de cdigos de liberacin.Para cada grupo de liberacin, crearemos los cdigos que representan los diferentes roles o personas que van a intervenir en el procedimiento de liberacin. Es un cdigo de 2 caracteres, con una descripcin asociada.

5. Creacin de indicadores de liberacin.Los indicadores de liberacin son independientes de los grupos de liberacin. Es una lista de los diferentes estados en los que vamos a poder tener los pedidos en el proceso de liberacin.

Adems, se determina cual o cuales de los indicadores de liberacin que suponen la liberacin del pedido. Adems, con la columna Modific. podemos indicar como afecta una modificacin en el pedido a una liberacin ya efectuada (en nuestra caso, he indicado el valor 4, que determina que se tengan que volver a realizar las liberaciones en el caso de cambio (este valor funciona en combinacin con el campo Modif. valor en %, que determina el porcentaje de aumento del importe del pedido para volver a tener que liberar. Si lo dejamos en blanco, ser siempre que haya un cambio en el pedido).NOTA IMPORTANTE: Un pedido no se va a poder imprimir ni va a poder recibir recepciones de mercanca hasta que sea liberado.6. Definicin de estrategias de liberacin.Esta es la ltima fase en la configuracin de las estrategias de liberacin. En nuestro caso, para el grupo de liberacin Z1 vamos a definir 3 estrategas, segn los importes que hemos apuntado anteriormente.Compras inferiores a 1000 Euros.Para ello creamos la estrategia de liberacin 01 Compras < 1000. En la pantalla principal indicamos los cdigos de liberacin que participan en la estrategia.En laseccin Estados liberacinindicamos el status del pedido segn las liberaciones efectuadas sobre l. En nuestro caso: Si no hay ninguna liberacin (campos Z1, Z2 y Z3 en blanco): el pedido se queda en estado B Bloqueo General. En el resto de caso (liberacin de cualquier de los tres posibles liberadores): el pedido se queda en estado L Liberado y listo para ser gestionado.En la seccinClasificacindeterminamos los criterios que aplican a esta estrategia de liberacin: organizacin de compras 1003, clase de pedido NB e importe de la compra inferior a 1000 Euros (tal y como vemos en la imagen superior).Compras entre 1000 euros y 3000 Euros.En este caso, creamos la estrategia 02 para los importes entre 1000 y 3000 euros. Basicamente, es similar la estrategia a la definida anteriormente. En este caso, si no ha liberado nadie o el que libera es el comprador, el pedido se queda en el estado Bloqueo Supervisor Compras. El estado no cambia a liberado hasta que libera el Supervisor o el Controller.

Compras mayores o iguales a 3000 Euros.Esta es la ultima estrategia dentro del procedimiento de liberacin definido. En este caso, ademas hemos definido relaciones de dependencia entre los diferentes cdigos de liberacin. En este caso, hasta que no haya liberado el Supervisor de Compras (Cdigo de liberacin Z2), no va apoder liberar el Controller (Cdigo de liberacin Z3). Esta dependencia la definimos en la seccin Condiciones liberacin (que en los dos casos anteriores hemos dejado a blanco).El funcionamiento es sencillo. En la parte de las filas tenemos el cdigo del liberacin. Para cada uno de ellos, tenemos en la parte de las columnas todos los cdigos de liberacin restantes. Los que estan marcados indican que son requisito para que el cdigo de la fila pueda liberar. Por ejemplo, para el cdigo Z3 Controller, se requiere una liberacin previa del Z2 (Supervisor Compras), pues aparece marcada la casilla del cruce del Z3 con el Z2.Los estados de liberacin van cambiando. Cuando no hay ninguna liberacin, se queda en el estado Bloqueo Supervisor Compras. Cuando libera el Supervisor, pasa al estado Bloqueo Gerencia. Cuando libera el controller, pasa al estado liberado. Adems, aqu no hay liberacin si solo liberara el Controller, debido a la condicin obligatoria que hemos fijado con las condiciones de liberacin.Una vez concluida la configuracin, podemos verificar que la parametrizacin este correcta con la opcin Verificar estrategias de liberacin (transaccin OMGSCK).NOTA IMPORTANTES: AUTORIZACIONES REQUERIDAS POR LOS USUARIOS PARA LIBERAR.A nivel de usuarios, se han de configurar los perfiles de autorizacin (Roles), incluyendo elobjeto de autorizacin M_EINK_FRG. En el indicamos los grupos de liberacin, y los cdigos de liberacin que posee el usuario, y que le van a permitir realizar las liberaciones oportunas segn las estrategas de liberacin definidas. Por ejemplo, para nuestro usuario comprador, le pondremos la autorizacin M_EINK_FRG con el grupo de liberacin Z1, cdigo de liberacin Z1. El supervisor tendra el valor Z2 en este ltimo valor y el controller el valor Z3.La autorizacin es la que determina realmente lo que pueden hacer o no los usuarios.La liberacin de los pedidos se realiza en una transaccin diferente a la de creacin/modificacin de pedidos. Lo realizaramos desde la transaccin ME29N para la liberacin individual y desde la ME28 para la validacin colectiva o por lotes.EJEMPLOS.Ahora ya podramos registrar los pedidos y verificar como van variando las estrategias de liberacin segn los importes introducidos. En un primer ejemplo, introducimos un pedido con un importe de 90 Euros. Tal y como vemos en la imagen, en la pestaa Estrategia de Liberacin, a nivel de cabecera de pedido, nos aparece con un status (indicador de liberacin) de Bloqueo General, y el sistema nos informa que estamos en el grupo de liberacin Z1, con la estrategia de liberacin 01 Compras < 1000.

A continuacin, el usuario con la autorizacin de comprador libera el pedido a travs de la transaccin ME29N. El status pasa a Liberado. Aparece igualmente marcado el cdigo de liberacin de quien ha realizado la liberacin.En un segundo ejemplo, utilizamos un pedido con importe superior a 3000 euros. Podemos ver en este caso que se ha creado con status S Bloqueo Supervisor de Compras, y el sistema ha determina la estrategia de liberacin 03 Compras >= 3000. En este caso, solo nos aparece como posible liberador el cdigo Z2.Una vez el supervisor libera desde la ME29N, el status cambia a G Bloqueo Gerencia, y ya aparece para el Z3 la posiblida de realizar la segunda liberacin que va a liberar completamente el pedido.Esto es solo un ejemplo de todas las posibilidades y posibles combinaciones que podemos configurar en el sistema para la realizacin de estrategias de liberacin complejas.ACTUALIZACION 20.01.2013.Para el caso de que necesiteis incluir nuevos campos para el tratamiento de las estrategias de liberacion, puede ser necesario utilizar la exit M06E0004 Modif.estructura comunicacin p.liberacin docs.compras. Para ese caso, podeis guiaros con este interesante documento que habla sobre ello extraido en el SCN de Sap:Release Strategy Enhancement in Purchase Order. Gracias a Zafar A.Valsal por su aportacin.