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

Service Master

Former Member
0 Likes
1,505

Hi,

Is there any BAPI/FM to upload data for transactions ML33, ME23K, ME32K.

Thanks,

Pratibha

Hi,

Is there any BAPI/FM to upload data for transactions ML33, ME23K, ME32K.

Thanks,

Pratibha

8 REPLIES 8
Read only

Former Member
0 Likes
1,294

Hi Pratibha,

You can use the following BAPI/FM:

ME32K

<b>BAPI_CONTRACT_CREATEFROMDATA

ME_UPDATE_SCHEDULES_DISPO</b>

Hope this will help.

Regards,

Ferry Lianto

Read only

0 Likes
1,294

Thanks Ferry for the reply.

I need to upload data using TC AC03. Is there any FM/BAPI for this transaction code also?

Thanks,

Pratibha.

Read only

0 Likes
1,294

tables:ASMD,asmdt.

data:begin of itab occurs 0,

asnum(10), "like asmd-asnum,

astyp(4), "like asmd-astyp,

asktx(24), "like asmdt-asktx,

meins(4), "like asmd-meins,

  • chgtext like asmd-chgtext,

end of itab.

******ETAB FOR CAPTURING ERROR RECORDS

DATA ETAB LIKE ITAB OCCURS 0 WITH HEADER LINE.

data:jtab like bdcdata occurs 0 with header line.

DATA MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

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

  • Start Hauptprogramm / start main program

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

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'C:\UPLOAD1.TXT'

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = ITAB

  • EXCEPTIONS

  • FILE_OPEN_ERROR = 1

  • FILE_READ_ERROR = 2

  • NO_BATCH = 3

  • GUI_REFUSE_FILETRANSFER = 4

  • INVALID_TYPE = 5

  • NO_AUTHORITY = 6

  • UNKNOWN_ERROR = 7

  • BAD_DATA_FORMAT = 8

  • HEADER_NOT_ALLOWED = 9

  • SEPARATOR_NOT_ALLOWED = 10

  • HEADER_TOO_LONG = 11

  • UNKNOWN_DP_ERROR = 12

  • ACCESS_DENIED = 13

  • DP_OUT_OF_MEMORY = 14

  • DISK_FULL = 15

  • DP_TIMEOUT = 16

  • OTHERS = 17

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

LOOP AT ITAB.

REFRESH JTAB.

perform bdc_dynpro using 'SAPLBAS0' '0300'.

perform bdc_field using 'BDC_CURSOR'

'ASMD-ASNUM'.

perform bdc_field using 'BDC_OKCODE'

'=NEW'.

perform bdc_field using 'RM63T-SPRAS'

'DE'.

perform bdc_dynpro using 'SAPLBAS0' '0300'.

perform bdc_field using 'BDC_CURSOR'

'ASMD-ASTYP'.

perform bdc_field using 'BDC_OKCODE'

'POST'.

perform bdc_field using 'ASMD-ASNUM'

ITAB-ASNUM.

perform bdc_field using 'ASMDT-ASKTX'

ITAB-ASKTX.

perform bdc_field using 'ASMD-ASTYP'

ITAB-ASTYP.

perform bdc_field using 'ASMD-CHGTEXT'

'X'.

perform bdc_field using 'ASMD-MEINS'

ITAB-MEINS.

perform bdc_field using 'RM63T-SPRAS'

'EN'.

CALL TRANSACTION 'AC02' USING JTAB MODE 'N' update 'S' MESSAGES INTO

MESSAGES.

if sy-subrc ne 0.

move-corresponding itab to etab.

append etab.

endif.

ENDLOOP.

DESCRIBE TABLE MESSAGES.

IF SY-TFILL <> 0.

WRITE:/ SY-TFILL.

LOOP AT MESSAGES.

WRITE:/ MESSAGES-MSGTYP.

ENDLOOP.

ENDIF.

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

  • Ende Hauptprogramm / end of main program

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

----


  • Start new screen *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR JTAB.

JTAB-PROGRAM = PROGRAM.

JTAB-DYNPRO = DYNPRO.

JTAB-DYNBEGIN = 'X'.

APPEND JTAB.

ENDFORM.

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

IF FVAL <> SPACE.

CLEAR JTAB.

JTAB-FNAM = FNAM.

JTAB-FVAL = FVAL.

APPEND JTAB.

ENDIF.

ENDFORM.

*&----


*

*& Form SUB1

*&----


*

  • text

*----


*

  • -->P_0069 text

  • -->P_0300 text

*----


*

FORM SUB1 USING VALUE(P_0069)

VALUE(P_0300).

CLEAR JTAB.

JTAB-PROGRAM = P_0069.

JTAB-DYNPRO = P_0300.

JTAB-DYNBEGIN = 'X'.

