Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

batch characteristic values table

Former Member
0 Likes
9,147

Hi does any one know in which all tables the batch characteristic values store which are visiblew ith transaction code msc3n?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
3,897

look at AUSP table

with key KLART = '023'

or check FM CLFM_SELECT_AUSP

3 REPLIES 3
Read only

Former Member
0 Likes
3,897

Hi..

try this table..

<b>DFBATCH</b> and <b>MCHA</b>

Read only

Former Member
0 Likes
3,898

look at AUSP table

with key KLART = '023'

or check FM CLFM_SELECT_AUSP

Read only

Former Member
0 Likes
3,897

Hi

CHaracteristic Values are stored in AUSP table

Other related tables CABN and INOB.

related Bapi's and fun modules to fetch them are

Check the following BAPI's:

BAPI_OBJCL_GETDETAIL

BAPI_OBJCL_CHANGE

or use the fun module:

CLAF_CLASSIFICATION_OF_OBJECTS.

See the sample code for fetching the Batch Charcateristics.

report z21311r_batch_char no standard page heading

line-size 132

line-count 58(1)

message-id mm.

----


  • Declaration for Tables

----


tables: mara, " Material Master

mard, " Storage Location Data for Material

t001w, " Plants/Branches

t001l, " Storage Locations

cabn, " Characteristics

inob. " Link between Internal Number and Object

----


  • Declaration for Constants

----


constants : c_klart like ausp-klart value '023', " Class Type

c_obtab like inob-obtab value 'MCH1', " Database Table

c_flag type c value 'X', " Flag

c_c23 type i value '23', " Ratio

  • Constants for Ratio Categories

c_13 type p decimals 2 value '13.00', " For Ratio 13

c_1499 type p decimals 2 value '14.99', " For Ratio 14.99

c_15 type p decimals 2 value '15.00', " For Ratio 15

c_1699 type p decimals 2 value '16.99', " For Ratio 16.99

c_17 type p decimals 2 value '17.00', " For Ratio 17

c_1899 type p decimals 2 value '18.99', " For Ratio 18.99

c_19 type p decimals 2 value '19.00', " For Ratio 19

c_2099 type p decimals 2 value '20.99', " For Ratio 20.99

c_21 type p decimals 2 value '21.00', " For Ratio 21

c_2299 type p decimals 2 value '22.99', " For Ratio 22.99

c_23 type p decimals 2 value '23.00', " For Ratio 23

c_g23(4) type c value '>=23', " For Ratio >=23

c_ratio(5) value 'RATIO', " For Ratio

  • Constants for Storing Selected item field information

c_cursor1(15) value 'I_OUTPUT1-MEINS', " For Selected Base

" Unit of Measure

c_cursor2(15) value 'I_OUTPUT1-MATNR', " For Selected Base

" Material Number

c_cursor3(15) value 'I_OUTPUT1-MAKTX', " For Selected Base

" Material Des.

c_cursor4(15) value 'I_OUTPUT1-CLABS', "For Selected Base

" Stock Value

c_cursor5(15) value 'I_OUTPUT1-ATFLV', " For Selected Base

" Char.Value (Ratio)

c_cursor6(5) value 'C_G23'.

----


  • Declaration for Global Variables

----


data : g_exit type c, " Flag

g_clabs1(16) type c, " Quantity

g_clabs(18) type c, " Quantity

g_cursor(15) type c, " Cursor field name

g_matnr type mara-matnr, " Material Number

g_werks type mchb-werks, " Plant

g_atinn(30) type c. " Character.

----


  • Declaration for Internal tables

----


  • Internal table to hold Batch Stock data

data : begin of i_mchb occurs 0,

matnr like mchb-matnr, " Material Number

werks like mchb-werks, " Plant

lgort like mchb-lgort, " Storage Location

charg like mchb-charg, " Batch Number

clabs like mchb-clabs, " Stock Value

meins like mara-meins, " Unit of measure

