Role Revocation using UserProfile CI in web service

Hi All,
I have created a web service for consuming the UserProfile CI and am trying to perform operations like creating a new User in the ERP, assigning roles and revoking roles programmatically.
Problem is, I cannot find a way to revoke a role already assigned to a user. I have added the WSDL as a web reference in a C# project, and when I check the code generated, there is just no method for deleting/removing/revoking a role.
Am I missing something here?
Thanks for your help.
Thanks,
Mayank

PeopleSoft already collects this for you.
You can retrieve the request and response xml using the GetSyncLogData method of the %IntBroker class
PeopleSoft also uses this to present you the request and response xml in the services monitor.
Line of code from the pageactivate of AMM_RAWXML4
+&str = %IntBroker.GetSyncLogData(AMM_SYNCLIST.GUID, decodelogtype(AMM_DERIVED.LOGTYPE), False);+
You can retrieve the TransactionID (first parameter) by running a select on PSIBLOGHDR where IB_OPERATIONNAME = 'YOUR_CI_SERVICE_OPERATION_NAME'
PeopleBooks on this method:
http://docs.oracle.com/cd/E28394_01/pt852pbh1/eng/psbooks/tpcr/book.htm?File=tpcr/htm/tpcr27.htm#57248C9C_1355AB6F02A_6CF7
Syntax
GetSyncLogData(TransactionId, %LogType [, Archive])
Description
Use the GetSyncLogData method to return a log containing information about the specified synchronous message.
You can use this information for debugging. Using this method, you can obtain the request and response data in a synchronous request, both pre- and post-transformation.
This function is used in the PeopleCode for the Message Monitor.
Parameters
TransactionId
Specify the transaction ID of the published message.
LogType
Specify the type of log you want returned, based on the type of message. See below for the valid values.
Archive
Specify whether to retrieve any archived logs as well. This parameter takes a Boolean value: true to return archived logs, false otherwise. The default value is false.
For the LogType parameter, the valid values are:
Constant Value
Description
%Sync_RequestOrig
Gets the log for a sync request original data message.
%Sync_RequestTrans
Gets the log for a sync request transformed data message.
%Sync_ResponseOrig
Gets the log for a sync response original data message.
%Sync_ResponseTrans
Gets the log for a sync response transformed data message.
Returns
An XML string containing the log data.