APPEND JTAB.

ENDFORM. " SUB1

*&----


*

*& Form sub2

*&----


*

  • text

*----


*

  • -->P_0074 text

  • -->P_ITAB_ASNUM text

*----


*

FORM sub2 USING VALUE(P_0074)

P_ITAB_ASNUM.

CLEAR JTAB.

JTAB-FNAM = P_0074.

JTAB-FVAL = P_ITAB_ASNUM.

APPEND JTAB.

ENDFORM. " sub2

Read only

0 Likes
1,294

if not u can use this code

ables:asmd,asmdt,t006.

data:index like sy-index,

tabix like sy-tabix.

data:jtab like bdcdata occurs 0 with header line.

DATA MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

DATA IASMD LIKE t006 OCCURS 0 with header line.

data:Asn like asmd-asnum,

i type n.

selection-screen begin of block service.

select-options: num for asmd-asnum.

Parameters: Astyp like asmd-astyp,

unit like asmd-Meins.

parameters:asktx like asmdt-asktx.

parameters chgtxt like asmd-chgtext as checkbox.

selection-screen end of block service.

at selection-screen on unit.

select single * from t006 into iasmd where MSEHI = unit.

if sy-subrc <> 0.

update t006 set MSEHI = unit.

endif.

start-of-selection.

if not num-high = ' '.

i = num-high - num-low.

i = i + 1.

asn = num-low.

do i times.

if asn > num-high.

exit.

endif.

perform upload using asn astyp unit asktx chgtxt.

asn = asn + 1.

enddo.

Write:/ i, 'Records was Created'.

else.

asn = num-low.

perform upload using asn astyp unit asktx chgtxt.

if sy-subrc <> 0.

loop at messages.

write:/ messages-msgtyp,messages-fldname.

endloop.

else.

Write:/ 'Records was Created'.

endif.

endif.

&----


*& Form upload

&----


  • text

----


  • -->P_ASN text

  • -->P_ASTYP text

  • -->P_MEINS text

  • -->P_ASKTX text

  • -->P_CHGTXT text

----


FORM upload USING P_ASN

P_ASTYP

P_MEINS

P_ASKTX

P_CHGTXT.

DATA ETAB LIKE ITAB OCCURS 0 WITH HEADER LINE.

REFRESH JTAB.

perform bdc_dynpro using 'SAPLBAS0' '0300'.

perform bdc_field using 'BDC_CURSOR'

'ASMD-ASNUM'.

perform bdc_field using 'BDC_OKCODE'

'=NEW'.

perform bdc_field using 'RM63T-SPRAS'

'DE'.

perform bdc_dynpro using 'SAPLBAS0' '0300'.

perform bdc_field using 'BDC_CURSOR'

'ASMD-ASTYP'.

perform bdc_field using 'BDC_OKCODE'

'POST'.

perform bdc_field using 'ASMD-ASNUM'

P_ASN.

perform bdc_field using 'ASMDT-ASKTX'

P_ASKTX.

perform bdc_field using 'ASMD-ASTYP'

P_ASTYP.

perform bdc_field using 'ASMD-CHGTEXT'

P_CHGTXT.

perform bdc_field using 'ASMD-MEINS'

P_MEINS.

perform bdc_field using 'RM63T-SPRAS'

'EN'.

CALL TRANSACTION 'AC02' USING JTAB MODE 'N' update 'S' MESSAGES INTO

MESSAGES.

ENDFORM. " upload

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

  • Ende Hauptprogramm / end of main program

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

----


  • Start new screen *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR JTAB.

JTAB-PROGRAM = PROGRAM.

JTAB-DYNPRO = DYNPRO.

JTAB-DYNBEGIN = 'X'.

APPEND JTAB.

ENDFORM.

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

IF FVAL <> SPACE.

CLEAR JTAB.

JTAB-FNAM = FNAM.

JTAB-FVAL = FVAL.

APPEND JTAB.

ENDIF.

ENDFORM.

Read only

Former Member
0 Likes
1,294

Hi Pratibha,

You may try this BAPI.

<b>BAPI_SERVICENOTIFICAT_CREATE

BAPI_SERVICENOTIFICAT_GETLIST</b>

Hope this will help.

Regards,

Ferry Lianto

Read only

Former Member
0 Likes
1,294

Hi Pratibha

Did you manage to load the service master(AC03) using BAPI_SERVICENOTIFICAT_CREATE. I went through the documentation for this BAPI and the header table it updates seems to be QMEL and QMIH. These tables do not seem to be realted to service master. So I am not sure about using this BAPI for service creation.

I also have a similar requirement of loading the service master(AC03), using any data transfer method(direct input,batch input, BAPI) .

I believe the BDC recording cannot be an approach for this as transaction AC03 has controls which are not supported by BDC.

