Home Quiénes Somos Teknoda y AS400 Teknoda y SAP Contáctenos
 

Notas técnicas de ABAP - Tips en breve

(Lo nuevo, lo escondido, o simplemente lo de siempre pero bien explicado)

"Tips en breve/Tips en detalle" se envía con frecuencia variable y absolutamente sin cargo como un servicio a nuestros clientes SAP. Contiene notas/recursos/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 los "Tips", envíe un mensaje desde esa dirección a sapping@teknoda.com , aclarando nombre, empresa, cargo y país del suscriptor.

 

 


VARIANTES VARIABLES (Versión 4 - Oct 2000)

Tema: VARIANTE, FUNCIONES
Utilidad: Configurar valores a los parámetros de un variante dentro de un programa ABAP.
Nivel: Intermedio

 
 

Cuando se ejecuta, en forma interactiva, un programa ABAP, que posee parámetros, (parameters o select-options) es posible grabar las entradas ingresadas en dichos campos en un objeto llamado Variante. De esta forma, la próxima vez que se desee ejecutar el programa con los mismos valores se invoca a la variante generada.

En el caso de generar un programa que llama a otro en forma sometida (por ejemplo vía JOB_SUBMIT) en necesario pasarle al programa llamado los valores de los parámetros deseados. Estos valores pueden guardarse, cada vez, en una variante e invocar al programa junto con el nombre de la variante que contiene los datos.

Se detalla a continuación, los elementos necesarios y la forma de utilización de la función RS_CHANGE_CREATED_VARIANT que permite crear la variante y los valores de los parámetros del programa.

En el siguiente ejemplo, se completan los parámetros de Sociedad, Nro. de documento y Ejercicio en la variante de nombre ZBATCH del programa report ZJ_1AF012. Los pasos a seguir serán:

1. Definir tablas internas donde se guardan los valores de los parámetros y son entrada a la función. Por ejemplo:

 
* tabla interna que contiene los valores de los parámetros
data: xvari like rsparams occurs 1 with header line .
data: xvarid like varid occurs 1 with header line .


2. Pasar los datos a los parámetros mediante la tabla interna. La estructura de la tabla interna es:

Nombre campo Descripción breve .
SELNAME ABAP/4: Nombre de SELECT-OPTIONS / PARAMETERS
KIND ABAP: Clase de selección
SIGN ABAP: indicador para incluir/excluir valores
OPTION ABAP: Opción de selección (EQ/B BT/CP/...)
LOW ABAP: Valor de selección (LOW, HIGH, formato externo)
HIGH ABAP: Valor de selección (LOW, HIGH, formato externo)


3. Pasar los datos del documento a la variante


* SOCIEDAD
move: 'BR_BUKRS' to xvari-selname, "Nombre del param. en el pgm. llamado
'S'
to xvari-kind, "Indicador de Select-option
'I' to xvari-sign, "Indicador de Inclusión
'EQ' to xvari-option, "Operador EQUAL
zbkpf-bukrs to xvari-low. "Valor del parámetro
append xvari. "Crea registro en tabla interna

* NRO. DOCUMENTO
move: 'BR_BELNR' to xvari-selname, "Nombre del param. en el pgm. llamado
'S' to xvari-kind, "Indicador de Select-option
'I' to xvari-sign, "Indicador de Inclusión
'EQ' to xvari-option, "Operador EQUAL
zbkpf-belnr to xvari-low. "Valor del parámetro
append xvari. "Crea registro en tabla interna

* EJERCICIO
move: 'BR_GJAHR' to xvari-selname, "Nombre del param. en el pgm. llamado
'
S' to xvari-kind, "Indicador de Select-option
'I' to xvari-sign, "Indicador de Inclusión
'EQ' to xvari-option, "Operador EQUAL
zbkpf-gjahr to xvari-low. "Valor del parámetro

append xvari. "Crea registro en tabla interna

 


Nota: si el parámetro del programa llamado fuera creado por la sentencia parameters en el campo kind corresponde la letra 'P'. Se muestra un ejemplo con el campo de sociedad.

 

 

* SOCIEDAD
move: 'BR_BUKRS' to xvari-selname, "Nombre del param. en el pgm. llamado

'P' to xvari-kind, "Indicador de Parameter
'I' to xvari-sign, "Indicador de Inclusión
'EQ' to xvari-option, "Operador EQUAL
zbkpf-bukrs to xvari-low. "Valor del parámetro

append xvari. "Crea registro en tabla interna


4. Llamada a la función.


* Carga nuevos valores a la VARIANTE DE ORDEN DE PAGO-------------
call function 'RS_CHANGE_CREATED_VARIANT'

exporting

curr_report = 'ZJ_1AF012'"Nombre del programa llamado
curr_variant = 'ZBATCH' "Nombre de la variante
vari_desc = xvarid "Nombre tabla interna

tables

vari_contents = xvari

exceptions

illegal_report_or_variant = 1
illegal_variantname = 2
not_authorized = 3
not_executed = 4
report_not_existent = 5
report_not_supplied = 6
variant_doesnt_exist = 7
variant_locked = 8
selections_no_match = 9
others = 10
.

if sy-subrc ne 0.

message id 'ZDESARROLLOS' type 'I' number 15 with zbkpf-belnr
'Imposible crear VARIANTE'.

endif.

 

Copyright 2000 Teknoda S.A . Prohibida su reproducción total o parcial sin citar la fuente.

Dudas o comentarios:sapping@teknoda.com

La información contenida en esta cartilla ha sido recolectada en la tarea cotidiana por nuestros especialistas a partir de fuentes consideradas confiables. No obstante, por la posibilidad de error humano, mecánico, cambios de versión u otro, Teknoda no garantiza la exactitud o completud de la información aquí volcada. SAP es marca registrada de SAP AG. Agradecemos el permiso de SAP para usar sus marcas en esta publicación. R/3, ABAP son marcas registradas de SAP AG. SAP AG no es el editor de esta publicación y no es por lo tanto responsable de su contenido.

 

 
Volver a página principal de Notas Técnicas SAP R/3 ABAP