SAP Netweaver / ABAP                  Notas técnicas / Tips / Tutorials

Cómo ingresar texto en ABAP a través de un editor y guardarlo en una tabla

Descubra cómo ingresar texto en un programa ABAP de forma interactiva a través de un editor y guardarlo en una tabla interna para su procesamiento posterior.

En muchas oportunidades se le exige a los usuarios que ingresen al sistema textos explicativos sobre ciertas acciones que se llevaron a cabo o como simples descripciones de procesos o decisiones. Por ejemplo, es muy común que un usuario que rechace una Orden de Compra de materiales quiera o deba informar el motivo por el cual llegó a esa conclusión para así poder corregir el error rápidamente. 

A continuación se detallará una forma sumamente rápida y sencilla de implementar esta funcionalidad gracias a una función estándar de la API de SAP.

Uso de la función TERM_CONTROL_EDIT

1. En principio se procederá a testear la función. Ir a la transacción SE37 e ingresar TERM_CONTROL_EDIT. Luego hacer click en el botón “Test”.

ABAP-Function-Builder-Initial-Screen-1

2. La función tiene dos parámetros de Importing, un título para la ventana del editor y el idioma. Completar ambos campos y hacer click en “Execute”.

 

ABAP-Test-Function-Module-Initial-Screen

3. El resultado es un POP-UP con un editor de texto bastante cómodo e intuitivo. Se puede ingresar texto, importar y exportar archivos, deshacer y rehacer acciones; lo cual lo hace altamente funcional.

ABAP-MOTIVO-DE-RECHAZO

 

4. Finalmente cuando el usuario confirma la operación, la función retorna una tabla con el texto ingresado.

ABAP-Structure-Editor-Display

Para tener en cuenta ...

  • Usando la función TERM_CONTROL_EDIT, si el usuario en vez de confirmar la operación la cancela, se disparará la excepción USER_CANCELLED. Por este motivo siempre es necesario usar la clausula “EXCEPTION” en la llamada a la misma y consultar el valor del SY-SUBRC para poder reaccionar antes esta situación.

ABAP-Editor-Change-Report-1

 


Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, Netweaver, R/3, Fiori,S4/HANA y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA

 


Tutorial programación ABAP: Buen momento para pulir conocimientos

Tutorial programación ABAP: Buen momento para pulir conocimientos

No importa cuán experimentado sea un especialista o programador ABAP, siempre hay recursos o herramientas pasados por alto, subutilizados o simplemente desconocidos. Buen momento para pasar revista a su "repertorio" rápidamente, y tomar nota / ponerse al día con lo que valga la pena incorporar. 

Recursos para la Gestión de textos en programas ABAP

Cómo asociar en ABAP texto standard a una tarea de una Orden de Transporte

Conozca cómo asociar un texto standard a una tarea de una Orden de Transporte en ABAP, empleando el programa RSTXTRAN

Cómo traducir la documentación de un programa ABAP

Mantenga actualizada la traducción de los textos de documentación de un programa ABAP

Cómo dar formato a un conjunto de textos en ABAP

Utilice la función ABAP "FORMAT_TEXTLINES" para dar formato a un texto largo o a un conjunto de textos.

Cómo buscar un string en un conjunto de programas ABAP

Conozca cómo obtener la lista de programas que contienen una determinada cadena de caracteres en un programa ABAP

 

Recursos para la Gestión de tablas en programas ABAP

Cómo actualizar de una tabla sólo datos específicos mediante una "vista de actualización"

Aprenda a actualizar determinados campos de una tabla  mediante vistas de actualización en ABAP, sin crear programas complejos.

Cómo navegar desde una tabla al customizing

Utilice la transacción SM30 para  navegar desde una tabla standard al arbol de implementacion IMG del customizing SAP

Búsqueda de tablas

Aprenda cómo encontrar las tablas con los datos que se necesitan consultar en un programa ABAP.

Conozca las transacciones en ABAP que ayudan a encontrar tablas que almacenan datos necesarios para la programación.

Recursos para Gestión General en programas ABAP

Cómo obtener el flujo de documentos desde un programa ABAP

Recupere el flujo de documentos de un documento comercial mediante el uso de un módulo de función desde programas ABAP.

Novedades del editor y debugger de ABAP en SAP Netweaver 7.0

Aprenda las características fundamentales del editor y debugger ABAP en SAP Netweaver 7.0 .

Uso de íconos en ABAP

Cómo usar íconos en los programas reportes de SAP Netweaver ABAP.

Verificación de objetos no autorizados

Aprenda cómo conocer la falta de autorización sobre los objetos de ABAP.

Código oculto y/o bloqueado en un programa ABAP

Conozca como ocultar y/o bloquear codigo fuente en ABAP.

Creación de variables en tiempo de ejecución

Aprenda cómo crear variables en un programa SAP ABAP en tiempo de ejecución, aún si no conoce el tipo de dato.

Mantenimiento de jobs

Conozca algunos programas útiles para mantenimiento de Jobs en SAP.


Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, Netweaver, R/3, Fiori,S4/HANA y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA

 


 

Generación de archivos PDF desde SPOOL en SAP

¿Qué posibilidades ofrece SAP para generar archivos en formato PDF y cómo puedo generarlos a partir de OTF y ABAP Lists en el SPOOL?

Introducción: PDF (Portable Document Format) es un estándar sólido y universalmente aceptado para captura, visualización e intercambio de información multiformato, desde celulares hasta sistemas de misión crítica. Existen varias posibilidades, sobre todo en las versiones más nuevas de Netweaver, para producir salida en formato PDF desde un sistema SAP.

Es interesante conocerlas todas dado que difieren bastante conceptualmente al igual que su ámbito de aplicación y limitaciones. Las opciones más comunes en SAP para la generación de PDF´s son:

1. Conversión desde el SPOOL (programa RSTXPDFT4)

