HTTP - Xi - RFC : Handle rfc return in bpm

Hi,
I have configured receiver RFC and calling synchronous BAPI works perfectly.
Now the response message in RFC is containing results in return table and even if it's a error message the xi message is in ok status (sxmb_moni). My request is how can i force the error in sxmb_moni. I thought of adding a branch according to return type but then how to force error message when return type is A or E in return table?
Thanks,
Laurent.

Hi,
Probably you could create the Smart exception with the use of UDFs based on the response return type A or E.
/people/alessandro.guarneri/blog/2006/01/26/throwing-smart-exceptions-in-xi-graphical-mapping
smart sync processing exception  is similar to your scenario
smart sync  processing exception
No need of BPm for this..you will get this exception in SXMB_MONi as you are looking for.
Thanks
Swarup

Similar Messages

  • File to RFC with multiple records using BPM Scenario Error...!!!

    Hello Guru's,
      I have done the File to RFC with multiple records using BPM scenario as per the Materiel available in the sdn.sap. This involves BAPI (BAPI_MATERIEL_AVAILABILITY). I have done exactly the same what is their in the materiel. SXI_CACHE is also giving return value " 0 ". File is getting deleted from the source directory, but no file in target directory. SXMB_MONI is also showing no error (black Flag). BPM is also error free. Checked the interfaces also.
    Can any one tell me what mistake would i have done.
    Thanks in advance.

    Hi,
    There is one similar discussion I found,
    FTP TO RFC using BPM
    Thanks
    Swarup

  • Simple RFC call not returning results

    Hi,
    I have created a VERY simple Dynpro project to return the results of a simple RFC.  I've created the JCO connections and they test fine but the RFC doesn't return results to my application.
    Steps:
    1. create the project
    2. import the RFC Adaptive Model specifying the JCO connections
    3. Create an application
    4. Add the rfc model to the "Models Used"
    5. Bind the model to the component
    6. Context map two variables to the view (one input and one output)
    7. Create the method on the component
    8. Bound the UI elements to the model
    9. Set up the JCO connections from http://portal:50000/webdynpro/welcome
    For the JCO Connection creation, I used "Application" type through a load balanced connection for the Model Data connection (WD_MODELDATA_DEST) and the "Dictionary" type for the Metadata connection (WD_RFC_METADATA_DEST).
    Code:
    1. In the wdDoInit() of the controller
    wdContext.nodeZ_Hr_Get_Perno_Input().bind(new Z_Hr_Get_Perno_Input());
    2. In the wdDoInit() of the view
    wdContext.currentContextElement():setLogin_id( "mylogon" );
    wdThis.wdGetRfcTestComponentController().executeZ_Hr_Get_Perno_Input();
    My gut tells me it's an issue with my JCO connections but I can't be sure.
    I'm using Developer Studio SP9 with Patch 1 connecting to EP6 SP9 Patch 6.  When I start the Dev Studio, however, it displays version 2.0.9, is this the same for everyone?
    I've tested the function module from SE37 and it definitely returns a value. Also, if I don't set the login_id in the wdDoInit() before executing, it gives me the error that the input variable has not been set. So, this tells me that it connected to R3 to know that the variable was not passed but it still doesn't return any value when the variable is passed.
    Any ideas??  HELP!!!!!!!!!!
    Thanks,
    Andrew

    Okay, I'm not going crazy.  The issue was with my "simple" rfc.  When I changed the input and output to char(), it returned as expected.  I just have to figure out why the Dictionary types from R3 caused an issue.
    Andrew

  • Problem with File RFC File scenario without using BPM

    Hi all,
      I am trying a File RFC File scenario without using BPM with the help of the following thread:
    File - RFC - File without a BPM - Possible from SP 19.
      The XI system is PI 7.0 sp 12. When I am trying to acheive the above scenario, I am getting wierd results i.e., when I observe in SXI_MONITOR, the message is showing as processed successfully, but when I watch the message status in communication channel monitoring, I am getting the following error:
    "Attempt to process file failed with com.sap.aii.af.service.cpa.CPAException: Couldn't retrieve inbound binding for the given P/S/A values: FP=;TP=;FS=DEV120;TS=Test_Service;AN=MI_Invoice;ANS=urn:sap.com:test;"
    I am not able to understand what the problem is. By the way, one more thing, is, I have kept the File processing mode as "Delete" in the sender file adapter. But the file is not getting deleted. I think the reason could be because of the above error.
    Can any body help me out in getting my problem resolved?
    Thanks,
    Adithya K

    CPA Cache Refresh from the Adapter Engine To trigger a cache refresh from the individual Adapter Framework, open a browser window and enter the following
    URL: http://<host>:<port>/CPACache/refresh?mode=<b>delta|full</b>
    The Monitoring url is like this: http://<host>:<port>/CPACache
    Thanks & Regards,
    Farooq.

  • Handling RFC errors

    When an RFC calls fails I get the standard Rails page with the dump; how to detect and handle rfc errors (like subrc check);
    thanks

    Hello Samuel,
    Just to close this thread and finish up my own search, where I met your discussion, here I'm quoting two experts of this forum:
    "you cannot catch the exception's value in the XI "
    (see posting from Michal Krawczyk, Jun 12, 2006, in thread catch the exception)
    "The content of a fault message are not accessible inside a BPM."
    (see posting from Bhavesh Kantilal, Oct 3, 2007, in thread Notify user about Exception in BPM)
    Regards,
    Dennis

  • WebDynpro Call RFC, Handling with structures

    Hi together,
    Does someone know where I can find examples showing me the handling of RFC - Exportparameters.
    I've got succees handling tables with the webdynpro-TableControl.
    But know I'm interested using the export-structure of a function module from R/3 in Java, filling automatically an
    form.
    Please Help.
    Special Thx to Armin Reichert, who helped me with Excel Problems.
    Thx
    Greetings Sascha

    Hi Sascha,
      There is no single example which will explain all the possibilities that you are asking for. There is a book called "Inside WebDynpro for Java". Its an excellent book for developers. It really gives you a good understanding of the concepts. In this book you have examples on how to handle RFC's.
    Well if you require an example that really explains all the scenarios.
    As far as i can see the Flight example is the best to start off with as a WebDynpro newbie. Its the same.
    If you have any problem in a particular scenario, then you can post it and you will get good replies out here :).
    Using the Flight example you will be covering almost all the scenarios. In case a scenario is not covered do post it here and we will be able to guide you.
    regards
    ravi

  • RFC Call not returning in normal exec;retunrs in debugger

    Hi all
    i m sorry for posting it twice,due to my ignorance
    i first posted it in wrong forum
    i had a requirement to invoke a RFC Async and recieve the results in my program with a condition that the name and parameters of RFC are determined runtime.
    To meet this requirement, i generated a the RFC call and return form code dynamically and called that code from my program via a subroutine.
    The problem i am facing is that, whenever i execute my program in debug mode the RFCs are called and the parameters are returned( perform on end of task edition is used)
    via subroutine, but when i execute the code via F8 the program goes in indefinite wait for return parameters.I am calling 2-3 RFcs at same time, and all of them are on local host.
    the Functions are working well and the RFC destination is also working well.
    But this amalgum of my program and dynamic calls is not going through.
    I read in documentation that if we change the program context or the roll area then the results are not recieved by main program. by the way i am using WAIT to receive the results.
    For the moment if i consider, my program context or roll area is getting changed because of dynamic code generation then also the dynamically generated code is the one containing the RFC call and its revieve subroutine, therefore there shall be no problem with that, the other thought i am getting is that in debugger implict commit work happens, is the program working because of that in debugger?? i dont know....
    Can any one help me with this, in the above long paragraph if anyone gets confused..i can again try to restate my problem.
    One more thing..i have checked the ST22 and SM50 for any abnormalities, couold not find one.
    thanks in advance
    praveen

    WAIT statement also triggers a DB commit like debugger.
    Are you using WAIT UNTIL <condition>?
    Regards
    Sridhar

  • Rfc to rfc without bpm scenario

    Hi,
    I am trying to do RFC to RFC scenario without BPM.but in sender communication channel following error is coming.
    Sender channel 'CC_RFC2RFC_SENDER' for party '', service 'BS_RFC2RFC11' (internal name 'RfcServer[CC_RFC2RFC_SENDER]')
    Server data: {jco.server.gwhost=192.168.2.12, jco.server.progid=program_rfc2rf, jco.server.gwserv=sapgw00, jco.server.unicode=0}
    Repository data: {jco.client.lang=en, jco.client.snc_mode=0, jco.client.client=000, jco.client.passwd=******, jco.webas.ignore_jdsr_error=1, jco.client.user=bcuser, jco.client.sysnr=00, jco.client.ashost=192.168.2.12}
    Current pool size: 1, maximum pool size : 1
    Can anyone please tell me the cause of this error.??
    Thanks
    Rabi

    Hi Priyanka,
    I did as you had told but it is again showing same problem.
    Will you please help me to resolve it?
    Thanks
    Rabi

  • RFC function to return number of records in a table

    Hello,
    I am looking for a RFC function to return just the number of records in a SAP table.
    I don't want to use RFC_READ_TABLE since it takes too long when I query a big table.
    Any advices?

    Check the following post: Link: [Re: RFC function module to count records in DB table;

  • RFC to RFC using BPM ?

    hello all..
    i knw the RFC calls being synchronous..
    i knw i can call RFC to RFC without using BPM..
    i was wondering, if i go in for an RFC to RFC call with uing BPM, does it makes sense?
    the scenario i was working on, with two sync call, was goin into time out stage and surely performance was affected...
    wot do u say on the mentioned scenario?
    regards,
    Vishal

    rahul,
    i did try the same but ther seems to b error on the receive step...
    i presume, it had to b receive (sync) and then the send async and then the receive async and the  closing the send sync bridge...
    correct me if im wrong..
    or else if i take the request of sender rfc in an interface to make it to b async then use the receive step?
    but in tht case my data itself was not passin... a dump on the report sayin,
    "call to messaging system failed: com.sap.aii.af.ra.ms.api.DeliveryException"...
    regards,
    Vishal

  • JDBC(Sender)-XI-RFC (Request) RFC (Response)-XI-JDBC(Receiver)

    Hi All,
    JDBC(Sender)-XI-RFC (Request)
    RFC (Response)-XI-JDBC(Receiver).
    Need some solution for sending email for successfully completion of scenario after updating SQL DB Table.
    Let me explain the scenario:
    We are pooling the SQL DB table to pull the records and map the records to RFC request parameters, after successful Posting the entries in R3 HR, RFC response contain the same with E (Error) S (Success) records status, we are updating the same in SQL DB table, I implemented the complete scenario without BPM with the help of module processor in Sending JDBC Adapter, scenario is working fine but now we have to send the successful mail to our support team with status contain Number of success, Error and total records as email.
    I need the solution how to implement the same requirement in current scenario.
    Is their way to do something with the RFC receiver adapter module addition to send the successful mail or generating Alert with all the description?
    I am at PI 7.0 SP12 with HP unix box.
    Thanks in Advance for creative idea
    With Regards
    Sunil

    Hi Bhavesh,
    Thanks for your help and your blog is really helpful. I implemented the UDF for generating Email Alert but this alert is generating before Updating the SQL Database, is their any way to generate alert after updating the SQL.
    Actually in my scenario we are sending the data from SQL to R3 by RFC and again updating the SQL status whatever the RFC return, after successfully updating SQL we need to send success email to support people but if we are sending the email before updating the DB then their will be problem.
    JDBC receiver after updating the SQL DB returns the response with No. of row updated but how to capture this response, if we can capture this response then we can send email through email adapter even their is one more problem, In my scenario I am counting the number of rows with status “S” and “E” and sending the same in alert email but if are sending email after updating the SQL DB where can hold the row count value and use it while sending the email.
    Implemented the scenario without using BPM..i am using sender JDBC module processor for Syn-Asyn bridge.
    Even I do not find the link to reward point. Please let me know how to do it.
    With Regards
    Sunil

  • RFC-To-RFC as Async

    Hi all,
    Here my scenario is RFC-To-RFC.
    simply Asynchronous and function is fetching multiple data from the database and push that to XI and the receiver RFC recievs and place that data in other R3.
    Problem is when i import the two RFC's in the Mesage Mapping the occurence shows as 1..1.for both the RFC's.
    Can it works for multiple records if i map like that only...
    then wat r the neccessary steps i need to do...I have to go BPM r can i solve simply this.even i have changed the occurence in message Tab of Message Mapping.but in the interface Mapping its trowing error.
    Can anyone suggets regarding this.
    Thanks,
    Kalyan.

    Hi Kalyan,
                     At first export ur xsd of RFc and save it on desktop .Open it and change the occurence of it to unbounded .Now again import it under "External definitions" in your IR & then use.It will help u in accepting multiple entries.
    and check these links
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/877c0d53-0801-0010-3bb0-e38d5ecd352c
    /people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
    Regards,
    Vinod.

  • Regarding RFC to RFC to FILE

    Hi,
      I am Doing RFC to RFC to FILE. I want to execute RFC to RFC and I want to get RFC response to FILE.
    1)Do I need to Define BPM for theScenario.
    2) Should I configure Sync- Async Bridge for the above scenario.
    2)For RFC's we do not ceate any Interfaces, then for RFC should I define Abstract Message Intergaces to use in BPM.
    3) In order to get the RFC response to FILE, Shd I define Mapping between RFC response and File.then what would be the Interface Mapping?
    Regards,
    Varun

    Hi Varun,
    Sync/async communication enables a synchronous sender system to communicate with a receiver system that cannot process synchronous messages.
    The central component of sync/async communication is the sync/async bridge, which enables the Integration Server to receive synchronous messages from a sender and send them to a receiver as asynchronous messages. Conversely, it can send the asynchronous response from the receiver back to the sender as a synchronous response.
    To do this, you define an integration process, which is started as soon as a synchronous message is received from the sender system. The process uses a special receive step to open the sync/async bridge, sends the received message to the receiver system asynchronously, and waits for the asynchronous response to arrive from the receiver.
    The Business Process Engine receives the asynchronous response from the receiver, correlates it with the corresponding query, and activates the waiting process, which then sends the response back to the sender synchronously.
    1)Do I need to Define BPM for theScenario.
    Yes
    2) Should I configure Sync- Async Bridge for the above scenario.
    Yes
    2)For RFC's we do not ceate any Interfaces, then for RFC should I define Abstract Message Intergaces to use in BPM.
    Just import ur RFC and use it.
    3) In order to get the RFC response to FILE, Shd I define Mapping between RFC response and File.then what would be the Interface Mapping?
    Yes.Interface mapping what ever u had done select that.
    Procedure:
    SyncReceive – To Receive the payload synchronously from HTTPRequestInt interface
    syncSend – To Send the request payload Asynchronously from BPM to the File system
    syncReceive – To receive the response payload Asynchronously from Legacy File system to BPM
    SyncSend – To Send the response Synchronously from BPM to LegacySystem
    Refer this blog
    Bridging the Sync-Async bridge with Fork (XI)
    Demonstrating Use of Synchronous-Asynchronous Bridge to Integrate Synchronous and Asynchronous systems using ccBPM in SAP Xi
    Also go through these links:
    http://help.sap.com/saphelp_nw04/helpdata/en/83/d2a84028c9e469e10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c4/dc06418752ef6fe10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/f9/66bf40ad090366e10000000a1550b0/RN_XI_DE_neu.pdf
    Regards,
    Vinod.

  • How do I handle NULL returns from prepared statement?

    Thanks in advance to all those who respond. As a beginner with Java/JSP/JDBC, I need all the help I can get!
    Here's the problem...
    I'm using a prepared statement in JSP to query a MySQL database.
    If there is a value to return, everything works properly.
    If the query returns a NULL (empty set) value, I get the following error:
    javax.servlet.ServletException: Before start of result set
    Here's the code (no negative comments please...I know I'm violating some conventions! I'll restructure it later. Right now I just need help with handling the NULL case):
    <%
    Driver DriverAppt = (Driver)Class.forName(MM_test_DRIVER).newInstance();
    Connection ConnAppt = DriverManager.getConnection(MM_test_STRING,MM_test_USERNAME,MM_test_PASSWORD);PreparedStatement StatementAppt = ConnAppt.prepareStatement("SELECT lastname FROM appts_pid1 WHERE user_id = " + Recordset1__MMColParam + " AND year = " + yy + " AND month = '" + months[mm] + "' AND date = " + dates[dd] + " AND appttime = '16:15:00'");
    ResultSet Appt = StatementAppt.executeQuery();
    boolean Appt_isEmpty = !Appt.first();
    boolean Appt_hasData = !Appt_isEmpty;
    Object Appt_data;
    int Appt_numRows = 0;
    %>
    Thanks for the help!!!

    I think I have a better handle on what's occurring here. To cut to the heart of the problem, I'm going to give a very simple example that illustrates what type of error handling I need.
    HERE'S THE EXAMPLE:
    Let's say that I have a database of users. There are only two columns in the database: user_id and lastname. There are only 2 users, user_id "1" has lastname "Jones" and user_id "2" has lastname "Smith".
    I built a very simple web interface that let's a user enter a number to see if there's a lastname associated with that record. The user has no way of knowing if the user_id exists or not, so they may or may not enter a valid number.
    If the user enters a valid user_id (in this case "1" or "2"), then the correct lastname is displayed. If the user enters an invalid user_id (in this case, anything other than "1" or "2") then I get the same "Before start of result set" error that I'm getting in my real application.
    So, the question is: WHERE IN THIS CODE WOULD I HANDLE THE RETURN OF AN EMPTY SET?
    The goal here is to have the sentence say "The user's lastname is .", basically returning null. If there has to be a value, then have the last sentence say "The user's lastname is unknown."
    If you can solve this simple example, you'll have also solved the problem with my main application!!!! :-)
    Here's the example code:
    <%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*" errorPage="" %>
    <%@ include file="Connections/example.jsp" %>
    <%
    String Recordset1__MMColParam = "1";
    if (request.getParameter("user_id") !=null) {Recordset1__MMColParam = (String)request.getParameter("user_id");}
    %>
    <%
    Driver DriverRecordset1 = (Driver)Class.forName(MM_example_DRIVER).newInstance();
    Connection ConnRecordset1 = DriverManager.getConnection(MM_example_STRING,MM_example_USERNAME,MM_example_PASSWORD);
    PreparedStatement StatementRecordset1 = ConnRecordset1.prepareStatement("SELECT * FROM test_table WHERE user_id = " + Recordset1__MMColParam + "");
    ResultSet Recordset1 = StatementRecordset1.executeQuery();
    boolean Recordset1_isEmpty = !Recordset1.next();
    boolean Recordset1_hasData = !Recordset1_isEmpty;
    Object Recordset1_data;
    int Recordset1_numRows = 0;
    %>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body>
    <form action="test.jsp" method="get" enctype="application/x-www-form-urlencoded" name="form1" target="_self">
    <p> Submit a user id and a lastname will be displayed.</p>
    <p>
    <input type="text" name="user_id">
    <input type="submit" name="" value="Submit">
    </p>
    </form>
    <p>The User's lastname is <%=(((Recordset1_data = Recordset1.getObject("lastname"))==null || Recordset1.wasNull())?"":Recordset1_data)%>.</p>
    </body>
    </html>
    <%
    Recordset1.close();
    StatementRecordset1.close();
    ConnRecordset1.close();
    %>
    A huge "THANK YOU!!!!" to all those who've helped me here!!!

  • Third party system (JCO) ---RFC--- PI ---RFC--- ECC

    Hello all,
    We are trying to implement the following scenario:
    Third party system (JCO) -RFC-> PI -RFC-> SAP ECC
    The third party system connect to PI via Java Connector API with a know user id in PI. After that third party system tries to obtain the RFC that is already implemented and remote enabled in SAP ECC environment. But at this step there is something wrong in third party system software because we are not able to obtain the RFC interface and metadata from PI repository.
    1. This step is working correctly. Connection is OK.
                JCO.Client mConnectionPI = JCO.createClient("100", // SAP client
                                                                                    "user_id", // userid
                                                                                    "********", // password
                                                                                    "pt", // language
                                                                                    "10.x.x.x", // application server host name
                                                                                    "01"); // system number
                mConnectionPI.connect();
    2. This step is not working correctly:
                JCO.Repository repository = new JCO.Repository("TestRep", mConnectionPI);
                IFunctionTemplate ftemplate = repository.getFunctionTemplate("Z_RFC_XXX"); - not found exception
    We would like to know if there is something missing in any environment that we have to configure or implement in order to fix this issue. Thanks a lot.

    Hi Primini,
    couple of stupid-but-necessary questions:
    1) have you imported the RFC model in PI Repository?
    You don't need to have the RFC metadata in PI ABAP stack (there is no point in doing that), but rather in the PI Repository/ESR, within the SWCV you've created.
    Check the "Activities" session of this link for more details:
    http://help.sap.com/saphelp_nw70ehp2/helpdata/en/2b/a48f3c685bc358e10000000a11405a/frameset.htm
    2) if you have done 1), have you configured the RFC Sender scenario properly?
    I mean, have you ran the configuration wizard to create the agreements & determinations, setting the RFC interface as both the sender and the receiver interface? Of course, the systems would be different: as the sender system, you'll have a Business Service representing the legacy/JCo system; as the receiver, you'll have the ERP Business System.
    This should make your scenario work.
    If it doesn't, try one more thing: in the JCo code, just for the metadata repository connection, use a connection to the ERP system. But for the actual call, use the PI system.
    Let us know the results.
    Best regards,
    Henrique.

Maybe you are looking for

  • Work around for request scope for Listitems-working

    Hi finally I got some work around solution for Listitems working with request scope, if any suggesion welcome, below is the small code of jsp and bean. <h:selectOneMenu id="ownerListMenu" value="#{pc_trackingSearchPage.trackingSearchPageBean.selected

  • My phone is not coming out from (do not disturb mode) in the scheduled off time eg in the morning?

    scheduled do not disturb ,then it does not come back to normal in the morning and stays in the do not disturb mode till i change it manually

  • Error occurred while writing cube data - PCon

    Hi, Could you help me? I have created new application, but when I try to enter and save PCon values, I get a message: "Error occurred while writing cube data.". What could be the reason? I was able to update other data forms. Thank you in advance

  • Color setting help

    we got new computers at our youth facility and some kid changed the settings to where everything looks like its a picture negative... it sometimes looks cool but were ready for normal again... any help?

  • HT4864 Can't set up iCloud in Outlook 2013

    I have Windows 7 and Outlook 2013. I am unable to set up iCloud account in Outlook. Get error message that default profile is not set in Outlook. The Apple support site for Outlook configuration does NOT address this problem. Please help. I would lik