‎2007 Mar 16 7:45 PM
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.
‎2007 Oct 04 11:05 PM
&----
*& 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
‎2007 Oct 04 11:05 PM
&----
*& 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
‎2011 Dec 05 4:05 PM
‎2014 Jun 18 3:21 PM
Hi,
Thanks for your answer, really helped me with a problem I was facing.
‎2016 Mar 28 5:54 PM
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,