Si se trata simplemente de convertir a formato PDF documentos que ya están en el “spool”, es aplicable el método descripto en este tip. Es relativamente sencillo pero no es automático ni directo, se trata de una conversión.  El programa provisto por SAP, RSTXPDFT4, levanta los archivos de spool tanto ABAP Lists u OTF,y aplica un proceso de conversión basado en Function Modules de ABAP. (CONVERT_OTFSPOOLJOB_2_PDF, CONVERT_ABAPSPOOLJOB_2_PDF )

LOS PASOS A SEGUIR para esta operación SE DETALLAN MAS ABAJO EN ESTE TIP.

 

2. SAP Interactive Forms by Adobe

Con Netweaver 2004 (rel. 6.4) SAP propone la tecnología “SAP Interactive Forms by Adobe”, que es la forma más real y genuina de generar PDF's desde SAP, en forma NATIVA y sin mediar programas convertidores. Esta forma de trabajar con PDF´s está descripta en detalle en el tip publicado por Teknoda en el 2007. Cómo crear formularios de impresión basados en PDF e imprimirlos desde un programa ABAP


3. Configurar tipo de dispositivo "PDF1"

A partir la versión 4.6D es posible configurar un tipo de dispositivo virtual “PDF1”, que generará una salida PDF para archivar, enviar por mail, etc. Este se configura al igual que las impresoras, como una más. Existen algunas restricciones para la conversión a PDF a través del “device type”. (se tratará en próximos tips).

 

4. "Function Modules" de Conversión

Existen “function modules” de conversión desde documentos OTF y ABAP lists hacia formato PD binary, que pueden invocarse para customizar/ automatizar la generación de PDF´s . (también lo trataremos en futuros tips).

 

Método 1: Generación de PDF´s a partir de spool con el programa RSTXPDFT4

Pasos a seguir:

a. Utilizando la transacción “SP01” identifique los archivos que desea convertir.

sp01

 

b. Desde la transacción SE38, invoque el programa RSTXPDFT4 y ejecútelo (Execute (F8)).

rstxpdft4_spool_to_pdf

 

c .Indique en el dialog box:

  • el número de entrada de spool a convertir.
  • Tilde el casillero “Download PDF File”
  • Ingrese el nombre que le dará al archivo PDF
  •  

     

d. Indique Execute (F8)

Obtendrá una ventana para seleccionar el destino del archivo.

pdf_location

 

e. Una vez indicado “Save” el archivo quedará guardado en esa ubicación.

pdf_result

 

 

Para tener en cuenta:

 

  • La tabla “TSP01 contiene las entradas con los requerimientos en spool.
  • Unas líneas sobre SAP Interactive Forms

 

La tecnología más reciente para la creación de formularios en SAP, es la solución SAP Interactive Forms by Adobe. Esto permite crear formularios interactivos y formularios de impresión basados en Adobe PDF para optimizar los procesos de impresión de las aplicaciones.

El punto interesante en el uso de esta tecnología es su compatibilidad con las personalidades ABAP y JAVA del SAP Netweaver Application Server. Actualmente, el uso de los formularios de impresión basados en PDF, puede reemplazar a los SmartForms, del lado ABAP, y además, potenciar a las Web Dynpro, del lado de Java, así como a las Web Dynpro for ABAP en la personalidad ABAP, usando formularios interactivos.

Para tal efecto esta nueva solución SAP Interactive Forms by Adobe (disponible a partir de SAP Netweaver 04) utiliza el Adobe LiveCycle Designer, que es una herramienta de diseño que permite la creación de formularios utilizando UI Elements, de manera muy intuitiva y fácil de utilizar, y está totalmente integrado en el ABAP Workbench y en el Netweaver Developer Studio. Para leer más sugerimos Cómo crear formularios de impresión basados en PDF e imprimirlos desde un programa ABAP

Entendiendo SAP HANA

Desanudando Conceptos: SAP HANA

…si no “HANA” hoy, “HANA”rá mañana…

No hay “newsletter”, conferencia o evento del ambiente ERP que en los últimos meses haya ahorrado detalles y especulaciones sobre el nuevo paradigma: SAP HANA.

En medio del marketing “hype”, es siempre difícil para los que estamos en el ruedo decodificar lo esencial de las nuevas tecnologías, así que aquí va nuestro aporte para ayudar a una cabal y conceptual comprensión de SAP HANA.

 

SAP HANA: una primera definición.

SAP HANA  es una plataforma integrada (hardware + software) que combina innovadoras tecnologías de base de datos, con la modalidad de procesamiento “in-memory”, para soportar una nueva generación de aplicaciones de altísima performance, entre las que se destacan las herramientas analíticas con la promesa de lograr respuestas en tiempo real..

En realidad, SAP HANA es la respuesta de SAP a la nueva tendencia de “in-memory computing” que describimos más abajo, desarrollado en conjunto con sus clientes y socios comerciales. En principio, por sus características, las aplicaciones de Business Intelligence son el primer target de la tecnología SAP HANA, que promete velocidades de procesamiento miles de veces más eficientes que las actuales.

Para comprender correctamente de verdad SAP HANA hay que mirar un poco más atrás, y un poco más adelante.

 

Nudo 1: El desafío de las aplicaciones analíticas

Las soluciones de Business Intelligence son hoy una componente casi básica en gestión de la información de cualquier tipo de organización. En consecuencia, la explosión masiva en los volúmenes de datos recolectados por las empresas se ha convertido en un verdadero problema, sobre todo en las organizaciones más grandes.

Las herramientas de BW, BI, etc. se basan en la utilización de extractores que replican datos de los sistemas transaccionales, y su posterior modelización en complejas estructuras n-dimensionales, que alimentarán las herramientas de análisis de Business Intelligence.

Dependiendo de la cantidad de datos en los sistemas fuente y la complejidad de los “queries”, la carga de procesamiento y los tiempos de esta metodología convencional pueden ser muy limitantes. Por ejemplo, hay clientes que tienen bases de datos en sus BW de 6 o 7 terabytes, y necesitan procesamiento de horas para construir un “cubo” .

SAP HANA se postula como una solución a este problema.

