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

CR01 (create work Centre) BDC ?

Former Member
0 Likes
931

I want to make BDc program for CR01 - create work Centre ?

Can anybody suggest me with coding.

thanks

3 REPLIES 3
Read only

Former Member
0 Likes
692

TYPES: BEGIN OF TW_WORK,

WERKS TYPE RC68A-WERKS,

ARBPL TYPE RC68A-ARBPL,

VERWE TYPE RC68A-VERWE,

STEXT TYPE P1000-STEXT,

VERAN TYPE P3000-VERAN,

PLANV TYPE P3000-PLANV,

VGWTS TYPE P3000-VGWTS,

STEUS TYPE P3003-STEUS,

STEUS_REF TYPE P3003-STEUS_REF,

KAPART TYPE rc68a-kapart,

FORK2 TYPE P3006-FORK2,

PLANR TYPE KAKO-PLANR,

MOSID TYPE KAKO-MOSID,

KALID TYPE KAKO-KALID,

MEINS TYPE KAKO-MEINS,

ENDZT(8) TYPE c, "RC68K-ENDZT,

NGRAD TYPE KAKO-NGRAD,

PAUSE(8) TYPE c, "RC68K-PAUSE,

  • KAPTER TYPE KAKO-KAPTER,

  • KAPAVO TYPE KAKO-KAPAVO,

FORT2 TYPE P3005-FORT2,

ENDDA(10) TYPE c, "P1001-ENDDA,

KOSTL TYPE CRKEYK-KOSTL,

LARXX TYPE RC68A-LARXX,

FORXX TYPE RC68A-FORXX,

END OF TW_WORK,

tt_WORK type standard table of tw_WORK.

&----


*& DATA DECLARATION

*&

&----


DATA : WA_WORK TYPE TW_WORK,

IT_WORK TYPE TT_WORK,

LF_FILE TYPE STRING,

WA_BDCDATA TYPE BDCDATA,

IT_BDCDATA TYPE STANDARD TABLE OF BDCDATA,

WA_BDCMSGCOLL TYPE BDCMSGCOLL,

IT_BDCMSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL.

data: ve type CY_DATEF.

&----


*& CONVERT DATE FORMAT

*&

&----


CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'

EXPORTING

DATE_INTERNAL = SY-DATUM

IMPORTING

DATE_EXTERNAL = ve

EXCEPTIONS

DATE_INTERNAL_IS_INVALID = 1

OTHERS = 2

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

&----


*& SELECTION-SCREEN

*&

&----


SELECTION-SCREEN BEGIN OF BLOCK ULTRA WITH FRAME TITLE TEXT-001. "#EC *

PARAMETERS:PA_FILE TYPE RLGRAP-FILENAME. "#EC *

SELECTION-SCREEN END OF BLOCK ULTRA.

&----


*& AT SELECTION-SCREEN

*&

&----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR PA_FILE.

&----


*& CALL FM FOR F4 FUNCTIONALITY

*&

&----


CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = ' '

IMPORTING

FILE_NAME = PA_FILE.

&----


*& START-OF-SELECTION

*&

&----


START-OF-SELECTION.

LF_FILE = PA_FILE.

&----


*& CALL FM GUI_UPLOAD

*&

&----


CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = LF_FILE

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

TABLES

DATA_TAB = IT_WORK

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.

IF SY-SUBRC EQ 0.

&----


*& PASSING DATA FROM ITAB TO WA

*&

&----


LOOP AT IT_WORK INTO WA_WORK.

REFRESH IT_BDCDATA.

CLEAR WA_BDCDATA.

&----


*& PERFORM STATEMENTS(RECORDING PROCESS)

*&

&----


perform bdc_dynpro using 'SAPLCRA0' '0101'.

perform bdc_field using 'BDC_CURSOR'

'RC68A-ARBPL'.

perform bdc_field using 'BDC_OKCODE'

'=NEXT'.

perform bdc_field using 'RC68A-WERKS'

WA_WORK-werks.

perform bdc_field using 'RC68A-ARBPL'

WA_WORK-arbpl.

perform bdc_field using 'RC68A-VERWE'

WA_WORK-verwe.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'P1000-STEXT'

WA_WORK-stext.

perform bdc_field using 'BDC_CURSOR'

'P3000-VGWTS'.

perform bdc_field using 'P3000-VERAN'

WA_WORK-veran.

perform bdc_field using 'P3000-PLANV'

WA_WORK-planv.

perform bdc_field using 'P3000-VGWTS'

WA_WORK-vgwts.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=VORA'.

perform bdc_field using 'BDC_CURSOR'

'P1000-STEXT'.

perform bdc_field using 'P1000-STEXT'

WA_WORK-stext.

perform bdc_field using 'P3000-VERAN'

WA_WORK-veran.

perform bdc_field using 'P3000-PLANV'

WA_WORK-planv.

perform bdc_field using 'P3000-VGWTS'

WA_WORK-vgwts.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'P3003-STEUS_REF'.

perform bdc_field using 'P3003-STEUS'

WA_WORK-steus.

perform bdc_field using 'P3003-STEUS_REF'

WA_WORK-steus_ref.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=KAUE'.

perform bdc_field using 'BDC_CURSOR'

'P3003-STEUS'.

perform bdc_field using 'P3003-STEUS'

WA_WORK-steus.

perform bdc_field using 'P3003-STEUS_REF'

WA_WORK-steus_ref.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'P3006-FORK2(01)'.

perform bdc_field using 'RC68A-KAPART(01)'

WA_WORK-kapart.

perform bdc_field using 'P3006-FORK2(01)'

WA_WORK-fork2.

