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

Quantity structure - Tcode CKMLQS

Former Member
0 Likes
2,171

Hello Experts,

I would like to know which table stores the data as shown in the Quantity structure (Tcode CKMLQS)? Basically how do we know which of the Semi finished goods have come from other plants?

The table STPO holds the BOM components, but i could not find the plant from which it was transferred.

Is it the field "Issuing plant"?

Thanks in advance.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,497

&----


*& Form get_cklmqs_data_ag

&----


  • -->if_matnr Material Number

  • -->if_werks Plant

  • -->if_bdatj Posting date YYYY

  • -->if_poper Posting period

  • -->if_curtp Currency Type and Valuation View

----


FORM get_ckmlqs_data_ag USING if_matnr

if_werks

if_bdatj

if_poper

if_curtp.

DATA : ls_mlkey TYPE mlkey.

DATA : qstree TYPE REF TO cl_qstree_ckml.

DATA : lcl_node TYPE REF TO cl_qsnode_material_ckml,

lcl_node1 TYPE REF TO cl_qsnode,

lcl_node2 TYPE REF TO cl_qsnode,

lcl_value TYPE ckmlqs_fields .

DATA : BEGIN OF lt_ckmlqs OCCURS 100,

seqnr TYPE i ,

kalnr TYPE ck_kalnr1 ,

matnr TYPE matnr ,

text(30) TYPE c ,

quantity TYPE menge_pos ,

unit TYPE meins ,

bewer TYPE kkb_ml_bewer ,

abwe TYPE kkb_ml_abwe ,

ges TYPE kkb_ml_ges ,

preis TYPE kkb_ml_preis ,

currency TYPE waers ,

ressource TYPE kkek_ress ,

peinh TYPE ck_peinh_1 ,

END OF lt_ckmlqs .

DATA : lv_seqnr TYPE i .

DATA : BEGIN OF lt_inputs OCCURS 10,

seqnr TYPE i ,

qsnode TYPE REF TO cl_qsnode,

END OF lt_inputs .

STATICS : st_t001w TYPE t001w .

*------

IF st_t001w-werks NE if_werks.

SELECT SINGLE * FROM t001w INTO st_t001w

WHERE werks = if_werks.

ENDIF.

ls_mlkey-matnr = if_matnr.

ls_mlkey-werks = if_werks.

ls_mlkey-bwkey = st_t001w-bwkey.

ls_mlkey-bdatj = if_bdatj.

ls_mlkey-poper = if_poper.

ls_mlkey-werks_ml_productive = if_werks.

ls_mlkey-curtp = if_curtp.

CALL METHOD cl_qstree_ckml=>create_docking_tree

EXPORTING

is_mlkey = ls_mlkey

IMPORTING

er_qstree = qstree

EXCEPTIONS

container_already_exists = 1

treecontrol_already_exists = 2

object_create_error = 3

container_create_error = 4

kalnr_notfound = 5

treecontrol_create_error = 6

OTHERS = 7.

CHECK sy-subrc EQ 0.

lcl_node = qstree->mr_rootnode.

READ TABLE lcl_node->t_inputs INTO lcl_node1 INDEX 1.

ADD 1 TO lv_seqnr.

lt_inputs-seqnr = lv_seqnr.

lt_inputs-qsnode = lcl_node.

APPEND lt_inputs.

LOOP AT lt_inputs.

CALL METHOD lt_inputs-qsnode->expand_inputs.

lcl_node1 = lt_inputs-qsnode.

LOOP AT lcl_node1->t_inputs INTO lcl_node2.

IF sy-tabix = 1.

ADD 1 TO lv_seqnr.

lt_inputs-seqnr = lv_seqnr.

ENDIF.

lt_inputs-qsnode = lcl_node2.

APPEND lt_inputs.

ENDLOOP.

ENDLOOP.

LOOP AT lt_inputs.

lt_ckmlqs-seqnr = lt_inputs-seqnr .

lt_ckmlqs-kalnr = lt_inputs-qsnode->kalnr .

lt_ckmlqs-text = lt_inputs-qsnode->text .

lt_ckmlqs-quantity = lt_inputs-qsnode->quantity.

lt_ckmlqs-unit = lt_inputs-qsnode->unit .

SELECT SINGLE matnr FROM mbew INTO lt_ckmlqs-matnr

WHERE kaln1 = lt_ckmlqs-kalnr.

CLEAR lcl_value.

READ TABLE lt_inputs-qsnode->t_values INTO lcl_value

WITH KEY curtp = if_curtp.

lt_ckmlqs-bewer = lcl_value-bewer .

lt_ckmlqs-abwe = lcl_value-abwe .

lt_ckmlqs-ges = lcl_value-ges .

lt_ckmlqs-preis = lcl_value-preis .

lt_ckmlqs-currency = lcl_value-currency .

lt_ckmlqs-ressource = lcl_value-ressource.

lt_ckmlqs-peinh = lcl_value-peinh .

APPEND lt_ckmlqs. CLEAR lt_ckmlqs.

ENDLOOP.

ENDFORM. " get_cklmqs_data_ag

4 REPLIES 4
Read only

Former Member
0 Likes
1,498

&----


*& Form get_cklmqs_data_ag

&----


  • -->if_matnr Material Number

  • -->if_werks Plant

  • -->if_bdatj Posting date YYYY

  • -->if_poper Posting period

  • -->if_curtp Currency Type and Valuation View

