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

BAPI HELP

Former Member
0 Likes
624

HERE BELOW I HAVE CREATED ONE INTERNL TABLE HAVING THE DATA FROM TWO BAPISTRUCTURE

BAPI1012_TSK_C

BAPI1012_MTK_C

MY QUESTION IS DO I NEED TO DECLARE TWO INTERNAL TABLES AND POPULATE THEM AND PASS THEM IN BAPI OR I CAN PASS ONE AS I HAVE DONE.

*****************************************************************

*BAPI FOR CREATING ROUTING

*****************************************************************

REPORT zbapi_routing

NO STANDARD PAGE HEADING

LINE-SIZE 255

LINE-COUNT 62(4)

MESSAGE-ID zpp01.

************************************************************

*STRUCTURE DECLERATION

************************************************************

TABLES:

bapi1012_tsk_c , "Task list header data in CREATE-BAPI for routings

bapi1012_mtk_c , "Material task list assignment in CREATE-BAPI for

BAPIRET2 . "Return parameter

*BAPI1012_SEQ_C , "Task list sequences in CREATE-BAPI for routings

*

*BAPI1012_OPR_C , "Operations in CREATE-BAPI for routings

*

*BAPI1012_SUB_OPR_C , "Sub operations in CREATE-BAPI for routings

*

*BAPI1012_REF_OPR_C , "Reference to operation

*

*BAPI1012_WC_REF_OPR_C , "Standard tasks in CREATE-BAPI for routings

*

*BAPI1012_COM_C , "Component assignment in CREATE-BAPI for routing

*

*BAPI1012_PRT_C , "PRT assignments in CREATE-BAPI for routings

*

*BAPI1012_CHA_C , "Inspection Characteristics in CREATE-BAPI for

*

*BAPI1012_TXT_HDR_C , "Text assignment (int. format) for Direct

*Input in

*

*

*BAPI1012_TXT_C , "Long text lines in CREATE-BAPI for routings

*

*BAPIRET2 . "Return parameter

data:v_file type string .

DATA :BEGIN OF routing_create_master ,

MATNR TYPE MATNR , "Material number

WERKS_D TYPE WERKS_D , "Plant

*PLNNR TYPE PLNNR , " Key for task list group

PLNAL TYPE PLNAL , " Group counter

**TASK LIST

PLNNR TYPE PLNNR , " Key for task list group

*PLNAL TYPE PLNAL, " Group counter

DATUV(8) TYPE C , " Valid-from date

DATUB(8) TYPE C , " Valid-to date

PLN_VERWE TYPE PLN_VERWE , "task list usage

*WERKS_D TYPE WERKS_D , " Plant

PLNST TYPE PLNST , "Status

PLNME(3) TYPE C , "Task list unit of measure

ISOCD_UNIT TYPE ISOCD_UNIT , "ISO code for unit of measurement

LOSVN(13) TYPE C , "from lot size

LOSBS(13) TYPE C, "To lot size

PLANTEXT TYPE PLANTEXT , " Task list description

END OF routing_create_master .

**********************************************************************

  • INTERNAL TABLE DECLARATIONS *

**********************************************************************

DATA:BEGIN OF ROUTING_MASTER OCCURS 0.

INCLUDE STRUCTURE routing_create_master .

DATA :END OF ROUTING_MASTER .

DATA : BEGIN OF BAPI_TASK_LIST OCCURS 0.

INCLUDE STRUCTURE bapi1012_tsk_c .

DATA : END OF BAPI_TASK_LIST .

DATA :BEGIN OF BAPI_T_ASSGN OCCURS 0.

INCLUDE STRUCTURE bapi1012_mtk_c .

DATA :END OF BAPI_T_ASSGN.

DATA :BEGIN OF I_MESSAGE OCCURS 0.

INCLUDE STRUCTURE BAPIRET2 .

DATA :END OF I_MESSAGE.

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

PARAMETERS: P_FILE LIKE RLGRAP-FILENAME

DEFAULT '' OBLIGATORY. " File Name

SELECTION-SCREEN END OF BLOCK B1.

*******************************************************************

*rough

*******************************************************************

*******************************************************************

*FILE UPLOADING

*******************************************************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

MASK = '*.xls'

  • STATIC = 'X'

