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

Problem with BAPI_ROUTING_CREATE

0 Likes
1,092

Hi all,

I am using the BAPI BAPI_ROUTING_CREATE and i am having problems when i enter the Workcenter value. I ma getting an error "Maintain a cost cntr. for the activity types specified in the work cntr." but if i use CA01, i am not getting any errors.Do you have an idea on what tables and fields i should have values in the BAPI. Hope you can help.

Thanks!

Regards,

April

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
633

Hi,

*&----


**& Author : *

**& Create date : *

**& Program type : Report *

**& Report name : ZPPPR_ROUTING_INPUT *

**& Description : ROUTING_INPUT *

**& FINISH ON : *

**& TRANSPROT REQUEST : *

*&----


REPORT zpppr_routing_input MESSAGE-ID zmc95

NO STANDARD PAGE HEADING

LINE-SIZE 500.

*---->define table->bapi

DATA: group TYPE bapi1012_tsk_c-task_list_group,

group_counter TYPE bapi1012_tsk_c-group_counter,

sequence_no TYPE bapi1012_opr_c-sequence_no,

task_list_usage TYPE bapi1012_tsk_c-task_list_usage,

task_list_status TYPE bapi1012_tsk_c-task_list_status,

lot_size_from TYPE bapi1012_tsk_c-lot_size_from,

lot_size_to TYPE bapi1012_tsk_c-lot_size_to,

task_measure_unit TYPE bapi1012_tsk_c-task_measure_unit,

application TYPE bapi1012_control_data-application,

testrun TYPE bapiflag,

profile TYPE bapi1012_control_data-profile,

bomusage TYPE bapi1012_control_data-bom_usage,

task TYPE bapi1012_tsk_c OCCURS 0 WITH HEADER LINE,

materialtaskallocation TYPE bapi1012_mtk_c OCCURS 0 WITH HEADER LINE,

sequence TYPE bapi1012_seq_c OCCURS 0 WITH HEADER LINE,

operation TYPE bapi1012_opr_c OCCURS 0 WITH HEADER LINE,

suboperation TYPE bapi1012_sub_opr_c OCCURS 0 WITH HEADER LINE,

referenceoperation TYPE bapi1012_ref_opr_c OCCURS 0 WITH HEADER LINE,

workcenterreference TYPE bapi1012_wc_ref_opr_c OCCURS 0 WITH HEADER LINE,

componentallocation TYPE bapi1012_com_c OCCURS 0 WITH HEADER LINE,

productionresource TYPE bapi1012_prt_c OCCURS 0 WITH HEADER LINE,

inspcharacteristic TYPE bapi1012_cha_c OCCURS 0 WITH HEADER LINE,

textallocation TYPE bapi1012_txt_hdr_c OCCURS 0 WITH HEADER LINE,

text TYPE bapi1012_txt_c OCCURS 0 WITH HEADER LINE,

return TYPE bapiret2 OCCURS 0 WITH HEADER LINE,

bapi_retn_info LIKE bapiret2 OCCURS 0 WITH HEADER LINE.

*---->message table

DATA: BEGIN OF t_error OCCURS 0.

DATA material LIKE bapi1012_mtk_c-material.

INCLUDE STRUCTURE bapiret2.

DATA: END OF t_error.

*---->inner table

DATA: BEGIN OF itab1 OCCURS 0 ,

material LIKE bapi1012_mtk_c-material,

plant LIKE bapi1012_mtk_c-plant,

description1 LIKE bapi1012_tsk_c-description,

activity LIKE bapi1012_opr_c-activity,

work_cntr LIKE bapi1012_opr_c-work_cntr,

control_key LIKE bapi1012_opr_c-control_key,

description LIKE bapi1012_opr_c-description,

base_quantity LIKE bapi1012_opr_c-base_quantity,

std_value_01 LIKE bapi1012_opr_c-std_value_01,

std_value_02 LIKE bapi1012_opr_c-std_value_02,

  • max_no_of_splits LIKE bapi1012_opr_c-max_no_of_splits,

FJS(2) TYPE C,

