SAP CLAP_DDB_UPDATE_CLASSIFICATION Function Module for Classification API: Maintain Allocations









CLAP_DDB_UPDATE_CLASSIFICATION is a standard clap ddb update classification SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for Classification API: Maintain Allocations processing and below is the pattern details for this FM, showing its interface including any import and export parameters, exceptions etc. there is also a full "cut and paste" ABAP pattern code example, along with implementation ABAP coding, documentation and contribution comments specific to this or related objects.


See here to view full function module documentation and code listing for clap ddb update classification FM, simply by entering the name CLAP_DDB_UPDATE_CLASSIFICATION into the relevant SAP transaction such as SE37 or SE38.

Function Group: CLFM
Program Name: SAPLCLFM
Main Program: SAPLCLFM
Appliation area: M
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:



Function CLAP_DDB_UPDATE_CLASSIFICATION pattern details

In-order to call this FM within your sap programs, simply using the below ABAP pattern details to trigger the function call...or see the full ABAP code listing at the end of this article. You can simply cut and paste this code into your ABAP progrom as it is, including variable declarations.
CALL FUNCTION 'CLAP_DDB_UPDATE_CLASSIFICATION'"Classification API: Maintain Allocations
EXPORTING
* POBTAB = "Classifiable object
* DATE_OF_CHANGE = "Date for engineering change management
* MTART = "Material type
* ALLOCATE_ONLY = "Allocate only
* ROOT_ID = "Only for variant class types: table
* ROOT = "Only for variant class types: object
* I_LANGU = SY-LANGU "
* I_ENVIRON_NO_VAL = ' ' "
* I_NO_DEFAULTS_API = ' ' "
* I_NO_LOCK = ' ' "
* I_LOAD_CUSTOMIZING = ' ' "
CLASS = "Class
* I_TABS_ACTIVE = ' ' "
* I_CHECK_SYDATE = ' ' "
* I_CHECK_CLASS_DATE = 'X' "
* I_CLASS_POSITION = 0 "
OBJECT = "Object
CLASSTYPE = "Class type
* OBJECT_EQ_CLASS = ' ' "Object is a class
* MEINS = ' ' "If object=material, load unit of measure
* STD_FLAG = ' ' "Standard classification indicator
* STATUS = "Classification status
* CHANGE_SERVICE_NUMBER = "Change number

IMPORTING
INTERNAL_OBJ_NUMBER = "Internal object number
CLINT = "Internal class number

EXCEPTIONS
ALLOCATION_EXIST = 1 FOREIGN_LOCK = 10 SYSTEM_FAILURE = 11 UNIT_INCOMPATIBLE = 12 TABLE_NO_MULTITAB = 13 OTHER_CHANGE_NUMBER = 14 STATUS_READ_ONLY = 15 CHANGE_KSSK_NOT_ALLOWED = 16 CHANGE_AUSP_NOT_ALLOWED = 17 SET_AENNR = 18 CHANGE_NR_NOT_EXIST = 19 NO_AUTHORITY_TYPE = 2 DATE_IN_PAST = 20 ERROR_CLASS = 21 ERROR_DATE_RESTRICTION = 22 ERROR_STATUS = 23 MTART_NOT_EXIST = 24 MTART_CLASSIF_NOT_ALLOWED = 25 REKURSIV = 26 CLASSYTPE_NOT_DEF = 3 NO_VALID_SIGN_CLASS = 4 NO_AUTHORITY_CLASS = 5 CLASS_STATUS_NOT_VALID = 6 CLASS_DATE_NOT_VALID = 7 CLASS_NOT_FOUND = 8 NO_MULTI_CLASSIFY = 9
.




Customer Function user exits

Below is a list of CUSTOMER FUNCTION exit user exits that are available within this program and maybe relevant for this FM.
EXIT_SAPLCLFM_001 Influences Class and Value Assignment
EXIT_SAPLCLFM_002 Customer Exit for Changing Classification Data Before Saving
EXIT_SAPLCLFM_003 Customer Exit After Check on Assigned Characteristic Values

IMPORTING Parameters details for CLAP_DDB_UPDATE_CLASSIFICATION

POBTAB - Classifiable object

Data type: TCLAO-OBTAB
Optional: Yes
Call by Reference: No ( called with pass by value option)

DATE_OF_CHANGE - Date for engineering change management

Data type: RMCLF-DATUV1
Optional: Yes
Call by Reference: No ( called with pass by value option)

MTART - Material type

Data type: MTART
Optional: Yes
Call by Reference: No ( called with pass by value option)

ALLOCATE_ONLY - Allocate only

Data type: RMCLF-KREUZ
Optional: Yes
Call by Reference: No ( called with pass by value option)