perform bdc_dynpro using 'SAPLCRK0' '0101'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'KAKO-PLANR'

WA_WORK-planr.

perform bdc_field using 'KAKO-MOSID'

WA_WORK-mosid.

perform bdc_field using 'RC68K-BEGZT'

'00:00:00'.

perform bdc_field using 'RC68K-ENDZT'

WA_WORK-endzt.

perform bdc_field using 'KAKO-NGRAD'

wa_work-ngrad.

perform bdc_field using 'RC68K-PAUSE'

WA_WORK-pause.

perform bdc_field using 'KAKO-AZNOR'

'1'. "WA_WORK-aznor.

perform bdc_field using 'KAKO-KALID'

WA_WORK-kalid.

perform bdc_field using 'KAKO-MEINS'

WA_WORK-meins.

perform bdc_field using 'BDC_CURSOR'

'KAKO-KAPAVO'.

perform bdc_field using 'KAKO-KAPTER'

'X'. "WA_WORK-kapter.

perform bdc_field using 'KAKO-KAPAVO'

'X'. "WA_WORK-kapavo.

perform bdc_field using 'RC68K-KAPLPL'

'X'.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=TERM'.

perform bdc_field using 'BDC_CURSOR'

'P3006-FORK1(01)'.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'P3005-FORT2'.

perform bdc_field using 'RC68A-KAPART'

WA_WORK-KAPART.

perform bdc_field using 'P3005-FORT2'

WA_WORK-fort2.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=VK11'.

*perform bdc_field using 'BDC_CURSOR'

  • 'RC68A-KAPART'.

*perform bdc_field using 'RC68A-KAPART'

  • WA_WORK-kapart.

*perform bdc_field using 'P3005-FORT2'

  • WA_WORK-fort2.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BDC_CURSOR'

'RC68A-FORXX(02)'.

perform bdc_field using 'P1001-BEGDA'

ve.

perform bdc_field using 'P1001-ENDDA'

WA_WORK-endda.

perform bdc_field using 'CRKEYK-KOSTL'

WA_WORK-kostl.

perform bdc_field using 'RC68A-LARXX(02)'

WA_WORK-larxx.

perform bdc_field using 'RC68A-FORXX(02)'

WA_WORK-forxx.

perform bdc_dynpro using 'SAPLCRA0' '4000'.

perform bdc_field using 'BDC_OKCODE'

'=UPD'.

perform bdc_field using 'BDC_CURSOR'

'P1001-BEGDA'.

perform bdc_field using 'P1001-BEGDA'

'23.02.2008'.

perform bdc_field using 'P1001-ENDDA'

WA_WORK-endda.

perform bdc_field using 'CRKEYK-KOSTL'

WA_WORK-kostl.

&----


*& CALL TRANSACTION METHOD

*&

&----


CALL TRANSACTION 'CR01' USING IT_BDCDATA MODE 'A' UPDATE 'A' MESSAGES INTO IT_BDCMSGCOLL.

ENDLOOP.

PERFORM FR_ERROR_LOG.

ENDIF.

&----


*& Form BDC_DYNPRO

&----


  • text

----


  • -->P_0267 text

  • -->P_0268 text

----


FORM BDC_DYNPRO USING VALUE(P_PROG) "#EC *

VALUE(P_DYNPRO).

CLEAR WA_BDCDATA.

WA_BDCDATA-PROGRAM = P_PROG.

WA_BDCDATA-DYNPRO = P_DYNPRO.

WA_BDCDATA-DYNBEGIN = 'X'.

APPEND WA_BDCDATA TO IT_BDCDATA.

ENDFORM. " BDC_DYNPRO

&----


*& Form BDC_FIELD

&----


  • text

----


  • -->P_0272 text

  • -->P_0273 text

----


FORM BDC_FIELD USING VALUE(P_FNAM) "#EC *

VALUE(P_FVAL).

CLEAR WA_BDCDATA.

WA_BDCDATA-FNAM = P_FNAM.

WA_BDCDATA-FVAL = P_FVAL.

APPEND WA_BDCDATA TO IT_BDCDATA.

ENDFORM. " BDC_FIELD

&----


*& Form FR_ERROR_LOG

&----


  • text

----


FORM FR_ERROR_LOG .

DATA : LF_MSG TYPE STRING.

LOOP AT IT_BDCMSGCOLL INTO WA_BDCMSGCOLL.

&----


*& CALL FM FOR MESSAGES DISPLAY

*&

&----


CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

ID = WA_BDCMSGCOLL-MSGID

LANG = SY-LANGU

NO = WA_BDCMSGCOLL-MSGNR

V1 = WA_BDCMSGCOLL-MSGV1

V2 = WA_BDCMSGCOLL-MSGV2

V3 = WA_BDCMSGCOLL-MSGV3

V4 = WA_BDCMSGCOLL-MSGV4

IMPORTING

MSG = LF_MSG

EXCEPTIONS

NOT_FOUND = 1

OTHERS = 2.

IF SY-SUBRC <> 0.

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

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

ENDIF.

WRITE:/ WA_BDCMSGCOLL-MSGID,

WA_BDCMSGCOLL-MSGNR,

LF_MSG.

ENDLOOP.

ENDFORM. "FR_ERROR_LOG

If Helpful Rewads Me.

Thanks&Regards,

Venkat

Read only

Former Member
0 Likes
692

Hi,

Instead of BDC, I prefer to use following LSMW object:

Object               0260   Work center  
Method               0000                
Program name         RCRAPDX2            
Program type         D   Direct input

Hope this helps.

Best Regards, Murugesh

Read only

0 Likes
692

You can use CRAP_WORKCENTER_CREATE FM.