atflo like ausp-atflv, " Char.Value (Ratio)

atflv like ausp-atflv, " Char.Value (Ratio)

end of i_mchb.

  • Internal table to hold Secondary List data

data : begin of i_mchb1 occurs 0,

werks like mchb-werks, " Plant

matnr like mchb-matnr, " Material Number

lgort like mchb-lgort, " Storage Location

charg like mchb-charg, " Batch Number

atinn like ausp-atinn, " Char.Value

clabs like mchb-clabs, " Stock Value

atflo like ausp-atflv, " Char.Value (Ratio)

atflv like ausp-atflv, " Char.Value (Ratio)

end of i_mchb1.

  • Internal table to get the Plant Name

data : begin of i_plant occurs 0,

werks like t001w-werks, " Plant

name1 like t001w-name1, " Name

end of i_plant.

  • Internal table to get the Material Description

data : begin of i_makt occurs 0,

matnr like makt-matnr, " Material

maktx like makt-maktx, " Description

end of i_makt.

  • Internal table to hold AUSP data

data : begin of i_ausp occurs 0,

objek like ausp-objek, " Object No

atinn like cabn-atinn, " Characteric value

atflv like ausp-atflv, " Characteristic Value

end of i_ausp.

  • Internal table to hold output data

data : begin of i_output occurs 0,

atinn like cabn-atinn, " Characteric value

werks like mchb-werks, " Plant

matnr like mchb-matnr, " Material Number

atnam like cabn-atnam, " Characteristic

atflv like ausp-atflv, " Char.Value (Ratio)

name1 like t001w-name1, " Plant Description

maktx like makt-maktx, " Material Description

clabs like mchb-clabs, " Stock Value

meins like mara-meins, " Base Unit of Measure

end of i_output.

  • Internal table to hold final Output data

data : begin of i_output1 occurs 0,

atinn like cabn-atinn, " Characteric value

werks like mchb-werks, " Plant

matnr like mchb-matnr, " Material Number

atnam like cabn-atnam, " Characteristic

atflv(32) type c, " Char.Value (Ratio)

name1 like t001w-name1, " Plant Description

maktx like makt-maktx, " Material Description

clabs like mchb-clabs, " Stock Value

meins like mara-meins, " Base Unit of Measure

end of i_output1.

----


  • Selection screen

----


selection-screen begin of block b1 with frame title text-001.

select-options: s_werks for t001w-werks obligatory, " Plant

s_lgort for t001l-lgort, " Stor.Location

s_matnr for mara-matnr obligatory, " Material No

s_atinn for cabn-atinn. " Character.

selection-screen end of block b1.

----


  • At selection screen

----


at selection-screen.

  • Validation of Selection Screen Fields

perform validate_screen.

----


  • Start of selection

----


start-of-selection.

  • Get the Material and Batch Stock data from MARA and MCHB Tables

perform get_mat_stock_data.

  • Get the Material Group Text and Plant Name from T023T and T001W Tables

perform get_plant_grp_data.

  • Append the data into final Output Internal Table after getting the

  • Characteristic Values data from INOB and AUSP Tables

perform append_final_data.

  • Processing if the Characteristics contain 'RATIO'

perform collect_ratio.

----


  • End-of-Page

----


end-of-page.

write /1(125) sy-uline.

----


  • End of selection

----


end-of-selection.

if g_exit <> c_flag.

  • Display the Report Output data

perform display_report.

endif.

----


  • Top-of-Page

----


top-of-page.

  • Write the Report and Column Headings

perform get_headings.

----


  • at line-selection

----


at line-selection.

if sy-lsind = 1.

perform display_batch.

endif.

----


  • Top of page during line-selection

----


top-of-page during line-selection.

perform heading_seclist.

----


  • Form validate_screen

----


  • Validation of Selection Screen fields

----


form validate_screen.

  • Validation of Plant

clear t001w.

if not s_werks[] is initial.

select werks

into t001w-werks

from t001w

up to 1 rows