ROOT_ID - Only for variant class types: table

Data type: INOB-ROBTAB
Optional: Yes
Call by Reference: No ( called with pass by value option)

ROOT - Only for variant class types: object

Data type: INOB-ROBJEK
Optional: Yes
Call by Reference: No ( called with pass by value option)

I_LANGU -

Data type: SY-LANGU
Default: SY-LANGU
Optional: Yes
Call by Reference: No ( called with pass by value option)

I_ENVIRON_NO_VAL -

Data type: RMCLF-KREUZ
Default: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)

I_NO_DEFAULTS_API -

Data type: RMCLF-KREUZ
Default: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)

I_NO_LOCK -

Data type: SY-BATCH
Default: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)

I_LOAD_CUSTOMIZING -

Data type: SY-BATCH
Default: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)

CLASS - Class

Data type: KLAH-CLASS
Optional: No
Call by Reference: No ( called with pass by value option)

I_TABS_ACTIVE -

Data type: SY-BATCH
Default: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)

I_CHECK_SYDATE -

Data type: SY-BATCH
Default: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)

I_CHECK_CLASS_DATE -

Data type: BOOLE_D
Default: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)

I_CLASS_POSITION -

Data type: I
Optional: Yes
Call by Reference: No ( called with pass by value option)

OBJECT - Object

Data type: KSSK-OBJEK
Optional: No
Call by Reference: No ( called with pass by value option)

CLASSTYPE - Class type

Data type: KSSK-KLART
Optional: No
Call by Reference: No ( called with pass by value option)

OBJECT_EQ_CLASS - Object is a class

Data type: RMCLF-KREUZ
Default: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)

MEINS - If object=material, load unit of measure

Data type: MEINS
Default: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)

STD_FLAG - Standard classification indicator

Data type: KSSK-STDCL
Default: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)

STATUS - Classification status

Data type: KSSK-STATU
Optional: Yes
Call by Reference: No ( called with pass by value option)

CHANGE_SERVICE_NUMBER - Change number

Data type: RMCLF-AENNR1
Optional: Yes
Call by Reference: No ( called with pass by value option)

EXPORTING Parameters details for CLAP_DDB_UPDATE_CLASSIFICATION

INTERNAL_OBJ_NUMBER - Internal object number

Data type: INOB-CUOBJ
Optional: No
Call by Reference: No ( called with pass by value option)

CLINT - Internal class number

Data type: KSSK-CLINT
Optional: No
Call by Reference: No ( called with pass by value option)

EXCEPTIONS details

ALLOCATION_EXIST - Allocation already exists

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

FOREIGN_LOCK - Allocation already locked

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

SYSTEM_FAILURE - System lock error

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

UNIT_INCOMPATIBLE - Unit in material and class do not match

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

TABLE_NO_MULTITAB - Table not in TCLAO

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

OTHER_CHANGE_NUMBER - Change number has changed

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

STATUS_READ_ONLY - Please read allocations for change purposes

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

CHANGE_KSSK_NOT_ALLOWED - Change date for KSSK = ERROR date

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

CHANGE_AUSP_NOT_ALLOWED - Change date for AUSP = ERROR date

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

SET_AENNR - Please enter a change number

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

CHANGE_NR_NOT_EXIST - Change number does not exist

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

NO_AUTHORITY_TYPE - No authorization for class type

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

DATE_IN_PAST - Change date is in the past

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

ERROR_CLASS - Change number not for classification

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

ERROR_DATE_RESTRICTION - Change number not currently released

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

ERROR_STATUS - Status of change number does not allow use

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

MTART_NOT_EXIST - Material type not found

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

MTART_CLASSIF_NOT_ALLOWED - Material type not allowed for classification

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

REKURSIV - Allocation causes recursiveness

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

CLASSYTPE_NOT_DEF - Class type not found

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

NO_VALID_SIGN_CLASS - Class contains invalid characters

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

NO_AUTHORITY_CLASS - No authorization for class

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

CLASS_STATUS_NOT_VALID - Status of class invalid

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

CLASS_DATE_NOT_VALID - Class not valid

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

CLASS_NOT_FOUND - Class does not exist

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

NO_MULTI_CLASSIFY - Multiple classification not allowed

Data type:
Optional: No
Call by Reference: No ( called with pass by value option)

Copy and paste ABAP code example for CLAP_DDB_UPDATE_CLASSIFICATION Function Module