NOTA de actualización: En Abril de 2012, SAP liberó SAP Netweaver BW powered by SAP HANA, donde el BW tiene a SAP HANA como base de datos primaria.

 

Nudo 2: La tecnología “in-memory”.

Con el avance vertiginoso en las tecnologías de RAM, surge la interesante posibilidad de llevar todos los datos físicamente más cerca de la unidad central de proceso, es decir, alojando las bases de datos en memorias RAM de alta capacidad en lugar de hacerlo en discos. A ésta se le llama “in-memory computing”.

Obviamente la idea de alojar datos en memoria no es nueva, y ya había avances en este sentido. De hecho el Business Warehouse Accelerator de SAP ya utiliza esta tecnología.

Lo que ha hecho que en los últimos años las soluciones “in-memory” sean tan populares, es que los precios y las capacidades la habilitan para una rango mucho más amplio de aplicaciones, pensando ya en memorias RAM capaces de alojar Terabytes de información. Eliminando el acceso a discos, el procesamiento “in-memory” genera tiempos de respuesta hasta 10.000 veces mayores y se puede procesar datos a una velocidad de 100GB por segundo.

El procesamiento “in-memory” involucra indudablemente la utilización de hardware “servidor” especializado, configurado y certificado para el software en cuestión, e incluso con el software pre-instalado. SAP HANA, es un producto que implementa “in-memory computing”.

SAP_HANA_memory

Nudo 3: Nuevas tecnologías en las bases de datos y procesamiento paralelo

El otro ingrediente fundamental en el core de SAP HANA, son las innovadoras tecnologías en el tratamiento de la base de datos.

El almacenamiento de tablas “por columna” ofrece nuevas posibilidades de compresión de los datos. Se habla de llevar a un nivel de compresión del 30% o menos, ésto es, a la tercera parte de su tamaño actual. Por ejemplo, en SAP TechEd 2011 se mostraron bases de datos de casi 3 Terabytes reducidas a 600 Gb de almacenamiento.

Asimismo, participan de SAP HANA algoritmos de procesamiento paralelo (multi-núcleo) que amasijan datos a velocidades hasta ahora impensadas (por ejemplo, consultar 360 millones de registros en apenas 1 segundo).

 

Nudo 4: Tras la promesa del “tiempo real”

Por último, y gracias a todo lo anterior, SAP HANA incluye un eficiente mecanismo de replicación de datos a través de distintas componentes de replicación de datos (SAP LT, SAP Data Services, o l Sybase Replication Server), que “aspiran” los datos del ERP o del CRM casi en tiempo-real, es decir, a medida que van ocurriendo. En lugar de los esquemas retrospectivos del data warehousing más tradicional, utiliza una tecnología “event-driven”.

El escenario de analizar datos en tiempo real era un viejo sueño de todos los usuarios de Business Intelligence, y ahora empezaría a ser posible gracias al “in-memory” computing.

NOTA de Actualización: En Enero de 2013, SAP liberó la suite de negocios de SAP Netweaver (SAP Netweaver Business Suite Powered by SAP HANA) , para utilizar SAP HANA como base de datos primaria, sin necesidad de usar mecanismos replicadores, como los presentados en el tip Dos escenarios de ABAP con SAP HANA.

 

SAP HANA desanudado.

Ahora sí, podemos arriesgar una definición más concreta de SAP HANA.

SAP HANA es una solución integrada (stack) de hardware “SAP-certificado” y software pre-instalado, que conforma una plataforma “in-memory” para aplicaciones de alto rendimiento, como herramientas de análisis y simulación en tiempos “casi” reales.

SAP HANA en un escenario "side-by-side, corre al lado del Business Suite, capturando y replicando datos en tiempo casi real y sin perturbarlo. También desde Enero de 2013, SAP HANA puede ser utilizado como base de datos primaria de la suite de negocios de SAP.

Entre las componentes de software de SAP HANA, la columna vertebral es el motor de cálculo (Calculation Engine)  y la base de datos hbírida "in-memory".  Ofrece almacenamiento columnar o tradicional y hace uso de las tecnologías de optimización de base de datos, procesamiento paralelo, compresión, etc., antes mencionadas.

Otra componente importante, si es necearia la replicación de datos es la componente SAP Landscape Transformation, una herramienta de replicación basada en Triggers, que SAP HANA utiliza para copiar datos del BW, del ERP, del CRM casi en tiempo real.

Los proveedores de hardware hasta ahora ofreciendo esta solución son HP, IBM, Cisco, Fijitsu, y Dell.

La siguiente figura refleja cómo se relaciona el “stack” de capas de SAP HANA con el Business Warehouse Accelerator y otros componentes anteriores. (Fuente: HP)

SAP_HANA_Stacks_and_Engines

Con respecto a SAP HANA y su relación con SAP Netweaver Business Warehouse, hay que considerar que en un futuro cercano, el actual "agilizador de performance" SAP NetWeaver BW Accelerator (indexa la información del SAP BW usando tecnología in-memory), ya no será más necesario: SAP HANA es el sucesor de SAP Netweaver BWA.

En cambio, es importante entender que SAP HANA complementa a SAP NetWeaver Business Warehouse (el Warehouse de SAP) y NO lo reemplaza.

SAP HANA hoy

SAP HANA 1.0 fue oficialmente liberado en Junio de este año (2011), después de varios meses de prueba en ciertos clientes seleccionados, con, aparentemente, excelentes resultados.

SAP HANA, al menos inicialmente, es una solución principalmente orientada a los clientes con altos volúmenes de información, que justifiquen los costos de esta tecnología.

Es importante mencionar que, como en cualquier sistema de BI, el trabajo de modelización sigue siendo un desafío en manos del cliente.

 

Qué hay en el horizonte para SAP HANA

El “in-memory” computing es una tecnología aún en sus comienzos, y es de esperar que SAP HANA progrese en ancho y en alto.

SAP HANA debe entenderse como una PLATAFORMA, más que como una solución puntual. Seguramente SAP HANA se convertirá en el “hogar” de todas las herramientas BI de SAP, como el Smart Meter Analytics, Trade Promotion Management, y el propio Business Warehouse, etc.. Asimismo, será una plataforma para soluciones de BI provistas por terceros.

