cancel
Showing results for 
Search instead for 
Did you mean: 

How to bring attachement in BPM

laurent_touillaud
Contributor
0 Kudos

Hello,

We are on XI3.0 SP10.

This question concerns an RFC to SOAP scenario.

we are sending purchase order from EBP to XI by RFC (bapi).

Inside XI we use a BPM for mapping.

RFC doesn't support attachements.

How can we catch the attachement in the BPM in order to join it to the final message sent by the soap adapter?

Hoping for your answers,

Best regards,

Laurent.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Laurent !

Maybe you can define a correlation and send 2 RFC messages (main message and attachment) from EBP to XI. The BPM should detect that both messages are related using correlation and using a N:1 transformation you can bundle both messages in 1 and then send it out thru SOAP. If your RFC is a custom one, I think you can define 2 structures, one for the body and one for the attachment, and maybe avoid using BPM...unless you need it for something else.

Regards,

Matias

laurent_touillaud
Contributor
0 Kudos

Hi Matias,

That's a good idea, but how can you transfer the attachement by RFC?

I thought RFC adapter couldn't manage to transfer attachements.

Maybe i can send only the content string of the attachement through RFC but how can you rebuild the attachement afterwards?

Best regards,

Laurent.

Former Member
0 Kudos

Hi Laurent !

Could you tell me how this "attachment" is coming out from EBP? What do you mean by attachment? does the RFC call has an attachment or the attachment data is a table or exporting parameter? Which BAPI are you using?

Maybe you need to generate an abap proxy to pass the EBP data to XI.

Regards,

Matias.

Former Member
0 Kudos

Hi Laurent !!

More info:

in the constraints section of the RFC Adapter says:

Constraints

Note the following constraints:

● Only the payload of a received message is evaluated. Additional attachments are ignored and not forwarded.

● The sender adapter only supports function modules with at least one parameter (import, export, changing, or tables).

On the other hand, here is another thread that could give you some clues:

Are you enabling the CV_ATTACH.... field during transfers?

Some other ideas...I've read that it is possible to send and RFC from EBP with the url of the original document..maybe using a BPM you can send the URL via RFC to XI (BPM), using BPM you can retrieve the attachment using SOAP or HTTP adapter and then send the attachment and other data to the final SOAP destination.

Regards,

Matias.

Former Member
0 Kudos

Hi Laurent !

Two useful links:

/people/michal.krawczyk2/blog/2006/04/19/xi-rfc-or-abap-proxy-abap-proxies-with-attachments

Regards,

Matias.

laurent_touillaud
Contributor
0 Kudos

Hi Matias,

Thanks for these helpful answers.

For me i have now two solutions :

1. Change the RFC adapter with a Proxy to send the bapi (BAPI_POEC_XML_SEND) that sends po to XI. Is this possible?

2. "in the trigger program before the sending of this bapi, there is a step that you can configure to send the full content of the attachement to a webserver. (spro settings.) below is the module function that sends the attachement."

CALL FUNCTION 'HTTP_PUT_COMPONENT'

EXPORTING

absolute_uri = lv_attach_url_write

proxy = lv_proxy

user = lv_user

password = ls_att_pub-i_password

component_length = lv_filesize

IMPORTING

status_code = lv_statuscode

status_text = lv_statustext

TABLES

component_data = ls_attach-phio_content

EXCEPTIONS

connect_failed = 1

timeout = 2

internal_error = 3

tcpip_error = 4

OTHERS = 5.

The phio_content is binary data sent with type RAW - 1022.

In the bapi sending step (second step of trigger program) there is no standard way to send the phio content but only url."

My first reaction was to add the phio_content to the bapi and send it with it.

But is there a way to rebuild the attachement afterwards in xi or in marketplace?

The other solution like you said is to follow standard that sends attachement to webserver. send the url by the bapi with rfc adapter.

Add a 'receive step' in the BPM that will look for the url on the webserver with a file or soap adapter and then bundle the two messages together to send it with the soap adapter.

Which solution should be the best?

Thanks for all.

Regards,

Laurent.

Former Member
0 Kudos

Hi Laurent !

I've read some posts and links of this thread:

I think here you can find more data, also searching by "srm xi" in the SDN.

Check that thread and the links inside them, maybe you can find some other ways. I've read some data about standard ways to connect SRM and XI, in some master guides and scenario guides in the service marketplace.

The solution of the Proxy could work, but you have to send via proxy the data that the bapi is currently sending.

To rebuild attachment in XI and send them out thru SOAP you need to use java or abap mappings.

Regards,

Matias

Answers (0)