on 03-23-2009 5:15 AM
Hi experts,
I created the BAPI for using asynchronous RFC between ECC and XI server. But when i run the report and call the RFC like that:
CALL FUNCTION ZBAPI_COMPANY_DETAIL
IN BACKGROUND TASK
DESTINATION 'ECC_RFC_XI'
TABLES...
The error message occurs in SM58 is: Bean ZBAPI_COMPANY_DETAIL no found on host xxxx, although i had created the RFC with type T and name ECC_RFC_XI point to the XI server.
Could you guy help me to solve this error please.
Thanks in advance.
Hi,
As per my experience if you are calling function with mentioning the destination e.g.
> CALL FUNCTION ZBAPI_COMPANY_DETAIL
> IN BACKGROUND TASK
> DESTINATION 'ECC_RFC_XI'
> TABLES...
Then it is very important that this function module should also be present in destination system too. I mean you have to create the same BAPI "ZBAPI_COMPANY_DETAIL" in your XI system as well.
Because in you crrent situation your RFC is able to connecet the destination system but when it tries to pass the data from your TABLES it didn't find any function which can take/return the request/response.
And this is the reason you are getting the error Bean ZBAPI_COMPANY_DETAIL no found on host xxxx,
I hope this solves your problem.
Regards,
Sarvesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi guys,
The error "Bean ZBAPI_COMPANY_DETAIL no found on host xxxx" did not occur, i really don' t understand 'cause i did nothing on it. But now the function return no result when i call the function like mentioned above. I don't think that i have to create a BAPI and a structure for return tables like in the source system, because they are in one system now, but still not work.
Any idea for the IN BACKGROUND TASK pls.
Hi Pham,
I have tested it in my system and it is working fine without any issue. What you need to do is as below.
1. ZBAPI should have only tables parameters rest import & export tabs should be empty.
2. Do not write any code inside your ZBAPI.
3. In your ABAP program create an internal table exactly same as in BAPI.
4. Select the data into this internal table.
5. Now call this bapi and pass this internal table, see the below code .
PARAMETERS : comp_id TYPE bapi0014_2-company.
DATA: company_detail TYPE STANDARD TABLE OF t880.
SELECT rcomp name1 cntry langu stret city
FROM t880 INTO CORRESPONDING FIELDS OF TABLE company_detail
WHERE rcomp = comp_id.
CALL FUNCTION 'ZBAPI_COMPANY_GETDETAIL'
IN BACKGROUND TASK
DESTINATION 'R3_TO_XI'
TABLES
comp_detail = company_detail.
COMMIT WORK. "(if you do not use commit work, it will not work)
6. Before executing this code make sure the RFC 'R3_TO_XI' created in SM59 passed the test successfully.
You must be having a question in your mind that why we have not written that select statement inside the BAPI. If my assumption is correct then the answer is, this BAPI is working here a carrier and since it is asyn scenario then it should not have any import or export parameters. It simply carries the fetched data from your report to target system.
Test your scenario like this and if you have any doubts let me know.
Regards,
Sarvesh
Hi Vu,
This is Tarang. Hope you are fine.
1. create the sender RFC communication channel . you can give any program ID( any text) in that.
2. you create a RFC destination of type TCP/IP on the ECC system . specify the same program id text that you specified in step 1.
goto tcode smgw on app server R3 where u wil get the gateway host and service( goto parameters - > display). Add this in the rfc u created .
Write a driver program on R3 which will call the RFC ( using in background task destination u2018RFC destination u2018 that we created ) on the same R3 .
also chk /people/michal.krawczyk2/blog/2005/03/29/configuring-the-sender-rfc-adapter--step-by-step
Hope this would help
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
in my above post, i told you that in SE38 in a new report, use the pattern button and then in call function specify your BAPI.........then system will generate a proper calling structure for your BAPI........here if you do not see IN BACKGROUND TASK, then this option is not suitable for your BAPI call and you need to remove it in your original report and then try executing the BAPI........
Regards,
Rajeev Gupta
Hi,
just check - have you defined your BAPI FM as remote function enabled........ have you released your BAPI after creating it............
if your BAPI is remote function enabled and released and your RFC destination to XI server is working, then your RFC msg will reach XI server.
Regards,
Rajeev Gupta
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
just check - you are executing the report in R/3 system where you have created your this BAPI........just to check double click on BAPI in report and see if it navigates to your BAPI source code..........
moreover try using Pattern button in SE38 and in call function give your BAPI to get a system generated call pattern for calling your FM in SE38 and see if you are sending correct parameters to it...........
moreover try to debug your report and get the complete error msg to what error is happening in your report execution..........
moreover check if the RFC destination is maintained in the same client of r/3 from where you are executing your report and your RFC destionation to XI is working.........
Regards,
Rajeev Gupta
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Did you imported your RFC in to XI system.?
Did you define your mapping in XI?
Rajesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
76 | |
9 | |
8 | |
7 | |
6 | |
5 | |
5 | |
5 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.