Aún más, en el tiempo, probablemente SAP llevará el “in-memory” computing no sólo a sus soluciones analíticas sino a sus productos transaccionales. Muchos ojos están puestos para divisar ERP o CRM sobre SAP HANA. Hay quienes dicen que SAP lleva dos años de ventaja a sus competidores en la tecnología “in-memory”.

 

Igual, como decía mi abuelito, quién se lo va a discutir . . .

A.D.

Conozca más de SAP HANA, leyendo en Teknodatips:

SAP HANA en "pastillas" - Parte 1 de 3

SAP HANA en "pastillas" - Parte 2 de 3

SAP HANA en "pastillas" - Parte3

Dos escenarios de ABAP con SAP HANA

  


Copyright 2011 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, Netweaver, R/3, Fiori,S4/HANA y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA

 


 

FICHA TECNICA: Notas técnicas – Tips de SAP Netweaver ABAP ”Entendiendo SAP HANA"

Tema: SAP HANA- SAP BW BI -.ICE Descripción: Entender el paradigma de SAP HANA, y las tecnologías involucradas: "in-memory computing", tiempo real.

Cómo mostrar múltiples mensajes en una única ventana, en programas ABAP

Conozca un modo de mostrar múltiples mensajes de diferentes tipos en una única ventana en programas ABAP, utilizando la función standard de SAP C14ALD_BAPIRET2_SHOW.

Resulta trivial mostrar al usuario el status erróneo del proceso que acaba de disparar para un documento comercial determinado. De hecho el problema se resuelve con una única sentencia MESSAGE … que mostrará un mensaje potencialmente expresivo y acorde a los estándares de SAP. 

Sin embargo, cuando se procesan muchos documentos en un reporte al mismo tiempo, por ejemplo en un ALV, es complicado mostrar un resumen de mensajes indicando los resultados individuales.

Una posibilidad implicaría el desarrollo de una dynpro que muestre este resumen en un “modal dialog box” , pero se requiere un esfuerzo adicional por la codificación manual necesaria para ello y la mayoría de las veces no se dispone de ese tiempo extra.

Entre algunas alternativas de solución, este artículo detalla la utilización de una función standard apropiada para mostrar mensajes de BAPIs, que tiene una interfaz altamente estandarizada y fácil de usar.

Uso de la función C14ALD_BAPIRET2_SHOW

1. Ir a la transacción SE37 para testear la función. Escribir el nombre: C14ALD_BAPIRET2_SHOW y hacer click en “Test/Execute” . ABAP-Test-function-module-boton-execute

Se podrá ver que solo existe un parámetro del tipo TABLES. En él se escribirán los datos propios a cada mensaje como se explica a continuación.

Notar que la estructura de la tabla es del tipo BAPIRET2, utilizada para recibir los mensajes en la mayoría de las BAPIs.

 

ABAP-Test-function-module

2. Hacer click en ABAP-Test-function-module-boton-Entries para comenzar a llenar la tabla. Se podrá ver la estructura de la misma, que se completa de la siguiente forma:

a. TYPE (T): Es el tipo de mensaje, ej: ‘E’, ‘W’, ‘I’, etc. Esto impactará en un ícono a modo de “semáforo” de acuerdo a la gravedad del tipo de mensaje elegido.

b. ID: El nombre de la Clase de Mensajes de la cual proviene el mensaje que se quiere mostrar, ej: ZMSJ_CLASS01.

c. NUMBER (NUM): El número de mensaje que se quiere mostrar en la clase de mensaje especificada en el ítem anterior, ej: 001 o 127.

d. MESSAGE_V1/2/3/4: Si el mensaje especificado tiene valores variables (‘&’) en él. Es en estos campos donde se pueden escribir sus valores. Es equivalente al agregado WITH… de la sentencia MESSAGE…, donde se puede escribir lo que se desee.

e. El resto de los campos de la estructura no requieren ser completados.

A modo de ejemplo se puede completar la estructura de la siguiente manera, mostrando los campos a completar en las 2 figuras que siguen::

ABAP-function-module-message-1

ABAP-function-module-message-2

 

3. Luego hacer click en “Back” ABAP-function-module-message-boton-Back y posteriormente “Execute” ABAP-function-module-message-boton-Executepara probar la salida de la función. En el ejemplo se verá un POP-UP con un aspecto similar a la imagen siguiente:

ABAP-function-module-message-document-lines

Customizando la función C14ALD_BAPIRET2_SHOW

Un detalle a tener en cuenta es la simplicidad del código fuente de esta función que consiste en una serie de llamadas a otras funciones estándar que permiten Inicializar, Guardar, y Mostrar los mensajes recibidos.

La posibilidad de customizar la función, permite que la ultima Funtion Module en ser llamada: MESSAGES_SHOW, cobre mayor importancia.

 

ABAP-function-module-message-codigo

Tener en cuenta que la mayoría de los parámetros están con sus valores por defecto.

Aprovechando las diferentes posibilidades que ofrece la función C14ALD_BAPIRET2_SHOW , se la puede “adaptar” (customizar) copiándola a una versión Z modificando los parámetros de la función anterior según se requiera. Así, es posible generar rápidamente una variante que se ajuste aún más a los requerimientos del negocio.


n_Marco_Gatti - Especialista ABAP y Workflow

 

 

 


Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, Netweaver, R/3, Fiori,S4/HANA y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA

 


FICHA TECNICA: Notas técnicas – Tips de SAP Netweaver ABAP ”Cómo mostrar múltiples mensajes en una única ventana, en programas ABAP"

Tema: Programación ABAP, funciones standard SAP . Descripción: Conozca un modo de mostrar múltiples mensajes de diferentes tipos en una única ventana en programas ABAP, utilizando una función standard de SAP.

Cómo dar formato a un conjunto de textos en ABAP

Utilice la función ABAP "FORMAT_TEXTLINES" para dar formato a un texto largo o a un conjunto de textos.