where werks in s_werks.

endselect.

if sy-subrc <> 0.

message e899 with 'Enter Valid Plant'(002).

endif.

endif.

  • Validation of Material Number

clear mara.

if not s_matnr[] is initial.

select matnr

into mara-matnr

from mara

up to 1 rows

where matnr in s_matnr.

endselect.

if sy-subrc <> 0.

message e899 with 'Enter Valid Material'(003).

endif.

endif.

  • Validation of Storage Location

clear t001l.

if not s_lgort[] is initial.

select lgort

into t001l-lgort

from t001l

up to 1 rows

where lgort in s_lgort.

endselect.

if sy-subrc <> 0.

message e899 with 'Enter Valid Storage Location'(004).

endif.

endif.

  • Validation of Characteristic Value

clear cabn.

if not s_atinn[] is initial.

select atinn

into cabn-atinn

from cabn

up to 1 rows

where atinn in s_atinn.

endselect.

if sy-subrc <> 0.

message e899 with 'Enter Valid Characteristic Value'(005).

endif.

endif.

  • Validation of Plant, Material and Storage Location

clear mard.

select matnr werks lgort

into (mard-matnr, mard-werks, mard-lgort)

from mard

up to 1 rows

where matnr in s_matnr and

werks in s_werks and

lgort in s_lgort.

endselect.

if sy-subrc <> 0.

message e899 with 'No Data found for the Selection Criteria'(006).

endif.

endform. "validate_screen

&----


*& Form get_headings

&----


  • Write the Report and Column Headings

----


form get_headings.

data: l_repid type sy-repid.

l_repid = sy-repid.

call function 'Y_STANDARD_HEADING'

exporting

repid = l_repid

heading1 = sy-title.

write:/1(125) sy-uline.

format color col_heading on.

write : /1 sy-vline, 2(18) 'Material Number'(008) centered,

20 sy-vline, 21(40) 'Material Description'(011) centered,

61 sy-vline, 62(22) 'Ratio'(009) centered,

84 sy-vline, 85(18) 'Quantity'(010) centered,

103 sy-vline, 104(20) 'Base Unit of Measure'(015) centered,

125 sy-vline.

write:/1(125) sy-uline.

format color off.

endform. "get_headings

&----


*& Form get_mat_stock_data

&----


  • Get the Material and Batch Stock data from MARA and MCHB Tables

----


form get_mat_stock_data.

clear: i_mchb,i_output, i_output1.

refresh: i_mchb,i_output, i_output1.

select a~matnr " Material Number

b~werks " Plant

b~lgort " Storage Location

b~charg " Batch Number

b~clabs " Stock Value

a~meins " Base Unit of Measure

into table i_mchb

from mara as a inner join mchb as b

on amatnr eq bmatnr

where b~matnr in s_matnr and

b~werks in s_werks and

b~lgort in s_lgort.

if sy-subrc <> 0.

g_exit = c_flag.

message s899 with 'No Data found for the Selection Criteria'(006).

stop.

endif.

sort i_mchb by matnr werks lgort charg.

endform. " get_mat_stock_data

&----


*& Form get_plant_grp_data

&----


  • Get the Material Group Text and Plant Name from T023T and T001W

----


form get_plant_grp_data.

if not i_mchb[] is initial.

  • Get the Plant Description from t001w Table

clear i_plant.

refresh i_plant.

select werks " Plant

name1 " Name

into table i_plant

from t001w

for all entries in i_mchb

where werks = i_mchb-werks.

  • Get the Material Description from MAKT Table

clear i_makt.

refresh i_makt.

select matnr " Material number

maktx " Material Description

into table i_makt

from makt

for all entries in i_mchb

where matnr = i_mchb-matnr and

spras = sy-langu.

sort i_plant by werks.

delete adjacent duplicates from i_plant comparing werks.

sort i_makt by matnr.

delete adjacent duplicates from i_makt comparing matnr.

endif.

endform. "form get_plant_grp_data.