----


FORM get_ckmlqs_data_ag USING if_matnr

if_werks

if_bdatj

if_poper

if_curtp.

DATA : ls_mlkey TYPE mlkey.

DATA : qstree TYPE REF TO cl_qstree_ckml.

DATA : lcl_node TYPE REF TO cl_qsnode_material_ckml,

lcl_node1 TYPE REF TO cl_qsnode,

lcl_node2 TYPE REF TO cl_qsnode,

lcl_value TYPE ckmlqs_fields .

DATA : BEGIN OF lt_ckmlqs OCCURS 100,

seqnr TYPE i ,

kalnr TYPE ck_kalnr1 ,

matnr TYPE matnr ,

text(30) TYPE c ,

quantity TYPE menge_pos ,

unit TYPE meins ,

bewer TYPE kkb_ml_bewer ,

abwe TYPE kkb_ml_abwe ,

ges TYPE kkb_ml_ges ,

preis TYPE kkb_ml_preis ,

currency TYPE waers ,

ressource TYPE kkek_ress ,

peinh TYPE ck_peinh_1 ,

END OF lt_ckmlqs .

DATA : lv_seqnr TYPE i .

DATA : BEGIN OF lt_inputs OCCURS 10,

seqnr TYPE i ,

qsnode TYPE REF TO cl_qsnode,

END OF lt_inputs .

STATICS : st_t001w TYPE t001w .

*------

IF st_t001w-werks NE if_werks.

SELECT SINGLE * FROM t001w INTO st_t001w

WHERE werks = if_werks.

ENDIF.

ls_mlkey-matnr = if_matnr.

ls_mlkey-werks = if_werks.

ls_mlkey-bwkey = st_t001w-bwkey.

ls_mlkey-bdatj = if_bdatj.

ls_mlkey-poper = if_poper.

ls_mlkey-werks_ml_productive = if_werks.

ls_mlkey-curtp = if_curtp.

CALL METHOD cl_qstree_ckml=>create_docking_tree

EXPORTING

is_mlkey = ls_mlkey

IMPORTING

er_qstree = qstree

EXCEPTIONS

container_already_exists = 1

treecontrol_already_exists = 2

object_create_error = 3

container_create_error = 4

kalnr_notfound = 5

treecontrol_create_error = 6

OTHERS = 7.

CHECK sy-subrc EQ 0.

lcl_node = qstree->mr_rootnode.

READ TABLE lcl_node->t_inputs INTO lcl_node1 INDEX 1.

ADD 1 TO lv_seqnr.

lt_inputs-seqnr = lv_seqnr.

lt_inputs-qsnode = lcl_node.

APPEND lt_inputs.

LOOP AT lt_inputs.

CALL METHOD lt_inputs-qsnode->expand_inputs.

lcl_node1 = lt_inputs-qsnode.

LOOP AT lcl_node1->t_inputs INTO lcl_node2.

IF sy-tabix = 1.

ADD 1 TO lv_seqnr.

lt_inputs-seqnr = lv_seqnr.

ENDIF.

lt_inputs-qsnode = lcl_node2.

APPEND lt_inputs.

ENDLOOP.

ENDLOOP.

LOOP AT lt_inputs.

lt_ckmlqs-seqnr = lt_inputs-seqnr .

lt_ckmlqs-kalnr = lt_inputs-qsnode->kalnr .

lt_ckmlqs-text = lt_inputs-qsnode->text .

lt_ckmlqs-quantity = lt_inputs-qsnode->quantity.

lt_ckmlqs-unit = lt_inputs-qsnode->unit .

SELECT SINGLE matnr FROM mbew INTO lt_ckmlqs-matnr

WHERE kaln1 = lt_ckmlqs-kalnr.

CLEAR lcl_value.

READ TABLE lt_inputs-qsnode->t_values INTO lcl_value

WITH KEY curtp = if_curtp.

lt_ckmlqs-bewer = lcl_value-bewer .

lt_ckmlqs-abwe = lcl_value-abwe .

lt_ckmlqs-ges = lcl_value-ges .

lt_ckmlqs-preis = lcl_value-preis .

lt_ckmlqs-currency = lcl_value-currency .

lt_ckmlqs-ressource = lcl_value-ressource.

lt_ckmlqs-peinh = lcl_value-peinh .

APPEND lt_ckmlqs. CLEAR lt_ckmlqs.

ENDLOOP.

ENDFORM. " get_cklmqs_data_ag

Read only

0 Likes
1,497

Allah razı olsun Ahmet kardeş.

Read only

0 Likes
1,497

Hi,

Thanks for your answer, really helped me with a problem I was facing.

Read only

0 Likes
1,497

Hi Marcelo,

Could you Please help out as we are facing the same issue. In CKMLQS it is not SFG's of previous Period.

STEP 1: RM1+RM2+RM3 = SFG1

STEP 2: RM4+RM5+RM6+SFG1 = SFG2

STEP 3: RM1+RM7+RM8 = SFG3

STEP 4: RM9+RM2+SFG2+SFG3=FG

Note: Consumption of SFG can be partial in next step.

The batchs are executed over a period of 3-4 months. We would like to see the cost of raw materials each step and the overheads each step in reporting structure similar to CKMLQS,