Muchas veces sucede que se cuenta con un conjunto de textos sueltos en diferentes variables de un programa y se necesita integrarlos en un único gran texto para mostrarlo en un reporte. A ésto se le suelen sumar restricciones de ancho y alto en la pantalla de salida así como puntos y aparte, saltos de línea y separación entre las diferentes variables que van a conformar en suma el texto saliente.

En otras ocasiones ocurre que si bien el texto ya se encuentra embebido en una única tabla interna, el mismo no responde al ancho de columna solicitado.

En este artículo se dará a conocer y se mostrará el uso de una función que puede ahorrar trabajo al desarrollador a la hora de dar formato a un texto o conjunto de ellos.

La función "FORMAT_TEXTLINES"

Esta función pertenece al Grupo de Funciones STXL y se trata de una función estándar de SAP que se encarga de ajustar un texto ingresado en forma de tabla interna al tamaño de línea especificado. Además ofrece al programador la posibilidad de elegir algunas opciones de formato, las cuales se verán a continuación.

Se ejemplificará su uso Testeando la función:

  • Ejecutar el Function Builder (Transacción SE37) y seleccionar la función ‘FORMAT_TEXTLINES’.
  • Click en Test/Execute boton-execute-ABAP
  • ABAP-crear-funcion

  • Todos los parámetros se dejan con sus valores por defecto excepto FORMATWIDTH y LINEWIDTH que se llenarán con el valor 60 a modo de ejemplo.
  •  

    ABAP-testear-funcion

  • La tabla interna LINES se llena con el texto a formatear.

Cada línea de la tabla es una estructura del tipo TLINE, de modo que responde a algunas funcionalidades de Sapscript.

    El campo TDFORMAT de tamaño 2 se puede completar con una de las siguientes opciones:

  • Vacío: La línea actual se concatenará con el texto anterior dejando un espacio en blanco de por medio.
  • ‘!0’: La línea actual se concatenará con el texto anterior sin dejar ningún espacio en blanco.
  • ‘!1’: La línea actual se insertará en una nueva línea del texto de salida.
  • El campo TDLINE de tamaño 132 se carga con el texto propiamente dicho.

    La figura siguiente lo ejemplifica:

ABAP-cambiar-lineas-entrada


  • Al ejecutar la función, se podrá ver el siguiente texto de salida de tamaño máximo de columna de 60.
  • ABAP-visualizar-lineas-entrada

     

Para tener en cuenta ...

    El Grupo de Funciones STXL contiene muchas utilidades en cuanto al manejo de textos, entre ellas las Funciones CONDENSE_TEXTLINES y SPLIT_TEXTLINE.


    n_Marco_Gatti - Especialista ABAP y Workflow

     

     

     


    Copyright 2011 - Teknoda S.A.

    IMPORTANTE:
    “Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
    Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

    SAP, Netweaver, R/3, Fiori,S4/HANA y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
    COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA

     


    FICHA TECNICA: Notas técnicas – Tips de SAP Netweaver ABAP ”Cómo dar formato a un conjunto de textos en ABAP”

    Tema: Programación ABAP. Descripción: Utilice la función ABAP "FORMAT_TEXTLINES" para dar formato a textos largos o a un conjunto de textos.

Modificar dinámicamente el "binding" entre un Workflow y sus tareas en SAP

Aprenda una manera de leer y modificar los “Containers” del Workflow en el momento del “binding” entre el Workflow y sus tareas en SAP. (Programmed Binding)

Muchas veces ocurre que a la hora de construir un Workflow (WF) en algún sistema SAP se dispone de muchas tareas (TS) tanto estándar como Z para ser utilizadas como toolkits. También suele ocurrir que estos utilitarios no cumplen con la interfaz que dicho Workflow desearía. 

Por ejemplo, si existen discrepancias entre órdenes de compra y facturas de logística, es común que se disponga de una TS que en base a la diferencia, realice varias acciones. El problema se presenta cuando el Workflow sobre el que se trabaja no conoce dichos valores, sino solamente los objetos de negocio.

Una solución rápida para esta situación es crear un nueva TS que calcule discrepancias. Pero siguiendo este criterio se podría llegar a la situación de estar creando una nueva TS por cada dato desconocido sólo para adaptarse a la interfaz de otra TS. Uno de los problemas que este procedimiento trae aparejado es la complejidad creciente de los Workflows así como la dificultad para su mantenimiento y un aumento sostenido de la cantidad de métodos en los objetos de negocio (Business Objects - BO -).

Este artículo presenta una alternativa capaz de adaptar los Containers propios de un Workflow a los requeridos por cualquier TS que se especifique al momento de ejecutar el binding entre ambos.

Pasos para modificar el binding WF-TS/TS-WF

1. Una vez dentro del Workflow Builder (transacciones PFTC o SWDM), hacer doble click en la TS que va a recibir los datos modificados, ir a la solapa Control y luego click en Binding.

ABAP-binding-Workflow-1

2. En la pantalla obtenida, completar con los containers requeridos a excepción del/los que se van a modificar. Luego hacer click en el Pushbutton ABAP-flecha-binding de alguna línea vacía.

ABAP-binding-Workflow-2

3. En el POP-UP seleccionar el Radiobutton Container-->Container”, y en el ComboBox seleccionar la opción “Programmed Binding (Container IF)”. Luego, debajo de la etiqueta “Exit Function Module” se podrá ver un campo en blanco, en él se debe escribir en nombre de la función que contendrá el código responsable de modificar los Containers durante el binding.

Suponiendo que aún no se creó dicha función, en el campo vacío escribir el nombre “SWA_BINDING_TEMPLATE” y hacer click en el botón Copy ABAP-copy-binding. De esta manera se hace una copia del template a una nueva función Z. (Esta metodología es similar a la utilizada en el caso de las BTE). En el ejemplo el nombre del módulo de función final será “ZWF_TEST_BINDING_001”.

ABAP-binding-Workflow-3