The ABAP code below is a full code listing to execute function module POPUP_TO_CONFIRM including all data declarations. The code uses the original data declarations rather than the latest in-line data DECLARATION SYNTAX but I have included an ABAP code snippet at the end to show how declarations would look using the newer method of declaring data variables on the fly. This will allow you to compare and fully understand the new inline method. Please note some of the newer syntax such as the @DATA is not available until a later 4.70 service pack (SP8), which i why i have stuck to the origianl for this example.

DATA:
lv_pobtab  TYPE TCLAO-OBTAB, "   
lv_allocation_exist  TYPE TCLAO, "   
lv_internal_obj_number  TYPE INOB-CUOBJ, "   
lv_foreign_lock  TYPE INOB, "   
lv_date_of_change  TYPE RMCLF-DATUV1, "   
lv_mtart  TYPE MTART, "   
lv_system_failure  TYPE MTART, "   
lv_allocate_only  TYPE RMCLF-KREUZ, "   
lv_unit_incompatible  TYPE RMCLF, "   
lv_root_id  TYPE INOB-ROBTAB, "   
lv_table_no_multitab  TYPE INOB, "   
lv_root  TYPE INOB-ROBJEK, "   
lv_other_change_number  TYPE INOB, "   
lv_i_langu  TYPE SY-LANGU, "   SY-LANGU
lv_status_read_only  TYPE SY, "   
lv_i_environ_no_val  TYPE RMCLF-KREUZ, "   SPACE
lv_change_kssk_not_allowed  TYPE RMCLF, "   
lv_i_no_defaults_api  TYPE RMCLF-KREUZ, "   SPACE
lv_change_ausp_not_allowed  TYPE RMCLF, "   
lv_i_no_lock  TYPE SY-BATCH, "   SPACE
lv_set_aennr  TYPE SY, "   
lv_i_load_customizing  TYPE SY-BATCH, "   SPACE
lv_change_nr_not_exist  TYPE SY, "   
lv_class  TYPE KLAH-CLASS, "   
lv_clint  TYPE KSSK-CLINT, "   
lv_no_authority_type  TYPE KSSK, "   
lv_date_in_past  TYPE KSSK, "   
lv_i_tabs_active  TYPE SY-BATCH, "   SPACE
lv_error_class  TYPE SY, "   
lv_i_check_sydate  TYPE SY-BATCH, "   SPACE
lv_i_check_class_date  TYPE BOOLE_D, "   'X'
lv_error_date_restriction  TYPE BOOLE_D, "   
lv_error_status  TYPE BOOLE_D, "   
lv_i_class_position  TYPE I, "   0
lv_mtart_not_exist  TYPE I, "   
lv_mtart_classif_not_allowed  TYPE I, "   
lv_rekursiv  TYPE I, "   
lv_object  TYPE KSSK-OBJEK, "   
lv_classytpe_not_def  TYPE KSSK, "   
lv_classtype  TYPE KSSK-KLART, "   
lv_no_valid_sign_class  TYPE KSSK, "   
lv_object_eq_class  TYPE RMCLF-KREUZ, "   ' '
lv_no_authority_class  TYPE RMCLF, "   
lv_meins  TYPE MEINS, "   SPACE
lv_class_status_not_valid  TYPE MEINS, "   
lv_std_flag  TYPE KSSK-STDCL, "   SPACE
lv_class_date_not_valid  TYPE KSSK, "   
lv_status  TYPE KSSK-STATU, "   
lv_class_not_found  TYPE KSSK, "   
lv_no_multi_classify  TYPE KSSK, "   
lv_change_service_number  TYPE RMCLF-AENNR1. "   

  CALL FUNCTION 'CLAP_DDB_UPDATE_CLASSIFICATION'  "Classification API: Maintain Allocations
    EXPORTING
         POBTAB = lv_pobtab
         DATE_OF_CHANGE = lv_date_of_change
         MTART = lv_mtart
         ALLOCATE_ONLY = lv_allocate_only
         ROOT_ID = lv_root_id
         ROOT = lv_root
         I_LANGU = lv_i_langu
         I_ENVIRON_NO_VAL = lv_i_environ_no_val
         I_NO_DEFAULTS_API = lv_i_no_defaults_api
         I_NO_LOCK = lv_i_no_lock
         I_LOAD_CUSTOMIZING = lv_i_load_customizing
         CLASS = lv_class
         I_TABS_ACTIVE = lv_i_tabs_active
         I_CHECK_SYDATE = lv_i_check_sydate
         I_CHECK_CLASS_DATE = lv_i_check_class_date
         I_CLASS_POSITION = lv_i_class_position
         OBJECT = lv_object
         CLASSTYPE = lv_classtype
         OBJECT_EQ_CLASS = lv_object_eq_class
         MEINS = lv_meins
         STD_FLAG = lv_std_flag
         STATUS = lv_status
         CHANGE_SERVICE_NUMBER = lv_change_service_number
    IMPORTING
         INTERNAL_OBJ_NUMBER = lv_internal_obj_number
         CLINT = lv_clint
    EXCEPTIONS
        ALLOCATION_EXIST = 1
        FOREIGN_LOCK = 10
        SYSTEM_FAILURE = 11
        UNIT_INCOMPATIBLE = 12
        TABLE_NO_MULTITAB = 13
        OTHER_CHANGE_NUMBER = 14
        STATUS_READ_ONLY = 15
        CHANGE_KSSK_NOT_ALLOWED = 16
        CHANGE_AUSP_NOT_ALLOWED = 17
        SET_AENNR = 18
        CHANGE_NR_NOT_EXIST = 19
        NO_AUTHORITY_TYPE = 2
        DATE_IN_PAST = 20
        ERROR_CLASS = 21
        ERROR_DATE_RESTRICTION = 22
        ERROR_STATUS = 23
        MTART_NOT_EXIST = 24
        MTART_CLASSIF_NOT_ALLOWED = 25
        REKURSIV = 26
        CLASSYTPE_NOT_DEF = 3
        NO_VALID_SIGN_CLASS = 4
        NO_AUTHORITY_CLASS = 5
        CLASS_STATUS_NOT_VALID = 6
        CLASS_DATE_NOT_VALID = 7
        CLASS_NOT_FOUND = 8
        NO_MULTI_CLASSIFY = 9