ind_splitting_reqrd LIKE bapi1012_opr_c-ind_splitting_reqrd,

required_overlapping LIKE bapi1012_opr_c-required_overlapping,

min_send_ahead_qty LIKE bapi1012_opr_c-min_send_ahead_qty,

ext_proc_with_subcontract_ind LIKE bapi1012_opr_c-ext_proc_with_subcontract_ind,

info_rec LIKE bapi1012_opr_c-info_rec,

purch_org LIKE bapi1012_opr_c-purch_org,

cost_elem LIKE bapi1012_opr_c-cost_elem,

COST_RELEVANT like bapi1012_opr_c-COST_RELEVANT,

END OF itab1.

DATA: BEGIN OF itab OCCURS 0 ,

material LIKE bapi1012_mtk_c-material,

plant LIKE bapi1012_mtk_c-plant,

description1 LIKE bapi1012_tsk_c-description,

activity LIKE bapi1012_opr_c-activity,

work_cntr LIKE bapi1012_opr_c-work_cntr,

control_key LIKE bapi1012_opr_c-control_key,

description LIKE bapi1012_opr_c-description,

base_quantity LIKE bapi1012_opr_c-base_quantity,

std_value_01 LIKE bapi1012_opr_c-std_value_01,

std_value_02 LIKE bapi1012_opr_c-std_value_02,

max_no_of_splits LIKE bapi1012_opr_c-max_no_of_splits,

ind_splitting_reqrd LIKE bapi1012_opr_c-ind_splitting_reqrd,

required_overlapping LIKE bapi1012_opr_c-required_overlapping,

min_send_ahead_qty LIKE bapi1012_opr_c-min_send_ahead_qty,

ext_proc_with_subcontract_ind LIKE bapi1012_opr_c-ext_proc_with_subcontract_ind,

info_rec LIKE bapi1012_opr_c-info_rec,

purch_org LIKE bapi1012_opr_c-purch_org,

cost_elem LIKE bapi1012_opr_c-cost_elem,

END OF itab.

DATA : gt_itab LIKE itab OCCURS 0 WITH HEADER LINE.

DATA : lv_cancel(1) TYPE c.

*---->upload

CALL FUNCTION 'UPLOAD'

EXPORTING

filename = 'C:\Documents and Settings\Administrator\Desktop\ameet.txt'

filetype = 'DAT'

IMPORTING

cancel = lv_cancel

TABLES

data_tab = itab1

EXCEPTIONS

conversion_error = 1

invalid_table_width = 2

invalid_type = 3

no_batch = 4

unknown_error = 5

gui_refuse_filetransfer = 6

OTHERS = 7.

IF lv_cancel EQ 'X'.

LEAVE PROGRAM.

ENDIF.

IF sy-subrc <> 0 .

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ELSEIF sy-subrc = 0.

SORT itab1 BY material plant activity.

LOOP AT ITAB1.

MOVE-CORRESPONDING ITAB1 TO ITAB.

CONDENSE ITAB1-FJS NO-GAPS.

ITAB-max_no_of_splits = ITAB1-FJS.

APPEND ITAB.

ENDLOOP.

SORT ITAB BY MATERIAL PLANT.

LOOP AT itab.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = itab-material

IMPORTING

output = itab-material.

MOVE itab TO gt_itab.

APPEND gt_itab.

*-----&#12297;item-sequence

*operation-group_counter = '1'.

operation-activity = itab-activity.

operation-control_key = itab-control_key.

operation-work_cntr = itab-work_cntr.

operation-description = itab-description.

operation-plant = itab-plant.

  • operation-operation_measure_unit = 'EA'.

operation-denominator = 1.

operation-nominator = 1.

operation-base_quantity = itab-base_quantity.

operation-std_value_01 = itab-std_value_01.

operation-std_value_02 = itab-std_value_02.

operation-ind_splitting_reqrd = itab-ind_splitting_reqrd." 'X'.

operation-max_no_of_splits = itab-max_no_of_splits."'1'.

operation-required_overlapping = itab-required_overlapping."'X'.

operation-min_send_ahead_qty = itab-min_send_ahead_qty."'10'.

