cancel
Showing results for 
Search instead for 
Did you mean: 

Middleware

Former Member
0 Kudos

Hi,

How to create the Bdoc by using the report program. Please send if any code existing. Its very urgent.

Regards

Srinu

Edited by: sreenivasulareddy eragamreddy on Sep 25, 2008 11:32 AM

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

PLs use FM CRM_ORDER_UPLOAD_SINGLE.

call function 'CRM_ORDER_UPLOAD_SINGLE'

exporting

iv_guid = lw_header_guid

changing

cv_save_badi = lw_save.

Former Member
0 Kudos

Look at program

RSMW3EX02

RSMW3EX05.

There are few more examples in package SMW3.

Hope this helps.

Surendar

Former Member
0 Kudos

HI,

I am able to creating the BDOC by using the CL_SMW_MFLOW class but i am not able to fill the classical and extension part data.

Regards

Srinu

Former Member
0 Kudos

Hi,

REPORT RSMW3EX02 .

TABLES: SMOHSITEID.

PARAMETERS: P1 LIKE SCARR-CARRID.

SELECT-OPTIONS: SO_STYP FOR SMOHSITEID-SITETYPEID.

SELECT-OPTIONS: SO_SNAM FOR SMOHSITEID-SITE_NAME.

CLASS CL_SMW_MFLOW DEFINITION LOAD.

DATA: LV_SMOHSITEID LIKE SMOHSITEID.

DATA: LV_SITE TYPE SMW_SITE.

DATA: LV_SEND_TO TYPE SMW_SITTAB.

DATA: LV_RECIPIENTS TYPE SMW_RECTA2.

DATA: LV_HEADER TYPE SMW3_FHD.

DATA: LV_CLASSIC_BDOC TYPE SMW3EXMPL0.

DATA: LV_BDOC_EXTENSION TYPE SMW3EXMPL1.

  • LV_RECEIVER-ROOT_ID = '*'.

SELECT * FROM SMOHSITEID INTO LV_SMOHSITEID

WHERE SITETYPEID IN SO_STYP

AND SITE_NAME IN SO_SNAM.

LV_SITE-SITE_ID = LV_SMOHSITEID-SITE_ID.

APPEND LV_SITE TO LV_SEND_TO.

ENDSELECT.

PERFORM CARRIER_GET_CURRENTSTATE

USING

P1

CHANGING

LV_BDOC_EXTENSION.

PERFORM CARRIER_BUILDCLASSICBDOC

USING

LV_BDOC_EXTENSION

CHANGING

LV_CLASSIC_BDOC.

CALL METHOD CL_SMW_MFLOW=>SET_HEADER_FIELDS

EXPORTING

  • IN_HEADER =

IN_BDOC_TYPE = 'SCARR_EXAMPLE'

  • IN_MSG_TYPE = SPACE

IN_ROOT_ID = SPACE

IMPORTING

OUT_HEADER = LV_HEADER

.

CALL METHOD CL_SMW_MFLOW=>SEND

EXPORTING

HEADER = LV_HEADER

SEND_TO_SITES = LV_SEND_TO

IMPORTING

RECIPIENTS = LV_RECIPIENTS

CHANGING

MESSAGE = LV_CLASSIC_BDOC

MESSAGE_EXT = LV_BDOC_EXTENSION

EXCEPTIONS

TECHNICAL_ERROR = 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.

FORM CARRIER_GET_CURRENTSTATE

USING PI_CARRID TYPE SCARR-CARRID

CHANGING PC_BDOC_EXTENSION TYPE SMW3EXMPL1.

DATA: LV_CARRIER LIKE LINE OF PC_BDOC_EXTENSION-CARRIERS.

  • Fields in SCARR:

  • CARRID

  • CARRNAME

  • CURRCODE

  • URL

CLEAR pc_bdoc_extension.

PC_BDOC_EXTENSION-TASK = 'S'.

  • Possible values for row level task:

  • N No operation

  • S Set row to current state (modify)

  • D Delete row (identified by key)

  • U Update fields marked in DATAX structure (not valid for key)

SELECT SINGLE * FROM SCARR INTO LV_CARRIER-DATA

WHERE CARRID EQ PI_CARRID.

IF SY-SUBRC EQ 0.

LV_CARRIER-TASK = 'S'. " Set to current state

ELSE.

LV_CARRIER-TASK = 'D'. " Delete

LV_CARRIER-DATA-CARRID = PI_CARRID.

ENDIF.

APPEND LV_CARRIER TO PC_BDOC_EXTENSION-CARRIERS.

ENDFORM.

----


  • FORM CARRIER_BUILDCLASSICBDOC

----


*

----


  • --> PI_MESSAGE_EXT

  • --> PO_BDOC_CLASSIC

----


FORM CARRIER_BUILDCLASSICBDOC

USING

PI_MESSAGE_EXT TYPE SMW3EXMPL1

CHANGING

PO_BDOC_CLASSIC TYPE SMW3EXMPL0.

DATA: LV_EXT_ROOT LIKE LINE OF PI_MESSAGE_EXT-CARRIERS.

DATA: LV_CLASSIC_ROOT LIKE LINE OF PO_BDOC_CLASSIC-CARRIERS.

CLEAR PO_BDOC_CLASSIC.

LOOP AT PI_MESSAGE_EXT-CARRIERS INTO LV_EXT_ROOT.

MOVE-CORRESPONDING LV_EXT_ROOT-DATA TO LV_CLASSIC_ROOT.

APPEND LV_CLASSIC_ROOT TO PO_BDOC_CLASSIC-CARRIERS.

ENDLOOP.

ENDFORM. "CARRIER_BUILDCLASSICBDOC

Thanks

ganga reddy