|
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 |
| |
|
|