Finalmente, luego de confirmar la operación, el binding tendrá el siguiente aspecto.

ABAP-binding-Workflow-4

 

4. Una vez creada la Función, editarla a través de la transacción SE37. Se puede ver que el sistema ya generó código y que dividió la función en dos secciones a través de una sentencia IF, una para el binding WF->TS y otra para TS-WF. Es importante respetar esta separación para evitar Runtime Errors.

ABAP-binding-Workflow-codigo-1

Es aquí donde se puede codificar la lógica necesaria para calcular los datos que recibirá la TS. En el ejemplo se utilizará el ID de aeropuerto ubicado en un container del Workflow para calcular la cantidad de vuelos que partieron de él y enviárselos a una TS de decisión para que muestre este número.

En la sección siguiente se detallan las herramientas que se pueden utilizar para extraer y escribir información en los containers.

Cómo obtener/cambiar la información almacenada en los Containers

Se puede observar en la función recién copiada que ésta tiene una serie de parámetros de IMPORTING. De ellos, se van a considerar SOURCE_CONTAINER y TARGET_CONTAINER, ambos del tipo SWFPARACNT, los cuales representan TODOS los containers del Workflow y TODOS los containers de la TS en cuestión, respectivamente. Es decir que hay visibilidad sobre el 100% de ellos a pesar de que no figuren en el binding.

El tipo de datos SWFPARACNT corresponde a un objeto que respeta la interfaz IF_SWF_IFS_PARAMETER_CONTAINER, la cual permite ejecutar una serie de métodos sobre los mismos

  • Leer un Container: Para ello se puede ejecutar el método “GET” sobre el objeto SOURCE_CONTAINER. Como parámetro de EXPORTING completar “NAME”, que representa el nombre del Container que se quiere leer del Workflow. Y como IMPORTING sólo recibir “VALUE” que representa el contenido. Se debe tener especial cuidado al escribir el nombre del Container ya que de otra manera el sistema dejará el Workflow en estado erróneo, a menos que se capture la excepción.

ABAP-binding-Workflow-codigo-2

  • Escribir un Container: Para ello se puede ejecutar el método “SET” sobre el objeto TARGET_CONTAINER. Como parámetros de EXPORTING completar “NAME” y “VALUE” teniendo en cuenta lo mencionado en el punto anterior.

ABAP-binding-Workflow-codigo-3

 

Consideraciones importantes a tener en cuenta:

  • En la sentencia IF principal, en la porción correspondiente a “dataflow_event = swfbn_dataflow_export”, sólo se puede escribir sobre los Containers de la TS, y en la otra porción sólo se puede escribir sobre los Containers del Workflow. De otro modo provocará un error.
  • El binding se ejecuta de forma secuencial, Container por Container en el orden en que figuran, es decir que si en esta función se llegara a modificar el contenido de un Container que fue “bindeado” en una línea anterior, entonces se sobrescribirá con ese nuevo valor. Del mismo modo, si esta función modifica un Container que también figura en una línea posterior del binding, entonces dicho Container adoptará el último valor.

ABAP-binding-Workflow-5

&NUMBEROFFLIGHTS& es el Container que modifica la función en este caso, luego es sobrescrito en la ultima línea del binding.

 

Ejemplo:

El siguiente código ABAP ejecuta correctamente en un sistema SAP Netweaver AS ABAP 7.0. El código ejemplo detalla el uso de los métodos responsables de extraer y escribir información en diferentes containers.

 

ABAP-binding-Workflow-codigo-funcion-1

ABAP-binding-Workflow-codigo-funcion-2

ABAP-binding-Workflow-codigo-funcion-3

ABAP-binding-Workflow-codigo-funcion-4

 


n_Marco_Gatti - Especialista ABAP y Workflow

 

 

 


Copyright 2012 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, Netweaver, R/3, Fiori,S4/HANA y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA

 


FICHA TECNICA: Notas técnicas – Tips de SAP Netweaver ABAP ”Modificar dinámicamente el "binding" entre un Workflow y sus tareas en SAP"

Tema: Programación ABAP, Workflow, Programmed Binding. Descripción: Aprenda una manera de leer y modificar los “Containers” del Workflow en el momento del “binding” entre el Workflow y sus tareas en SAP. (Programmed Binding)

Cómo traducir la documentación de un programa ABAP

En ABAP, mantenga actualizada la traducción de los textos de documentación del programa.

Cuando se trabaja en un entorno multilenguaje en ABAP, es preferentemente necesario traducir todos los textos asociados del objeto de desarrollo a todos los lenguajes definidos, de manera que cada usuario visualice títulos de transacciones, parámetros de entrada, cabeceras de columnas, etc, en su idioma.

De todos los textos relacionados con un programa ABAP, en este artículo se detallará cómo traducir específicamente la Documentación.

Visualizar el texto a traducir

Desde el Editor ABAP (Transacción SE38) si se elige la opción "Documentación", se visualiza el texto que se desea traducir, como se muestra en las siguientes pantallas.

 

ABAP-traducir-documentacion-1

 

ABAP-traducir-documentacion-2

 

La traducción de este texto se puede realizar desde el  Editor ABAP o directamente desde la transacción SE63: Entorno de traducción Standard.

En las secciones siguientes se verán las diferencias entre ambas posibilidades.

Traducción desde el Editor ABAP

Desde el Object Navigator (transacción SE80) o directamente desde el Editor ABAP  (transacción SE38), se pueden traducir los textos del programa, realizando los siguientes pasos:

1. Seleccionar desde el  menú: Pasar a → Traducción (o Goto Translation), y elegir el idioma de orígen y el de destino ( al que se desea traducir), como se muestra en las siguientes pantallas:

 

ABAP-traducir-documentacion-3

ABAP-traducir-documentacion-4


Sin embargo, el procedimiento especificado anteriormente (traducir desde el Editor ABAP) no permite acceder a la documentación a traducir.

Debido a estas limitaciones, es conveniente utilizar la transacción de traducción SE63, provista por SAP, para realizar las traducciones.

 

Traducción desde la transacción SE63