operation-ext_proc_with_subcontract_ind = itab-ext_proc_with_subcontract_ind."'X'.

operation-info_rec = itab-info_rec.

operation-purch_org = itab-purch_org.

operation-cost_elem = itab-cost_elem.

operation-COST_RELEVANT = 'X'.

APPEND operation.

AT END OF material.

*-----&#12297;header

task-task_list_usage = '1'.

task-task_list_status = '4'.

**---->&#65365;&#65358;&#65353;&#65364;

select single MEINS into task-task_measure_unit

from mara

where matnr = gt_itab-material.

  • task-task_measure_unit = 'EA'.

task-description = gt_itab-description1."'TEST ROUTING'.

task-plant = gt_itab-plant.

task-valid_from = sy-datum.

task-valid_to_date = '99991231'.

APPEND task.

materialtaskallocation-material = gt_itab-material.

materialtaskallocation-plant = gt_itab-plant.

task-valid_from = sy-datum.

task-valid_to_date = '99991231'.

APPEND materialtaskallocation.

<b>CALL FUNCTION 'BAPI_ROUTING_CREATE'

EXPORTING

testrun = testrun

profile = profile

bomusage = bomusage

application = application

IMPORTING

group = group

groupcounter = group_counter

TABLES

task = task

materialtaskallocation = materialtaskallocation

sequence = sequence

operation = operation

suboperation = suboperation

referenceoperation = referenceoperation

workcenterreference = workcenterreference

componentallocation = componentallocation

productionresource = productionresource

inspcharacteristic = inspcharacteristic

textallocation = textallocation

text = text

return = return.</b>

REFRESH task.

REFRESH GT_ITAB.

REFRESH materialtaskallocation.

REFRESH operation.

LOOP AT return.

IF return-type EQ 'E' OR return-type EQ 'A'.

t_error-material = materialtaskallocation-material.

t_error-message = return-message.

APPEND t_error.

ELSE.

COMMIT WORK.

ENDIF.

ENDLOOP.

LOOP AT t_error.

WRITE:/ t_error-material,t_error-message.

ENDLOOP.

ENDAT.

ENDLOOP.

ENDIF.

Pls reward all helpful points.

Regards,

Ameet

1 REPLY 1
Read only

Former Member
0 Likes
634

Hi,

*&----


**& Author : *

**& Create date : *

**& Program type : Report *

**& Report name : ZPPPR_ROUTING_INPUT *

**& Description : ROUTING_INPUT *

**& FINISH ON : *

**& TRANSPROT REQUEST : *

*&----


REPORT zpppr_routing_input MESSAGE-ID zmc95

NO STANDARD PAGE HEADING

LINE-SIZE 500.

*---->define table->bapi

DATA: group TYPE bapi1012_tsk_c-task_list_group,

group_counter TYPE bapi1012_tsk_c-group_counter,

sequence_no TYPE bapi1012_opr_c-sequence_no,

task_list_usage TYPE bapi1012_tsk_c-task_list_usage,

task_list_status TYPE bapi1012_tsk_c-task_list_status,

lot_size_from TYPE bapi1012_tsk_c-lot_size_from,

lot_size_to TYPE bapi1012_tsk_c-lot_size_to,

task_measure_unit TYPE bapi1012_tsk_c-task_measure_unit,

application TYPE bapi1012_control_data-application,

testrun TYPE bapiflag,

profile TYPE bapi1012_control_data-profile,

bomusage TYPE bapi1012_control_data-bom_usage,

task TYPE bapi1012_tsk_c OCCURS 0 WITH HEADER LINE,

materialtaskallocation TYPE bapi1012_mtk_c OCCURS 0 WITH HEADER LINE,

sequence TYPE bapi1012_seq_c OCCURS 0 WITH HEADER LINE,

operation TYPE bapi1012_opr_c OCCURS 0 WITH HEADER LINE,

suboperation TYPE bapi1012_sub_opr_c OCCURS 0 WITH HEADER LINE,

referenceoperation TYPE bapi1012_ref_opr_c OCCURS 0 WITH HEADER LINE,