. " CLAP_DDB_UPDATE_CLASSIFICATION




ABAP code using 7.40 inline data declarations to call FM CLAP_DDB_UPDATE_CLASSIFICATION

The below ABAP code uses the newer in-line data declarations. This allows you to see the coding differences/benefits of the later inline syntax. Please note some of the newer syntax below, such as the @DATA is not available until 4.70 EHP 8.

"SELECT single OBTAB FROM TCLAO INTO @DATA(ld_pobtab).
 
 
"SELECT single CUOBJ FROM INOB INTO @DATA(ld_internal_obj_number).
 
 
"SELECT single DATUV1 FROM RMCLF INTO @DATA(ld_date_of_change).
 
 
 
"SELECT single KREUZ FROM RMCLF INTO @DATA(ld_allocate_only).
 
 
"SELECT single ROBTAB FROM INOB INTO @DATA(ld_root_id).
 
 
"SELECT single ROBJEK FROM INOB INTO @DATA(ld_root).
 
 
"SELECT single LANGU FROM SY INTO @DATA(ld_i_langu).
DATA(ld_i_langu) = SY-LANGU.
 
 
"SELECT single KREUZ FROM RMCLF INTO @DATA(ld_i_environ_no_val).
DATA(ld_i_environ_no_val) = ' '.
 
 
"SELECT single KREUZ FROM RMCLF INTO @DATA(ld_i_no_defaults_api).
DATA(ld_i_no_defaults_api) = ' '.
 
 
"SELECT single BATCH FROM SY INTO @DATA(ld_i_no_lock).
DATA(ld_i_no_lock) = ' '.
 
 
"SELECT single BATCH FROM SY INTO @DATA(ld_i_load_customizing).
DATA(ld_i_load_customizing) = ' '.
 
 
"SELECT single CLASS FROM KLAH INTO @DATA(ld_class).
 
"SELECT single CLINT FROM KSSK INTO @DATA(ld_clint).
 
 
 
"SELECT single BATCH FROM SY INTO @DATA(ld_i_tabs_active).
DATA(ld_i_tabs_active) = ' '.
 
 
"SELECT single BATCH FROM SY INTO @DATA(ld_i_check_sydate).
DATA(ld_i_check_sydate) = ' '.
 
DATA(ld_i_check_class_date) = 'X'.
 
 
 
 
 
 
 
"SELECT single OBJEK FROM KSSK INTO @DATA(ld_object).
 
 
"SELECT single KLART FROM KSSK INTO @DATA(ld_classtype).
 
 
"SELECT single KREUZ FROM RMCLF INTO @DATA(ld_object_eq_class).
DATA(ld_object_eq_class) = ' '.
 
 
DATA(ld_meins) = ' '.
 
 
"SELECT single STDCL FROM KSSK INTO @DATA(ld_std_flag).
DATA(ld_std_flag) = ' '.
 
 
"SELECT single STATU FROM KSSK INTO @DATA(ld_status).
 
 
 
"SELECT single AENNR1 FROM RMCLF INTO @DATA(ld_change_service_number).
 


Search for further information about these or an SAP related objects



Comments on this SAP object

What made you want to lookup this SAP object? Please tell us what you were looking for and anything you would like to be included on this page!