Calling web help
Greetings all,
To give you a bit of background before asking my question:
We are currently in the midst of converting our very large
winhelp system to webhelp (using RoboHTML).
The converison is going well, however we have run into a snag
from the application development side of things.
My programmers are a bit perplexed as to how to actually call
webhelp from within Visual Basic programs. Specifically, there
seems to be contradictory information about using a .cls or .frm.
We are currently using a deprecated version of RoboHelp, but
will soon be transitioning to RH8.
Can anyone point me in the direction of the call procedure
for VB6? Also, we will soon be transitioning to VB.Net, will we
need to change anything when we do so?
Thanks for any assistance out there.
Jim
See
Peter
Grainge's excellent web site for methods.
We use the URL call. And since we provide merged WebHelp, we
also provide a flat file (we call formpath.txt) with a listing of
which child project houses each form (window/screen, whatever),
like this:
aammainform, mergedProjects\mwb_ug
The form named aammainform is in the mwb_ug folder, and is
named the same (if it were not, its actual name would be
appended--following a backslash--after the folder name).
Good luck,
Leon
Similar Messages
-
Calling web service from oracle forms 10g
Problem Description:
I'm following the steps as per the doc:
http://www.oracle.com/technology/products/forms/htdocs/10gr2/howto/webservicefromforms/ws_10_1_3_from_forms.html
to create a java stub to call external web service and then use java importer in oracle forms to call this web service from oracle forms.
WSDL for external web service used is http://gend:83/DesignService.svc?wsdl
The service was developed by us.
Calling the web service using JDeveloper works fine but when I complie in Oracle Forms it returns wrong number of types of arguments in call SENDHELLO.
The code from oracle form to call web service is as below:
DECLARE
jo ora_java.jobject;
xo ora_java.jobject;
rv varchar2(2000);
ex ora_java.jobject;
str varchar2(100);
BEGIN
jo := GendServiceClient.new;
rv := GendServiceClient.sendHello('Nora');
EXCEPTION
WHEN ORA_JAVA.JAVA_ERROR then
message('Unable to call out to Java, ' ||ORA_JAVA.LAST_ERROR);
WHEN ORA_JAVA.EXCEPTION_THROWN then
ex := ORA_JAVA.LAST_EXCEPTION;
message(Exception_.toString(ex));
END;
Any help/ideas on this is greatly appreciated. Thanks.
Edited by: KE Nora Loera on Jun 1, 2012 1:24 PMMy primary skill is PL/SQL but the only information I found on Oracle's site to call a web service from a 10g Form was creating a jar file and importing the java class. Since I don't want to ask our corporate IT to make changes on the UNIX box for the jar files I went a different route.
I use UTL_HTTP.BEGIN_REQUEST to call a URL then load I load the data to a table as a CLOB since we have more than 4000 characters. Now I need to parse the XML and load it into a form. I have never done this so if there is a helpful site please let me know. I have looked at several sites but none do what I want.
Thanks -
Calling web service from oracle forms fails with ORA_JAVA.JAVA_ERROR
Problem Description:
I'm following the steps as per the doc:
http://www.oracle.com/technology/products/forms/htdocs/10gr2/howto/webservicefromforms/ws_10_1_3_from_forms.html
to create a java stub to call external web service and then use java importer in oracle forms to call this web service from oracle forms.
WSDL for external web service used is http://www.webservicex.net/CurrencyConverter.asmx?wsdl
Calling the web service using JDeveloper works fine but from Oracle Forms returns ORA_JAVA.JAVA_ERROR; Unable to call out to Java, Invalid object type for argument 1
The code from oracle form to call web service is as below:
DECLARE
jo ora_java.jobject;
rv ora_java.jobject;
ex ora_java.jobject;
outString varchar2(2000);
BEGIN
jo:= CurrencyConvertorStub.new;
--This will get the exchange rate from US Dollars to UK Sterling.
rv:= CurrencyConvertorStub.ConversionRate(jo,'CAD','USD');
message (float_.floatValue(RV));
EXCEPTION
WHEN ORA_JAVA.JAVA_ERROR then
message('Unable to call out to Java, ' ||ORA_JAVA.LAST_ERROR);
WHEN ORA_JAVA.EXCEPTION_THROWN then
ex := ORA_JAVA.LAST_EXCEPTION;
outString := Exception_.toString(ex);
message(outString);
END;
Any help/ideas on this is greatly appreciated. Thanks.Yes, it is the message line - so basically this call fails => rv:= CurrencyConvertorStub.ConversionRate(jo,'CAD','USD'); and control goes in the exception block
WHEN ORA_JAVA.JAVA_ERROR then
message('Unable to call out to Java, ' ||ORA_JAVA.LAST_ERROR);
Below is the code from java stub that was generated using JDeveloper by using web services stub/skeleton and associating the WSDL
public Double ConversionRate(String FromCurrency, String ToCurrency) throws Exception
URL endpointURL = new URL(endpoint);
Envelope requestEnv = new Envelope();
Body requestBody = new Body();
Vector requestBodyEntries = new Vector();
String wrappingName = "ConversionRate";
String targetNamespace = "http://www.webserviceX.NET/";
Vector requestData = new Vector();
requestData.add(new Object[] {"FromCurrency", FromCurrency});
requestData.add(new Object[] {"ToCurrency", ToCurrency});
requestBodyEntries.addElement(toElement(wrappingName, targetNamespace, requestData));
requestBody.setBodyEntries(requestBodyEntries);
requestEnv.setBody(requestBody);
Message msg = new Message();
msg.setSOAPTransport(m_httpConnection);
msg.send(endpointURL, "http://www.webserviceX.NET/ConversionRate", requestEnv);
Envelope responseEnv = msg.receiveEnvelope();
Body responseBody = responseEnv.getBody();
Vector responseData = responseBody.getBodyEntries();
return (Double)fromElement((Element)responseData.elementAt(0), java.lang.Double.class);
} -
Is it possible to open web help as a normal new tab and not as pop-up?
Hello,
Is there a way that I can open context-sensitive web help in a new normal tab instead of having it as a pop-up so we can get rid of the pop up blocker?
Thank you,This is set from the calls. Depending on precisely how your developers are calling the help, a small change in your output may be required.
You can give the following pages to your dev:
Overview of options and how to use it: Calling Webhelp
All your options in detail: Context sensitivity in WebHelp and FlashHelp
Kind regards,
Willam -
How to make a PDF form call Web service and return a static pdf for user to print?
Hi all,
Can anyone help me regarding the feasibility of using PDF forms for my following case?
I would like to create a Dynamic pdf form. User only have the Acrobat reader. they can enter some information. Then have a submit button. when user click the submit button, it can call the web service with data. then Web service returns a Static PDF document based on data and the user can print it out. (and maybe save as separate pdf file)
1. Is that possible to implement? Because I know PDF can call web service, but dont know how it handle when the webservice returns another static PDF document. could it able to handle the responds and open up in another acrobat reader?
2. As I understand I need to have Live Cycle Designer to create a pdf and make it Reader Enabled. So user can user reader to call webservice? am I correct?
3. What minimum reader that user need to have? PDF reader 7 or above?
4. I have a webservice serve the same purpose for web. But if I want the same web services can serve both web and PDF form. So, whatever client (PDF or Web)make the web service call, server returns the PDF document to client. Is that possible ? Do I need to make any changes on web service?
5. Do I need to get any other Adobe server product? (other than Live Cycle Designer )
Thanks a lotWe have done a similar approach in the past and yes, it can be doable.
1. Is that possible to implement? Because I know PDF can call web service, but dont know how it handle when the webservice returns another static PDF document. could it able to handle the responds and open up in another acrobat reader?
Srini: We have developed a Servlet to talk to Webservice. Based on the Webservice response, the Servlet, prepares the Byte stream and sends it to Webbrowser to display as a PDF. The PDF data was submitted to Servlet in XML format.
But if you do not want to use the above approach, then you have to use the Workbench Process.
Submit the PDF data to a Workbench process and the inside process, execute Webservice Service with the data. Once the response is received, prepare the data XML and render a PDF with it.
To do this, you need LiveCycle Server and Reader Extensions server component.
2. As I understand I need to have Live Cycle Designer to create a pdf and make it Reader Enabled. So user can user reader to call webservice? am I correct?
Srini: If you want to use the Servlet, you can Reader extend the PDF with Acrobat.. But if you want to submit the data directly to Webservice, then you need Reader Extensions server component.
3. What minimum reader that user need to have? PDF reader 7 or above?
Srini: Not sure but Reader 8 and above should work.
4. I have a webservice serve the same purpose for web. But if I want the same web services can serve both web and PDF form. So, whatever client (PDF or Web)make the web service call, server returns the PDF document to client. Is that possible ? Do I need to make any changes on web service?
Srini: If you use the Servlet approach, then you can re-use the same webservice. But if you want to submit directly to the same webservice, you may need to change it to suit your data XML.
5. Do I need to get any other Adobe server product? (other than Live Cycle Designer )
Srini: If you use the Servlet approach, you do not need any server component but other approach, you need Livecycle Server and Reader Extensions server component.
Thanks
Srini -
Getting error while calling Web service in PB 12.5
Hi All,
I am trying to call web service through my PB 12.5 but getting error like "Window sdk for .net framework 4.0 was not installed. please install befor use this feature." though I had installed window sdk . net framework 4.0.
one more thing do we required .wsdl file to call web service or only path is ok?
please help me out here.
Thanks,
PralhadHi Pralhad,
From the Application Techniques manual, Building a Web Services Client, it states the following:
The WSDL file for you specify in the wizard or painter must have:
Services/Binding entries
The Targetnamespace
attribute defined in its Schema element
No circular references (an example of a “circular reference” is a structure
that includes itself as a child class member)
If PowerBuilder encounters a problem parsing the WSDL file, it reports the
error in an error message box.
Thank you.
Beverly Duquette -
Calling Web Service from PL/SQL in 9.2.0.4
We're having some problems getting the "Calling Web Services Sample from PL/SQL" sample working with our 9.2.0.4 database. After downloading the sample from http://www.oracle.com/technology/tech/webservices/htdocs/samples/dbwebservice/DBWebServices_PLSQL.html, we try to run the sample but get the following error stack:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
LPX-00243: element attribute value must be enclosed in quotes
Error at line 20
ORA-06512: at "SYS.XMLTYPE", line 0
ORA-06512: at "TODDH.DEMO_SOAP", line 81
ORA-06512: at "TODDH.TIME_SERVICE", line 15
ORA-06512: at line 2
Has anyone encountered a similar problem? Any help is much appreciated.
Todd.the message looks very much like the one posted at http://asktom.oracle.com/pls/ask/f?p=4950:8:5812357525663697256::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:16568950771220
b.t.w. i don't think that any packages are missing. it seems that the XML is invalid. Did you use dbms_output commands to show the generated XML? -
Calling web service from ABAP - version 4.6C
Hi,
I would like to know how to call a web service from ABAP. Version is 4.6C. Any help would be greatly appreciated.
Thank you,
RekhaHi Rekha,
Please go through these..
call web service using ABAP
http://help.sap.com/saphelp_nw04/helpdata/en/a0/da0710b6560a4e80fb94f3f712dfc0/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/e9/ae1b9a5d2cef4ea4b579f19d902871/frameset.htm
Hope these help you!
cheers,
Prashanth -
Call web service from pl/sql
Dear All,
I have web service where I need to take picture as binary stream and insert it in the blob.
Which is the best way to call web service and store picture as binary stream (jpg file) into blob?
Kind regards,
E.Thank you very much for helping me to invoke web service into my database.
I got message, now I need to decode picture from base64binary. Is there any way to do it trough pl/sql or I need use java?
My database is 10g.
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:getFileResponse xmlns:ns1="urn:getfile1">
<return xsi:type="xsd:base64Binary">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</return>
</ns1:getFileResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope> -
Using utl_dbws to call web service
We're calling a web service using utl_dbws and getting a response but the problem is the parameters. I haven't been able to find much documentation about how to use the utl_dbws package and have only one example to work from so could do with some expert help.
The following code calls the webservice:
procedure call_web_service(p_application_key in number,
out_success_message out varchar2)
is
v_service utl_dbws.service;
v_call utl_dbws.call;
v_service_qname utl_dbws.qname;
v_port_qname utl_dbws.qname;
v_operation_qname utl_dbws.qname;
v_string_type_qname utl_dbws.qname;
v_return anydata;
v_send_data anydata;
v_return_string varchar2 (100);
v_return_length number;
v_parameter_string varchar2(32767);
v_params utl_dbws.anydata_list;
v_interview_xml xmltype;
v_policy_number varchar2(14);
-- return parameters
v_interviewId varchar2(1000);
v_statusType varchar2(1000);
v_error_reason varchar2(1000);
begin
message_handler.set_module_name('ostp_to_xpb.call_web_service');
message_handler.set_current_process('retrieve generated xml');
begin
select upload_xml, extractvalue(upload_xml, '/interview/externalReferenceNumber') policy_number
into v_interview_xml, v_policy_number
from xpb_upload_data
where application_key = p_application_key
and extractvalue(upload_xml, '/interview/externalReferenceNumber') is not null;
--dbms_output.put_line('xml retrieved');
exception
when no_data_found then
v_success_message := 'No xml found for application_key = '||p_application_key;
raise v_procedure_error;
end;
message_handler.set_current_process('call web service');
-- create service
v_service_qname := utl_dbws.to_qname (null, 'xpertBridge');
v_service := utl_dbws.create_service (v_service_qname);
-- create call
v_port_qname := utl_dbws.to_qname (null, 'xpertBridgePort');
v_operation_qname :=
utl_dbws.to_qname
('http://m0154ukdox1/xpertBridgeEDSLV/services/xpertBridge',
'orcaAppUpload'
v_call := utl_dbws.create_call (v_service, v_port_qname, v_operation_qname);
-- set endpoint
utl_dbws.set_target_endpoint_address
(v_call,
'http://m0154ukdox1/xpertBridgeEDSLV/services/xpertBridge'
-- set type of input and output parameters
v_string_type_qname :=
utl_dbws.to_qname ('http://www.w3.org/2001/XMLSchema', 'string');
utl_dbws.add_parameter (v_call,
'orcaXml',
v_string_type_qname,
'ParameterMode.IN'
utl_dbws.add_parameter (v_call,
'interviewId',
v_string_type_qname,
'ParameterMode.OUT'
utl_dbws.add_parameter (v_call,
'status',
v_string_type_qname,
'ParameterMode.OUT'
utl_dbws.add_parameter (v_call,
'errorReason',
v_string_type_qname,
'ParameterMode.OUT'
utl_dbws.set_return_type (v_call, v_string_type_qname);
-- convert xmltype to string for call
select xmlserialize(document v_interview_xml)
into v_parameter_string
from dual;
v_params (1) := anydata.convertvarchar(v_parameter_string);
-- call
v_return := utl_dbws.invoke (v_call, v_params);
-- values which can be returned are Success / MessageError / ApplicationError
v_return_string := v_return.accessvarchar2;
dbms_output.put_line ('Message returned is: ' || nvl(v_return_string, 'No success message returned'));
-- retrieve out parameters
v_interviewId := v_params(2).accessvarchar2;
dbms_output.put_line ('Message returned is: ' || nvl(v_interviewId, 'No interviewId returned'));
v_statusType := v_params(3).accessvarchar2;
dbms_output.put_line ('Message returned is: ' || nvl(v_statusType, 'No status type returned'));
v_error_reason := v_params(4).accessvarchar2;
dbms_output.put_line ('Message returned is: ' || nvl(v_error_reason, 'No error reason returned'));
-- release call
utl_dbws.release_call ( v_call );
-- release services
utl_dbws.release_service ( v_service );
message_handler.set_module_finish;
exception
when others then
out_success_message := message_handler.formatted_error_message;
end call_web_service;
Here is an excerpt from the WSDL relating to the call being made:
<xs:element name="orcaAppUpload">
<xs:annotation>
<xs:documentation xml:lang="en">Message payload XML</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="orcaXml" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="orcaAppUploadResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="interviewId" type="xs:string">
<xs:annotation>
<xs:documentation xml:lang="en">Interview identifier used to access the interview from UI</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="status" type="tns:StatusType"/>
<xs:element name="errorReason" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation xml:lang="en">Only included if an error has occured </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="StatusType">
<xs:restriction base="xs:string">
<xs:enumeration value="Success"/>
<xs:enumeration value="MessageError">
<xs:annotation>
<xs:documentation xml:lang="en">MessageError arises if the request payload was
rejected by xpertBridge. This might be because it does not validate against the
expected schema. Alternatively, a business rule is not satisfied.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="ApplicationError">
<xs:annotation>
<xs:documentation xml:lang="en">ApplicationError would indicate application or system
error or exception occured in xpertBridge while processing the request.</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:schema>
<wsdl:message name="orcaAppUploadReq">
<wsdl:part name="orcaAppUpload" element="tns:orcaAppUpload"/>
</wsdl:message>
<wsdl:message name="orcaAppUploadResp">
<wsdl:part name="orcaAppUploadResponse" element="tns:orcaAppUploadResponse"/>
</wsdl:message>
<wsdl:portType name="xpertBridgePort">
<wsdl:operation name="orcaAppUpload">
<wsdl:documentation>Upload (typically paper) application from ORCA/Ingenium</wsdl:documentation>
<wsdl:input message="tns:orcaAppUploadReq"/>
<wsdl:output message="tns:orcaAppUploadResp"/>
</wsdl:operation>
</wsdl:portType>
etc.
The error being returned is the following:
ostp_to_xpb.call_web_service.call web service.ORA-29532: Java call terminated by uncaught Java exception: unexpected element name: expected=interviewId, actual=status
Initially I started the params at params(0) but when I received the response above I thought it might solve the problem by starting at 1 - try anything :-) but still had the same response.
I'm now out of ideas!UTL_DBWS is not part of XDB, XDB is more about being the web service, rather than calling a web service. Here's an example of using UTL_HTTP to test a XML DB Database Native Web Service which may help
SQL*Plus: Release 11.2.0.1.0 Production on Wed Jun 17 08:23:14 2009
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> spool password.log
SQL> --
SQL> connect sys/oracle as sysdba
Connected.
SQL> --
SQL> def USERNAME=DBNWS
SQL> --
SQL> def PASSWORD=DBNWS
SQL> --
SQL> def HOSTNAME=&1
SQL> --
SQL> DROP USER &USERNAME CASCADE
2 /
old 1: DROP USER &USERNAME CASCADE
new 1: DROP USER DBNWS CASCADE
User dropped.
SQL> grant connect, resource to &USERNAME identified by &PASSWORD
2 /
old 1: grant connect, resource to &USERNAME identified by &PASSWORD
new 1: grant connect, resource to DBNWS identified by DBNWS
Grant succeeded.
SQL> begin
2 dbms_network_acl_admin.drop_acl('localhost.xml');
3 end;
4 /
PL/SQL procedure successfully completed.
SQL> begin
2 dbms_network_acl_admin.create_acl('localhost.xml', 'ACL for &HOSTNAME', '&USERNAME', true, 'connect');
3 dbms_network_acl_admin.assign_acl('localhost.xml', '&HOSTNAME');
4 end;
5 /
old 2: dbms_network_acl_admin.create_acl('localhost.xml', 'ACL for &HOSTNAME', '&USERNAME', true, 'connect');
new 2: dbms_network_acl_admin.create_acl('localhost.xml', 'ACL for localhost', 'DBNWS', true, 'connect');
old 3: dbms_network_acl_admin.assign_acl('localhost.xml', '&HOSTNAME');
new 3: dbms_network_acl_admin.assign_acl('localhost.xml', 'localhost');
PL/SQL procedure successfully completed.
SQL> COMMIT
2 /
Commit complete.
SQL> GRANT XDB_WEBSERVICES TO &USERNAME
2 /
old 1: GRANT XDB_WEBSERVICES TO &USERNAME
new 1: GRANT XDB_WEBSERVICES TO DBNWS
Grant succeeded.
SQL> GRANT XDB_WEBSERVICES_OVER_HTTP TO &USERNAME
2 /
old 1: GRANT XDB_WEBSERVICES_OVER_HTTP TO &USERNAME
new 1: GRANT XDB_WEBSERVICES_OVER_HTTP TO DBNWS
Grant succeeded.
SQL> connect &USERNAME/&PASSWORD
Connected.
SQL> --
SQL> create or replace function GET_SQRT (INPUT_VALUE number) return number
2 as
3 begin
4 return SQRT(2);
5 end;
6 /
Function created.
SQL> select GET_SQRT(2)
2 from dual
3 /
GET_SQRT(2)
1.41421356
SQL> VAR URL VARCHAR2(4000)
SQL> --
SQL> BEGIN
2 :url := 'http://&USERNAME:&PASSWORD@&HOSTNAME:' || dbms_xdb.getHttpPort() || '/orawsv/&USERNAME/GET_SQRT';
3 end;
4 /
old 2: :url := 'http://&USERNAME:&PASSWORD@&HOSTNAME:' || dbms_xdb.getHttpPort() || '/orawsv/&USERNAME/GET_SQRT';
new 2: :url := 'http://DBNWS:DBNWS@localhost:' || dbms_xdb.getHttpPort() || '/orawsv/DBNWS/GET_SQRT';
PL/SQL procedure successfully completed.
SQL> print url
URL
http://DBNWS:DBNWS@localhost:80/orawsv/DBNWS/GET_SQRT
SQL> --
SQL> set long 100000 pages 0 lines 256
SQL> --
SQL> select httpuritype( :url || '?wsdl' ).getXML() from dual
2 /
<definitions name="GET_SQRT" targetNamespace="http://xmlns.oracle.com/orawsv/DBNWS/GET_SQRT" xmlns="http://schemas.xmlsoap.org/wsdl/
" xmlns:tns="http://xmlns.oracle.com/orawsv/DBNWS/GET_SQRT" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://
schemas.xmlsoap.org/wsdl/soap/">
<types>
<xsd:schema targetNamespace="http://xmlns.oracle.com/orawsv/DBNWS/GET_SQRT" elementFormDefault="qualified">
<xsd:element name="SNUMBER-GET_SQRTInput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="INPUT_VALUE-NUMBER-IN" type="xsd:double"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="GET_SQRTOutput">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="RETURN" type="xsd:double"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<message name="GET_SQRTInputMessage">
<part name="parameters" element="tns:SNUMBER-GET_SQRTInput"/>
</message>
<message name="GET_SQRTOutputMessage">
<part name="parameters" element="tns:GET_SQRTOutput"/>
</message>
<portType name="GET_SQRTPortType">
<operation name="GET_SQRT">
<input message="tns:GET_SQRTInputMessage"/>
<output message="tns:GET_SQRTOutputMessage"/>
</operation>
</portType>
<binding name="GET_SQRTBinding" type="tns:GET_SQRTPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GET_SQRT">
<soap:operation soapAction="GET_SQRT"/>
<input>
<soap:body parts="parameters" use="literal"/>
</input>
<output>
<soap:body parts="parameters" use="literal"/>
</output>
</operation>
</binding>
<service name="GET_SQRTService">
<documentation>Oracle Web Service</documentation>
<port name="GET_SQRTPort" binding="tns:GET_SQRTBinding">
<soap:address location="http://localhost:80/orawsv/DBNWS/GET_SQRT"/>
</port>
</service>
</definitions>
SQL> set serveroutput on
SQL> --
SQL> DECLARE
2 V_SOAP_REQUEST XMLTYPE := XMLTYPE(
3 '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/
encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
4 <SOAP-ENV:Body>
5 <m:SNUMBER-GET_SQRTInput xmlns:m="http://xmlns.oracle.com/orawsv/&USERNAME/GET_SQRT">
6 <m:INPUT_VALUE-NUMBER-IN>2</m:INPUT_VALUE-NUMBER-IN>
7 </m:SNUMBER-GET_SQRTInput>
8 </SOAP-ENV:Body>
9 </SOAP-ENV:Envelope>');
10 V_SOAP_REQUEST_TEXT CLOB := V_SOAP_REQUEST.getClobVal();
11 V_REQUEST UTL_HTTP.REQ;
12 V_RESPONSE UTL_HTTP.RESP;
13 V_BUFFER VARCHAR2(1024);
14 BEGIN
15
16 V_REQUEST := UTL_HTTP.BEGIN_REQUEST(URL => :URL, METHOD => 'POST');
17 UTL_HTTP.SET_HEADER(V_REQUEST, 'User-Agent', 'Mozilla/4.0');
18 V_REQUEST.METHOD := 'POST';
19 UTL_HTTP.SET_HEADER (R => V_REQUEST, NAME => 'Content-Length', VALUE => DBMS_LOB.GETLENGTH(V_SOAP_REQUEST_TEXT));
20 UTL_HTTP.WRITE_TEXT (R => V_REQUEST, DATA => V_SOAP_REQUEST_TEXT);
21
22 V_RESPONSE := UTL_HTTP.GET_RESPONSE(V_REQUEST);
23 LOOP
24 UTL_HTTP.READ_LINE(V_RESPONSE, V_BUFFER, TRUE);
25 DBMS_OUTPUT.PUT_LINE(V_BUFFER);
26 END LOOP;
27 UTL_HTTP.END_RESPONSE(V_RESPONSE);
28 EXCEPTION
29 WHEN UTL_HTTP.END_OF_BODY THEN
30 UTL_HTTP.END_RESPONSE(V_RESPONSE);
31 END;
32 /
old 5: <m:SNUMBER-GET_SQRTInput xmlns:m="http://xmlns.oracle.com/orawsv/&USERNAME/GET_SQRT">
new 5: <m:SNUMBER-GET_SQRTInput xmlns:m="http://xmlns.oracle.com/orawsv/DBNWS/GET_SQRT">
<?xml version="1.0" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GET_SQRTOutput xmlns="http://xmlns.oracle.com/orawsv/DBNWS/GET_SQRT">
<RETURN>1.41421356237309504880168872420969807857</RETURN>
</GET_SQRTOutput>
</soap:Body>
</soap:Envelope>
PL/SQL procedure successfully completed.
SQL> set serveroutput on
SQL> --
SQL>
SQL> -
Error calling web service from Adobe form
Hi Experts,
While calling web service form my adobe form, i was getting an error as below saying "Error attempting to read from the file" followed by the URL of my web service.
To create the above scenario i followed the following steps:
1. Create a Function module and create a web service from that function module.
2. Through SOAMANAGER, download the WSDL file for the generated web service.
3. Create an Adobe form with an empty Interface and create a new Data Connection on the form using the downloaded WSDL.
4. Generate this adobe form using an ABAP report.
Kindly extend help on this to figure out if I'm missing something!!!Well questions related to Web Services have been answered here in past, please Search on SCN for links to it.
-
Error in BPM application in calling web service
Hello,
I have created a BPM application with 3 steps first 2 are human steps and third one is automated step which calls web service interface via WSDL (external system).
On third step my process goes to failure and has below error.
any help.
com.sap.glx.core.kernel.api.TransitionException: An exception occurred while executing the script "_Vehicle_Insurance_Proposal_Process:AUTOMATED_ACTIVITY_Enter_Contract_into_Alice(
com.sap.glx.adapter.BPMNAdapter:Token_0_Vehicle_Insurance_Proposal_Process_fe3c0f2f9854595480f1540a14a9dff8 token,
com.sap.glx.adapter.BPMNAdapter:Instance_0_Vehicle_Insurance_Proposal_Process_fe3c0f2f9854595480f1540a14a9dff8 parent,
com.sap.glx.adapter.internal.ContainerAdapter:Context_0_DO_Context_fe3c0f2f9854595480f1540a14a9dff8 context_0){
exit=new com.sap.glx.adapter.BPMNAdapter:Exit();
exit:addParameter(token);
exit:addParameter(parent);
exit:addParameter(context_0);
exit:onActivation("4A953ED620341B80924811DECB86002170E8BE7E", parent, token);
delete exit;
controller=new com.sap.glx.adapter.internal.ExceptionAdapter:ExceptionController();
controller:setContext(token);
delete controller;
callscope=new com.sap.glx.adapter.internal.TypeRegistry:Scope_0_Vehicle_Insurance_Proposal_Process_fe3c0f2f9854595480f1540a14a9dff8(parent);
call=new com.sap.glx.adapter.UnifiedConnectivityAdapter:Call_0_Enter_Contract_into_Alice_fe3c0f2f9854595480f1540a14a9dff8(callscope);
request=callscope:instantiate("urn:sap-com:document:sap:soap:functions:mc-style", "4A96538007F4ED1192ED11DECAA6002170E8BE7E");
mapper=new com.sap.glx.adapter.internal.Transformer:DataMapper();
yves_in=new com.sap.glx.adapter.internal.Transformer:Data();
yves_out=new com.sap.glx.adapter.internal.Transformer:Data();
yves_out:setData("urn:sap-com:document:sap:soap:functions:mc-style", "$urn:sap-com:document:sap:soap:functions:mc-style:ZTstWebService", request, "834EAE2B040BBEAC78BAF131CDC66B6B");
mapper:map("4A953ED620341B83924811DE8E24002170E8BE7E_fe3c0f2f9854595480f1540a14a9dff8", yves_in, yves_out);
request=yves_out:getData("urn:sap-com:document:sap:soap:functions:mc-style", "$urn:sap-com:document:sap:soap:functions:mc-style:ZTstWebService", "834EAE2B040BBEAC78BAF131CDC66B6B");
delete yves_in;
delete yves_out;
delete mapper;
call:setInputData("urn:sap-com:document:sap:soap:functions:mc-style", "$urn:sap-com:document:sap:soap:functions:mc-style:ZTstWebService", request);
response=callscope:instantiate("urn:sap-com:document:sap:soap:functions:mc-style", "4A96538007FC190192ED11DE98EE002170E8BE7E");
call:setOutputData("urn:sap-com:document:sap:soap:functions:mc-style", "$urn:sap-com:document:sap:soap:functions:mc-style:ZTstWebServiceResponse", response);
call:invoke();
response=call:getOutputData("urn:sap-com:document:sap:soap:functions:mc-style", "$urn:sap-com:document:sap:soap:functions:mc-style:ZTstWebServiceResponse");
mapper=new com.sap.glx.adapter.internal.Transformer:DataMapper();
yves_in=new com.sap.glx.adapter.internal.Transformer:Data();
yves_out=new com.sap.glx.adapter.internal.Transformer:Data();
yves_in:setData("urn:sap-com:document:sap:soap:functions:mc-style", "$urn:sap-com:document:sap:soap:functions:mc-style:ZTstWebServiceResponse", response, "834EAE2B040BBEAC78BAF131CDC66B6B");
data=context_0:getData();
scope=new com.sap.glx.adapter.internal.TypeRegistry:GenericScope(null, "D344D8196275E4C40D7D4B131B0136BB");
copy=scope:copy(data);
delete scope;
yves_out:setData("sap.com/glx/", "$sap.com/glx/:DO_Context", copy, "D344D8196275E4C40D7D4B131B0136BB");
mapper:map("4A953ED620341B85924811DEBFFC002170E8BE7E_fe3c0f2f9854595480f1540a14a9dff8", yves_in, yves_out);
data=yves_out:getData("sap.com/glx/", "$sap.com/glx/:DO_Context", "D344D8196275E4C40D7D4B131B0136BB");
context_0:setData(data);
delete yves_in;
delete yves_out;
delete mapper;
delete call;
delete callscope;
token:state=3;
com.sap.glx.core.kernel.execution.transition.ScriptTransition.execute(ScriptTransition.java:69)
com.sap.glx.core.kernel.execution.transition.Transition.commence(Transition.java:241)
com.sap.glx.core.kernel.execution.LeaderWorkerPool$Follower.run(LeaderWorkerPool.java:118)
com.sap.glx.core.resource.impl.common.WorkWrapper.run(WorkWrapper.java:58)
com.sap.glx.core.resource.impl.j2ee.ServiceUserManager$ServiceUserImpersonator$1.run(ServiceUserManager.java:116)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAs(Subject.java:337)
com.sap.glx.core.resource.impl.j2ee.ServiceUserManager$ServiceUserImpersonator.run(ServiceUserManager.java:114)
com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
java.security.AccessController.doPrivileged(Native Method)
com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:169)
Regards,
NaeemHello,
I have found some Debug entries into my log file when this BPM process executes and go in Suspend mode. I do not understand the error. But this Begun entries have Green symbol which I understand there should not be any problem. But then why my process goes to Suspend mode??? If you like then I can also provide this Debug entry message from log file in order to get the idea about this problem.
I use Logical destination on automatic BPM step. Which has WSDL link. This wsdl link I have test into WS Navigator which works fine. But I am wondering why it is not working in my BPM process?????
does any one has idea what to do?
Regards,
Naeem -
Is it possible to call web service from ABAP SAP 4.6 c..If yes how
Hi Friends,
Is it possible to call web service from ABAP-SAP 4.6 c..If yes Could you please let me know how.
Thanks in Advance.
Murali Krishna K
Edited by: Murali Krishna Kakarla on Jan 26, 2008 7:09 PM
Edited by: Murali Krishna Kakarla on Jan 26, 2008 7:11 PMOlivier CHRETIEN wrote:>
> Hi Terry,
>
> So these function modules must use the SAPHTTPA RFC destination which uses the exe saphttp.exe ?
>
> How much abap code lines do you have for a web service call ?
> Do you have to code the call specifically for each different web service ?
> Are you able to use the WSDL ?
>
> Nice job if you have coded your own private SOAP runtime !
>
> But I don't think this is an easy solution for everybody...
>
> Regards,
>
> Olivier
Yes, SAPHTTPA (runs on application server) and/or SAPHTTP (runs on front-end pc), one of which, is required for HTTP communication. So far, nothing too elaborate as far as SOAP goes, but the logic is simplistic. Here's some sample code:
DEST = 'SAPHTTPA'.
TRANSLATE HOST TO LOWER CASE.
MYURL = 'wssrvTest/Service.asmx/GetByOrderItem'.
CONCATENATE HOST MYURL INTO MYURL.
REQUEST_HEADERS-DATA =
'Content-type: application/x-www-form-urlencoded'.
APPEND REQUEST_HEADERS.
CLEAR REQUEST_HEADERS.
*........Convert Order Number to External Format........................
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ORDER
IMPORTING
OUTPUT = ORDER.
*........Convert Item Number to External Format.........................
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ITEM
IMPORTING
OUTPUT = ITEM.
*........Convert Material Number to External Format.....................
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = MATERIAL
IMPORTING
OUTPUT = MATERIAL.
CONCATENATE 'sOrder=' ORDER
INTO REQUEST_BODY-DATA.
APPEND REQUEST_BODY.
CLEAR REQUEST_BODY.
CONCATENATE '&sItem=' ITEM
INTO REQUEST_BODY-DATA.
APPEND REQUEST_BODY.
CLEAR REQUEST_BODY.
CONCATENATE '&sMaterial=' MATERIAL
INTO REQUEST_BODY-DATA.
APPEND REQUEST_BODY.
CLEAR REQUEST_BODY.
CALL FUNCTION 'HTTP_POST'
EXPORTING
ABSOLUTE_URI = MYURL
RFC_DESTINATION = DEST
BLANKSTOCRLF = 'X'
TABLES
RESPONSE_ENTITY_BODY = RESPONSE_BODY
REQUEST_ENTITY_BODY = REQUEST_BODY
RESPONSE_HEADERS = RESPONSE_HEADERS
REQUEST_HEADERS = REQUEST_HEADERS
EXCEPTIONS
CONNECT_FAILED = 1
TIMEOUT = 2
INTERNAL_ERROR = 3
TCPIP_ERROR = 4
DATA_ERROR = 5
SYSTEM_FAILURE = 6
COMMUNICATION_FAILURE = 7
OTHERS = 8.
CHECK SY-SUBRC = 0. "more appropriate msg goes here
LOOP AT RESPONSE_BODY.
IF RESPONSE_BODY+0(7) <> '<string' AND
RESPONSE_BODY+0(8) <> '</string' AND
RESPONSE_BODY+0(5) <> '<?xml'.
SPLIT RESPONSE_BODY-DATA AT '=' INTO FIELD_NAME FIELD_VALUE.
TRANSLATE FIELD_NAME TO UPPER CASE.
CASE FIELD_NAME.
WHEN 'HEIGHT'.
HEIGHT = FIELD_VALUE.
WHEN 'WIDTH'.
WIDTH = FIELD_VALUE.
WHEN 'LENGTH'.
LENGTH = FIELD_VALUE.
WHEN 'WEIGHT'.
WEIGHT = FIELD_VALUE.
WHEN 'QTY'.
QTY = FIELD_VALUE.
ENDCASE.
ENDIF.
ENDLOOP.
Hope this helps...
Terry
Edited by: Terry West on Feb 4, 2008 3:08 PM -
How do i call web services from SAP ABAP
Hello,
Ian working with .net team. they are using sap .net Connector to connect SAP. But my job is In SAP side when Purchase Requisition is created, I have to call web services from ABAP and i have to pass the Purchase Requisition number to web service(.net Program). Please help me how to call web services from ABAP and how to pass value. Any one help me with example.
Thanks
RaviKumarHi Ravi,
If you can call EJB from ABAP and from EJB call Web service which you want to call. I am giving code to write in EJB business method processFunction.
public void processFunction(Function function) {
IRepository repository;
repository = new Repository("TestRepository");
JCO.MetaData fmeta = new JCO.MetaData("ZTEST_EJB");
fmeta.addInfo("REQUTEXT", JCO.TYPE_CHAR, 255, 0, 0,
JCO.IMPORT_PARAMETER, null);
fmeta.addInfo("ECHOTEXT", JCO.TYPE_CHAR, 255, 0, 0,
JCO.EXPORT_PARAMETER, null);
fmeta.addInfo("RESPTEXT", JCO.TYPE_CHAR, 255, 0, 0,
JCO.EXPORT_PARAMETER, null);
repository.addFunctionInterfaceToCache(fmeta);
JCO.ParameterList input =
function.getImportParameterList();
JCO.ParameterList output =
function.getExportParameterList();
JCO.ParameterList tables =
function.getTableParameterList();
if (function.getName().equals("ZTEST_EJB")) {
output.setValue(input.getCharArray("REQUTEXT"),"ECHOTEXT");
output.setValue("This is a response " + table.getString("E_NAME") +" " + output.getName(1), "RESPTEXT");
else if (function.getName().equals("STFC_STRUCTURE")) {
JCO.Structure sin = input.getStructure("IMPORTSTRUCT");
JCO.Structure sout = (JCO.Structure)sin.clone();
try {
System.out.println(sin);
catch (Exception ex) {
System.out.println(ex);
output.setValue(sout,"ECHOSTRUCT");
output.setValue("This is a response from Example5.java","RESPTEXT");
}//if
Here REQUTEXT, ECHOTEXT are import parameter and RESPTEXT is the Export parameter of Function module ZTEST_EJB in SAP.
Here from this bisuness method you can call web service which you want and give back the result of webservice to ABAP F.M.
Regards,
Bhavik -
Problem call Web Service SAML on PI 7.0
Hi experts,
I have a problem very estrange on one scenario and maybe somebody could help me:
Our PI version is 7.0.
The BPM has got the following steps:
- Call WebService for get the SAML. Message Synchronous with request and response Authentification.
- We add the Authentification Response on Envelope message.
- Call web Service with Envelope, inside of this one there is the Authentification (step 1).
The las Web Service always returns that the Authentification is error.
We execute the same steps manually using SAOPGui program ( a free program for test WebService ) and the same steps works.. and the structures are the same, but on PI 7.0 never works.
We researh on forums and we have seen that the SAML Authentification is soported only for PI 7.1.
Could anybody confirm it? It is possible use SAML Authentification on PI 7.0? Are there other process to execute a SAML WebService using PI 7.0?
Any response or any idea will be very appreciated.
Thank you very much...
Regards,
GemmaIt is possible use SAML Authentification on PI 7.0?
at least the help section on 7.0 mentions the use of SAML...check this link
http://help.sap.com/saphelp_nw70/helpdata/EN/47/2388909a1d2de9e10000000a1553f7/frameset.htm
Regards,
Abhishek.
Maybe you are looking for
-
How do I get my Course Manager to display in English and not German?
My company is registered in both Germany and United Kingdom, and conduct business mainly in English Language. I signed up for iTunesU in order to create courses to share on iTunesU on behalf of my college. However, each time I insert the link below t
-
HT2506 how do you set Preview as the default for opening pdf in browser?
How do I set the Preview application to be the default for viewing PDF's in while in Safari? Previously, while in Safari and clicking on links to PDF's, they would display with buttons on the bottom that made it simple to view and download the PDF.
-
Hi Guys, We are doing File - AS2 and we are getting the error as below. I have tried both with and with out the dynamic attributes and with out the certiifcates as well and getting the same error as below Delivering the message to the application usi
-
My monitor(projector) has no speakers and I have no receiver that supports the optical audio output. Is there a way to preserve the hd video going to my monitor while separating the audio so I can use a sound system to amplify the sound? I'm nervous
-
I'm used to having alot of control over the video that I export like in After Effects or Premiere. How can I chose custom widths, hieghts and compression? There seems to be alot of options missing in FCPX. Is there a way to unlock the ability to have