Similar Messages

  • Error "Deserialisation failed" when trying to use BAPI via a web service

    I created a web service in BW with the help from the wizard WS_WZD_START. The web service contains
    (among others) the RFC BAPI_ODSO_READ_DATA_UC.
    The web service runs OK & can be used from the SAP Web Services Navigator.
    Now when i try to use the web service from Delphi i get
    an error: "Deserialisation failed" (SimpleTransformationFault) "ODSOBJECT erwartet".
    The ODSOBJECT parameter is there to be sure.
    I saw the same error before in this forum but found no real solution there. I am using BW 6.40 & SP 12.
    XML sent:
    <?xml version="1.0" encoding="UTF-8" ?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <SOAP-ENV:Header>
    <sapsess:Session xmlns:sapsess="http://www.sap.com/webas/630/soap/features/session/">
    <enableSession>true</enableSession></sapsess:Session></SOAP-ENV:Header>
    <SOAP-ENV:Body><ns1:BAPI_ODSO_READ_DATA_UC xmlns:ns1='urn:sap-com:document:sap:rfc:functions'>
    <DATALAYOUT></DATALAYOUT><INFOOBJECTLIST><item>
    <INFOOBJECT>/CIVGM/NUM</INFOOBJECT></item></INFOOBJECTLIST>
    <MAXROWS>2</MAXROWS><ODSOBJECT>/CIVGM/BPLO001</ODSOBJECT><ORDERBY></ORDERBY>
    <RESULTDATA></RESULTDATA><SELECTIONCRITERIA></SELECTIONCRITERIA><UNICODE>N</UNICODE>
    </ns1:BAPI_ODSO_READ_DATA_UC></SOAP-ENV:Body></SOAP-ENV:Envelope>
    Answer:
    <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Body><soap-env:Fault><faultcode>soap-env:Client</faultcode>
    <faultstring xml:lang="en">Deserialisation failed</faultstring>
    <detail><n0:SimpleTransformationFault xmlns:n0="http://www.sap.com/transformation-templates">
    <MainName>/1BCDWB/WSS0050825153239449000</MainName>
    <ProgName>/1BCDWB/WSS0050825153239449000</ProgName>
    <Line>73 </Line>
    <Valid>X</Valid>
    <MatchFault>
    <DescriptionText>Element 'ODSOBJECT' erwartet</DescriptionText>
    <TokenType>S</TokenType>
    <TokenName>CODEPAGE</TokenName>
    <TokenNameSpace>urn:sap-com:document:sap:rfc:functions</TokenNameSpace>
    <TokenValue></TokenValue>
    </MatchFault><Caller>
    <Class>CL_SRG_RFC_PROXY_CONTEXT</Class>
    <Method>IF_SXML_PART~DECODE</Method>
    <Positions>1 </Positions>
    </Caller></n0:SimpleTransformationFault>
    </detail></soap-env:Fault>
    </soap-env:Body></soap-env:Envelope>
    The same error occurs when I take the exact XML that was sent from Web Services Navigator (the XML that worked) and send that from Delphi.
    What could be wrong?

    Hi Simon,
       Other thing you can do is compare the HTTP requests (including header) from both Delphi and XMLSPY. I suspect if the SOAP message is same in both case the difference might be in the header. But one thing is certain, WAS can not respond differently for same request, don't you think so ?
    Cheers,
    Sanjeev

  • Migrating a Eclipse Project to JDeveloper and use it as a web service

    Hi Guys,
    I have a problem with migrating a Eclipse Project (EP) to JDeveloper. I know there are several threads about the problem out there but none of these fit my needs.
    So, here is the problem:
    I didn't had any problems migrating EPs to JDev in the past but this project is neither a .jar/.lib nor could I change it to one of those types. The project hase some additional filesto work. These files areare libs and owl-mappings for Jena/Pellet ( [http://jena.sourceforge.net/|http://jena.sourceforge.net/] ).
    My porblem is that I don't know who to migrate the project to JDev and then use it as a web service, while the file structure stays the same plus everything is uploaded to Oracle as a web service. Meaning everything has to be included in one java package. Or am i wrong?
    The file structure looks like this (from the EP):
    src\*.java
    owl\*.owl
    lib\*.lib
    location-mapping.n3
    expdt.props
    The Libraries aren't a problem. They are all .jar-files but could be easily included in the project (JDev) but I don't know how to handle the other files. Especially the much needed owl files :(
    Maybe I'm doing it all wrong. My Goal is to use the EP as a web servies for a business process to enforce rulings and obligations. I'm kinda stumped...
    Greetings,
    Sebastian

    Thank you very much, Shay. It helped regaining overview of the project files. Before all additional files were in the AppFolder.
    I got to a point where I (hopefully) only got a problem with the directory matching (which is needed by jena).
    Tanks again.
    Sebastian

  • Help me!    How to use it as a web service from third party application?

    After using JDeveloper to develop BSSV object e.g. JP550010, how to use it as a web service from third party application?
    TKS!

    Obviously the OP is working on a project for the Bead Society of Southeastern Virginia http://www.bssv.org. Oh, wait, maybe he's researching the Blueberry Shoestring Plant Virus http://abbreviations.yourdictionary.com/bssv
    :D
    John

  • Use of inheritance in web services

    Hi,
    I'm new to Flex development and have been developing a PPro extension which also uses a couple of web services to obtain information about the media and sequences.
    One of the web services I use gives me information about a project.  This project contans a list of clipmarks (sub-clips) that will become a sequence in PPro.  The problem is that the web service clipmark class is the superclass of either media_clipmark or audio_clipmark, and the items it puts in the list on the server side are of these subclass types.  So you get a list of say 3 media_clipmarks.
    BUT when then appear in the results in Flex they have been reduced to their common superclass clipmark and thus don't contain any of their specialised properties.  Is inheritance of server side class not supported by the proxy generator code in Flash Builder 4?  Is there any way to achieve the result I want - that is a list of clipmarks which are either media_clipmarks or audio_clipmarks and get the specialised properties as appropriate?
    I am assured that the server is correctly adding these to the project and I assume it is the declaration of the project as having List<clipmark> that is causing the problem.
    If this question has already been answered please point me to the relevant answer - couldn't find it by search.
    Thanks
    John

    You can't send the special charater as it is, replce them with their equivalent notation
    "&" with "&amp;"
    "<" with "&lt;"
    ">" with "&gt;"
    "\"" with "&quot;"
    "'" with "&apos;" etc
    Dinesh
    CRMIT

  • What stub code does APEX uses when making a web service call ?

    What stub code does APEX uses when making a web service call (manual web service reference)
    I am using APEX (which was part of the 11g installation).

    Hi Steve,
    Some options for the same issue:
    web service time out
    How to check for Web Srvice Timeout in ABAP Proxy call
    Regards
    Vijaya

  • Example using an SAP RFC (web service)

    Is there a good example out there for using an SAP RFC (web service) with Xcelsius 2008?  I cannot seem to get it to work.  I am trying to use the SAP sample RFC called BAPI_FLIGHT_GETLIST.  If someone can get an example to work using this BAPI, I would love to see it.
    Thanks,
    Kenneth

    hi sap guys.. can ne 1 send me the complete documents on tc- st01.. system trace...  i'll be thankful to you. Iam new to this forums can i dont know how  to posta  queston... just iam posting this queston in one of  the queston's reply. Please help me out abt TC- ST01 and how to post a queston in this forums..
      Thanks in Advance.
      Regards,
      Younus

  • Sending Table data using  RFC as a Web services

    Hi guys,
      I want to send ztable data from CRM system using RFC as a web service , but i want to read records only for a particular date and time , so how can i go about this scenario.
    regards;Keith.

    Hi Keith,
    for that scenario you need two RFC adapter. Of course you can use as well proxies as dicussed before. Forget about webservices.
    You told me above that you have z-table? add a date/time field and if a set will be inserted fill those fields with sy-datum / sy-uzeit.
    Your CRM select can now easy select only the actual data.
    Because of performance i would recommed a asynchron scenario, for example:
    A ABAP programm is selecting the data and is calling a module like
    CALL function 'myFunction'
    DESTINATION 'mySM59'
    IN BACKGROUND TASK
    This function module is build anywhere and imported into Repository and is working a outbound interface. Inbound interface is a second function module, which is imported from R/3. The ABAP source code of that module put the data to SAP system.
    The CRM ABAP programm will be called periodicly by a job.
    But!! I dont know ur requirements. Unfortunately you are one of thesse persons, who are asking without giving details. I'm not the prophet...
    Regards,
    Udo

  • Oracle script that was used to confirm the web services working????

    I am having major problems with the top 2 web servers and top 3 app servers, which would be the cluster facing our external customers. This is how our our web services are deployed. I used an oracle script that was used to confirm the web services worked when I installed this working with the oracle consultant taken from metalink. I simply edited it for our web services.
    Can’t deploy web services. Using a script. 2 work on 2 of the machines. Doesn't always work on third machines. Third web service doesn't work on any of the machines.
    Please help, Thank you

    Please can you provide more information, its really not much to work with when u just my web server is not working. any log files ...error messages ?

  • How to delete meeting through API for Using Adobe Connect 8 Web Services

    Using Adobe Connect 8 Web Services support "Create meetings" API to create a Adobe Connect meeting.
    But I can't find "Delete meeting" API similar to delete meeting,Could you tell me how to delete meeting through API.
    Thanks!

    You must have used sco-create to create meeting. To delete a meeting, use sco-delete API call.
    Find its documentation here.

  • Using SharePoint Lists.AddAttachments web service in LiveCycle

    Hello everyone,
    I have implemented a workflow process that saves data from a PDF form to a SharePoint list, using its Lists.UpdateListItems web service.  This works fine with no issues.  Now, I am trying to take this a step further by also attaching the associated PDF form to the list item, using the AddAttachments web service, but have been unsuccessful.  I keep getting an empty web response back.
    Has anyone been able to use this web service successfully within LiveCycle, particularly with PDF documents?  Please let me know, any help would be appreciated. 
    Thanks,
    cdmh

    Hi rdoe,
    Do you have any update for this issue?
    Whether you checked as Dats said.
    In addition, if you have found a solution for this issue, please share it, it will be beneficial to others in this forum who meet the same issue in the future.
    Best Regards,
    Wendy
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Wendy Li
    TechNet Community Support

  • [svn] 3822: update the test to use qa-regress axis web service target

    Revision: 3822
    Author: [email protected]
    Date: 2008-10-22 11:53:21 -0700 (Wed, 22 Oct 2008)
    Log Message:
    update the test to use qa-regress axis web service target
    Modified Paths:
    blazeds/branches/3.0.x/qa/apps/qa-manual/ipv6/proxyservice/webService/ipv6_ws_dynamicurl. mxml

    I solved that url problem. But there is still something I need to ask.
    First of all, the solution is the following;
         I have implemented my asp.net web service with visual studio, creating web service application. when I implement the project, it shows how to send requests( soap, http ), and there is http post request.( no get ). then I create and http post service with flash builder, the problem was that I needed to add a submit parameter to that service call since this is a post request to asp.net( Content-Type: application/x-www-form-urlencoded ). when I add this parameter it works well.
         however I want my service to return xml directly. In a different post http://forums.adobe.com/thread/574684?tstart=0 the problem is solved for PHP http requests. but when I try to implement in the same way it gives following error:
    any solution for that? thx

  • How can I use XMLBeans in a Web Services client?

    How can I use XMLBeans in a standalone Java client with a Web Service?
    I posted the message below earlier in the year, but have not yet been successful
    in my
    attempts.
    regards
    Eddie
    Hi,
    I'm trying to using XMLBeans to send a document to a web service from a standalone
    Java client. I'm using the PurchaseOrder (easypo) example document, and the service
    expects a parameter of type PurchaseOrderDocument. The client proxy class generated
    by WebLogic Workshop, however, expects to send a parameter of type PurchaseOrder.
    In the client, I can instantiate a PurchaseOrderDocument, and then obtain a PurchaseOrder
    (e.g. pod.getPurchaseOrder() ), but the returned class is not compatible with
    the PurchaseOrder type that the client proxy expects.
    In a previous attempt (not using Workshop), the client would not compile because
    it expected to send a non-abstract class with a public default constructor (presumably
    a JAX-RPC requirement), and XMLBeans had generated an interface.
    Any help would be greatly appreciated!
    thanks & regards
    Eddie

    I have been experiencing similar problems with the HTML Editor and have managed to find an answer that should start to answer some of my questions. The Apex HTML Editor Standard is actually an HTML editor called FCKeditor. The FCKeditor has a Javascript API that can be found at http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/JavaScript_API. Unfortuately this doesn't seem to give the whole answer and I found more at http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:49607.
    I needed to get the text entered within my html editor standard (e.g. P1_MYTEXT) and use it within my javascript function. I did this by using the following script
    <script language="JavaScript" type="text/javascript">
    function showtext(){
    var oEditor = FCKeditorAPI.GetInstance('P1_MYTEXT');
    var editortext = escape(oEditor.GetXHTML(oEditor.FormatOutput));
    alert(editortext);
    </script>
    Hope this helps.
    Matthew

  • 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>

  • Using WS-Security with Web Service Controls in WLI 8.1 SP3

    We have a process that calls a web service hosted on a .NET environment. The technique we have used is to generate a service control from the web service WSDL and call that control from a process. The web service is protected using a WS-Security usernameToken policy. The problem is that the .NET environment requires the wsse:Nonce and wsu:Created elements to be provided along with the token and I cannot see how I can specify this using a wsse policy file in WebLogic workshop. Does anyone have any advice for the best way to add this information to the security element in the SOAP header from within a WLI process? I've seen some example code for a java web service client, but that would not really fit with the control-based approach normally adopted in a WLI environment.

    You won't be able to do this using the WSSE file.
    An easy way to get around this is to use an XML Bean built from the WS-Security XML Schema. You'll have to read the WS-Security spec to determine how to create the nonce, but you'll be able to convert this XML Bean into the Element[] that the setOutputHeaders() method, which is on the service control you call the .NET Web Service with.
    Regards,
    Mike Wooten

Maybe you are looking for