&----


*& Form append_final_data

&----


  • Append the data into final Internal Table

----


form append_final_data.

data : l_matbatch(28),

l_tabix like sy-tabix.

if not i_mchb[] is initial.

loop at i_mchb.

l_tabix = sy-tabix.

clear l_matbatch.

concatenate i_mchb-matnr i_mchb-charg into l_matbatch.

move-corresponding i_mchb to i_output.

  • Get the Plant Description from i_plant Table

read table i_plant with key werks = i_mchb-werks binary search.

if sy-subrc = 0.

i_output-name1 = i_plant-name1.

endif.

  • Get the Material Description from i_makt Table

read table i_makt with key matnr = i_mchb-matnr binary search.

if sy-subrc = 0.

i_output-maktx = i_makt-maktx.

endif.

  • Get the Characteristic Values data from INOB and AUSP Tables

clear inob.

select single cuobj from inob

into inob-cuobj

where klart = c_klart and

obtab = c_obtab and

objek = l_matbatch.

if sy-subrc = 0.

select objek

atinn

atflv

from ausp

into table i_ausp

where objek = inob-cuobj and

atinn in s_atinn and

klart = c_klart.

sort i_ausp by objek atinn.

loop at i_ausp.

clear cabn.

select single atinn atnam from cabn

into (cabn-atinn,cabn-atnam)

where atinn = i_ausp-atinn.

if sy-subrc = 0.

  • If the ratio value is between 13-14.99, display 13

if cabn-atnam cs c_ratio.

if i_ausp-atflv between c_13 and c_1499.

i_mchb-atflo = i_ausp-atflv.

i_mchb-atflv = c_13.

  • If the ratio value is between 15-16.99, display 15

elseif i_ausp-atflv between c_15 and c_1699.

i_mchb-atflo = i_ausp-atflv.

i_mchb-atflv = c_15.

  • If the ratio value is between 17-18.99, display 17

elseif i_ausp-atflv between c_17 and c_1899.

i_mchb-atflo = i_ausp-atflv.

i_mchb-atflv = c_17.

  • If the ratio value is between 19-20.99, display 19

elseif i_ausp-atflv between c_19 and c_2099.

i_mchb-atflo = i_ausp-atflv.

i_mchb-atflv = c_19.

  • If the ratio value is between 21-22.99, display 21

elseif i_ausp-atflv between c_21 and c_2299.

i_mchb-atflo = i_ausp-atflv.

i_mchb-atflv = c_21.

  • If the ratio value is greater than or equal to 23, display 23

elseif i_ausp-atflv >= c_23.

i_mchb-atflo = i_ausp-atflv.

i_mchb-atflv = c_23.

endif. " Condition for RATIO values

else. " If characteristic does contain RATIO

i_mchb-atflv = i_ausp-atflv.

endif.

i_output-atinn = cabn-atinn.

i_output-atnam = cabn-atnam.

i_output-atflv = i_ausp-atflv.

i_mchb1-matnr = i_mchb-matnr.

i_mchb1-werks = i_mchb-werks.

i_mchb1-lgort = i_mchb-lgort.

i_mchb1-charg = i_mchb-charg.

i_mchb1-clabs = i_mchb-clabs.

i_mchb1-atinn = i_ausp-atinn.

i_mchb1-atflo = i_mchb-atflv.

i_mchb1-atflv = i_ausp-atflv.

append : i_output, i_mchb1.

clear i_mchb1.

modify i_mchb index l_tabix transporting atflo atflv .

endif.

endloop.

endif.

endloop.

endif.

  • Checking whether the table is filled or not

if not i_output[] is initial.

sort i_output by atinn werks matnr atflv.

else.

g_exit = c_flag.

message s899 with 'No Data found for the Selection Criteria'(006).

endif.

  • Delete the records where RATIO is less than 13.

delete i_output where atnam cs c_ratio and atflv lt c_13.

endform. "append_final_data

&----


*& Form display_report

