Bapi calling webservice
HI friends,
I am new in ABAP world, i wonder can i call a webservice from my BAPI ?
thanks
Pranav
there is not standard BAPI available to consume webservice from ABAP
but you can always write your own ABAP/FM to do the same.
Which version of R/# you are using?
check out these weblogs
/people/durairaj.athavanraja/blog/2004/09/20/consuming-web-service-from-abap
/people/thomas.jung3/blog/2004/11/17/bsp-a-developers-journal-part-xiv--consuming-webservices-with-abap
Regards
Raja
Similar Messages
-
Error while calling WebService inside ISchedulerTask.
Hi,
Env: NW 2004s
I have a requirement of calling webservice frequently. I developed a portal project with scheduler, where the application gives a runtime error while calling/reading the property file (which is generated during the webservice proxy generation, without it webservice call is impossible).
I have varified the ear file which contains all the required class files and config files including property file.
fyi:
portalapp.xml file looks like this.
+
<?xml version="1.0" encoding="utf-8"?>
<application>
<application-config>
<property name="SharingReference" value="usermanagement, knowledgemanagement, landscape, htmlb, exportalJCOclient, exportal"/>
</application-config>
<components/>
<services>
<service name="RFServiceWrapper">
<service-config>
<property name="className" value="com.sap.netweaver.rf.wrapper.RFServiceWrapper"/>
<property name="startup" value="true"/>
</service-config>
</service>
</services>
</application>
+
Any input will be highly appreciated.
Thanks,
VinodFollowing is the error message:
msg1:
at <package>.AFFERAAFWSServiceImpl.<init>(AFFERAAFWSServiceImpl.java:10)
msg2:
at com.sap.engine.services.webservices.jaxrpc.wsdl2java.ServiceBase.loadProtocolsFromPropertyFile(ServiceBase.java:238)
Reporting from Logs and Traces.
Error Located @ following code inside AFFERAAFWSServiceImpl.java, which is a proxy class generated using apache axis
input = this.getClass().getClassLoader().getResourceAsStream("<package>/protocols.txt");
loadProtocolsFromPropertyFile(input);
protocols.txt is another config file generated along with AFFERAAFWSServiceImpl.java, which is been used @ run time.
FYI: All these files are present on ear file. -
XML Error while calling webservice from oracle function.
I am getting an error while I am trying to call webservice from oracle function. Any ideas? Thanks.
select get_new_string ('proxy:80', 'http://xxx/PatternVariations/SourceTest/WebMethods','Scott') from dual
ERROR at line 1:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00225: end-element tag "H4" does not match start-element tag "P"
Error at line 9
ORA-06512: at "SYS.XMLTYPE", line 0
ORA-06512: at "DORSBP00.DEMO_SOAP", line 82
ORA-06512: at "DORSBP00.GET_NEW_STRING", line 11The error message implies that the web service is returning something that is not well formed xml. Can you verify what is being returned by the web service call
-
I have imported RFC Interfaces from SAP system. Each interfaces doesn't have fault message.
How to get error message in BAPI call when error occurs?
I can catch an exception in BPM but I need to get error message and send it to another system.Hi Denis,
>>>I have imported RFC Interfaces from SAP system. Each interfaces doesn't have fault message.
if you want to use fault messages
consider using ABAP Proxies
>>>>How to get error message in BAPI call when error occurs?
most bapis have return table in which they
return error messages (you can do it either
in a sync way or in an async way if the call is too long - with corrlelation of course)
Regards,
michal -
Error when call webservice on servlet
Hi All,
I'm having a problem when calling webservice inside the servlet on the WebLogic environment.
My code:
* Webservice:
package ws;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
@WebService
public class getData {
public getData() {
super();
@WebMethod
public String getHello() {
return "HELLO HELLO";
private Connection getConn() throws NamingException, SQLException {
InitialContext ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup("jdbc/hnxwebsite");
//System.out.println("POOL !!!!");
Connection con = ds.getConnection();
con.setAutoCommit(false);
return con;
@WebMethod
public String getIndexData(@WebParam(name="param") String param) {
StringBuffer sb = new StringBuffer();
String sql =
"Select * From idx_index_info iii where iii.index_code= ?";
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
con = getConn();
pstmt = con.prepareStatement(sql);
pstmt.setString(1, param);
rs = pstmt.executeQuery();
int columnCount = rs.getMetaData().getColumnCount();
Object val;
while (rs.next()) {
for (int i = 1; i < columnCount; i++) {
//System.out.println(i);
val = rs.getObject(i);
if (val != null)
sb.append(val.toString() + "\n");
} catch (SQLException e) {
e.printStackTrace();
} catch (NamingException e) {
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (con != null)
con.close();
} catch (Exception e) {
e.printStackTrace();
String str = sb.toString();
int len = str.length();
//System.out.println("LENGTH >>>>"+len);
return str;
public static void main(String[] arg) {
Date date = new Date();
System.out.println(date.toGMTString());
getData gd = new getData();
System.out.println(date.toGMTString());
//System.out.println(gd.getIndexData("ACB"));
* WebClient:
package hnx;
import java.util.Date;
import java.util.Map;
import javax.xml.namespace.QName;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPMessage;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.Dispatch;
import javax.xml.ws.Service;
import javax.xml.ws.WebServiceException;
import javax.xml.ws.soap.SOAPBinding;
public class wsClient {
public wsClient() {
super();
public String procWeb() {
String strmsg = null;
try {
QName serviceName = new QName("http://192.168.60.18:7001/","getDataService");
// QName for Port As defined in wsdl.
QName portName = new QName("http://192.168.60.18:7001/","getDataPort");
// //Endpoint Address
String endpointAddress = "http://192.168.60.18:7001/WsIndex/getDataPort?wsdl";
// Create a dynamic Service instance
Service service = Service.create(serviceName);
service.addPort(portName, SOAPBinding.SOAP11HTTP_BINDING,
endpointAddress);
// Create a dispatch instance
Dispatch<SOAPMessage> dispatch = service.createDispatch(portName,
SOAPMessage.class, Service.Mode.MESSAGE);
// Use Dispatch as BindingProvider
BindingProvider bp = (BindingProvider) dispatch;
// Optionally Configure RequestContext to send SOAPAction HTTP Header
Map<String, Object> rc = bp.getRequestContext();
rc.put(BindingProvider.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
rc.put(BindingProvider.SOAPACTION_URI_PROPERTY, "http://ws/");
// Obtain a preconfigured SAAJ MessageFactory
MessageFactory factory = ((SOAPBinding) bp.getBinding())
.getMessageFactory();
// Create SOAPMessage Request
SOAPMessage request = factory.createMessage();
// Request Body
SOAPBody body = request.getSOAPBody();
// Compose the soap:Body payload
QName payloadName = new QName("http://ws/", "getIndexData","ns1");
SOAPBodyElement payload = body.addBodyElement(payloadName);
SOAPElement message = payload.addChildElement( "param");
message.addTextNode("HNX302");
request.saveChanges();
// Invoke the endpoint synchronously
System.out.println(message);
SOAPMessage reply = null;
try { // Invoke Endpoint Operation and read response
reply = dispatch.invoke(request);
} catch (WebServiceException wse) {
wse.printStackTrace();
// process the reply
SOAPBody bodyRes = reply.getSOAPBody();
SOAPBodyElement nextSoapBodyElement = (SOAPBodyElement) bodyRes
.getChildElements().next();
SOAPElement soapElement = (SOAPElement) nextSoapBodyElement
.getChildElements().next();
strmsg = soapElement.getValue();
System.out.println("AAA >>"+strmsg);
} catch (Exception wse) {
wse.printStackTrace();
return strmsg;
public static void main(String[] arg) {
wsClient ws = new wsClient();
Date date = new Date();
System.out.println(date.toGMTString());
System.out.println(ws.procWeb());
System.out.println(date.toGMTString());
* Servlet:
package hnx;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;
import ws.GetData;
import ws.GetDataPortClient;
import ws.GetDataService;
public class getIndex extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=UTF-8";
public void init(ServletConfig config) throws ServletException {
super.init(config);
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
doGet(request, response);
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
response.reset();
response.flushBuffer();
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
// GetDataService service = new GetDataService();
// GetData getData = service.getGetDataPort();
// String str = getData.getIndexData("HNX302");
// int length = str.length();
// response.setContentLength(length);
wsClient ws = new wsClient();
String str = ws.procWeb();
try {
out.println(str);
} catch (Exception e) {
e.printStackTrace();
out.close();
ERROR: >>>>>[Another instance of the application is running on the server. JDeveloper redeploy the application.]
[Application SClient stopped but not undeployed from Server Instance IntegratedWebLogicServer]
[Running application SClient on Server Instance IntegratedWebLogicServer...]
[03:41:48 PM] ---- Deployment started. ----
[03:41:48 PM] Target platform is (Weblogic 10.3).
[03:41:48 PM] Retrieving existing application information
[03:41:48 PM] Running dependency analysis...
[03:41:48 PM] Deploying 2 profiles...
[03:41:48 PM] Wrote Web Application Module to C:\Users\W7\AppData\Roaming\JDeveloper\system11.1.1.2.36.55.36\o.j2ee\drs\SClient\sgetDataWebApp.war
[03:41:48 PM] Wrote Enterprise Application Module to C:\Users\W7\AppData\Roaming\JDeveloper\system11.1.1.2.36.55.36\o.j2ee\drs\SClient
[03:41:49 PM] Redeploying Application...
[03:41:49 PM] Application Redeployed Successfully.
[03:41:49 PM] The following URL context root(s) were defined and can be used as a starting point to test your application:
[03:41:49 PM] http://192.168.9.100:7101/SClient
[03:41:49 PM] Elapsed time for deployment: 1 second
[03:41:49 PM] ---- Deployment finished. ----
Run startup time: 1380 ms.
[Application SClient deployed to Server Instance IntegratedWebLogicServer]
Target URL -- http://127.0.0.1:7101/SClient/getindex
[param: null]
javax.xml.ws.WebServiceException: com.ctc.wstx.exc.WstxIOException: Exceeding stated content length of 228
at com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:117)
at com.sun.xml.ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:258)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:165)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:101)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:604)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:563)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:548)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:445)
at com.sun.xml.ws.client.Stub.process(Stub.java:248)
at com.sun.xml.ws.client.dispatch.DispatchImpl.doInvoke(DispatchImpl.java:189)
at com.sun.xml.ws.client.dispatch.DispatchImpl.invoke(DispatchImpl.java:215)
at hnx.wsClient.procWeb(wsClient.java:75)
at hnx.getIndex.doGet(getIndex.java:40)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:326)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: com.ctc.wstx.exc.WstxIOException: Exceeding stated content length of 228
at com.ctc.wstx.sw.BaseStreamWriter.finishDocument(BaseStreamWriter.java:1687)
at com.ctc.wstx.sw.BaseStreamWriter.writeEndDocument(BaseStreamWriter.java:585)
at com.sun.xml.ws.message.saaj.SAAJMessage.writeTo(SAAJMessage.java:396)
at com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:114)
... 29 more
Caused by: java.net.ProtocolException: Exceeding stated content length of 228
at weblogic.net.http.ContentLengthOutputStream.write(ContentLengthOutputStream.java:39)
at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:96)
at com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:214)
at com.ctc.wstx.sw.BufferingXmlWriter.close(BufferingXmlWriter.java:194)
at com.ctc.wstx.sw.BaseStreamWriter.finishDocument(BaseStreamWriter.java:1685)
... 32 more
java.lang.NullPointerException
at hnx.wsClient.procWeb(wsClient.java:82)
at hnx.getIndex.doGet(getIndex.java:40)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:326)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Can anyone help?
Thanks in advance.
LTThoiI'm no webservices/servlet expert , but can you check the obvious out here -
javax.xml.ws.WebServiceException: com.ctc.wstx.exc.WstxIOException: Exceeding stated content length of 228
at ......
at hnx.wsClient.procWeb(wsClient.java:75)+ // check if you are passign something thats more than 228 chars
at hnx.getIndex.doGet(getIndex.java:40) -
Hello,
Please guide me how i can call webservice i.e EJB develped in Java Stack from ABAP program.
Please let me know if some blog is avalabilbe for same.
Thanks a lot in advance.
regards,
Vikranthi
you can refer to these threads
Re: Access EJB from SAP system
Re: How do i call web services from SAP ABAP
hope they help you
regards
Aakash Banga -
Hello,
i am trying to call webservice.i tryed following code for calling webservices via actionscript.it is givind the response.but it is not giving correct response.
is this correct way to call webservice?is there other way to call webservice?can anybody tell me,how to call webservice?
<mx:Application xmlns:mx=”http://www.adobe.com/2006/mxml” layout=”vertical” width=”420″ height=”380″ xmlns:net=”flash.net.*”>
<mx:Script><![CDATA[
import mx.rpc.soap.LoadEvent;
import mx.rpc.AbstractOperation;
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.soap.Operation;
import mx.rpc.soap.WebService;
private var serviceURL:String = "http://localhost:7080/icon-ws/services";
private var wsdlURL:String = "http://localhost:7080/icon-ws/bulkUpload.wsdl";
private function callWS():void {
var service:WebService = new WebService(serviceURL, serviceURL);
service.wsdl = wsdlURL;
service.loadWSDL();
var oper:Operation = service.getOperation("BulkUpload") as Operation;
oper.addEventListener("result", resultHandler);
oper.addEventListener("fault", faultHandler);
oper.send();
public function resultHandler(event:ResultEvent):void {
Alert.show("Result returned"+ event.result.toString());
public function faultHandler(event:FaultEvent):void {
Alert.show("fault: "+ event.toString());
]]></mx:Script>
<mx:Button id=”selectBut” label=”CALL webservice” click=”callWS()”/>
</mx:Application>sorry for my english. I expect you understand me...
I do that extended sp
Code Block
use atdb_main_test
Declare @Object as Int;
Declare @ResponseText as Varchar(8000);
DECLARE @login VARCHAR(50);
DECLARE @user_passwd VARCHAR(50)
Exec master..sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;
Exec master..sp_OAMethod @Object, 'open', NULL, 'get', 'http://172.xx.xx.xx:wwww/account.asmx?op=CreateEquipementMacAddress', 'false'
EXEC master..sp_OASetProperty @Object, 'user_login', @login
EXEC master..sp_OASetProperty @Object, 'user_passwd', @user_passwd
EXEC master..sp_OASetProperty @Object, 'p_nb_poste', 1
EXEC master..sp_OASetProperty @Object, 'p_id_site', 91400
EXEC master..sp_OASetProperty @Object, 'p_id_type_poste', 83
EXEC master..sp_OASetProperty @Object, 'p_adresse_mac', null
EXEC master..sp_OASetProperty @Object, 'p_num_serie', null
EXEC master..sp_OASetProperty @Object, 'login', null
EXEC master..sp_OASetProperty @Object, 'passwd', null
EXEC master..sp_OASetProperty @Object, 'default_gateway', null
EXEC master..sp_OASetProperty @Object, 'ip', null
EXEC master..sp_OASetProperty @Object, 'bCreateIPPhone', 'false'
EXEC master..sp_OASetProperty @Object, 'vlanId', 0
Exec master..sp_OAMethod @Object, 'send'
Exec master..sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT
Select @ResponseText as ResponseText
Exec master..sp_OADestroy @Object
I use a SQL server 2000 and don't do anything else.
But it doesn't work
I don't know what to do ...
the message is (1 row affected) but no tupple is written in my db...
can you help me please ? -
How to call webservice using jdev9i
Hi gurus and experts,
i need to consume a webservice using oaf. with great effort finally i created stub using axis s/w.
now i dont know how to use the stub in jdev.where to write the code and what to write.iam strucked :-( .
since there were no sample tutorial about how to call webservice from jdev9i, iam struggling to make.iam jus a starter.
and while googling i came to know that stubs can be created using jdev9i .but when i see new-->webservices--web service stub it is greyed out.
i have 2 questions now:
1)if stub created using axis can it be used in jdev9i? if yes ,please tell me how? any tutorial links also helps me.
2)if the stubs should be created only by jdev9i so that webservices can be called using jdev,then please guide me how to make it.
i need some helping hands from u guys.
Thanks a lot
Edited by: 881533 on Oct 25, 2011 2:34 AM
Edited by: 881533 on Oct 25, 2011 2:37 AMHello sir,
i got following reply:
<returnRecordResponse xmlns="http://xyz" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<returnResult>Error_request</returnResult>
</returnRecordResponse>
but correct response is
<returnRecordResponse xmlns="http://xyz" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<returnResult>Success</returnResult>
</returnRecordResponse>
can you tell me correction in the code which i have put on the forum?or tell me other way to call webservice? -
How to call webservice using flex?
Hello,
i want to call webservice in flex.i tryied following code.but it is not giving correct response.what is wrong with this code?
can anybody tell me ,how to call webservice in flex?
Code:
<mx:Script>
<![CDATA[
public function button1_clickHandler(event):void
ws.returnRecord(para1,para2);//i am sending two parameter to returnRecord service here
public function remotingCFCHandler(event:ResultEvent):void
trace(event.result);
]]>
</mx:Script>
<mx:WebService
id="ws"
wsdl="http://localhost:8500/flexapp/returnusers.cfc?wsdl">
<mx:operation name="returnRecords" resultFormat="object"
fault="mx.controls.Alert.show(event.fault.faultString)"
result="remotingCFCHandler(event)"/>
<mx:Button label="Go" fontWeight="bold" click="button1_clickHandler(event)"/>Hello sir,
i got following reply:
<returnRecordResponse xmlns="http://xyz" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<returnResult>Error_request</returnResult>
</returnRecordResponse>
but correct response is
<returnRecordResponse xmlns="http://xyz" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<returnResult>Success</returnResult>
</returnRecordResponse>
can you tell me correction in the code which i have put on the forum?or tell me other way to call webservice? -
How to call webservice for each record in a table using ODI
Hi
I am new to ODI and Webservice. I want to invoke a scenario in ODI using web service. I hava a weblogic application server with axis 2 deployed.
But I want call webservice for each record in a table
For eg: "EMP" table have 50 records, for each record web service should invoke
Can any one help me on it.
Thanks,
phani
Edited by: user12774166 on Jun 6, 2010 11:16 PMIf your goal is "call" a web service, Jason's Straub's [flex-ws-api|https://flex-ws-api.samplecode.oracle.com/] is by far the best I've seen. You might want read more about it on [his blog|http://jastraub.blogspot.com/search?q=+flex_ws_api+].
Tyler Muth
http://tylermuth.wordpress.com
[Applied Oracle Security: Developing Secure Database and Middleware Environments|http://sn.im/aos.book] -
How to Call Webservice in Portal Component?
Hi Experts,
Currently, I have a URL of WSDL file, how can I consume this webservice in portal component. I know that we can call webservice via webdynpro application/standalone proxy/deployable proxy, but it seems different in portal component.
Thanks & Best Regards,
JamesAccessing an External Web Services in Portal
Accessing an External Web Services in Portal
http://help.sap.com/saphelp_nw04/helpdata/en/e9/ae1b9a5d2cef4ea4b579f19d902871/content.htm
Consuming Web Service from ABAP
Consuming Web Service from ABAP -
Hello,
I am working on a scenario in which a client (abap proxy) sends a message to the integration server, which dispatches the messages to an rfc-adapter, an bapi call.
Therefore I have read the tutorial, which can be found on this site, but unfortunately I have run into problems. Maybe someone can help me at this point. This is what I did:
1.I have imported the BAPI_FLIGHT_CHECKAVAILABILITY as suggested in the tutorial.
2. I created an Message interface named: U2_BAPI_IF
3. For the output message I have chosen: BAPI_FLIGHT_CHECKAVAILABILITY and for the input:
BAPI_FLIGHT_CHECKAVAILABILITY.Response. I have left the fault message field empty.
4. I did no message mapping, since I want to work with the BAPI Response structure in the abap proxy.
5. The Message interface is defined as outbound synchron.
6.In the Integration Directory I created a Receiver Determination with a Service as a sender, the message interface is U2_BAPI_IF. Additionally I configured a "configured receiver" the client with the BAPI.
7.I created a Interface Determination, for the sender the same entries as above and for the configured Inbound Interface I have chosen BAPI_FLIGHT_CHECKAVAILABILITY and the receiver client
8.I created a receiver agreement.
9. Saved the change list.
10. I have generated the abap proxy for the message interface U2_BAPI_IF, without problems
11. I created the following abap program:
data: lv_msg_raus TYPE ZU2_BAPI_IF_BAPI_FLIGHT_CHECK1,
lo_proxy TYPE REF TO ZCO_U2_BAPI_IF,
lv_msg_rein TYPE ZU2_BAPI_IF_BAPI_FLIGHT_CHECKA.
lv_msg_raus-AIRLINEID = 'AA'.
lv_msg_raus-CONNECTIONID = '0017'.
lv_msg_raus-FLIGHTDATE = '20040801'.
create object lo_proxy.
call method lo_proxy->execute_synchronous
exporting
OUTPUT = lv_msg_raus
importing
INPUT = lv_msg_rein.
12. I execute the program and I receive the following error:INTERFACE_REGISTRATION_ERROR, the SAP Stack says:
<SAP:Stack>No implementing class registered for the interface (type ifmmessif, name BAPI_FLIGHT_CHECKAVAILIBILITY, namespace urn:sap-com:document:sap:rfc:functions )</SAP:Stack>
So now my question, do I have to implement a class (proxy) on the receiver side to receive the message and pass it then via bapi call myself, or did I something totally wrong?
I hope somebody can help me,
Thanks
OliverHi Oliver,
I was wondering if you finally got this scenario to work, if Yes. Could you explain how did yo manage to (solve your problem)setup your scenario as described in your earlier note?
Thanks,
Rob. -
Bapi call in abap proxy reaching dialog timeout in async scenario
Hi all,
We have an XI interface to create sales orders. Legacy app sends a soap message async to XI with a group of orders. XI sends this group of orders to an Abap proxy async on ECC side. Into this Abap proxy we have a loop to process each order received in the group with BAPI_SALESORDER_CREATEFROMDAT2. Ending the loop, abap proxy start another async process to send the response to XI with an outbound abap proxy, and the response is redirected by XI to Legacy app.
The problem is, this group of orders can have two or two thousand orders... so, the async process guarantee that no timeout limit will be reached. This is working for the whole process. But when this BAPI is creating an order, the time out of BAPIs execution seems to be the same as the timeout of dialog processes (now set to 10 minutes). This is our problem. Some orders spend more than 10 minutes to process (orders with five hundreds items, for example)... when this occurs, BAPI throws a time out reached error and the async process stops on the inbound queue with status sysfail.
We are now trying to understand why this timeout is been triggered by the BAPI. As it is running into an Async process, it should execute without any kind of timeout limits...
If anybody has any idea, please, help us.
Thank you.
regards.
robertiMay be I was not so clear... the total spent time in the process can be many many hours, days, etc... no timeout is reached. I can post 10.000 orders, no timeout is reached. The problem is that if the processing of only one order with BAPI_SALESORDER_CREATEFROMDAT2 takes longer than 10 minutes, then the timeout is reached. This is the strange part. The processing of the bapi seems to get the same timeout of dialog processes, we already tested increasing the dialog process timeout and the timeout of bapi execution was the same...
We already monitor on SE66 to see if it opens a dialog process to execute the bapi call function, but it does not.
If anyone has any tip, please, provide us.
Thanks!
roberti -
Integration Process not continuing after Synchronous BAPI call
I have an integration process that splits up a batch file of purchase orders into single purchase order messages. This allows me to use the "ForEach" block to call the synchronous BAPI_PO_CREATE1.
I have managed to get the process to call the BAPI and create the purchase order. The response message arrives back though the abstract synchronous interface and is mapped to the asyncronous response message. After that the process seems to hold where I am expecting it to continue on the process and be appended to a container storage list for mapping to a single return message.
I have not set up any correlation sets as I thought they wouldn't be needed for a sychronous call.
Has anyone got any advice on my approach to this process and how I might fix it.
Thanks in advanceHi Bhavesh,
There are no errors as such in the SXMB_MONI but it gets as far as the Inbound Message (PE_ADAPTER) stage after the Sych BAPI call.
Also the SOAP Header at this stage seems to be missing "sysnchronous" or "asynchronous" in the SAP:ProcessingMode tags.
The technical workflow is as follows
FTP Batch file outbound to Integratin Process Receive (Async)
Transform message into a Multiline list of BAPI_PO_CREATE1.request (async abstract)
Enter "For Each" Block using the multiline list.
BAPI_PO_CREATE1 mapped to synchronous abstract interface
synchronous abstract interface mapped to BAPI_PO_CREATE.request and response
BAPI_PO_CREATE.response mapped to async BAPI_PO_CREATE.response
async BAPI_PO_CREATE.response appended to multiline list
Exit block
Transform multiline response list into single line response
FTP inbound
As far as I can make out I have not correctly configured the receiver of PO_CREATE1.response after it has been mapped from the sync to async so it just persists it and sits there waiting or it is waiting for somethign else to happen.
Let me know if I can clarify anything further.
Thanks
Ben -
Problem with mutiple BAPI calls during the commit
Hi all,
I am trying to create accounts for a given partner i the transaction F9K1 using the BAPI BAPI_BKK_ACCNT_CREATE. After calling the BAPI I am committing it too.
The problem is if I try to create multiple accounts like RCA, ACA, MCA, IOE and so on, the first time the BAPI is called to create RCA account it is successful an it is even committing. When I call the BAPI to create the the ACA account the return table from the BAPI shows success message but the commit fails. If I restart the program and try creation of accounts now the RCA will throw a error msg saying account already exist, ACA account will be created and then the MCA account creation fails in the same manner explained above.
I see the issue is with multiple BAPI calls and I tried using all sort of methods like clearing buffers, start new task in local and wait command and all. But none of them seems to be working for me.
Can anyone please guide me on how I can overcome this problem.
Thanks.BAPI :
BAPI BAPI_BKK_ACCNT_CREATE
Functionality
Use this method to create an account in Bank Customer Accounts. This method returns the following values:
Identification details for the newly created account such as the internal and the external account number, and the bank area details
A table containing error messages
To create an account by using this method, you must specify values for the import parameters Bank Area (BANKAREA) and Product (PRODUCTNAME).
Note: You must also specify a value in the External Account Number (EXTERNALACCOUNTNR) parameter if you have defined an external number range for the bank .
REgards,
Jayan.
Maybe you are looking for
-
Boa tarde Gostaria de saber como eu comparo duas datas em um Datagridview e se aquela data estiver maior do que o estipulado para executar o serviço ela fica em vermelho Grato José Henrique
-
Displaying the data from a "LINQ to SQL database"
I have created a LINQ to SQL database with a simple table/class with the following properties: Counter Subject Description About the Counter, how do I set the properties so it behaves like a "Counter". For each row I want it to automatically add new
-
Adobe AIR for Android 2.2(Samsung Galaxy Fit)
Hi all, I have Samsung Galaxy Fit with Android 2.2. I want to deploy applications coded in Flex on my phone. Also Adobe AIR is supported by devices with Android OS 2.1 and above, but in Android market it shows that my phone is not compatible wit
-
Hi, Can anybody tell the name of the report where Attendance hours per day for each employee for the course scheduled can be seen?
-
Issue in changing country specfic language in ESS 1.50 WDABAP.
Hi Friends, While changing country specific language in ESS 1.50 WDABAP EHP5. I am able see to both English and country specific language in portal page, it was not changed fully. Could anyone provide info to change my portal language as per country