CFC as a web service with remote functions

I've built a Flash application that talks to a database
through a web service CFC using remote functions. I don't wany
anybody to see the generated documentation, and I definitely don't
want anybody consuming the service and using the functions because
it could cause serious problems. Should I scrap this whole project?
Is this a major security risk?

Consult the attributes roles and access within <cffunction
link:
http://livedocs.macromedia.com/coldfusion/7/htmldocs/00000263.htm#2852457
Even if you make the function a remote access type, setting
the roles can restrict access to only people that are either logged
on the system (within the application) or has a specific access
type.

Similar Messages

  • Accessing Web Services with remote Flex Application

    I am trying to access a WebService on Server A from a Flex application running on Server B. I assume that server A should have a crossdomain.xml file; however, I cannot seem to get it working. Could someone please tell me where the crossdomain.xml file should be placed and what the file should contain so that I do not get the following error from WLS:
    [RPC Fault faultString="Security error accessing url" faultCode="Channel.Security.Error" faultDetail="Unable to load WSDL. If currently online, please verify the URI and/or format of the WSDL (http://10.0.0.124:7001/MeterDataServices?WSDL)"]
         at mx.rpc.wsdl::WSDLLoader/faultHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\wsdl\WSDLLoader.as:98]
         at flash.events::EventDispatcher/dispatchEventFunction()
         at flash.events::EventDispatcher/dispatchEvent()
         at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:168]
         at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:220]
         at mx.rpc::Responder/fault()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\Responder.as:49]
         at mx.rpc::AsyncRequest/fault()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:103]
         at DirectHTTPMessageResponder/securityErrorHandler()[E:\dev\3.0.x\frameworks\projects\rpc\src\mx\messaging\channels\DirectHTTPChannel.as:368]
         at flash.events::EventDispatcher/dispatchEventFunction()
         at flash.events::EventDispatcher/dispatchEvent()
         at flash.net::URLLoader/redirectEvent()

    I don't really know my Flash/Flex all that well, but a shot in the dark...I think the crossdomain.xml needs to be at the server root, so you'll need to specify the root context, which can be done in weblogic.xml, for a web application containing crossdomain.xml. To see if it works, use a browser to pull back the file:
    http://serverA/crossdomain.xml

  • Web Service with database

    Dear All,
    I'm new to java web service. Can anyone guide me on how to setup the environment to start developing my web service?
    I need to create a web service with login function. What client is more easy for me to call login service?

    You can download Java Web Services Developer Pack 1.3 and tutorial at http://java.sun.com/webservices.
    The Java Web Services Developer Pack (Java WSDP) is a free integrated toolkit you can use to build, test and deploy XML applications, Web services, and Web applications with the latest Web service technologies and standards implementations. The tutorial has numerous code examples to get you started on develop, deploy and invoke your own web service using JAX-RPC. You can use the environment provided by tutorial to start developing your web service.
    Thanks,
    -Arun

  • Create Web Service with Function Group

    Hi experts,
    I have 2 question for web service
    1- i want to create web service with function group. My function group is have 2 function modules. I selected function group for web service end point type. And next action i want to select my function group but this is impossible. Because this field is inaktive for value entry. (Img1) How can i make to active this field?
    2- I'm created one bussinness object in SWO1. And assigned ZBAPI... this object. (API METHOD ->ADD METHOD menu). I'm changed oject type's statu for released and created this object. Everything is ok so i can test this object and run ZBAPI method. But i can not see this object type in BAPI transaction. Why i can not see in BAPI transaction my object type ?
    Thank you for your help.

    /bump

  • Have problem when generate Web Service from bapi function

    Dear all,
    Please kindly help me about generating Web Service from BAPI function, It does not success only this attached function.
    I have done so many function without any problems.
    I found 1 case that I use specific variable to be an import/ export then, it can't create as well.
    As for this one, I try so many changes but I can't success it as well.
    This is my function on R/3 4.6C, Dot net connector 2.0, Dot net Frame Work 1.1.
    FUNCTION Z_BAPI_ATTACHMENT_CREATE.
    ""Local interface: Type: Remote-enabled module
    *"  IMPORTING
    *"     VALUE(P_BOTYPE) LIKE  BORIDENT-OBJTYPE
    *"     VALUE(P_BO_ID) LIKE  BORIDENT-OBJKEY
    *"     VALUE(P_MSGTYP) LIKE  SOFM-DOCTP
    *"     VALUE(P_DOCTY) LIKE  BORIDENT-OBJTYPE
    *"     VALUE(P_RELTYP) LIKE  BRELTYP-RELTYPE
    *"     VALUE(P_FNAME) LIKE  RLGRAP-FILENAME
    *"     VALUE(P_OBJDES) TYPE  SO_OBJ_DES
    *"  EXPORTING
    *"     VALUE(RETURNMESSAGE) TYPE  CHAR50
    INCLUDE : <cntn01>.
    P_BOTYPE  TYPE  BORIDENT-OBJTYPE DEFAULT 'BUS2105'
    P_BO_ID   TYPE  BORIDENT-OBJKEY
    P_MSGTYPE TYPE  SOFM-DOCTP DEFAULT 'URL'
    P_DOCTY   TYPE  BORIDENT-OBJTYPE DEFAULT 'MESSAGE'
    P_RELTYP  TYPE  BRELTYP-RELTYPE DEFAULT 'ATTA'
    P_FNAME   TYPE  RLGRAP-FILENAME
    P_OBJDES  TYPE  SO_OBJ_DES
    TYPES: BEGIN OF ty_message_key,
    foltp TYPE so_fol_tp,
    folyr TYPE so_fol_yr,
    folno TYPE so_fol_no,
    doctp TYPE so_doc_tp,
    docyr TYPE so_doc_yr,
    docno TYPE so_doc_no,
    fortp TYPE so_for_tp,
    foryr TYPE so_for_yr,
    forno TYPE so_for_no,
    END OF ty_message_key.
    DATA : lv_message_key TYPE ty_message_key.
    DATA : lo_message TYPE swc_object.
    DATA : lt_doc_content TYPE STANDARD TABLE OF soli-line
    WITH HEADER LINE.
    First derive the Attachment's ( MESSAGE )document type.
    p_docty = 'MESSAGE'.
    CASE p_reltyp.
    In case of URls
      WHEN 'URL'.
        p_msgtyp = 'URL'.
    In case of Notes / Private Notes
      WHEN 'NOTE' OR 'PNOT'.
        p_msgtyp = 'RAW'.
      WHEN 'ATTA'.
    Take given parameter e.g. 'DOC', 'PDF' etc.
    P_MSGTYP = 'EXT'.
      WHEN OTHERS.
    ....exit
        EXIT.
    ENDCASE.
    Create an initial instance of BO 'MESSAGE' - to call the
    instance-independent method 'Create'.
    swc_create_object lo_message 'MESSAGE' lv_message_key.
    define container to pass the parameter values to the method call
    in next step.
    swc_container lt_message_container.
    Populate container with parameters for method
    swc_set_element lt_message_container 'DOCUMENTTITLE' p_objdes.
    swc_set_element lt_message_container 'DOCUMENTLANGU' 'E'.
    swc_set_element lt_message_container 'NO_DIALOG' 'X'.
    swc_set_element lt_message_container 'DOCUMENTNAME' p_docty.
    swc_set_element lt_message_container 'DOCUMENTTYPE' p_msgtyp.
    In case of URLs..it should be concatenated with &KEY& in the begining.
    CASE p_msgtyp.
      WHEN 'URL'.
      lt_doc_content = '&KEY&http://www.rmtiwari.com' .
        CONCATENATE '&KEY&' p_fname INTO lt_doc_content.
        APPEND lt_doc_content.
    In case of Notes or Private Notes, get the data from files on appl
    server or from wherever(? - remember background).
      WHEN 'RAW'.
        lt_doc_content = p_fname.
        APPEND lt_doc_content.
    In case of PC File attachments
      WHEN OTHERS.
        OPEN DATASET p_fname FOR INPUT IN BINARY MODE.
        IF sy-subrc EQ 0.
          DO.
            READ DATASET p_fname INTO lt_doc_content.           "2 of 27
            IF sy-subrc EQ 0.
              APPEND lt_doc_content.
            ELSE.
              EXIT.
            ENDIF.
          ENDDO.
          CLOSE DATASET p_fname.
        ENDIF.
    ENDCASE.
    'DocumentContent' is a multi-line element ( itab ).
    swc_set_table lt_message_container 'DocumentContent' lt_doc_content.
    Size is required in case of File attachments
    DATA : lv_doc_size TYPE i.
    DATA : l_file_lines TYPE i.
    DESCRIBE TABLE lt_doc_content LINES l_file_lines.
    READ TABLE lt_doc_content INDEX l_file_lines.
    lv_doc_size = ( 255 * ( l_file_lines - 1 ) ) +
    STRLEN( lt_doc_content ).
    swc_set_element lt_message_container 'DOCUMENTSIZE' lv_doc_size .
    Refresh to get the reference of create 'MESSAGE' object for attachment
    swc_refresh_object lo_message.
    swc_call_method lo_message 'CREATE' lt_message_container.
    Get Key of new object
    swc_get_object_key lo_message lv_message_key.
    Now we have attachment as a business object instance. We can now
    attach it to our main business object instance.
    Create main BO object_a
    data: LO_IS_OBJECT_A type SIBFLPORB. "type SIBFLPORB is unknown, so I
    DATA: lo_is_object_a TYPE borident.
    lo_is_object_a-objkey = p_bo_id.
    lo_is_object_a-objtype = p_botype.
    LO_IS_OBJECT_A-CATID = 'BO'.
    Create attachment BO object_b
    data: LO_IS_OBJECT_B type SIBFLPORB. "type SIBFLPORB is unknown
    DATA: lo_is_object_b TYPE borident.
    lo_is_object_b-objkey = lv_message_key.
    lo_is_object_b-objtype = p_docty.
    LO_IS_OBJECT_B-CATID = 'BO'.
    *TRY.
    *CALL METHOD CL_BINARY_RELATION=&gtCREATE_LINK
    EXPORTING
    IS_OBJECT_A = LO_IS_OBJECT_A
    IS_OBJECT_B = LO_IS_OBJECT_B
    IP_RELTYPE = P_RELTYP.
    CALL FUNCTION 'BINARY_RELATION_CREATE'
      EXPORTING
        obj_rolea    = lo_is_object_a
        obj_roleb    = lo_is_object_b
        relationtype = p_reltyp
      EXCEPTIONS
        OTHERS       = 1.
    Check if everything OK...who cares!!
    COMMIT WORK.
    if sy-subrc = 0.
      RETURNMESSAGE = 'S-Success'.
    else.
      RETURNMESSAGE = 'E-Error'.
    endif.
    ENDFUNCTION.
    Thanks in advance,
    Benjawan
    Edited by: Nitipat Chadchavalpanichaya on Oct 20, 2008 9:02 AM

    There is no any error message show up. It just the class
    Z_BAPI_ATTACHMENT_CREATE  doesn't create autometically as normal. I showed you as below.
    That means I can't call class z_bapi_attachment_create.
    ' <autogenerated>
    '     This code was generated by a SAP. NET Connector Proxy Generator Version 2.0
    '     Created at 21/10/2551
    '     Created from Windows
    '     Changes to this file may cause incorrect behavior and will be lost if
    '     the code is regenerated.
    ' </autogenerated>
    Imports System
    Imports System.Text
    Imports System.Collections
    Imports System.ComponentModel
    Imports System.Runtime.InteropServices
    Imports System.Xml.Serialization
    Imports System.Web.Services
    Imports System.Web.Services.Description
    Imports System.Web.Services.Protocols
    Imports SAP.Connector
      '@ <summary>
      '@ Client SAP proxy class
      '@ </summary>
      <WebServiceBinding(Name:="dummy.Binding", Namespace:="urn:sap-com:document:sap:rfc:functions")> _
      Public Class PRAttachment
        Inherits SAPClient
        '@ <summary>
        '@ Initializes a new PRAttachment.
        '@ </summary>
        Public Sub New()
        End Sub
        '@ <summary>
        '@ Initializes a new PRAttachment with a new connection based on the specified connection string.
        '@ </summary>
        '@ <param name="connectionString">A connection string (e.g. RFC or URL) specifying the system where the proxy should connect to.</param>
        Public Sub New(ByVal ConnectionString As String)
          MyBase.New(ConnectionString)
        End Sub
        '@ <summary>
        '@ Initializes a new PRAttachment and adds it to the given container.
        '@ This allows automated connection mananged by VS component designer:
        '@ If container is disposed, it will also dispose this SAPClient instance,
        '@ which will dispose a contained connection if needed.
        '@ </summary>
        '@ <param name="Cont">The container where the new SAPClient instance is to be added.</param>
        Public Sub New(ByVal Cont As Container)
          MyBase.New(Cont)
        End Sub
      End Class

  • Exploring Web Services with Dreamweaver CS4

    How can you explore web services with Dreamweaver CS4? You
    used to be able to go under Components and add Web Services and
    enter the url for the WSDL (ex.
    http://www.communitymx.com/content/article.cfm?cid=70AAB).
    How do you do that now in CS4?

    Yeah, I knew there were several workspaces. I tried them all
    but none showed the Components/Webservices tab.
    That was an important tab for me since I do a lot of work
    with cfcs in connection with Flex Builder 3.
    I just hate having to go on Easter Egg hunts to find the
    functions that have been there for years.
    Like now I cannot copy and paste some code from one file to
    another and the command tab bar is gone for the CFML commands.
    It's just a real pain in rear end to have waste a bunch of
    time locating where someone decided to bury stuff.

  • Debugging a Web service with JDeveloper 902

    JDeveloper (902) is the major development tool in my project, and till now we used RMI for remote function calls. We are considering to use SAOP instead.
    I've installed JWSDP and I manage to run SOAP based Web service with Tomcat.
    However, after deploying a Web service, even its screen output is hidden.
    My problem is how to debug a Web service with JDeveloper?

    JDeveloper (902) is the major development tool in my project, and till now we used RMI for remote function calls. We are considering to use SAOP instead.
    I've installed JWSDP and I manage to run SOAP based Web service with Tomcat.
    However, after deploying a Web service, even its screen output is hidden.
    My problem is how to debug a Web service with JDeveloper?

  • Test web service for a function module

    Hello,
    I have created web service for a functiona module. I can see the same service in SE80 in Enterprise Services.
    How do I test this service?
    I can see the URL in WSDL tab but when I try to execute it give me following error,
    What has happened?
    URL http://emhbssap15.domain.local:8027/sap/bc/srt/wsdl/sdef_service_name/wsdl11/ws_policy/document call was terminated because the corresponding service is not available.
    Note
    The termination occurred in system BDV with error code 403 and for the reason Forbidden.
    The selected virtual host was 0 .
    What can I do?
    Please select a valid URL.
    If you do not yet have a user ID, contact your system administrator.
    ErrorCode:ICF-NF-http-c:000-u:SAPSYS-l:E-i:EMHBSSAP15_BDV_27-v:0-s:403-r:Forbidden
    HTTP 403 - Forbidden
    Your SAP Internet Communication Framework Team
    The URL I am trying is
    http://emhbssap15.domainname:8027/sap/bc/srt/wsdl/sdef_servicename/wsdl11/ws_policy/document?sap-client=400
    Can anyone help me?
    Regards,,,
    Sunil Joyous
    Edited by: Sunil Joyous on Dec 2, 2009 1:52 PM

    Thanks Venu for your input.
    Unfortunetly we do not have Java stack on our development system. You said we can test it by SOAP UI tool. Where do I see the WSDL file for the service?
    I used WSDL from SE80 --> Service --> WSDL tab, but SOAP UI does not accept this format ?
    What are the other ways I can test this web service? I think about SAP PI, importing RFC & creating web service or creating ABAP proxies... Which is the best way to go forward in case you do not have Java stck.
    Regards,,,
    Sunil Joyous

  • Calling Reporting Services Web Service with jQuery possible?

    Hi,
    is it possible to call the Reporting Services Web Service with jQuery? If yes, can someone post me a small example?
    Background:
    My plan is to create a html with a form which is also uploaded then into the reportserver. I open this html later by clicking a link in a report (with gotoURL open.window). The report opens the html inclusive the overtaken of some additional parameters
    (reportname, reportdescription). These parameters I will use in the html-form as defaultvalues for the corresponding input-text-fields. Now the user can make some changes (i.e. the decription). With a click on a button I will send the new description to
    the Reporting Services Web Service by using the SetProperties method, closing the html-window and reload the report. Important is that I want to upload the html also into the reportserver itself.
    I have already found how to consume a web service via jQuery but with the Reporting Services Web Service I did not get it running in my tests.
    I have referenced to the following jQuery.js: http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
    Here you can see my tests I made with the results:
    $.ajax({
    type: 'POST',
    url: 'http://<..>/ReportServer/ReportService2010.asmx/ListChildren',
    data: {'ItemPath':'/','Recursive':false},
    complete: function(xData, status) {
    $('p').html($(xData.responseXML).text()); // result
    $("#divStatus").text( status ); // status }
    I got a NULL response with Status success. But where are the items?
    Another test which should response only one value was that:
    $.ajax({
    type: "POST",
    contentType: "text/xml; charset=utf-8",
    url: "http://<..>/ReportServer/ReportService2010.asmx/GetItemType",
    data: {"Item":"/Development"}, // Development is a Folder in my Reportserver-Root
    dataType: "xml",
    success: function (msg) {
    $("#divResult").html(msg.responseXML);
    error: function (data, status, error) {
    $("#divResult").html("WebSerivce unreachable<br> <br>" + data.responseXML + "<br> <br>(" + error + ")");
    Here I got an [object Error]
    And here my last test:
    var soapMessage = '<?xml version="1.0" encoding="utf-8"?>\
    <soap:Envelope \
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" \
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">\
    <soap:Body>\
    <GetItemType xmlns="http://www.microsoft.com/sql/ReportingServer">\
    <ItemPath>/Development</ItemPath>\
    </GetItemType>\
    </soap:Body>\
    </soap:Envelope>';
    $.ajax({
    type: "POST",
    contentType: "text/xml; charset=utf-8",
    url: http://<..>/ReportServer/ReportService2010.asmx?wsdl,
    data: soapMessage,
    dataType: "xml",
    success: processSuccess,
    error: processError
    function processSuccess(data, status, req) {
    if (status == "success")
    $("#response").text($(req.responseXML).find("Type").text());
    function processError(data, status, req) {
    alert(req.responseText + " " + status);
    Here I got an "Undefined error"
    Can anyone help me?
    Thanks
    René Illner

    Hi Rene,
    I have one vbscript class to call web services. May be if you need you can use it.
         dim ws
         set ws = new webservice
         ws.url = "http://servername/ReportServer/ReportService2010.asmx"
         ws.method = "MethodName"
         ws.parameters.Add "Parameter1", "Param1 Desc.."
         ws.parameters.Add "Parameter2","[email protected].."
         ws.execute
         set ws = nothing
    '------web service calling class
    class WebService
      public Url
      public Method
      public Response
      public Parameters
      public function execute()
        dim xmlhttp
        Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
        xmlhttp.open "POST", Url & "/" & Method, false
        xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        xmlhttp.send Parameters.toString
        response = xmlhttp.responseText
        set xmlhttp = nothing
      end function
      Private Sub Class_Initialize()
        Set Parameters = new wsParameters
      End Sub
      Private Sub Class_Terminate()
        Set Parameters = Nothing
      End Sub
    End class
    class wsParameters
      public mCol
      public function toString()
        dim nItem
        dim buffer
        buffer = ""
        for nItem = 1 to Count
          buffer = buffer & Item(nItem).toString & "&"
        next
        if right(buffer,1)="&" then
          buffer = left(buffer,len(buffer)-1)
        end if
        toString = buffer
      end function
      public sub Clear
        set mcol = nothing
        Set mCol = CreateObject("Scripting.Dictionary")
      end sub
      public sub Add(pKey,pValue)
        dim newParameter
        set newParameter = new wsParameter
        newParameter.Key = pKey
        newParameter.Value = pValue
        mCol.Add mCol.count+1, newParameter
        set newParameter = nothing
      end sub
      public function Item(nKey)
        set Item=mCol.Item(nKey)
      end function
      public function ExistsXKey(pKey)
        dim nItem
        for nItem = 1 to mcol.count
          if mCol.Item(nItem).key = pKey then
            ExistsXKeyword = true
            exit for
          end if
        next
      end function
      public sub Remove(nKey)
        mCol.Remove(nKey)
      end sub
      public function Count()
        Count=mCol.count
      end function
      Private Sub Class_Initialize()
        Set mCol = CreateObject("Scripting.Dictionary")
      End Sub
      Private Sub Class_Terminate()
        Set mCol = Nothing
      End Sub
    end class
    class wsParameter
       public Key
       public Value
       public function toString()
         toString = Key & "=" & Value
       end function
    end class
    Regards, RSingh

  • SharePoint Apps and custom web services as remote services

    Hello,
    After reading documentation about Apps for SharePoint compared with SharePoint solutions I did not find any information about "You
    can develop your custom web services as remote services.".
    Could you please give me links or advise, where I can get information - "How to develop custom web services as remote services" using SharePoint 2013 Apps?

    Hi,
    I would suggest you to use WCF service instead of Web Service,
    also, SharePoint 2013 introduces a Representational State Transfer (REST) service that is comparable to the existing SharePoint client object models.
    Get started with the SharePoint 2013 REST service
    About develop custom web services as remote services,see Demo here:
    SharePoint 2013: Custom REST service provides data to an app for SharePoint
    Best Regards
    Guangchao chen
    TechNet Community Support

  • Consuming web services with a java application

    Hello,
    I want to consume an ABAP generated web service with a stand-alone Java application. I am very new to this topic and need some hints how this functionality could be achieved.
    How is the web service accessed by the Java application? What about security issues?
    Thank you in advance for your replies! They will be appreciated.
    Kindest regards

    Hi
    See this Help and Examples
    http://help.sap.com/saphelp_nw2004s/helpdata/en/e2/36a53dc1204c64e10000000a114084/frameset.htm
    Kind Regards
    Mukesh

  • Accessing external web service with non-constant URL

    Hello, all
    I am looking in the documentation on accessing external web services, but either I am looking in the wrong place, or the documentatoin is lacking info.
    My clients have several web services in the local network (regular services, not DB-based), the have the same interface, but different URL's.
    Versions of the DB are 11, 12, and 16.
    First of all, I do not see in the specs an option for a non-hardcoded URL. The logic says that this has to be possible, but I cannot find it.
    Second, I need to see an example of accessing an XML or JSon based service, I cannot find it in the specs either.
    Can anyone point me to a document with examples?
    Thank you
    Arcady

    The following will call a web service with whatever URL you pass in as the argument "myurl".  I think that is what you are looking for.
    CREATE PROCEDURE cli_test2( myurl LONG VARCHAR )
    RESULT( httpheaders long varchar, httpvalues long varchars
    URL '!myurl'
    To deal with the resulting data in XML, use the OPENXML() function.
    eg. To turn an XML list of employees that looks like this:
    <root>
    <row EmployeeID="102" Surname="Whitney" GivenName="Fran" StartDate="1984-08-28"/>
    </root>
    into a table of results, you would do this (where xmlgetemplist() is the web service call):
    CREATE OR REPLACE PROCEDURE xmlgetemplist() RESULT( httpheader long varchar, httpbody long varchar)
    URL 'http://localhost/demo/xmlEmployeeList'
    TYPE 'HTTP:GET';
    create variable res long varchar;
    -- call the web service
    select httpbody into res from xmlgetemplist() where httpheader = 'Body'
    -- extract the XML elements into a SQL result set
    select * from openXML( res, '/root/row' ) WITH ( EmployeeID INT '@EmployeeID',
           GivenName    CHAR(20) '@GivenName',
           Surname      CHAR(20) '@Surname',
           PhoneNumber  CHAR(10) '@Phone');
    To deal with the resulting data in JSON, use the sp_parse_json() procedure.
    eg.
    To turn a JSON formatted list of employees that looks like this:
    "EmployeeID": 102,
    "Surname": "Whitney",
    "GivenName": "Fran",
    "StartDate": "1984-08-28",
    "TerminationDate": null
    into a table of results, you would do this (where jsongetemplist() is the web service call):
    CREATE OR REPLACE PROCEDURE jsongetemplist() RESULT( httpheader long varchar, httpbody long varchar)
    URL 'http://localhost/demo/jsonEmployeeList'
    TYPE 'HTTP:GET';
    create variable foo long varchar;
    --call the webservice
    select httpbody into foo from jsongetemplist() where httpheader = 'Body';
    --turn the json result into a structured array of data
    -- this step is required because of less structured nature of JSON
    call sp_parse_json( 'output_array', foo);
    --extract the JSON elements from the output array into a SQL result set
    SELECT  output_array[[row_num]].EmployeeID as EmployeeID,
                   output_array[[row_num]].SurName as SurName,
                   output_array[[row_num]].GivenName as GivenName,
                   output_array[[row_num]].StartDate as StartDate,
                   output_array[[row_num]].TerminationDate as EndDate
    FROM sa_rowgenerator(1, CARDINALITY(output_array))
    Hope this helps,
    --Jason

  • ABAP Web Service with tables

    Hello,
    <br>
    <br>
    We need to build a web service with a predefined message in our ERP (ABAP), without PI or WebAS JAVA.
    <br>
    <br>
    We thought it should be a simple task, because we had no problem with many other applications and systems when building the same service, but were not able to build it with SAP ABAP, probably as a consequence of our lack of knowledge on ABAP SOAP runtime.
    <br>
    <br>
    We have an external asynchronous process that delivers information to many other systems using web services (information diffusion). Concecuently, the web service call's structure is determined by the caller, so we have to fulfill this structure if we want to receive the info.
    <br>
    <br>
    The owner of the process defined a very simple service call, in which one kind of  "record" can be repeated 1 to n times:
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    &lt;reglasSuscripcion&gt;
    <br>
                &lt;!Zero or more repetitions:&gt;
    <br>
                   &lt;nombre&gt;?&lt;/nombre&gt;
    <br>
                   &lt;valor&gt;?&lt;/valor&gt;
    <br>
                   &lt;nombre&gt;?&lt;/nombre&gt;
    <br>
                   &lt;valor&gt;?&lt;/valor&gt;
    <br>
                   &lt;nombre&gt;?&lt;/nombre&gt;
    <br>
                   &lt;valor&gt;?&lt;/valor&gt;
    <br>
    <br>
                   &lt;nombre&gt;?&lt;/nombre&gt;
    <br>
                   &lt;valor&gt;?&lt;/valor&gt;
    <br>
    &lt;/reglasSuscripcion&gt;
    <br>
    <br>
    <br>
    In order to receive this info, we have to implement an abap web service handler to accept this kind of call, the same way other applications/systems have already done.
    <br>
    <br>
    We tried to build a RFC function call and create a web service with the wizard and it resulted in a web service with the following WSDL:
    <br>
    <br>
    &lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style"&gt;
    <br>
    <br>
    <br>
    <br>
             &lt;reglasSuscripcion&gt;
    <br>
                &lt;!Zero or more repetitions:&gt;
    <br>
                &lt;item&gt;
    <br>
                   &lt;nombre&gt;?&lt;/nombre&gt;
    <br>
                   &lt;valor&gt;?&lt;/valor&gt;
    <br>
                &lt;/item&gt;
    <br>
    <br>
    <br>
    <br>
    &lt;item&gt;
    <br>
                   &lt;nombre&gt;?&lt;/nombre&gt;
    <br>
                   &lt;valor&gt;?&lt;/valor&gt;
    <br>
                &lt;/item&gt;
    <br>
             &lt;/reglasSuscripcion&gt;
    <br>
    <br>
    <br>
    <br>
    We found two main problems:
    <br>
    <br>
    1.- When "wrapping" the RFC as a WS with the wizard, for a table datatype it automatically includes the <item></item> tag, so we break the predefined calling rules.
    <br>
    <br>
    2.- The namespace is fixed by the wizard, and we would like to use a common namespace for all the "susbscribers", logically, the namespace fixed by the information diffusion service.
    <br>
    <br>
    We also tried to find info on the outside-in approach for building a web service from the WSDL, but all the info we found required the ESR and we have no PI, just the ERP.
    <br>
    <br>
    Any ideas on how to proceed?
    <br>
    <br>
    Thanks in advance,
    <br>
    <br>
    Joseba M. Iturbe
    <br>
    <br>
    Edited by: Soporte Desarrollo on Mar 5, 2010 10:56 AM

    #2.  I've recently had to "zap" some namespaces in an ECC5 system because the calling (TIBCO) system didn't appreciate the default SAP "urn" default - something to do with multiple colons in the address.  There were, I think, just three table this affected, all VEP* ones.  I think I should have been able to change these via the virtual interface in SE80 except that the ECC5 code was a bit "light" in this respect, so you may be able to do this now in SOAMANAGER in ECC6 (btw,  I also had to re-save the WS definition within WSCONFIG and re-activate the virtual interfaces after this "zap" to generated the associated handler class again).
    #1. Given your "name / value" pairs represent a complex type, then it might be better practice to have them as "item" which is probably why SAP proposes it this way... what does your custom function module parameter list look like?
    Jonathan

  • Exporting to Microsoft Excel from a DataView Web Part consuming a Web Service with Parameters

    In Sharepoint Designer, I've developed a page displaying a DataView Web Part which consumes an XML Web Service with three parameters.  These parameters are passed in from a simple Form Web Part containing three input fields.  I am able to provide default values for the web service so the dataview is initially populated, and when I enter in new parameters, the web service goes back, grabs the requested data and displays in the dataview nice and slick.
    The problem I'm having is this: In Internet Explorer 7, when I right-click on the DataView Web Part and select Export to Microsoft Excel, Excel opens up, says "ExternalData_1: Getting Data..." and returns the data from the web service which applies to the default parameter values each and every time, regardless of whether I have changed the parameters on the web page, and contrary to what the DataView Web Part displays on the screen.
    Has anyone else run into this, and is there a solution to the problem?
    Best regards,
    Mark Christie

    Hi Bullish35,
     It's possible to provide single export button and export your 4 dataview webparts. Here's the modified code.
    <Script Language="Javascript">
    function isIE() // Function to Determine IE or Not
    return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
    function exportToExcel() // Function to Export the Table Data to Excel.
    var isIEBrowser = isIE();
    if(isIEBrowser== false)
    alert('Please use Internet Explorer for Excel Export Functionality.');
    return false;
    else
    var strTableID1 = "detailsTable1", strTableID2 = "detailsTable2", strTableID3 = "detailsTable3", strTableID4 = "detailsTable4";
    var objExcel = new ActiveXObject("Excel.Application");
    var objWorkBook = objExcel.Workbooks.Add;
    var objWorkSheet = objWorkBook.Worksheets(1);
    var detailsTable = document.getElementById(strTableID1);
    var intRowIndexGlobal= 0;
    for (var intRowIndex=0;intRowIndex<detailsTable1.rows.length;intRowIndex++)
    for (var intColumnIndex=0;intColumnIndex<detailsTable1.rows(intRowIndex).cells.length;intColumnIndex++)
    if(intColumnIndex != 3)
    objWorkSheet.Cells(intRowIndexGlobal+1,intColumnIndex+1) = detailsTable1.rows(intRowIndex).cells(intColumnIndex).innerText;
    intRowIndexGlobal++;
    for (var intRowIndex=0;intRowIndex<detailsTable2.rows.length;intRowIndex++)
    for (var intColumnIndex=0;intColumnIndex<detailsTable2.rows(intRowIndex).cells.length;intColumnIndex++)
    if(intColumnIndex != 3)
    objWorkSheet.Cells(intRowIndexGlobal+1,intColumnIndex+1) = detailsTable2.rows(intRowIndex).cells(intColumnIndex).innerText;
    intRowIndexGlobal++;
    for (var intRowIndex=0;intRowIndex<detailsTable3.rows.length;intRowIndex++)
    for (var intColumnIndex=0;intColumnIndex<detailsTable3.rows(intRowIndex).cells.length;intColumnIndex++)
    if(intColumnIndex != 3)
    objWorkSheet.Cells(intRowIndexGlobal+1,intColumnIndex+1) = detailsTable3.rows(intRowIndex).cells(intColumnIndex).innerText;
    intRowIndexGlobal++;
    for (var intRowIndex=0;intRowIndex<detailsTable4.rows.length;intRowIndex++)
    for (var intColumnIndex=0;intColumnIndex<detailsTable4.rows(intRowIndex).cells.length;intColumnIndex++)
    if(intColumnIndex != 3)
    objWorkSheet.Cells(intRowIndexGlobal+1,intColumnIndex+1) = detailsTable4.rows(intRowIndex).cells(intColumnIndex).innerText;
    intRowIndexGlobal++;
    objExcel.Visible = true;
    objExcel.UserControl = true;
    </Script>
    I haven't tested this. But it should work! :)Regards,
    Venkatesh R
    /* My Code Runs in Visual Studio 2010 */
    http://geekswithblogs.net/venkatx5/

  • Issue using web-service with forms9i

    using web-service with forms9i
    Hi
    I have a setup of oracle9ias release 2 on solaris machine. I have made a web-service which is deployed on nt machine on weblogic server. I have made a call from my form (forms9i) to this web-service. When i try to use that web-service after deploying my form on solaris, it initializes the web-service and performs the action successfully. Now the problem is that my form also makes a call to report server to generate a report. The problem is when i initialize the web-service and uses its function it works but after that making a call to report server will fail. Also if i make a call to report server first, it generates the report and then i make call to the web-service, then that web-service fails to run. And in both cases, the forms application stops saying session has aborted.
    Why cant i make call to both the things in one session of application? What could be the reason for that? Need help urgently.

    Sorry,
    I didn't know that this was necessary to find a solution.
    Here are the definition out of the WSDL File:
    <xsd:complexType name="ZS_EQART_RANGE_LINE">
         <xsd:sequence>
              <xsd:element name="SIGN" type="tns:char1"/>
              <xsd:element name="OPTION" type="tns:char2"/>
              <xsd:element name="LOW" type="tns:char10"/>
              <xsd:element name="HIGH" type="tns:char10"/>
         </xsd:sequence>
    </xsd:complexType>
    Thanks for Help
    Ron

Maybe you are looking for

  • How to populate table name dynamically to a ref cursor

    Hi, I came accross with a requirement that in ref cursor how can i pass the table name for ex open ref_cur for select * from emp;Like that i've some 100 tables , instead of typing each and every time the table name that should be dynamically changed

  • Sharing Aperture library with iPhoto on another Mac

    I've got an iMac in my office with Aperture, latest version, where I keep my master photo collection. I've got a Mac Mini in my living room, hooked to a big screen TV, with only iPhoto. The iMac is cabled to a 1 GB Time Capsule, while the Mac Mini co

  • Reg : SCDJWS Certification

    Hai, I want to do a certification on SCDJWS(Web Services Certification). But i dont know which book to read for certification. I have read some reference books on Web Services. But now i am looking for a certificatin oriented book. So pls any of you

  • Satellite C660 - Re-installed WLAN driver not working

    Hi I cleared a lot of unused programs from a Toshiba Satellite C660-1JH, and accidently removed the Realtek WLAN Driver. The laptop obviously now has no internal wireless connection. When I realised I managed to find the driver online, successfully d

  • How sale forecast transfer to COPA via KSPP and not related to long term,

    Dear all experts, i am trying to transfer my sale forecast to COPA via KSPP. However, this is not related to product group and long term planning. any configuration involve? what is the step that i need to proceed? please advise. CJ