&----


  • Display the Report Output data

----


form display_report.

data: l_tabix like sy-tabix.

loop at i_output1.

l_tabix = sy-tabix.

  • At new Characteristic

at new atinn.

read table i_output1 index l_tabix.

format color 1 intensified on.

write: /1 sy-vline, 2(20) 'Characteristic Name:'(007),

23(40) i_output1-atnam,

125 sy-vline.

format color off.

format color 4 intensified on.

write: /1 sy-vline, 2(20) 'Plant Name :'(022),

23(4) i_output1-werks, 29(30) i_output1-name1,

125 sy-vline.

format color off.

write /1(125) sy-uline.

endat.

clear: g_clabs, g_clabs1.

format color col_normal.

write :/1 sy-vline, 2(18) i_output1-matnr,

20 sy-vline, 21(40) i_output1-maktx,

61 sy-vline.

if i_output1-atflv = c_c23.

write: 62(22) c_g23 centered.

else.

shift i_output1-atflv left deleting leading space.

write: 62(22) i_output1-atflv centered.

endif.

write: 84 sy-vline,

103 sy-vline,

110(5) i_output1-meins.

  • If the quantity value is negative

if i_output1-clabs ge 0.

write: 85(18) i_output1-clabs unit i_mchb-meins,

125 sy-vline.

else.

i_output1-clabs = - i_output1-clabs.

write i_output1-clabs unit i_mchb-meins to g_clabs1.

condense g_clabs1.

concatenate '(' g_clabs1 ')' into g_clabs separated by space.

write: 85(18) g_clabs right-justified,

125 sy-vline.

endif.

format color off.

hide : i_output1.

new-line.

  • At end of material

at end of matnr.

sum.

move : i_output1-matnr to g_matnr.

format color 3 intensified on.

write /1(125) sy-uline.

write :/1 sy-vline, 2(25) 'Total for Material :'(012),

28(18) g_matnr.

if i_output1-clabs ge 0.

write: 85(18) i_output1-clabs unit i_mchb-meins,

125 sy-vline.

else.

i_output1-clabs = - i_output1-clabs.

write i_output1-clabs unit i_mchb-meins to g_clabs1.

condense g_clabs1.

concatenate '(' g_clabs1 ')' into g_clabs separated by space.

write: 85(18) g_clabs right-justified,

125 sy-vline.

endif.

write: 125 sy-vline.

format color off.

write /1(125) sy-uline.

endat.

  • At end of plant

at end of werks.

sum.

move : i_output1-werks to g_werks.

format color 3 intensified off.

write :/1 sy-vline, 2(25) 'Total for Plant :'(013),

28(4) g_werks.

if i_output1-clabs ge 0.

write: 85(18) i_output1-clabs unit i_mchb-meins,

125 sy-vline.

else.

i_output1-clabs = - i_output1-clabs.

write i_output1-clabs unit i_mchb-meins to g_clabs1.

condense g_clabs1.

concatenate '(' g_clabs1 ')' into g_clabs separated by space.

write: 85(18) g_clabs right-justified,

125 sy-vline.

endif.

format color off.

write /1(125) sy-uline.

endat.

  • At end of characteristic

at end of atinn.

read table i_output1 index l_tabix.

sum.

format color 3 intensified on.

write :/1 sy-vline, 2(25) 'Total for Characteristic:'(014),

28(25) i_output1-atnam.

if i_output1-clabs ge 0.

write: 85(18) i_output1-clabs unit i_mchb-meins,

125 sy-vline.

else.

i_output1-clabs = - i_output1-clabs.

write i_output1-clabs unit i_mchb-meins to g_clabs1.

condense g_clabs1.

concatenate '(' g_clabs1 ')' into g_clabs separated by space.

write: 85(18) g_clabs right-justified,

125 sy-vline.

endif.

format color off.

write /1(125) sy-uline.

endat.

endloop.

endform. " display_report

&----


*& Form DISPLAY_BATCH