1. Acceder a la transacción SE63 (Acceso: Entorno de traducción standard)

2. Navegar por las opciones de menú: Traducción → Objetos ABAP → Textos explicativos (Documentación), como se muestra en la figura siguiente:

ABAP-traducir-documentacion-5

3. Seleccionar tipo de objeto L5 Ayuda F1:

ABAP-traducir-documentacion-6

4. Luego, seleccionar RE (Reportes, grupos de funciones, BD lógicas):

ABAP-traducir-documentacion-7

5. Posteriormente, al hacer "doble click" en la línea seleccionada, se obtiene la pantalla de acceso a la  Documentación ABAP, donde se debe completar:

  • Nombre de objeto: <nombre del reporte abap>
  • Idioma fuente
  • Idioma Objetivo

y  presionar el botón "Tratar", como se muestra en la siguiente figura:

ABAP-traducir-documentacion-8

6. En el próximo paso, se obtendrá una pantalla que aparece dividida en dos partes:

  • en la parte superior, el texto de origen
  • en la sección inferior, el área en blanco para el texto traducido

Si se copia el texto original (para mantener el mismo formato) se visualiza una pantalla como la siguiente:

ABAP-traducir-documentacion-9

7. Finalmente, realizar la traducción, Salvar y Activar ABAP-traducir-documentacion-boton-grabar

ABAP-traducir-documentacion-10

 

Tener en cuenta lo siguiente al intentar realizar el paso de activación:

  • Es probable que no se cuenten con los permisos necesarios para utilizar la transacción SE63. En ese caso, de debe pedir la autorización correspondiente.
  • Si no se obtiene la información del objeto a tratar, es muy factible que la documentación no se encuentre “activada”. Para verificar esta condición, se debe acceder a la documentación del programa desde el editor en modo modificación y activarla, como se muestra en la siguiente pantalla:

ABAP-traducir-documentacion-11

Una vez activada, intentar nuevamente la ejecución de la transacción SE63.


Copyright 2011 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, Netweaver, R/3, Fiori,S4/HANA y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA

 


FICHA TECNICA: Notas técnicas – Tips de SAP Netweaver ABAP ”Cómo traducir la documentación de un  programa ABAP”

Tema: Programación ABAP.  Descripción: Mantenga actualizada la traducción de los textos de documentación de programas ABAP.

 


 

Opciones para COPY & PASTE en programas ABAP

Conozca algunas opciones para "Copiar y Pegar" que pueden ser utilizadas en la edición de programas ABAP.

 

El siguiente Tip es una versión actualizada del publicado en Agosto de 2000. 

OPCION 1: Shortcuts

SAP Netweaver permite seleccionar una porción de código para copiarla luego en el porta-papeles de Windows, utilizando la correcta secuencia de “hot keys”.

 

ABAP-Copy-Paste-Opcion-1-1

Para lograrlo,

  1. Clickear sobre un área, en donde se encuentra la porción de la pantalla a copiar.
  2. Al presionar la tecla [ALT] + [botón izq. del mouse], aparecerá una cruz en la pantalla que responde al mouse.
  3. Posicionar ésta sobre un extremo de las líneas a copiar y deslizar el mouse hasta cubrir completamente la superficie deseada.
  4. Luego utilizar los comandos comunes de copiado, ej. [CTRL] + [C] para guardar en el área de memoria de Windows “porta-papeles” y luego pegar donde se desee.
  5. La porción de código será sobreescrita, si se desea insertarla se deberá reservar un espacio acorde a la cantidad de líneas seleccionadas.
  6. En caso que se desee seleccionar un área de datos que no sea código, se utiliza [CTRL ] + [Y].

ABAP-Copy-Paste-Opcion-1-2

 

OPCION 2: Iconos

Además de los atajos explicados anteriormente, también es posible realizar esta misma operación mediante el ícono que se encuentra en el extremo superior derecho de la pantalla. La opción Clipboard reúne todas las acciones “Copy & Paste” que ofrece Windows.

ABAP-Copy-Paste-Opcion-2

Tener en cuenta que en versiones anteriores, era posible seleccionar todo tipo de datos (código o no) mediante [CTRL] + [Y].

 

OPCION 3: Código únicamente

SAP Netweaver nos ofrece otra opción para replicar código. Se selecciona la línea de código.

ABAP-Copy-Paste-Opcion-3-1

 

Mediante la combinación de teclas [CTRL] + [D], el editor agregará debajo la línea de código seleccionada sin eliminar la original.

 

ABAP-Copy-Paste-Opcion-3-2


Copyright 2012 - Teknoda S.A.
IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, Netweaver, R/3, Fiori,S4/HANA y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA

 


 

 

Cómo obtener el flujo de documentos desde un programa ABAP

En ABAP, recupere el flujo de documentos de un documento comercial mediante la función RV_ORDER_FLOW_INFORMATION.

Cuando la información con la que se trabaja está vinculada a la gestión de documentos comerciales, muchas veces no se cuenta específicamente, en forma directa, con el comprobante con el que se necesita tratar. 

Sin embargo, el sistema mantiene los vínculos entre los documentos que le dieron orígen y que se generaron a partir del mismo, es decir, el sistema almacena la información del “flujo de documentos”.

Existe un módulo de función que permite obtener esa información almacenada. Esto implica que a partir de un documento comercial, devuelve su “flujo de documentos”; o sea la lista de documentos relacionados.

El módulo de función se denomina “RV_ORDER_FLOW_INFORMATION” y puede ser invocado desde un programa ABAP.

Cómo utilizar el Módulo de Función RV_ORDER_FLOW_INFORMATION

Parámetros de Entrada:

- COMW: es el único parámetro de exporting obligatorio, toma su definición de la estructura del diccionario ABAP VBCO6 y contiene el número de documento comercial del cual se quiere obtener el historial. También puede indicarse un número de posición del documento comercial y un número de reparto, si existiera.

- AUFBEREITUNG: es un parámetro opcional que permite seleccionar el nivel de dependencia de documentos en el flujo. El valor por omisión provisto por el sistema es ‘2’.