workcenterreference TYPE bapi1012_wc_ref_opr_c OCCURS 0 WITH HEADER LINE,

componentallocation TYPE bapi1012_com_c OCCURS 0 WITH HEADER LINE,

productionresource TYPE bapi1012_prt_c OCCURS 0 WITH HEADER LINE,

inspcharacteristic TYPE bapi1012_cha_c OCCURS 0 WITH HEADER LINE,

textallocation TYPE bapi1012_txt_hdr_c OCCURS 0 WITH HEADER LINE,

text TYPE bapi1012_txt_c OCCURS 0 WITH HEADER LINE,

return TYPE bapiret2 OCCURS 0 WITH HEADER LINE,

bapi_retn_info LIKE bapiret2 OCCURS 0 WITH HEADER LINE.

*---->message table

DATA: BEGIN OF t_error OCCURS 0.

DATA material LIKE bapi1012_mtk_c-material.

INCLUDE STRUCTURE bapiret2.

DATA: END OF t_error.

*---->inner table

DATA: BEGIN OF itab1 OCCURS 0 ,

material LIKE bapi1012_mtk_c-material,

plant LIKE bapi1012_mtk_c-plant,

description1 LIKE bapi1012_tsk_c-description,

activity LIKE bapi1012_opr_c-activity,

work_cntr LIKE bapi1012_opr_c-work_cntr,

control_key LIKE bapi1012_opr_c-control_key,

description LIKE bapi1012_opr_c-description,

base_quantity LIKE bapi1012_opr_c-base_quantity,

std_value_01 LIKE bapi1012_opr_c-std_value_01,

std_value_02 LIKE bapi1012_opr_c-std_value_02,

  • max_no_of_splits LIKE bapi1012_opr_c-max_no_of_splits,

FJS(2) TYPE C,

ind_splitting_reqrd LIKE bapi1012_opr_c-ind_splitting_reqrd,

required_overlapping LIKE bapi1012_opr_c-required_overlapping,

min_send_ahead_qty LIKE bapi1012_opr_c-min_send_ahead_qty,

ext_proc_with_subcontract_ind LIKE bapi1012_opr_c-ext_proc_with_subcontract_ind,

info_rec LIKE bapi1012_opr_c-info_rec,

purch_org LIKE bapi1012_opr_c-purch_org,

cost_elem LIKE bapi1012_opr_c-cost_elem,

COST_RELEVANT like bapi1012_opr_c-COST_RELEVANT,

END OF itab1.

DATA: BEGIN OF itab OCCURS 0 ,

material LIKE bapi1012_mtk_c-material,

plant LIKE bapi1012_mtk_c-plant,

description1 LIKE bapi1012_tsk_c-description,

activity LIKE bapi1012_opr_c-activity,

work_cntr LIKE bapi1012_opr_c-work_cntr,

control_key LIKE bapi1012_opr_c-control_key,

description LIKE bapi1012_opr_c-description,

base_quantity LIKE bapi1012_opr_c-base_quantity,

std_value_01 LIKE bapi1012_opr_c-std_value_01,

std_value_02 LIKE bapi1012_opr_c-std_value_02,

max_no_of_splits LIKE bapi1012_opr_c-max_no_of_splits,

ind_splitting_reqrd LIKE bapi1012_opr_c-ind_splitting_reqrd,

required_overlapping LIKE bapi1012_opr_c-required_overlapping,

min_send_ahead_qty LIKE bapi1012_opr_c-min_send_ahead_qty,

ext_proc_with_subcontract_ind LIKE bapi1012_opr_c-ext_proc_with_subcontract_ind,

info_rec LIKE bapi1012_opr_c-info_rec,

purch_org LIKE bapi1012_opr_c-purch_org,

cost_elem LIKE bapi1012_opr_c-cost_elem,

END OF itab.

DATA : gt_itab LIKE itab OCCURS 0 WITH HEADER LINE.

DATA : lv_cancel(1) TYPE c.

*---->upload

CALL FUNCTION 'UPLOAD'

EXPORTING