&----


  • Display the batch details for the seclected material *

----


form display_batch.

  • Get the batch details for the selected material

get cursor field g_cursor.

if g_cursor = c_cursor1 or

g_cursor = c_cursor2 or

g_cursor = c_cursor3 or

g_cursor = c_cursor4 or

g_cursor = c_cursor5 or

g_cursor = c_cursor6.

format color 3.

write: /1 sy-vline,

2(17) 'Material Number :'(020),

20(17) i_output1-matnr,

94 sy-vline.

format color off.

write /1(94) sy-uline.

loop at i_mchb1 where matnr = i_output1-matnr and

atinn = i_output1-atinn and

atflo = i_output1-atflv.

format color col_normal.

shift i_mchb1-charg left deleting leading '0'.

write :/1 sy-vline, 2(16) i_mchb1-lgort centered,

18 sy-vline, 19(17) i_mchb1-charg centered,

36 sy-vline.

if i_output1-atnam cs c_ratio.

write: 37(29) i_mchb1-atflv

exponent 0 decimals 2 centered.

else.

write : 37(29) i_mchb1-atflv

exponent 0 decimals 0 centered.

endif.

write : 66 sy-vline, 67(27) i_mchb1-clabs unit i_mchb-meins,

94 sy-vline.

format color off.

endloop.

write /1(94) sy-uline.

else.

message s899 with 'Invalid cursor position'(016).

exit.

endif.

endform. " DISPLAY_BATCH

&----


*& Form HEADING_SECLIST

&----


  • Write the Column Headings for Interactive Report

----


form heading_seclist.

write /1(94) sy-uline.

format color col_heading on.

write :/1 sy-vline, 2(16) 'Storage Location'(021),

18 sy-vline, 19(17) 'Batch Number'(017) centered,

36 sy-vline, 37(29) 'Characteristic Value'(018) centered,

66 sy-vline, 67(27) 'Quantity'(019) centered,

94 sy-vline.

write /1(94) sy-uline.

format color off.

endform. " HEADING_SECLIST

&----


*& Form COLLECT_RATIO

&----


  • Display the Characteristic ratio data

----


form collect_ratio.

loop at i_output.

clear g_atinn.

i_output1-atinn = i_output-atinn.

i_output1-atnam = i_output-atnam .

i_output1-werks = i_output-werks.

i_output1-name1 = i_output-name1.

i_output1-matnr = i_output-matnr.

i_output1-maktx = i_output-maktx.

i_output1-clabs = i_output-clabs.

i_output1-meins = i_output-meins.

call function 'CONVERSION_EXIT_ATINN_OUTPUT'

exporting

input = i_output-atinn

importing

output = g_atinn.

if g_atinn cs c_ratio.

  • If the ratio value is between 13-14.99, display 13

if i_output-atflv between c_13 and c_1499.

i_output1-atflv = c_13.

  • If the ratio value is between 15-16.99, display 15

elseif i_output-atflv between c_15 and c_1699.

i_output1-atflv = c_15.

  • If the ratio value is between 17-18.99, display 17

elseif i_output-atflv between c_17 and c_1899.

i_output1-atflv = c_17.

  • If the ratio value is between 19-20.99, display 19

elseif i_output-atflv between c_19 and c_2099.

i_output1-atflv = c_19.

  • If the ratio value is between 21-22.99, display 21

elseif i_output-atflv between c_21 and c_2299.

i_output1-atflv = c_21.

  • If the ratio value is greater than or equal to 23, display 23

elseif i_output-atflv >= c_23.

i_output1-atflv = c_23.

endif.

write i_output1-atflv to i_output1-atflv .

else.

write i_output-atflv to i_output1-atflv exponent 0 decimals 0.

endif.

collect i_output1.

clear i_output1.

endloop.

sort i_output1 by atinn werks matnr atflv.

endform. " COLLECT_RATIO

Reward if sueful

regards,

Anji

Message was edited by:

Anji Reddy Vangala