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: 

send complete IDOC using change pointers in ALE

Former Member
0 Kudos

hi

i am working on triggering IDOC for customer creation/change/deletion and block/unblock.

i need to send complete IDOC(DEBMAS06) using change pointer technique.but with this technique only changed data(delta data) is sent.

can anyone let me know what i need to do so that i can send complete IDOC that is unchanged fields also.

regards

8 REPLIES 8

Former Member
0 Kudos

Hi Moorthy,

Yes we can send entire data which includes unchaged data also with change pointers.For this you need to customise the RBDMIDOC and do small changes as mentioned in below.I have done for material master and working fine.

Change the report like below three simple steps...

1) -


PARAMETERS: mestyp LIKE tbdme-mestyp OBLIGATORY MATCHCODE OBJECT tbdme.

*-- Begin of INSERT by SRIKANTH D01K924424

SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-bl1.

PARAMETERS:

p_full AS CHECKBOX DEFAULT ' '. " Default = Delta, 'X' = Full

SELECTION-SCREEN END OF BLOCK bl1.

*-- End of INSERT

-


2 )

CALL FUNCTION 'ENQUEUE_E_BDCPS'

EXPORTING

mode_bdcps = 'E'

mandt = sy-mandt

  • cpident =

mestype = mestyp

EXCEPTIONS

foreign_lock = 1

system_failure = 2

OTHERS = 3.

IF sy-subrc = 1.

MESSAGE e115 WITH mestyp.

ELSEIF sy-subrc = 2 OR sy-subrc = 3.

MESSAGE e156 WITH mestyp.

ENDIF.

  • Begin of changes by SRIKANTH D01K924424

*-- To populate full data into material master IDOC.

    • SUBMIT rbdmidox WITH mestyp = mestyp AND RETURN.

IF ( p_full = 'X' ).

PERFORM update_change_pointer_records USING mestyp.

ENDIF.

CALL FUNCTION 'DEQUEUE_ALL'.

SUBMIT rbdmidox WITH mestyp = mestyp AND RETURN.

*-- End of changes

-


3 )

FORM update_change_pointer_records USING

value(ud_mestyp) TYPE edi_mestyp.

  • define local data

CONSTANTS:

lc_fld_alelisting TYPE fieldname VALUE 'ALELISTING'.

DATA:

lt_bdcpv TYPE STANDARD TABLE OF bdcpv,

ls_bdcp TYPE bdcp,

lt_bdcp TYPE STANDARD TABLE OF bdcp.

  • Select all not yet processed change pointers

SELECT * FROM bdcpv

INTO TABLE lt_bdcpv

WHERE mestype = ud_mestyp

AND process NE 'X'.

IF sy-subrc EQ 0.

SELECT * FROM bdcp

INTO TABLE lt_bdcp

FOR ALL ENTRIES IN lt_bdcpv

WHERE cpident = lt_bdcpv-cpident.

IF sy-subrc EQ 0 .

CLEAR: ls_bdcp.

ls_bdcp-fldname = lc_fld_alelisting.

MODIFY lt_bdcp FROM ls_bdcp

TRANSPORTING fldname

WHERE ( fldname NE lc_fld_alelisting ).

UPDATE bdcp FROM TABLE lt_bdcp.

COMMIT WORK AND WAIT.

ENDIF.

ENDIF.

ENDFORM. " UPDATE_CHANGE_POINTER_RECORDS

The above code will work for your requrement.

Hope your problem will be solved.

Thanks,

Srikanth.A

0 Kudos

hi

can u tell me how did u insert this code?

using enhancement points?but i am able to see enhancing points int the begining and in the forms....

let me know how can i implement this exactly...

regards

0 Kudos

Hi Moorthy,

I have created a customer program copying the RBDMIDOC like ZRBDMIDOC and scehdule the report to trigger idocs.

Thanks,

Srikanth.A

0 Kudos

Hi Srinkanth,

I implemented the same logic in RBDMIDOC for Message Type HRMD_A with Basic Type HRMD_A07 and Extension ZRMD_A07, I, however, still get an IDoc containing only the Infotype changed. Is there anything else I should look out for - in terms of using the sample code you provided?

Regards,

Reuben.

Edited by: REUBEN OLUMESE on Jun 16, 2011 4:41 PM

0 Kudos

Thanx, very useful

Former Member
0 Kudos

Hi,

Well i am looking for same thing. Not sure if there is better alternative to do so (config, etc).

Based on what i have observed, we can create z-fm and attach in the BD60.

The z-fm:

- should have same parameters with fm: "MASTERIDOC_CREATE_SMD_DEBMAS"

- get change pointers, and build the key: "KNA1KEY" type: "BDIKNA1KEY"

- pass sender/ receiver details and the key: "KNA1KEY" into fm: "MASTERIDOC_CREATE_REQ_DEBMAS".

- change pointers' status

*With this approach, only segments with values will be sent out.

Regards,

Tee

Former Member
0 Kudos

closed thank you

0 Kudos

hi muthy,

i am also having the same req. can u please let me know how do u resolove ..pleae