Can you please let me know how you loaded the service master data?

Thanks a lot .

Bala

Read only

0 Likes
1,294

hi,

this code will do for service master,i had done this

tables:ASMD,asmdt.

data:begin of itab occurs 0,

asnum(10), "like asmd-asnum,

astyp(4), "like asmd-astyp,

asktx(24), "like asmdt-asktx,

meins(4), "like asmd-meins,

  • chgtext like asmd-chgtext,

end of itab.

******ETAB FOR CAPTURING ERROR RECORDS

DATA ETAB LIKE ITAB OCCURS 0 WITH HEADER LINE.

data:jtab like bdcdata occurs 0 with header line.

DATA MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

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

  • Start Hauptprogramm / start main program

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

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'C:\UPLOAD1.TXT'

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = ITAB

  • EXCEPTIONS

  • FILE_OPEN_ERROR = 1

  • FILE_READ_ERROR = 2

  • NO_BATCH = 3

  • GUI_REFUSE_FILETRANSFER = 4

  • INVALID_TYPE = 5

  • NO_AUTHORITY = 6

  • UNKNOWN_ERROR = 7

  • BAD_DATA_FORMAT = 8

  • HEADER_NOT_ALLOWED = 9

  • SEPARATOR_NOT_ALLOWED = 10

  • HEADER_TOO_LONG = 11

  • UNKNOWN_DP_ERROR = 12

  • ACCESS_DENIED = 13

  • DP_OUT_OF_MEMORY = 14

  • DISK_FULL = 15

  • DP_TIMEOUT = 16

  • OTHERS = 17

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

LOOP AT ITAB.

REFRESH JTAB.

perform bdc_dynpro using 'SAPLBAS0' '0300'.

perform bdc_field using 'BDC_CURSOR'

'ASMD-ASNUM'.

perform bdc_field using 'BDC_OKCODE'

'=NEW'.

perform bdc_field using 'RM63T-SPRAS'

'DE'.

perform bdc_dynpro using 'SAPLBAS0' '0300'.

perform bdc_field using 'BDC_CURSOR'

'ASMD-ASTYP'.

perform bdc_field using 'BDC_OKCODE'

'POST'.

perform bdc_field using 'ASMD-ASNUM'

ITAB-ASNUM.

perform bdc_field using 'ASMDT-ASKTX'

ITAB-ASKTX.

perform bdc_field using 'ASMD-ASTYP'

ITAB-ASTYP.

perform bdc_field using 'ASMD-CHGTEXT'

'X'.

perform bdc_field using 'ASMD-MEINS'

ITAB-MEINS.

perform bdc_field using 'RM63T-SPRAS'

'EN'.

CALL TRANSACTION 'AC02' USING JTAB MODE 'N' update 'S' MESSAGES INTO

MESSAGES.

if sy-subrc ne 0.

move-corresponding itab to etab.

append etab.

endif.

ENDLOOP.

DESCRIBE TABLE MESSAGES.

IF SY-TFILL <> 0.

WRITE:/ SY-TFILL.

LOOP AT MESSAGES.

WRITE:/ MESSAGES-MSGTYP.

ENDLOOP.

ENDIF.

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

  • Ende Hauptprogramm / end of main program

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

----


  • Start new screen *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR JTAB.

JTAB-PROGRAM = PROGRAM.

JTAB-DYNPRO = DYNPRO.

JTAB-DYNBEGIN = 'X'.

APPEND JTAB.

ENDFORM.

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

IF FVAL <> SPACE.

CLEAR JTAB.

JTAB-FNAM = FNAM.

JTAB-FVAL = FVAL.

APPEND JTAB.

ENDIF.

ENDFORM.

*&----


*

*& Form SUB1

*&----


*

  • text

*----


*

  • -->P_0069 text

  • -->P_0300 text

*----


*

FORM SUB1 USING VALUE(P_0069)

VALUE(P_0300).

CLEAR JTAB.

JTAB-PROGRAM = P_0069.

JTAB-DYNPRO = P_0300.

JTAB-DYNBEGIN = 'X'.

APPEND JTAB.

ENDFORM. " SUB1

*&----


*

*& Form sub2

*&----


*

  • text

*----


*

  • -->P_0074 text

  • -->P_ITAB_ASNUM text

*----


*

FORM sub2 USING VALUE(P_0074)

P_ITAB_ASNUM.

CLEAR JTAB.

JTAB-FNAM = P_0074.

JTAB-FVAL = P_ITAB_ASNUM.

APPEND JTAB.

ENDFORM. " sub2

Read only

Former Member
0 Likes
1,294

Hi mates,

For AC03 try out BAPI_SERVICE_CREATE ...

Hope it helps.

Xeers,

RDM