CHANGING

FILE_NAME = P_FILE

EXCEPTIONS

MASK_TOO_LONG = 1

OTHERS = 2.

IF sy-subrc NE 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

  • Start of selection Event.............................

START-OF-SELECTION.

PERFORM UPLOAD_FILE TABLES ROUTING_MASTER

USING P_FILE.

**********************************************************************

  • DATA POPULATIONS *

**********************************************************************

LOOP AT ROUTING_MASTER .

*BAPI1012_TSK_C

*BAPI1012_MTK_C

BAPI1012_MTK_C = ROUTING_MASTER-MATNR .

BAPI1012_MTK_C = ROUTING_MASTER-WERKS_D .

BAPI1012_MTK_C = ROUTING_MASTER-PLNAL .

BAPI1012_MTK_C = ROUTING_MASTER-PLNNR .

BAPI1012_TSK_C = ROUTING_MASTER-PLNAL .

BAPI1012_TSK_C = ROUTING_MASTER-DATUV .

BAPI1012_TSK_C = ROUTING_MASTER-DATUB .

BAPI1012_TSK_C = ROUTING_MASTER-PLN_VERWE .

BAPI1012_TSK_C = ROUTING_MASTER-PLNST .

BAPI1012_TSK_C = ROUTING_MASTER-PLNME .

BAPI1012_TSK_C = ROUTING_MASTER-ISOCD_UNIT .

BAPI1012_TSK_C = ROUTING_MASTER-LOSVN .

BAPI1012_TSK_C = ROUTING_MASTER-LOSBS .

BAPI1012_TSK_C = ROUTING_MASTER-PLANTEXT .

*******************************************************

*CALL FUNCTION BAPI

*******************************************************

CALL FUNCTION 'BAPI_ROUTING_CREATE'

  • EXPORTING

  • TESTRUN = ' '

  • PROFILE =

  • BOMUSAGE =

  • APPLICATION =

  • IMPORTING

  • GROUP =

  • GROUPCOUNTER =

TABLES

task = BAPI1012_TSK_C

  • MATERIALTASKALLOCATION =

  • SEQUENCE =

  • OPERATION =

  • SUBOPERATION =

  • REFERENCEOPERATION =

  • WORKCENTERREFERENCE =

  • COMPONENTALLOCATION =

  • PRODUCTIONRESOURCE =

  • INSPCHARACTERISTIC =

  • TEXTALLOCATION =

  • TEXT =

  • RETURN =

.

ENDLOOP.

----


  • FORM UPLOAD_FILE *

----


  • ........ *

----


  • --> P_TABLE *

  • --> P_FILE *

----


FORM UPLOAD_FILE TABLES P_TABLE

USING P_FILE.

  • Data Declarations.......................................

DATA : L_INTERN TYPE KCDE_CELLS OCCURS 0 WITH HEADER LINE.

DATA : L_INDEX TYPE I.

DATA : L_START_COL TYPE I VALUE '1',

L_START_ROW TYPE I VALUE '3',

L_END_COL TYPE I VALUE '256',

L_END_ROW TYPE I VALUE '65536'.

  • Field Symbols...........................................

FIELD-SYMBOLS : <FS>.

CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'

EXPORTING

FILENAME = P_FILE

I_BEGIN_COL = L_START_COL

I_BEGIN_ROW = L_START_ROW

I_END_COL = L_END_COL

I_END_ROW = L_END_ROW

TABLES

INTERN = L_INTERN

EXCEPTIONS

INCONSISTENT_PARAMETERS = 1

UPLOAD_OLE = 2

OTHERS = 3.

.

IF sy-subrc NE 0.

  • MESSAGE E002(ZA). " File Error

FORMAT COLOR COL_BACKGROUND INTENSIFIED.

WRITE : / 'File Error'.

EXIT.

ENDIF.

IF L_INTERN[] IS INITIAL.

  • MESSAGE E003(ZA). " No Data Uploaded

FORMAT COLOR COL_BACKGROUND INTENSIFIED.

WRITE : / 'No Data Uploaded'.

EXIT.

ELSE.

SORT L_INTERN BY ROW COL.

LOOP AT L_INTERN.

MOVE L_INTERN-COL TO L_INDEX.