- BELEGTYP: es un parámetro opcional y se puede utilizar para filtrar la información por tipo de documento comercial.

- NACHFOLGER: es un parámetro opcional y se puede utilizar para visualizar o no los documentos sucesores. El valor por omisión propuesto por el sistema es ‘X’, es decir, que muestra todos los documentos sucesores.

- N_STUFEN: es un parámetro opcional y permite elegir el número de nivel de los documentos sucesores. El valor por omisión propuesto por el sistema es ‘50’.

- VORGAENGER: es un parámetro opcional y se puede utilizar para visualizar o no los documentos predecesores. El valor por omisión propuesto por el sistema es ‘X’, es decir, que muestra todos los documentos predecesores.

- V_STUFEN: es un parámetro opcional y permite elegir el número de nivel de los documentos predecesores. El valor por omisión propuesto por el sistema es ‘50’.

Parámetro de Salida:

- BELEGTYP_BACK: es un parámetro de importing opcional y se puede utilizar para obtener el tipo de documento del comprobante a consultar. Los tipos de documentos más comunes son:

C:: Pedido

J:: Entrega

Q: Orden de transporte (Picking)

R: Movimiento de mercadería

M: Factura de SD

Tablas:

- VBFA_TAB es el parámetro de importing obligatorio, toma se definición de la estructura del diccionario VBFA y tiene formato de tabla interna.

En este parámetro la función devuelve la lista de todos los documentos relacionados con el comprobante a consultar, con los números de documentos, los tipos de documentos, etc.

Excepciones:

NO_VBFA: genera esta excepción cuando no encuentra el documento en la tabla VBFA (Flujo de documentos comerciales).

NO_VBUK_FOUND: genera esta excepción cuando no encuentra el documento en la tabla VBUK (Documento comercial: Status cabecera y datos gestión).

Ejemplo de consulta de flujo de documentos a partir de un Pedido de Ventas:

La consulta del flujo de documentos del pedido 4972, posición 10, mediante la transacción VA03 (Visualizar pedido) devuelve el siguiente resultado:

a) Ingreso del número de pedido (Ej. 1472)

ABAP-Flujo-documentos-vis.-pedido-cliente

b) Al presionar Aceptar, se llega a la pantalla de Resumen

ABAP-Flujo-documentos-vis.-pedido-cliente-resumen

c) En esta pantalla Resumen, se elige la opción del menú: Entorno → Visualizar Flujo de Documentos:

ABAP-Visualizar-flujo-documentos

d) Luego, se obtendrá el Flujo de Documentos:

ABAP-flujo-documentos

Los pasos realizados para obtener el flujo de documentos fueron: del pedido se generó la entrega, luego la confirmación de servicio, posteriormente la factura y finalmente su correspondiente contabilización en finanzas, como se resume:

Pedido Std 1472 / 10

→ Entrega 80001237 / 10

→ Confirmación de servicio 1611237000 / 10

→ Factura 90001526 / 10

→  Doc. Contabil. 6010000027

Para utilizar el módulo de función, se debería ingresar en el parámetro COMWA, campo VBELN, el número de pedido, completado con ceros a izquierda para la posterior búsqueda en la base de datos, y en la misma estructura, campo POSNR, si se desea una posición del documento.

Luego de ejecutar la función, el parámetro VBFA_TAB contiene en cada fila de la tabla interna, un documento relacionado con su correspondiente posición, es decir que la tabla interna contendrá tantas filas como relaciones documento-posición existan.

Finalmente, para obtener el flujo de documentos, es necesario recorrer la tabla interna a través de un loop.

Ejemplo de consulta de flujo de documentos a partir de una Entrega:

En el ejemplo siguiente, se parte del documento de entrega y se obtienen los documentos de facturas relacionados:

ABAP-flujo-documentos-entrega

Las variables utilizadas en el código anteriormente especificado, toman su definición de las siguientes estructuras:

La variable “T_VBC06” toma su definición de la estructura “VBC06”:

ABAP-flujo-documentos-visualizar-estructura

Y la tabla interna “T_VBFA”, se define con referencia a la estructura de la tabla “VBFA”:

ABAP-flujo-documentos-tabla-transparente

Finalmente, luego de obtener el número de factura relacionado, el programa continúa su procesamiento.

 


Copyright 2011 - Teknoda S.A.

IMPORTANTE:
“Notas técnicas de SAP ABAP" se envía con frecuencia variable y sin cargo como servicio a nuestros clientes SAP. Contiene notas/tutoriales/artículos técnicos desarrollados en forma totalmente objetiva e independiente. Teknoda es una organización de servicios de tecnología informática y NO comercializa hardware, software ni otros productos.
Si desea suscribir otra dirección de e-mail para que comience a recibir las Notas Técnicas SAP, envíe un mensaje desde esa direcciónsapping@teknoda.com, aclarando nombre, empresa, cargo y país del suscriptor.

SAP, Netweaver, R/3, Fiori,S4/HANA y ABAP son marcas registradas de SAP AG. SAP no es el editor de esta publicación y no es responsable de la misma en ningún aspecto. La información contenida en esta publicación ha sido generada por nuestros especialistas a partir de fuentes consideradas confiables y del ejercicio profesional cotidiano. No obstante, por la posibilidad de error humano, mecánico, cambio de versión u otro, Teknoda no garantiza la exactitud o completud de la misma.
COPYRIGHT TEKNODA S.A. PROHIBIDA SU REPRODUCCION TOTAL O PARCIAL SIN CONSENTIMIENTO DE TEKNODA

 


FICHA TECNICA: Notas técnicas – Tips de SAP Netweaver ABAP ”Cómo obtener el flujo de documentos desde programas ABAP”

Tema: Programación ABAP.  Descripción: Recupere el flujo de documentos de un documento comercial desde programas ABAP.

 

 

 

Copyright © 2024 Teknoda Tech Portal & Training. Todos los derechos reservados.
Joomla! es software libre, liberado bajo la GNU General Public License.