Application Development 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: 

BAPI_ROUTING_CREATE Don't create.

Former Member
0 Kudos

Hi,

I want to upload data into CA01 using 'BAPI_ROUTING_CREATE' , and passing the parameters :

task ,materialtaskallocation, operation , suboperation and after running BAPI I am getting success message 'S' and also I am getting Groupcounter in export parameter. but don't create routing.

CALL FUNCTION 'BAPI_ROUTING_CREATE'

EXPORTING

bomusage = p_stlan

IMPORTING

group = z_group

groupcounter = z_groupctn

TABLES

task = it_task

materialtaskallocation = it_mattasklocate

operation = it_operation

componentallocation = it_compalocate

return = it_return

.

bapi_return] = it_return[.

READ TABLE it_return WITH KEY type = 'S'.

IF sy-subrc EQ 0.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

wait = 'X'

IMPORTING

return = commit_return.

WAIT UP TO 30 SECONDS.

12 REPLIES 12

manthanraja
Active Participant
0 Kudos

bapi_return] = it_return[.

Please check above statement.

Reg

M

Former Member
0 Kudos

Hi,

Did u check in table MAPL, PLKO and PLPO. Whether the group number is exists.

If you are checking through CA02 . make sure that Key date is between VALID_FROM and VALID_TO date.

Regards,

Shanmugavel Chandrasekaran

Former Member
0 Kudos

Hi Pornchai,

Debug your code and check weather your code

READ TABLE it_return WITH KEY type = 'S'.

IF sy-subrc EQ 0.

This condition get true or not ..

0 Kudos

Result is true it_return contain message type S and ID 000 Message N/50001479/1.

N = Task list type

50001479 = Group

1 = Group Counter

Former Member
0 Kudos

Hi,

Even though Group Counter Created,

Try to Check the Internal Table IT_RETURN.

It should be Free From Errors,if error is there try to correct all the errors, then only active Routing will be Created.

Thanks and Regards,

Sathish

Former Member
0 Kudos

I'm do Debug already but it_return result message type S .

I try check CA03 data dose not exits and check in table PLKO have not data in this table. Please help me.

Edited by: Pornchai on Mar 8, 2010 8:27 AM

Former Member
0 Kudos

hi,

try like below mentioned.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

wait = space " dont pass X

IMPORTING

return = commit_return.

dont use WAIT UP TO 30 SECONDS.

Former Member
0 Kudos

Hi ,

First test the BAPI in SE37 with the Same Parameteres, in the test sequence along with the BAPI Commit.

If it is working Fine then the Program also should work fine, as per the advise of the previous reply, try to remove the wait statement also.

Thanks and Regards,

Sathish

former_member262988
Active Contributor
0 Kudos

Hi,

*--


internal table for file read--


DATA: BEGIN OF T_TASK1 OCCURS 0,

MATERIAL LIKE T_MATERIAL-MATERIAL,

PLANT LIKE T_TASK-PLANT,

VALID_FROM(10) TYPE C,

GROUP_COUNTER LIKE T_TASK-GROUP_COUNTER,

GROUP LIKE T_TASK-TASK_LIST_GROUP,

DESCRIPTION_T LIKE T_TASK-DESCRIPTION,

TASK_LIST_USAGE LIKE T_TASK-TASK_LIST_USAGE,

TASK_LIST_STATUS LIKE T_TASK-TASK_LIST_STATUS,

LOT_SIZE_FROM LIKE T_TASK-LOT_SIZE_FROM,

LOT_SIZE_TO LIKE T_TASK-LOT_SIZE_TO,

TASK_MEASURE_UNIT LIKE T_TASK-TASK_MEASURE_UNIT,

ACTIVITY LIKE T_OPERATION-ACTIVITY,

WORK_CNTR LIKE T_OPERATION-WORK_CNTR,

CONTROL_KEY LIKE T_OPERATION-CONTROL_KEY,

DESCRIPTION LIKE T_OPERATION-DESCRIPTION,

BASE_QUANTITY LIKE T_OPERATION-BASE_QUANTITY,

OPERATION_MEASURE_UNIT LIKE T_OPERATION-OPERATION_MEASURE_UNIT,

PURCH_ORG LIKE T_OPERATION-PURCH_ORG,

MATL_GROUP LIKE T_OPERATION-MATL_GROUP,

PRICE_UNIT LIKE T_OPERATION-PRICE_UNIT,

INFO_REC_NET_PRICE LIKE T_OPERATION-INFO_REC_NET_PRICE,

COST_ELEM LIKE T_OPERATION-COST_ELEM,

CURRENCY LIKE T_OPERATION-CURRENCY,

NOMINATOR LIKE T_OPERATION-NOMINATOR,

STD_VALUE_01 LIKE T_OPERATION-STD_VALUE_01,

STD_UNIT_01 LIKE T_OPERATION-STD_UNIT_01,

FREE_GRID LIKE T_OPERATION-FREE_GRID,

INSP_POINT_COMPLT_FLOW_VARIANT LIKE T_OPERATION-INSP_POINT_COMPLT_FLOW_VARIANT,

END OF T_TASK1.

*--


internal table for header--


DATA: BEGIN OF T_HEADER OCCURS 0,

MATERIAL LIKE T_MATERIAL-MATERIAL,

PLANT LIKE T_TASK-PLANT,

VALID_FROM(10) TYPE C,

GROUP_COUNTER LIKE T_TASK-GROUP_COUNTER,

GROUP LIKE T_TASK-TASK_LIST_GROUP,

DESCRIPTION_T LIKE T_TASK-DESCRIPTION,

TASK_LIST_USAGE LIKE T_TASK-TASK_LIST_USAGE,

TASK_LIST_STATUS LIKE T_TASK-TASK_LIST_STATUS,

LOT_SIZE_FROM LIKE T_TASK-LOT_SIZE_FROM,

LOT_SIZE_TO LIKE T_TASK-LOT_SIZE_TO,

IDENT_KEY LIKE T_TASK-IDENT_KEY,

END OF T_HEADER.

*----


internal table for item -


DATA: BEGIN OF T_ITEM OCCURS 0,

MATERIAL LIKE T_MATERIAL-MATERIAL,

PLANT LIKE T_TASK-PLANT,

GROUP_COUNTER LIKE T_TASK-GROUP_COUNTER,

GROUP LIKE T_TASK-TASK_LIST_GROUP,

VALID_FROM(10) TYPE C,

WORK_CNTR LIKE T_OPERATION-WORK_CNTR,

CONTROL_KEY LIKE T_OPERATION-CONTROL_KEY,

DESCRIPTION LIKE T_OPERATION-DESCRIPTION,

OPERATION_MEASURE_UNIT LIKE T_OPERATION-OPERATION_MEASURE_UNIT,

NOMINATOR LIKE T_OPERATION-NOMINATOR,

BASE_QUANTITY LIKE T_OPERATION-BASE_QUANTITY,

INFO_REC_NET_PRICE LIKE T_OPERATION-INFO_REC_NET_PRICE,

PRICE_UNIT LIKE T_OPERATION-PRICE_UNIT,

COST_ELEM LIKE T_OPERATION-COST_ELEM,

CURRENCY LIKE T_OPERATION-CURRENCY,

PURCH_ORG LIKE T_OPERATION-PURCH_ORG,

MATL_GROUP LIKE T_OPERATION-MATL_GROUP,

ACTIVITY LIKE T_OPERATION-ACTIVITY,

STD_VALUE_01 LIKE T_OPERATION-STD_VALUE_01,

STD_UNIT_01 LIKE T_OPERATION-STD_UNIT_01,

FREE_GRID LIKE T_OPERATION-FREE_GRID,

INSP_POINT_COMPLT_FLOW_VARIANT LIKE T_OPERATION-INSP_POINT_COMPLT_FLOW_VARIANT,

END OF T_ITEM.

----


  • WORK AREA DECLARATION

----


DATA : GROUPCOUNTER LIKE BAPI1012_TSK_C-GROUP_COUNTER,

GROUP LIKE BAPI1012_TSK_C-TASK_LIST_GROUP.

----


  • VARIABLE DECLARATION

----


DATA : WA_TASK1 LIKE T_TASK1,

WA_HEADER LIKE T_HEADER,

WA_ITEM LIKE T_ITEM,

V_DATE(10) TYPE C,

V_FNAME TYPE STRING.

----


  • Selection-screen

----


SELECTION-SCREEN :BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-001.

PARAMETERS : P_FNAME TYPE RLGRAP-FILENAME.

SELECTION-SCREEN END OF BLOCK BL1.

----


  • At selection screen

----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

PROGRAM_NAME = 'ZDEMOBAPI_ROUTING'

DYNPRO_NUMBER = '1000'

FIELD_NAME = 'P_FNAME'

CHANGING

FILE_NAME = P_FNAME.

----


  • start of selection

----


START-OF-SELECTION.

PERFORM CHECK_FILE.

PERFORM READ_FILE.

PERFORM UPLOAD.

&----


*& Form CHECK_FILE

&----


FORM CHECK_FILE .

IF P_FNAME IS INITIAL.

MESSAGE I016(RP) WITH 'Please enter a file name'.

LEAVE LIST-PROCESSING.

ELSE.

MOVE P_FNAME TO V_FNAME.

ENDIF.

ENDFORM. "CHECK_FILE

&----


*& Form READ_FILE

&----


FORM READ_FILE.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILETYPE = 'ASC'

FILENAME = V_FNAME

HAS_FIELD_SEPARATOR = 'X'

TABLES

DATA_TAB = T_TASK1.

ENDFORM. " READ_FILE

&----


*& Form UPLOAD

&----


FORM UPLOAD .

LOOP AT T_TASK1 INTO WA_TASK1.

CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'

EXPORTING

INPUT = WA_TASK1-STD_UNIT_01

LANGUAGE = SY-LANGU

IMPORTING

OUTPUT = WA_TASK1-STD_UNIT_01

EXCEPTIONS

UNIT_NOT_FOUND = 1

OTHERS = 2.

BREAK SHAILAJAA.

V_DATE = WA_TASK1-VALID_FROM.

IF NOT V_DATE IS INITIAL.

CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'

EXPORTING

DATE_EXTERNAL = V_DATE

IMPORTING

DATE_INTERNAL = V_DATE.

ENDIF.

IF WA_TASK1-DESCRIPTION_T NE ' ' .

WA_HEADER-VALID_FROM = V_DATE.

WA_HEADER-PLANT = WA_TASK1-PLANT.

WA_HEADER-GROUP_COUNTER = WA_TASK1-GROUP_COUNTER.

WA_HEADER-GROUP = WA_TASK1-GROUP.

WA_HEADER-IDENT_KEY = 'A03'.

CALL FUNCTION 'CONVERSION_EXIT_CCMAT_INPUT'

EXPORTING

INPUT = WA_TASK1-MATERIAL

IMPORTING

OUTPUT = WA_TASK1-MATERIAL.

WA_HEADER-MATERIAL = WA_TASK1-MATERIAL.

WA_HEADER-DESCRIPTION_T = WA_TASK1-DESCRIPTION_T.

WA_HEADER-TASK_LIST_USAGE = WA_TASK1-TASK_LIST_USAGE.

WA_HEADER-TASK_LIST_STATUS = WA_TASK1-TASK_LIST_STATUS.

WA_HEADER-LOT_SIZE_FROM = WA_TASK1-LOT_SIZE_FROM.

WA_HEADER-LOT_SIZE_TO = WA_TASK1-LOT_SIZE_TO.

APPEND WA_HEADER TO T_HEADER.

ENDIF.

WA_ITEM-PLANT = WA_TASK1-PLANT.

WA_ITEM-VALID_FROM = V_DATE.

WA_ITEM-GROUP = WA_TASK1-GROUP.

WA_ITEM-GROUP_COUNTER = WA_TASK1-GROUP_COUNTER.

CALL FUNCTION 'CONVERSION_EXIT_CCMAT_INPUT'

EXPORTING

INPUT = WA_TASK1-MATERIAL

IMPORTING

OUTPUT = WA_TASK1-MATERIAL.

WA_ITEM-MATERIAL = WA_TASK1-MATERIAL.

WA_ITEM-WORK_CNTR = WA_TASK1-WORK_CNTR.

WA_ITEM-CONTROL_KEY = WA_TASK1-CONTROL_KEY.

WA_ITEM-DESCRIPTION = WA_TASK1-DESCRIPTION.

WA_ITEM-BASE_QUANTITY = WA_TASK1-BASE_QUANTITY.

WA_ITEM-OPERATION_MEASURE_UNIT = WA_TASK1-OPERATION_MEASURE_UNIT.

WA_ITEM-STD_VALUE_01 = WA_TASK1-STD_VALUE_01.

WA_ITEM-NOMINATOR = WA_TASK1-NOMINATOR.

WA_ITEM-INFO_REC_NET_PRICE = WA_TASK1-INFO_REC_NET_PRICE.

WA_ITEM-PRICE_UNIT = WA_TASK1-PRICE_UNIT.

WA_ITEM-COST_ELEM = WA_TASK1-COST_ELEM.

WA_ITEM-CURRENCY = WA_TASK1-CURRENCY.

WA_ITEM-PURCH_ORG = WA_TASK1-PURCH_ORG.

WA_ITEM-MATL_GROUP = WA_TASK1-MATL_GROUP.

WA_ITEM-ACTIVITY = WA_TASK1-ACTIVITY.

WA_ITEM-STD_VALUE_01 = WA_TASK1-STD_VALUE_01.

WA_ITEM-STD_UNIT_01 = WA_TASK1-STD_UNIT_01.

WA_ITEM-FREE_GRID = WA_TASK1-FREE_GRID.

WA_ITEM-INSP_POINT_COMPLT_FLOW_VARIANT = WA_TASK1-INSP_POINT_COMPLT_FLOW_VARIANT.

APPEND WA_ITEM TO T_ITEM.

ENDLOOP.

  • PUTTING DATA INTO TASK, MATERIAL AND OPERATIONS AND APPENDING IT INTO BAPI_ROUTING_CREATE AND COMMITING USING BAPI_TRANSACTION_COMMIT.

  • IF THERE IS ANY ERROR WE ARE DISPLAYING.

LOOP AT T_HEADER INTO WA_HEADER.

T_TASK-PLANT = WA_HEADER-PLANT.

T_TASK-VALID_FROM = WA_HEADER-VALID_FROM.

T_TASK-GROUP_COUNTER = WA_HEADER-GROUP_COUNTER.

T_TASK-TASK_LIST_GROUP = WA_HEADER-GROUP.

T_TASK-DESCRIPTION = WA_HEADER-DESCRIPTION_T.

T_TASK-TASK_LIST_USAGE = WA_HEADER-TASK_LIST_USAGE.

T_TASK-TASK_LIST_STATUS = WA_HEADER-TASK_LIST_STATUS.

T_TASK-LOT_SIZE_FROM = WA_HEADER-LOT_SIZE_FROM.

T_TASK-LOT_SIZE_TO = WA_HEADER-LOT_SIZE_TO.

T_TASK-TASK_MEASURE_UNIT = 'KG'.

T_TASK-IDENT_KEY = 'A03'.

T_MATERIAL-MATERIAL = WA_HEADER-MATERIAL.

T_MATERIAL-PLANT = WA_HEADER-PLANT.

T_MATERIAL-GROUP_COUNTER = WA_HEADER-GROUP_COUNTER.

T_MATERIAL-TASK_LIST_GROUP = WA_HEADER-GROUP.

T_MATERIAL-VALID_FROM = WA_HEADER-VALID_FROM.

APPEND T_TASK.

APPEND T_MATERIAL.

LOOP AT T_ITEM INTO WA_ITEM WHERE MATERIAL = WA_HEADER-MATERIAL

AND VALID_FROM = WA_HEADER-VALID_FROM

AND GROUP = WA_HEADER-GROUP

AND GROUP_COUNTER = WA_HEADER-GROUP_COUNTER

AND PLANT = WA_HEADER-PLANT.

T_OPERATION-PLANT = WA_ITEM-PLANT.

T_OPERATION-WORK_CNTR = WA_ITEM-WORK_CNTR.

T_OPERATION-CONTROL_KEY = WA_ITEM-CONTROL_KEY.

T_OPERATION-DESCRIPTION = WA_ITEM-DESCRIPTION.

T_OPERATION-OPERATION_MEASURE_UNIT = WA_ITEM-OPERATION_MEASURE_UNIT.

T_OPERATION-BASE_QUANTITY = WA_ITEM-BASE_QUANTITY.

T_OPERATION-GROUP_COUNTER = WA_ITEM-GROUP_COUNTER.

T_OPERATION-TASK_LIST_GROUP = WA_ITEM-GROUP.

T_OPERATION-VALID_FROM = WA_ITEM-VALID_FROM.

T_OPERATION-STD_VALUE_01 = WA_ITEM-STD_VALUE_01.

T_OPERATION-STD_UNIT_01 = WA_ITEM-STD_UNIT_01.

T_OPERATION-DENOMINATOR = '1'.

T_OPERATION-NOMINATOR = WA_ITEM-NOMINATOR.

T_OPERATION-INFO_REC_NET_PRICE = WA_ITEM-INFO_REC_NET_PRICE.

T_OPERATION-PRICE_UNIT = WA_ITEM-PRICE_UNIT.

T_OPERATION-COST_ELEM = WA_ITEM-COST_ELEM.

T_OPERATION-CURRENCY = WA_ITEM-CURRENCY.

T_OPERATION-PURCH_ORG = WA_ITEM-PURCH_ORG.

T_OPERATION-MATL_GROUP = WA_ITEM-MATL_GROUP.

T_OPERATION-ACTIVITY = WA_ITEM-ACTIVITY.

T_OPERATION-FREE_GRID = WA_ITEM-FREE_GRID.

T_OPERATION-INSP_POINT_COMPLT_FLOW_VARIANT = WA_ITEM-INSP_POINT_COMPLT_FLOW_VARIANT.

APPEND T_OPERATION.

ENDLOOP.

CALL FUNCTION 'BAPI_ROUTING_CREATE'

IMPORTING

GROUP = GROUP

GROUPCOUNTER = GROUPCOUNTER

TABLES

TASK = T_TASK

MATERIALTASKALLOCATION = T_MATERIAL

OPERATION = T_OPERATION

RETURN = T_RETURN.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

LOOP AT T_RETURN .

IF T_RETURN-TYPE = 'S'.

WRITE 😕 T_RETURN-MESSAGE_V2 ,'Has been created'.

ELSEIF T_RETURN-TYPE = 'A' OR T_RETURN-TYPE = 'E'.

WRITE 😕 T_RETURN-MESSAGE.

ENDIF.

ENDLOOP.

CLEAR: WA_HEADER,WA_ITEM.

REFRESH: T_TASK, T_MATERIAL, T_OPERATION.

ENDLOOP.

ENDFORM. " UPLOAD

0 Kudos

I meet problem for BAPI_ROUTING_CREATE because i do debug be deep Function BAPI_ROUTING_CREATE I meet that Line 219 and debug deep to CALL FUNCTION 'CP_CC_S_SAVE'. meet PERFORM cp_check_tsk_at_save for check error before to save but perform this have function

CALL FUNCTION 'CP_CC_P_PROVIDE_REF_TO_BADI'

EXPORTING

i_name = ewb_badi-cewb_tsk_update

CHANGING

c_instance = exit_cewb_tsk_update <<<<< result this equal initial

EXCEPTIONS

name_required = 1

OTHERS = 2.

IF exit_cewb_tsk_update IS NOT INITIAL. <<<<<<< " exit_cewb_tsk_update is initial do have to exit don't save and create routing.

0 Kudos

I meet problem for BAPI_ROUTING_CREATE because i do debug be deep Function BAPI_ROUTING_CREATE I meet that Line 219 and debug deep to CALL FUNCTION 'CP_CC_S_SAVE'. meet PERFORM cp_check_tsk_at_save for check error before to save but perform this have function

CALL FUNCTION 'CP_CC_P_PROVIDE_REF_TO_BADI'

EXPORTING

i_name = ewb_badi-cewb_tsk_update

CHANGING

c_instance = exit_cewb_tsk_update <<<<< result this equal initial

EXCEPTIONS

name_required = 1

OTHERS = 2.

IF exit_cewb_tsk_update IS NOT INITIAL. <<<<<<< " exit_cewb_tsk_update is initial do have to exit don't save and create routing.

0 Kudos

could you fix the routing problem in the BAPI create?