‎2005 Dec 27 12:02 PM
Hi,
Advanced Thanks to your reply
<b>Get the 300 class of the configurable entered using the function module CACL_OBJECT_READ_ALLOCATIONS.</b>
what are Input Parameters used in this FM
Send me the sample code for this FM CACL_OBJECT_READ_ALLOCATIONS
<b>Function module CARD_CLASS_READ_CHARACTS is use to retrieve all the characteristics of the 300 class retrieved for the configurable material entered.</b>
what are Input Parameters used in this FM
Send me the sample code for this FM CARD_CLASS_READ_CHARACTS
i look forward to your reply
Thanks
RSK
‎2005 Dec 27 12:04 PM
for first one check out RCDDSSEL prog
second one check out SEWGRF01 prog
‎2005 Dec 27 12:04 PM
Hi,
Try this
call function 'CACL_OBJECT_READ_ALLOCATIONS'
exporting
object_type = l_objtype
class_type = l_classtype
tables
object_identification = lt_object_ident
allocations = lt_allocations
exceptions
error = 1
warning = 2
others = 3.
Regards,
GSR.
‎2005 Dec 27 12:34 PM
Hi all,
Thank u very much to your reply
Plz Clarify the following Assumptiones
Finding type 300 class AUSP-KLART characteristics associated with the configurable material MARA-MATNR.
From INOB (Link between Internal Number and Object ) table INOB- CUOBJ is retrieved.
Select CUOBJ from INOB where OBJEK = < configurable material> and KLART = 300.
Using INOB- CUOBJ the CLINT is retrieved from KSSK (Allocation Table: Object to Class ) table. Here we can get more than one value.
Getting common class
Select OBJEK from KSSK where OBJEK in <OBJEK> and MAFID = K
Getting CLINT value for all OBJEK
Select CLINT from KSSK where OBJEK = < OBJEK > and MAFID = O
How to develop the query for the above assumptiones
is there is any FM for above Requirement
Plz Guide me with code
i look forward to your reply
Award Points
Tahnks & Regards
RSK
‎2005 Dec 27 12:50 PM
Hi
the above program will do exactly what ever you need.
it will list all the materials with 300 class type.
regards
vijay
‎2005 Dec 27 12:06 PM
REPORT (sy-repid) MESSAGE-ID zmm.
************************************************************************
* *
* Data Declarations *
* *
************************************************************************
DATA: BEGIN OF matnr_tab OCCURS 0,
matnr TYPE mara-matnr,
END OF matnr_tab.
DATA: BEGIN OF class_tab OCCURS 0,
matnr TYPE mara-matnr,
semicolon(1) TYPE C,
class TYPE klah-class,
END OF class_tab.
DATA: class_count TYPE i VALUE 0.
*DATA: matnr_tab TYPE TABLE OF mara-matnr WITH HEADER LINE.
*DATA: class_tab TYPE TABLE OF klah-class WITH HEADER LINE.
*****************************************************************
* Parameter selection screen
*****************************************************************
PARAMETERS : p_infile LIKE rlgrap-filename OBLIGATORY,
p_outfil LIKE rlgrap-filename OBLIGATORY.
* For Input File Name
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_infile.
PERFORM request_filename USING p_infile.
* For Output File Name
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_outfil.
PERFORM request_filename USING p_outfil.
START-OF-SELECTION.
* Read input file
PERFORM upload_file USING p_infile.
* Get all associated class 300's for materials
PERFORM get_classes_for_materials.
* If classes found, write to output file.
IF class_count > 0.
* PERFORM download_file USING p_outfil.
loop at class_tab.
write: / class_tab-matnr, class_tab-class.
endloop.
MESSAGE i000 WITH 'Classes written to output file: '
class_count.
ELSE.
MESSAGE i000 WITH 'No classes found for materials'.
ENDIF.
*---------------------------------------------------------------------*
* FORM get_classes_for_materials *
*---------------------------------------------------------------------*
* Read all class type 300's for materials in list *
*---------------------------------------------------------------------*
FORM
get_classes_for_materials.
DATA: object TYPE TABLE OF api_ob_key WITH HEADER LINE,
alloc TYPE TABLE OF api_alloc WITH HEADER LINE,
v_matnr TYPE mara-matnr,
v_date TYPE clbasd-val_from.
CLEAR class_tab.
WRITE sy-datum TO v_date.
LOOP AT matnr_tab. " WHERE matnr NE space.
* Validate material
SELECT SINGLE matnr
INTO v_matnr
FROM mara WHERE matnr = matnr_tab-matnr.
*-set source material as object
IF sy-subrc = 0.
CLEAR: object.
REFRESH: object.
object-field = 'MATNR'.
object-value = matnr_tab-matnr.
APPEND object.
REFRESH alloc.
*-Read class 300 allocation of source material
CALL FUNCTION 'CACL_OBJECT_READ_ALLOCATIONS'
EXPORTING
object_type = 'MARA'
class_type = '300'
date = v_date
TABLES
object_identification = object
allocations = alloc
EXCEPTIONS
error = 1
warning = 2
OTHERS = 3.
**-if source allocation not found then exit
IF sy-subrc NE 0.
MOVE matnr_tab-matnr to class_tab-matnr.
MOVE ';' to class_tab-semicolon.
MOVE 'NO ALLOC' to class_tab-class.
APPEND class_tab.
ADD 1 TO class_count.
ENDIF.
LOOP AT alloc.
MOVE alloc-class TO class_tab-class.
MOVE ';' to class_tab-semicolon.
MOVE matnr_tab-matnr TO class_tab-matnr.
APPEND class_tab.
ADD 1 TO class_count.
ENDLOOP.
ELSE.
MOVE matnr_tab-matnr to class_tab-matnr.
MOVE ';' to class_tab-semicolon.
MOVE 'MATNR NOT FOUND' to class_tab-class.
APPEND class_tab.
ADD 1 TO class_count.
ENDIF.
ENDLOOP.
ENDFORM.
*---------------------------------------------------------------------*
* FORM upload_file *
*---------------------------------------------------------------------*
* Upload input file of materials *
*---------------------------------------------------------------------*
* --> v_filein *
*---------------------------------------------------------------------*
FORM upload_file USING v_filein LIKE rlgrap-filename.
* CALL FUNCTION 'WS_UPLOAD'
* EXPORTING
** CODEPAGE = ' '
* filename = v_filein
* filetype = 'DAT'
** HEADLEN = ' '
** LINE_EXIT = ' '
** TRUNCLEN = ' '
** USER_FORM = ' '
** USER_PROG = ' '
** DAT_D_FORMAT = ' '
** IMPORTING
** FILELENGTH =
* TABLES
* data_tab = matnr_tab
* EXCEPTIONS
* conversion_error = 1
* file_open_error = 2
* file_read_error = 3
* invalid_type = 4
* no_batch = 5
* unknown_error = 6
* invalid_table_width = 7
* gui_refuse_filetransfer = 8
* customer_error = 9
* OTHERS = 10
* .
data file type string.
file = v_filein.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
* CODEPAGE = ' '
filename = file
has_field_separator = 'X'
* HEADLEN = ' '
* LINE_EXIT = ' '
* TRUNCLEN = ' '
* USER_FORM = ' '
* USER_PROG = ' '
* DAT_D_FORMAT = ' '
* IMPORTING
* FILELENGTH =
TABLES
data_tab = matnr_tab
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
* FORM download_file *
*---------------------------------------------------------------------*
* Download output file of classes *
*---------------------------------------------------------------------*
* --> v_fileout *
*---------------------------------------------------------------------*
FORM download_file USING v_fileout LIKE rlgrap-filename.
* CALL FUNCTION 'WS_DOWNLOAD'
* EXPORTING
** BIN_FILESIZE = ' '
** CODEPAGE = ' '
* filename = v_fileout
* filetype = 'DAT'
** MODE = ' '
** WK1_N_FORMAT = ' '
** WK1_N_SIZE = ' '
** WK1_T_FORMAT = ' '
** WK1_T_SIZE = ' '
** COL_SELECT = ' '
** COL_SELECTMASK = ' '
** NO_AUTH_CHECK = ' '
** IMPORTING
** FILELENGTH =
* TABLES
* data_tab = class_tab
** FIELDNAMES =
* EXCEPTIONS
* file_open_error = 1
* file_write_error = 2
* invalid_filesize = 3
* invalid_type = 4
* no_batch = 5
* unknown_error = 6
* invalid_table_width = 7
* gui_refuse_filetransfer = 8
* customer_error = 9
* OTHERS = 10
* .
data file type string.
file = v_fileout.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
* BIN_FILESIZE = ' '
* CODEPAGE = ' '
filename = file
write_field_separator = 'X'
* MODE = ' '
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* COL_SELECT = ' '
* COL_SELECTMASK = ' '
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
TABLES
data_tab = class_tab
* FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
* FORM REQUEST_FILENAME *
*---------------------------------------------------------------------*
* Prompt for a file name *
*---------------------------------------------------------------------*
* --> v_file *
*---------------------------------------------------------------------*
FORM request_filename USING v_file
LIKE rlgrap-filename.
DATA : v_repid LIKE sy-repid.
v_repid = sy-repid.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = v_repid
dynpro_number = syst-dynnr
static = ' '
mask = ' '
CHANGING
file_name = v_file
EXCEPTIONS
mask_too_long = 1
OTHERS = 2.
ENDFORM. " REQUEST_FILENAMEthis code is what you needed.....
Title : Extract class type 300's for input materials
* Brief Purpose : *
* Read an input file of materials and produce an output file of *
* class type 300's.
‎2005 Dec 27 12:46 PM
Hi,
Using FM CARD_CLASS_READ_CHARACTS
KLAH-KLART Class Type
KLAH-CLASS Class number
Just pass class and class type.
CALL FUNCTION 'CARD_CLASS_READ_CHARACTS'
EXPORTING
CLASS = KLAH-CLASS
CLASS_TYPE = KLAH-KLART
DATE = sy-DATum
* LANGUAGE = LANGUINT
* FL_WITH_CHAR_VALUES = 'X'
IMPORTING
BASIC_DATA = wa_BASIC
CLASS_NOT_VALID = wa_INVALID
DOCUMENT_IDENT = wa_K_DOCUMENT
TABLES
CHARACTERISTICS = C_CHAR
CHARACTERISTICS_VALUES = C_VALUES
EXCEPTIONS OTHERS = 1.
Using FM CACL_OBJECT_READ_ALLOCATIONS
CALL FUNCTION 'CACL_OBJECT_READ_ALLOCATIONS'
EXPORTING
object_type = u_object_type
class_type = u_class_type
date = l_date
LANGUAGE = SYST-LANGU
i_obj_not_chk = ppet_true
i_aennr = space
TABLES
object_identification = ut_object_ident
allocations = lt_allocations
EXCEPTIONS
error = 1
warning = 2
OTHERS = 3 .
Hope it helps...
Lokesh
Pls. reward appropriate points
‎2005 Dec 28 5:29 AM
Hi Lokesh,
Thank u for your reply
Plz send the sample code using 2 function modules
FM:CARD_CLASS_READ_CHARACTS
FM:CACL_OBJECT_READ_ALLOCATIONS
In this function modules variable declaration part
plz send the code sample using 2 FM
I look forward to your reply
Reward Points
Regards & Thanks
Raja Sekhar.T
‎2005 Dec 28 5:40 AM
hi my code will tell you how to use the below FM.
CACL_OBJECT_READ_ALLOCATIONS
and please see the above mentioned code.
you never closed a single thread, please close your threads and reward for helpful answers...
vijay
‎2005 Dec 28 7:03 AM
Hi Vijay,
thanks for your reply
i want code sample for FM 'CARD_CLASS_READ_CHARACTS'
i look forward to your reply
reward points
Thanks & Regards
SEK
‎2005 Dec 28 7:38 AM
Hi all,
In this FM Parameters
CALL FUNCTION 'CARD_CLASS_READ_CHARACTS'
EXPORTING
CLASS = KLAH-CLASS
CLASS_TYPE = KLAH-KLART
DATE = SY-DATUM
LANGUAGE = LANGUINT
FL_WITH_CHAR_VALUES = 'X'
IMPORTING
BASIC_DATA = WA_BASIC
CLASS_NOT_VALID = WA_INVALID
DOCUMENT_IDENT = WA_K_DOCUMENT
TABLES
CHARACTERISTICS = C_CHAR
CHARACTERISTICS_VALUES = C_VALUES
EXCEPTIONS OTHERS = 1.
I want help on below mention Paramenters
IMPORTING
BASIC_DATA = WA_BASIC
CLASS_NOT_VALID = WA_INVALID
DOCUMENT_IDENT = WA_K_DOCUMENT
TABLES
CHARACTERISTICS = C_CHAR
CHARACTERISTICS_VALUES = C_VALUES
How to define in declaration section for
IMPORT and TABLES parameters
plz guide me with sample code
i look forward to your reply
Award points
Regards
SEK
‎2005 Dec 28 7:46 AM
hi just see this FM
<b>BAPI_CLASS_GETDETAIL</b>
how they have declared...
regards
vijay
‎2005 Dec 28 8:42 AM
BASIC_DATA LIKE CLBASD STRUCTURE CLBASD
CLASS_NOT_VALID LIKE RMCLM-BASISD
DOCUMENT_IDENT LIKE DOC_IDENT STRUCTURE DOC_IDENT
TABLES
CHARACTERISTICS STRUCTURE CLA_CH_AT
CHARACTERISTICS_VALUES STRUCTURE CHA_VALDSC
‎2014 Dec 11 9:11 AM
HI Raja
here is a sample code for how to use function CACL_OBJECT_READ_ALLOCATIONS.
DATA: IT_OBJKEY TYPE TABLE OF API_OB_KEY, "this is an input table
WA_OBJKEY LIKE LINE OF IT_OBJKEY,
IT_ALLOC TYPE TABLE OF API_ALLOC, "this is an output table
WA_ALLOC LIKE LINE OF IT_ALLOC.
WA_OBJKEY-FIELD = 'MATNR'. "filling sample data for table object_identification
WA_OBJKEY-VALUE = '33-253754-04'. "please check if these data exist in your
APPEND WA_OBJKEY TO IT_OBJKEY. "server if not change them.
WA_OBJKEY-FIELD = 'CHARG'.
WA_OBJKEY-VALUE = '0000000526'.
APPEND WA_OBJKEY TO IT_OBJKEY.
CALL FUNCTION 'CACL_OBJECT_READ_ALLOCATIONS'
EXPORTING
* OBJECT =
object_type = 'MCHA'
class_type = '023'
* DATE =
* LANGUAGE = SYST-LANGU
* I_OBJ_NOT_CHK = ' '
* I_AENNR =
* I_SORT_POSNR = ' '
TABLES
object_identification = IT_OBJKEY "if u do not give in data in this table program
allocations = IT_ALLOC " might go for dump
EXCEPTIONS
ERROR = 1
WARNING = 2
OTHERS = 3
.
IF sy-subrc EQ 0.
"suitable logic
ENDIF.
sry for any inconvienence this is my first reply on scn hopefully it will help.
‎2014 Dec 11 10:24 AM
Dear Anil,
I understand this is your first reply on scn, welcome on the forum as an active member, but replying to a discussion from 2005 is not that much helpfull.
This thread should have been closed long time ago.
Be aware that some of the threads are open for years because the poster didn't bother to close thread after the solution was provided.
Thanks and I wish you many fruitfull coöperations on this forum 🙂