ASSIGN COMPONENT L_INDEX OF STRUCTURE P_TABLE TO <FS>.

MOVE L_INTERN-VALUE TO <FS>.

AT END OF ROW.

APPEND P_TABLE.

CLEAR P_TABLE.

ENDAT.

ENDLOOP.

ENDIF.

ENDFORM.

2 REPLIES 2
Read only

Former Member
0 Likes
523

Hi James,

You have created 2 internal tables respectively one for TASK (BAPI_TASK_LIST) and other for

MATERIALTASKALLOCATION (BAPI_T_ASSGN)

You need to populate both these tables and then use these tables respectively in the call to the BAPI.


***********************************
Data Declaration
**********************************
DATA : BEGIN OF BAPI_TASK_LIST OCCURS 0.
INCLUDE STRUCTURE bapi1012_tsk_c .
DATA : END OF BAPI_TASK_LIST .

DATA :BEGIN OF BAPI_T_ASSGN OCCURS 0.
INCLUDE STRUCTURE bapi1012_mtk_c .
DATA :END OF BAPI_T_ASSGN.

*********************************************************
* DATA POPULATIONS *
*********************************************************
LOOP AT ROUTING_MASTER .

*BAPI1012_TSK_C

*BAPI1012_MTK_C


BAPI1012_MTK_C = ROUTING_MASTER-MATNR .

BAPI1012_MTK_C = ROUTING_MASTER-WERKS_D .

BAPI1012_MTK_C = ROUTING_MASTER-PLNAL .

BAPI1012_MTK_C = ROUTING_MASTER-PLNNR .

BAPI1012_TSK_C = ROUTING_MASTER-PLNAL .

BAPI1012_TSK_C = ROUTING_MASTER-DATUV .

BAPI1012_TSK_C = ROUTING_MASTER-DATUB .

BAPI1012_TSK_C = ROUTING_MASTER-PLN_VERWE .

BAPI1012_TSK_C = ROUTING_MASTER-PLNST .

BAPI1012_TSK_C = ROUTING_MASTER-PLNME .

BAPI1012_TSK_C = ROUTING_MASTER-ISOCD_UNIT .

BAPI1012_TSK_C = ROUTING_MASTER-LOSVN .

BAPI1012_TSK_C = ROUTING_MASTER-LOSBS .

BAPI1012_TSK_C = ROUTING_MASTER-PLA

Append BAPI1012_TSK_C.
Append BAPI1012_TSK_C.

Endloop.

CALL FUNCTION 'BAPI_ROUTING_CREATE'
* EXPORTING
* TESTRUN = ' '
* PROFILE =
* BOMUSAGE =
* APPLICATION =
* IMPORTING
* GROUP =
* GROUPCOUNTER =
TABLES
task = BAPI1012_TSK_C
 MATERIALTASKALLOCATION = BAPI_T_ASSGN
* SEQUENCE =
* OPERATION =
* SUBOPERATION =
* REFERENCEOPERATION =
* WORKCENTERREFERENCE =
* COMPONENTALLOCATION =
* PRODUCTIONRESOURCE =
* INSPCHARACTERISTIC =
* TEXTALLOCATION =
* TEXT =
* RETURN =
.

There is no need to call the BAPI in the loop. You can populate the internal tables in the loop and then pass them to the BAPI at one go.

Hope it helps..

Lokesh

pls. reward appropriate points

Read only

jayanthi_jayaraman
Active Contributor
0 Likes
523

Hi,

Use two internal tables since values you are passing appears to be differnt.

CALL FUNCTION 'BAPI_ROUTING_CREATE'

  • EXPORTING

  • TESTRUN = ' '

  • PROFILE =

  • BOMUSAGE =

  • APPLICATION =

  • IMPORTING

  • GROUP =

  • GROUPCOUNTER =

TABLES

task = BAPI1012_TSK_C

MATERIALTASKALLOCATION = BAPI1012_MTK_C

  • SEQUENCE =

  • OPERATION =

  • SUBOPERATION =

  • REFERENCEOPERATION =

  • WORKCENTERREFERENCE =

  • COMPONENTALLOCATION =

  • PRODUCTIONRESOURCE =

  • INSPCHARACTERISTIC =

  • TEXTALLOCATION =

  • TEXT =

  • RETURN =

.