filename = 'C:\Documents and Settings\Administrator\Desktop\ameet.txt'

filetype = 'DAT'

IMPORTING

cancel = lv_cancel

TABLES

data_tab = itab1

EXCEPTIONS

conversion_error = 1

invalid_table_width = 2

invalid_type = 3

no_batch = 4

unknown_error = 5

gui_refuse_filetransfer = 6

OTHERS = 7.

IF lv_cancel EQ 'X'.

LEAVE PROGRAM.

ENDIF.

IF sy-subrc <> 0 .

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ELSEIF sy-subrc = 0.

SORT itab1 BY material plant activity.

LOOP AT ITAB1.

MOVE-CORRESPONDING ITAB1 TO ITAB.

CONDENSE ITAB1-FJS NO-GAPS.

ITAB-max_no_of_splits = ITAB1-FJS.

APPEND ITAB.

ENDLOOP.

SORT ITAB BY MATERIAL PLANT.

LOOP AT itab.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = itab-material

IMPORTING

output = itab-material.

MOVE itab TO gt_itab.

APPEND gt_itab.

*-----&#12297;item-sequence

*operation-group_counter = '1'.

operation-activity = itab-activity.

operation-control_key = itab-control_key.

operation-work_cntr = itab-work_cntr.

operation-description = itab-description.

operation-plant = itab-plant.

  • operation-operation_measure_unit = 'EA'.

operation-denominator = 1.

operation-nominator = 1.

operation-base_quantity = itab-base_quantity.

operation-std_value_01 = itab-std_value_01.

operation-std_value_02 = itab-std_value_02.

operation-ind_splitting_reqrd = itab-ind_splitting_reqrd." 'X'.

operation-max_no_of_splits = itab-max_no_of_splits."'1'.

operation-required_overlapping = itab-required_overlapping."'X'.

operation-min_send_ahead_qty = itab-min_send_ahead_qty."'10'.

operation-ext_proc_with_subcontract_ind = itab-ext_proc_with_subcontract_ind."'X'.

operation-info_rec = itab-info_rec.

operation-purch_org = itab-purch_org.

operation-cost_elem = itab-cost_elem.

operation-COST_RELEVANT = 'X'.

APPEND operation.

AT END OF material.

*-----&#12297;header

task-task_list_usage = '1'.

task-task_list_status = '4'.

**---->&#65365;&#65358;&#65353;&#65364;

select single MEINS into task-task_measure_unit

from mara

where matnr = gt_itab-material.

  • task-task_measure_unit = 'EA'.

task-description = gt_itab-description1."'TEST ROUTING'.

task-plant = gt_itab-plant.

task-valid_from = sy-datum.

task-valid_to_date = '99991231'.

APPEND task.

materialtaskallocation-material = gt_itab-material.

materialtaskallocation-plant = gt_itab-plant.

task-valid_from = sy-datum.

task-valid_to_date = '99991231'.

APPEND materialtaskallocation.

<b>CALL FUNCTION 'BAPI_ROUTING_CREATE'

EXPORTING

testrun = testrun

profile = profile

bomusage = bomusage

application = application

IMPORTING

group = group

groupcounter = group_counter

TABLES

task = task

materialtaskallocation = materialtaskallocation

sequence = sequence

operation = operation

suboperation = suboperation

referenceoperation = referenceoperation

workcenterreference = workcenterreference

componentallocation = componentallocation

productionresource = productionresource

inspcharacteristic = inspcharacteristic

textallocation = textallocation

text = text

return = return.</b>

REFRESH task.

REFRESH GT_ITAB.

REFRESH materialtaskallocation.

REFRESH operation.

LOOP AT return.

IF return-type EQ 'E' OR return-type EQ 'A'.

t_error-material = materialtaskallocation-material.

t_error-message = return-message.

APPEND t_error.

ELSE.

COMMIT WORK.

ENDIF.

ENDLOOP.

LOOP AT t_error.

WRITE:/ t_error-material,t_error-message.

ENDLOOP.

ENDAT.

ENDLOOP.

ENDIF.

Pls reward all helpful points.

Regards,

Ameet