How to Update a Single Characteristic Value in Master Data
![Jimbo's picture Jimbo's picture](http://saplsmw.com/sites/default/files/styles/thumbnail/public/pictures/picture-1-1307661031.jpg?itok=XveYRgel)
Recently, a requirement to update a single Characteristic value for thousands of Customer Masters led to the creation of this tool; it is another wrapper for BAPIs using LSMW. Its development and testing across the SAP development landscape took less time and was more accurate than the alternatives.
One alternative was manually opening every Customer Master in XD02, navigating to the Classification view, drilling down to the specific Classification, then scrolling down, keying in the data in the Characteristic and then finally surviving the guantlet of slow user exits proposing address corrections, identifying duplicates and warning about various other fields. The other alternative was to extract all of the Characteristic values in the Classification, changing the value in the specific Characteristic and then producing hierarchical load files to use in the client's custom tool that would then overwrite all of the values.
Another alternative was to use the CLMM transaction, but only if every value is the same and access to the CLMM transaction is provided and authorization to process the Class Type is provided. A workaround to change Characteristic values that are not the same might be to create a batch that calls the CLMM transaction and then use LSMW to populate the appropriate fields, but calling BAPI's sounded like a more enjoyable route.
Naturally, the first step is to declare all of the parameters and variables in the GLOBAL_DATA section. Many lines of code here are recycled from this tool, so some of this code may look familiar.
parameters: p_break as checkbox, p_commit as checkbox, p_verbos as checkbox default 'X'. data: lKSML like KSML, lCABN like CABN, lKLAH like KLAH, lKSSK like KSSK, lINOB like INOB. **** Following for checking object assignment. **** data: AllocationExists LIKE BDFIELDS-EXIST, lObject like CLAL_OBJ-OBJECT, lClassType like CLAL_CLASS-CLASSTYPE, lClass like CLAL_CLASS-CLASS. **** Following for loading Classifications via BAPI **** data: lBAPI1003_KEY like BAPI1003_KEY, it_Char type standard table of BAPI1003_ALLOC_VALUES_CHAR initial size 0, it_Num type standard table of BAPI1003_ALLOC_VALUES_NUM initial size 0, it_Curr type standard table of BAPI1003_ALLOC_VALUES_CURR initial size 0, it_AllocationValues type standard table of BAPI1003_ALLOC_LIST initial size 0, wa_AllocationValues like BAPI1003_ALLOC_LIST, wa_Char like BAPI1003_ALLOC_VALUES_CHAR, wa_Num like BAPI1003_ALLOC_VALUES_NUM, wa_Curr like BAPI1003_ALLOC_VALUES_CURR, it_BAPIRET2 type standard table of BAPIRET2 initial size 0, it_Report type standard table of BAPIRET2 initial size 0, wa_BAPIRET2 like BAPIRET2. types: begin of t_backup, OBJEK like AUSP-OBJEK, KLART(5) type c, OBTAB(5) type c, CLASS like KLAH-CLASS, ATNAM like CABN-ATNAM, ATWRT like AUSP-ATWRT, end of t_backup. data: it_backup type standard table of t_backup initial size 0, wa_backup type t_backup.
The
p_break
parameter is used to launch the debugger. This snippet is included in the BEGIN_OF_PROCESSING section.
if p_break eq 'X'. break-point. endif.
For this task, only the Object, Characteristic Name and Characteristic Value need be provided as source data. The source code intuits what Classification to use by looping through Classifications containing the Characteristic and then by checking to see if the Object is associated with those Classifications.
When no Classification linking the Object to the Characteristic is found, the code throws and error explaining as much and exits from the current object. The skip_transaction
command is used to ensure that no records are generated by this LSMW object when converting the data and calling the BAPIs.
Note: No format correction is applied to the OBJEK
source field. It must be padded with the appropriate number of zeros for the Object Type that is being passed in. No validation is applied to discern data of different types with the same number length (like Customer Masters and Vendor Masters), but that fact is moot if Characteristic values are not assigned to Classifications for disperate Object Types.
skip_transaction. clear: lObject, lClassType, lClass. translate CL20S-ATNAM to UPPER CASE. AllocationExists = ''. lObject = CL20S-OBJEK. *** Start by finding the correct CLASS and KLART values. select * from CABN into lCABN where ATNAM eq CL20S-ATNAM. if AllocationExists ne 'X'. select * from KSML into lKSML where IMERK eq lCABN-ATINN. lClassType = lKSML-KLART. select * from KLAH into lKLAH where CLINT eq lKSML-CLINT. lClass = lKLAH-CLASS. CALL FUNCTION 'CHECK_OBJECT_IN_CLASS' EXPORTING OBJECT = lObject CLASSTYPE = lClassType CLASS_EXTERNAL = lClass IMPORTING OBJECT_EXISTS_IN_CLASS = AllocationExists EXCEPTIONS CLASSTYPE_NOT_FOUND = 1 CLASS_NOT_FOUND = 2 OTHERS = 3. endselect. endselect. endif. endselect. if AllocationExists ne 'X'. write: / CL20S-OBJEK, CL20S-ATNAM, 'Object not associated with a Classification having that Char.'. exit. else.
When the AllocationExists flag is set then the code knows that this Object is associated with a Classification that contains the Characteristic. The next step is to populate the tables that will be used to flesh out the Characteristic values for the Object.
Here the OBTAB
is automatically populated with the first value from the TCLA
table based on the Class Type (KLART
) from the KSML table. It seems like this could be determined easily enough by the BAPI being called, but it is still a required parameter.
* * * * * * * * * * * * * * * * * * Populate item for BAPI. * * * * * * * * * * * * * * * * * * lBAPI1003_KEY-OBJECT = CL20S-OBJEK. " lBAPI1003_KEY-OBJECTTABLE = CL20H-OBTAB. select single OBTAB from TCLA into lBAPI1003_KEY-OBJECTTABLE where KLART eq lClassType. lBAPI1003_KEY-CLASSNUM = lClass. lBAPI1003_KEY-CLASSTYPE = lClassType. "Populate the existing data. call function 'BAPI_OBJCL_GETCLASSES' exporting objectkey_imp = lBAPI1003_KEY-OBJECT objecttable_imp = lBAPI1003_KEY-OBJECTTABLE classtype_imp = lBAPI1003_KEY-CLASSTYPE read_valuations = 'X' keydate = sy-datum tables alloclist = it_AllocationValues allocvalueschar = it_Char allocvaluescurr = it_Curr allocvaluesnum = it_Num return = it_BAPIRET2. endif. "AllocationExists ne 'X'.
At this point, the opportunity to remove and replace the Characteristic value in these Char/Curr/Num internal tables is presented. Based on the ATFOR field of the CABN table for the Characteristic, the appropriate internal table is modified; only numeric and string values were touched when writing this code, so some additional work is required to make it work with Currency Characteristics.
Note: The BAPI_OBJCL_CHANGE
function requires that all of the characteristic values be populated in the tables that are passed in as parameters. If only the single Characteristic to be changed is passed in alone then the end result is the Classification for that Master Data object containing just that one Characteristic value and all of the other Characteristic values being erased.
clear: wa_Num, wa_Char. case lCABN-ATFOR. when 'CHAR'. "The format of the characteristic is a string. delete it_Char where CHARACT eq CL20S-ATNAM. wa_Char-CHARACT = CL20S-ATNAM. wa_Char-VALUE_CHAR = CL20S-ATWRT. append wa_Char to it_Char. when others. delete it_Num where CHARACT eq CL20S-ATNAM. wa_Num-CHARACT = CL20S-ATNAM. wa_Num-VALUE_FROM = CL20S-ATWRT. append wa_Num to it_Num. endcase.
Once the data is ready, the BAPI_OBJCL_CHANGE
function is called to populate the Classification for the Object. It's important to remember that a BAPI is just a complex function that can be called from LSMW.
CALL FUNCTION 'BAPI_OBJCL_CHANGE' EXPORTING objectkey = lBAPI1003_KEY-OBJECT objecttable = lBAPI1003_KEY-OBJECTTABLE classnum = lBAPI1003_KEY-CLASSNUM classtype = lBAPI1003_KEY-CLASSTYPE TABLES allocvaluesnumnew = it_Num allocvaluescharnew = it_Char allocvaluescurrnew = it_Curr return = it_BAPIRET2.
Finally, the BAPI activity is committed, but only if the p_commit parameter is ticked and no errors are reported by the BAPI. In any other case, the BAPI data is rolled back and the software reports the error to the user.
loop at it_BAPIRET2 into wa_BAPIRET2. wa_BAPIRET2-PARAMETER = lBAPI1003_KEY-OBJECT. wa_BAPIRET2-MESSAGE_V4 = lBAPI1003_KEY-CLASSNUM. append wa_BAPIRET2 to it_Report. endloop. READ TABLE it_BAPIRET2 TRANSPORTING NO FIELDS WITH KEY type = 'E'. IF sy-subrc NE 0 and p_Commit eq 'X'. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. else. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ENDIF.
The reporting is done in the END_OF_PROCESSING section. The code simply loops through the BAPIRET2 data and, based on the p_verbos
parameter, shows what happened when trying to process the supplied data.
loop at it_Report into wa_BAPIRET2. if p_verbos eq 'X' or wa_BAPIRET2-TYPE eq 'E'. if wa_BAPIRET2-TYPE eq 'S'. format color col_positive intensified on. elseif wa_BAPIRET2-TYPE eq 'I'. format color col_total intensified off. elseif wa_BAPIRET2-TYPE eq 'W'. format color col_negative intensified off. else. format color col_negative intensified on. endif. write: / wa_BAPIRET2-PARAMETER, wa_BAPIRET2-MESSAGE_V4+0(18), wa_BAPIRET2-TYPE, wa_BAPIRET2-MESSAGE+0(90). format reset. if wa_BAPIRET2-MESSAGE+0(26) eq 'Conflict at characteristic'. AllocationExists = 'X'. endif. endif. endloop.
Download this project
In order to recycle this code, just copy-paste this data into a text file and import it into LSMW. Be sure to import it under LSMW and then copy it using Goto→Administration instead of trying to import it into an existing LSMW project.
[Legacy System Migration Workbench] LSMW Version Number : 4.0.0 LSMW Version Date : 08/31/2004 R/3 Installation Number : 0120027973 R/3 System Id : JIM R/3 Release : 750 R/3 Client : 140 R/3 Operating System : Linux R/3 Database System : HDB R/3 Hostname : by-dcjim User Id : JIMBO Date : 08/26/2021 Time : 15:45:27 Local Date : 08/26/2021 Local Time : 15:45:27 Local Timezone : CET [Project Information] [Project Name ] : SAPLSMW [Project Text ] : SAPLSMW.com Repository /SAPDMC/LSGPRO SAPLSMW C-KAUFFMAJ 20130202 /SAPDMC/LSGPROT ESAPLSMW SAPLSMW.com Repository [Subproject Information] [Subproject ] : MATERIAL [Subproject Text ] : Material Master Functions /SAPDMC/LSGSUB SAPLSMW MATERIAL C-KAUFFMAJ 20130202 /SAPDMC/LSGSUBT ESAPLSMW MATERIAL Material Master Functions [Object Information] [Object ] : CR_UPDATE_CHAR [Object Text ] : Touch a characteristic value in a Master Data Object /SAPDMC/LSOTXT ESAPLSMW MATERIAL CR_UPDATE_CHAR Touch a characteristic value in a Master Data Object /SAPDMC/LSOATT SAPLSMW MATERIAL CR_UPDATE_CHAR 0100010001 00000000ELIBL_01 X ELIBL 20210826 /SAPDMC/LSOSTR SAPLSMW MATERIAL CR_UPDATE_CHAR CL20S Source 000101 00000000000000000000 /SAPDMC/LSOFLD SAPLSMW MATERIAL CR_UPDATE_CHAR CL20S OBJEK 0001C 018OBJEK /SAPDMC/LSOFLD SAPLSMW MATERIAL CR_UPDATE_CHAR CL20S ATNAM 0002C 030Characteristic Name /SAPDMC/LSOFLD SAPLSMW MATERIAL CR_UPDATE_CHAR CL20S ATWRT 0003C 030Characteristic Value /SAPDMC/LSOREL SAPLSMW MATERIAL CR_UPDATE_CHAR 0001/SAPDMC/LTXTH CL20S 20200825ELIBL_01 /SAPDMC/LSOREL SAPLSMW MATERIAL CR_UPDATE_CHAR 0002/SAPDMC/LTXTL CL20S 20200825ELIBL_01 /SAPDMC/LSORUL SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_PROCESSING__ ACELIBL_01 20210826 00000000 /SAPDMC/LSORUL SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ ACELIBL_01 20210826 00000000 /SAPDMC/LSORUL SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ ACELIBL_01 20210826 00000000 /SAPDMC/LSORUL SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_TRANSACTION__ DFELIBL_01 20210826 00000000 /SAPDMC/LSORUL SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ ACELIBL_01 20210826 00000000 /SAPDMC/LSORUL SAPLSMW MATERIAL CR_UPDATE_CHAR 0001/SAPDMC/LTXTH STYPE DFELIBL_01 20210826 00000000 /SAPDMC/LSORUL SAPLSMW MATERIAL CR_UPDATE_CHAR 0001/SAPDMC/LTXTH __BEGIN_OF_RECORD__ DFELIBL_01 20210826 00000000 /SAPDMC/LSORUL SAPLSMW MATERIAL CR_UPDATE_CHAR 0001/SAPDMC/LTXTH __END_OF_RECORD__ DFELIBL_01 20210826 00000000 /SAPDMC/LSORUL SAPLSMW MATERIAL CR_UPDATE_CHAR 0002/SAPDMC/LTXTL STYPE DFELIBL_01 20210826 00000000 /SAPDMC/LSORUL SAPLSMW MATERIAL CR_UPDATE_CHAR 0002/SAPDMC/LTXTL __BEGIN_OF_RECORD__ DFELIBL_01 20210826 00000000 /SAPDMC/LSORUL SAPLSMW MATERIAL CR_UPDATE_CHAR 0002/SAPDMC/LTXTL __END_OF_RECORD__ DFELIBL_01 20210826 00000000 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_PROCESSING__ 0001if p_break eq 'X'. break-point. endif. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0001skip_transaction. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0002clear: lObject, lClassType, lClass. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0003translate CL20S-ATNAM to UPPER CASE. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0004AllocationExists = ''. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0005 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0006lObject = CL20S-OBJEK. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0007*** Start by finding the correct CLASS and KLART values. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0008select * from CABN into lCABN where ATNAM eq CL20S-ATNAM. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0009 if AllocationExists ne 'X'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0010 select * from KSML into lKSML where IMERK eq lCABN-ATINN. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0011 lClassType = lKSML-KLART. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0012 select * from KLAH into lKLAH where CLINT eq lKSML-CLINT. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0013 lClass = lKLAH-CLASS. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0014 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0015 CALL FUNCTION 'CHECK_OBJECT_IN_CLASS' ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0016 EXPORTING ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0017 OBJECT = lObject ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0018 CLASSTYPE = lClassType ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0019 CLASS_EXTERNAL = lClass ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0020 IMPORTING ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0021 OBJECT_EXISTS_IN_CLASS = AllocationExists ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0022 EXCEPTIONS ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0023 CLASSTYPE_NOT_FOUND = 1 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0024 CLASS_NOT_FOUND = 2 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0025 OTHERS = 3. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0026 endselect. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0027 endselect. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0028 endif. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0029endselect. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0030 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0031if AllocationExists ne 'X'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0032 write: / CL20S-OBJEK, CL20S-ATNAM, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0033 'Object not associated with a Classification having that Char.'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0034 exit. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0035else. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0036* * * * * * * * * * * * * * * ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0037* * ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0038* Populate item for BAPI. * ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0039* * ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0040* * * * * * * * * * * * * * * ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0041 lBAPI1003_KEY-OBJECT = CL20S-OBJEK. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0042" lBAPI1003_KEY-OBJECTTABLE = CL20H-OBTAB. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0043 select single OBTAB from TCLA into lBAPI1003_KEY-OBJECTTABLE ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0044 where KLART eq lClassType. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0045 lBAPI1003_KEY-CLASSNUM = lClass. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0046 lBAPI1003_KEY-CLASSTYPE = lClassType. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0047 "Populate the existing data. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0048 call function 'BAPI_OBJCL_GETCLASSES' ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0049 exporting ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0050 objectkey_imp = lBAPI1003_KEY-OBJECT ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0051 objecttable_imp = lBAPI1003_KEY-OBJECTTABLE ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0052 classtype_imp = lBAPI1003_KEY-CLASSTYPE ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0053 read_valuations = 'X' ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0054 keydate = sy-datum ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0055 tables ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0056 alloclist = it_AllocationValues ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0057 allocvalueschar = it_Char ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0058 allocvaluescurr = it_Curr ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0059 allocvaluesnum = it_Num ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0060 return = it_BAPIRET2. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0061endif. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0062 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0063 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0064*refresh: it_Num, it_Char, it_Curr. "Need these values. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0065clear: wa_Num, wa_Char. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0066case lCABN-ATFOR. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0067 when 'CHAR'. "The format of the characteristic is a string. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0068 delete it_Char where CHARACT eq CL20S-ATNAM. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0069 wa_Char-CHARACT = CL20S-ATNAM. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0070 wa_Char-VALUE_CHAR = CL20S-ATWRT. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0071 append wa_Char to it_Char. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0072 when others. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0073 delete it_Num where CHARACT eq CL20S-ATNAM. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0074 wa_Num-CHARACT = CL20S-ATNAM. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0075 wa_Num-VALUE_FROM = CL20S-ATWRT. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0076 append wa_Num to it_Num. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0077endcase. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0078 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0079CALL FUNCTION 'BAPI_OBJCL_CHANGE' ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0080 EXPORTING ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0081 objectkey = lBAPI1003_KEY-OBJECT ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0082 objecttable = lBAPI1003_KEY-OBJECTTABLE ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0083 classnum = lBAPI1003_KEY-CLASSNUM ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0084 classtype = lBAPI1003_KEY-CLASSTYPE ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0085 TABLES ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0086 allocvaluesnumnew = it_Num ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0087 allocvaluescharnew = it_Char ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0088 allocvaluescurrnew = it_Curr ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0089 return = it_BAPIRET2. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0090 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0091loop at it_BAPIRET2 into wa_BAPIRET2. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0092 wa_BAPIRET2-PARAMETER = lBAPI1003_KEY-OBJECT. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0093 wa_BAPIRET2-MESSAGE_V4 = lBAPI1003_KEY-CLASSNUM. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0094 append wa_BAPIRET2 to it_Report. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0095endloop. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0096 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0097READ TABLE it_BAPIRET2 TRANSPORTING NO FIELDS ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0098WITH KEY type = 'E'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0099IF sy-subrc NE 0 and p_Commit eq 'X'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0100 CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0101 EXPORTING ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0102 wait = 'X'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0103else. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0104 CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0105* IMPORTING ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0106* return = it_BAPIRET2. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0107ENDIF. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0108 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__BEGIN_OF_TRANSACTION__ 0109 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0001loop at it_Report into wa_BAPIRET2. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0002 if p_verbos eq 'X' or wa_BAPIRET2-TYPE eq 'E'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0003 if wa_BAPIRET2-TYPE eq 'S'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0004 format color col_positive intensified on. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0005 elseif wa_BAPIRET2-TYPE eq 'I'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0006 format color col_total intensified off. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0007 elseif wa_BAPIRET2-TYPE eq 'W'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0008 format color col_negative intensified off. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0009 else. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0010 format color col_negative intensified on. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0011 endif. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0012 write: / wa_BAPIRET2-PARAMETER, wa_BAPIRET2-MESSAGE_V4+0(18), ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0013 wa_BAPIRET2-TYPE, wa_BAPIRET2-MESSAGE+0(90). ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0014 format reset. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0015 if wa_BAPIRET2-MESSAGE+0(26) eq 'Conflict at characteristic'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0016 AllocationExists = 'X'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0017 endif. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0018 endif. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0019endloop. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0020 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0021 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0022 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0023 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0024 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0025 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0026 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0027 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0028 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0029 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0030 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0031 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0032 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0033 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0034 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0035 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_PROCESSING__ 0036 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__END_OF_TRANSACTION__ 0001transfer_transaction. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0001/SAPDMC/LTXTH STYPE 0001/SAPDMC/LTXTH-STYPE = '1'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0001/SAPDMC/LTXTH __BEGIN_OF_RECORD__ 0001/SAPDMC/LTXTH = INIT_/SAPDMC/LTXTH. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0001/SAPDMC/LTXTH __END_OF_RECORD__ 0001transfer_record. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0002/SAPDMC/LTXTL STYPE 0001/SAPDMC/LTXTL-STYPE = '2'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0002/SAPDMC/LTXTL __BEGIN_OF_RECORD__ 0001/SAPDMC/LTXTL = INIT_/SAPDMC/LTXTL. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0002/SAPDMC/LTXTL __END_OF_RECORD__ 0001transfer_record. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0001parameters: p_break as checkbox, p_commit as checkbox, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0002 p_verbos as checkbox default 'X'. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0003 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0004data: lKSML like KSML, lCABN like CABN, lKLAH like KLAH, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0005 lKSSK like KSSK, lINOB like INOB. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0006**** Following for checking object assignment. **** ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0007data: ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0008 AllocationExists LIKE BDFIELDS-EXIST, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0009 lObject like CLAL_OBJ-OBJECT, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0010 lClassType like CLAL_CLASS-CLASSTYPE, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0011 lClass like CLAL_CLASS-CLASS. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0012 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0013**** Following for loading Classifications via BAPI **** ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0014data: lBAPI1003_KEY like BAPI1003_KEY, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0015 it_Char type standard table of BAPI1003_ALLOC_VALUES_CHAR ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0016 initial size 0, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0017 it_Num type standard table of BAPI1003_ALLOC_VALUES_NUM ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0018 initial size 0, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0019 it_Curr type standard table of BAPI1003_ALLOC_VALUES_CURR ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0020 initial size 0, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0021 it_AllocationValues type standard table of BAPI1003_ALLOC_LIST ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0022 initial size 0, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0023 wa_AllocationValues like BAPI1003_ALLOC_LIST, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0024 wa_Char like BAPI1003_ALLOC_VALUES_CHAR, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0025 wa_Num like BAPI1003_ALLOC_VALUES_NUM, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0026 wa_Curr like BAPI1003_ALLOC_VALUES_CURR, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0027 it_BAPIRET2 type standard table of BAPIRET2 initial size 0, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0028 it_Report type standard table of BAPIRET2 initial size 0, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0029 wa_BAPIRET2 like BAPIRET2. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0030 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0031types: begin of t_backup, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0032 OBJEK like AUSP-OBJEK, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0033 KLART(5) type c, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0034 OBTAB(5) type c, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0035 CLASS like KLAH-CLASS, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0036 ATNAM like CABN-ATNAM, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0037 ATWRT like AUSP-ATWRT, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0038 end of t_backup. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0039data: it_backup type standard table of t_backup initial size 0, ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0040 wa_backup type t_backup. ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0041 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0042 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0043 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0044 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0045 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0046 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0047 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0048 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0049 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0050 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0051 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0052 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0053 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0054 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0055 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0056 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0057 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0058 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0059 ELIBL_01 20210826 /SAPDMC/LSOCOD SAPLSMW MATERIAL CR_UPDATE_CHAR 0000__GLOBAL_DATA__ 0060 ELIBL_01 20210826 /SAPDMC/LSOINP SAPLSMW MATERIAL CR_UPDATE_CHAR 0001FEc:\stuff\chars.txt file 0000X 000000 X X X /SAPDMC/LSOINS SAPLSMW MATERIAL CR_UPDATE_CHAR CL20S 0001 /SAPDMC/LSOPAR SAPLSMW MATERIAL CR_UPDATE_CHAR FROMLINE_READ 0000000000 /SAPDMC/LSOPAR SAPLSMW MATERIAL CR_UPDATE_CHAR TOLINE_READ 0000010000 /SAPDMC/LSOPAR SAPLSMW MATERIAL CR_UPDATE_CHAR ELIBL_01 WILDCARDVALUE [Subproject Information] [Subproject ] : ROUTING [Subproject Text ] : Routings /SAPDMC/LSGSUB SAPLSMW ROUTING C-KAUFFMAJ 20130202 /SAPDMC/LSGSUBT ESAPLSMW ROUTING Routings [Subproject Information] [Subproject ] : WORK_CENTER [Subproject Text ] : Create Work Center /SAPDMC/LSGSUB SAPLSMW WORK_CENTER C-KAUFFMAJ 20130202 /SAPDMC/LSGSUBT ESAPLSMW WORK_CENTER Create Work Center [Documentation ]