Beruflich Dokumente
Kultur Dokumente
Hi Friends,
While doing the Variant configuration, we may came across scenarios where std. syntax of VC will not be
sufficient. For this type of scenarios, we can use Variant functions to achieve the desired functionality. Variant
functions will use Function Modules, here we have to write the code using ABAP.
Overview
Variant functions allow us to integrate the function modules with all types of object dependencies. In the
object dependencies we need to use the syntax for calling the function module as well as input and output
parameters.
Variant conditions used where standard syntax is not sufficient to map desired functionality. This may be
possible in following cases.
Complex processing of Char. values
Evaluation of database tables that cannot be addressed via reference characteristics.
Complex validity checks of allowed char. values.
Generation of custom information messages.
Example:
Using variant function to concatenate values of three characteristics into another characteristic.
Chars
Processor
Hard Disk
RAM
Label
Values
Core i7
Core i5
Core i3
500 GB
750 GB
1 TB
2 GB
4 GB
6 GB
Above 3 char selected values should be
concatenated and displayed as label.
For creating variant function we have to provide required input and output parameters for the function module.
Assign required input and output characteristics and save the variant function. In the above example
PROCESSOR, HARD_DISK, RAM are input parameters.
Typing
Reference Field
Content
GLOBALS
LIKE
CUOV_00
Global parameters
for calling a function.
However, the list of fields
currently only contains
the date.
Tables
Parameter Name
Typing
Reference Type
Content
QUERY
LIKE
CUOV_01
MATCH
LIKE
CUOV_01
Table of output
parameters
All partial fields except
ATCIO must be filled in a
MATCH entry (especially
format ATFOR)
Exceptions:
FAIL
INTERNAL_ERROR
Source Code : Used for writing your own logic for the function module using ABAP.
The following help functions are supported for accessing import parameters:
CUOV_GET_FUNCTION_ARGUMENT: Read characteristics from the input parameters.
CUOV_GET_FUNCTION_ARGUMENT: Transfer value of characteristics to Variant configuration.
Write the ABAP code and Save and activate the function module.
Press back button, system will display the Change Function transaction. Change the status to 1 Released
and Save Function.
Testing
As soon as all values assigned to the characteristics of variant function, function module will sets the value for
LABEL.
Note:
When you call a user-defined function module, SAP Variant Configuration no longer has control of possible
error situations: the person who writes the function module can use all ABAP language elements, but has sole
responsibility for the code.
*" TABLES
*"
*"
*" EXCEPTIONS
*"
FAIL
*"
INTERNAL_ERROR
*"----------------------------------------------------------------------
REFRESH MATCH.
= 'PROCESSOR'
IMPORTING
* VTYPE
SYM_VAL
*
=
= LV_PROCESSOR
NUM_VAL
* IO_FLAG
=
=
TABLES
QUERY
= QUERY
EXCEPTIONS
ARG_NOT_FOUND
OTHERS
=1
=2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
= 'HARD_DISK'
IMPORTING
* VTYPE
SYM_VAL
*
=
= LV_HARDDISK
NUM_VAL
* IO_FLAG
TABLES
QUERY
= QUERY
EXCEPTIONS
ARG_NOT_FOUND
OTHERS
=1
=2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
= 'RAM'
IMPORTING
* VTYPE
SYM_VAL
*
=
= LV_RAM
NUM_VAL
* IO_FLAG
TABLES
QUERY
= QUERY
EXCEPTIONS
ARG_NOT_FOUND
OTHERS
=1
=2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
= 'LABEL'
= 'CHAR'
= LV_LABEL
* NUM_VAL
TABLES
MATCH
= MATCH
EXCEPTIONS
EXISTING_VALUE_REPLACED
OTHERS
=1
=2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDFUNCTION.