Regenerating Web Services

Everytime I add another method on my web services I am deleting and regenerating the services in the Data Services panel.
Refresh does not pick up the new method that has been added to the WSDL
Then I have to reset the data input and return types on every method.
I do this over and over again while developing....
There has got to be a better way... what is it?
Thanks
Dan Pride

Hi,
Please check note 1004108.
Methods of Application and/or Entity Services (Business Objects) of CAF of SAP NetWeaver CE 7.1 cannot be exposed in document style, only RPC/literal is possible. Sorry.
It's a restriction that is planned to be solved in one of the next releases.
Regards,
   Jan

Similar Messages

  • Problem regenerating Web Service - PI Cache not been refreshed issue?

    Hi guys.
    I'm pretty new to PI, so I don't really know if this issue has been discussed before. I tried a search but it couldn't solve my problem.
    I'll described my scenario as best I can. I've created a WebService in PI via an RFC, everything was running fine, until we had to modify some field's length in our ABAP structure. We've regenerated everything, deleted the old Web Service and created a new one with a new WSDL, but when running it, we get the data mixed up in our internal table, it looks like something of the previous Web Service is still in cache. We tried refreshing it through SXI_CACHE but still nothing, so we're running out of clues. The only thing we're sure about is that is something related to the PI caches, but we don't know what.
    Hope you can help.
    Best Regards

    Hello,
    I never worked with WebServices in PI but I faced similar issue using ABAP Proxies.
    When you generate an ABAP Proxy and change the structure (e.g. an IDOC), you need to delete the proxy and create a new one but using a diferent name of implementation class.
    In other words if you create a new proxy but using the same name it seems the change has no effect.
    Maybe you can try this way. Change your webservice defintion, name, etc...
    Regards,
    Diego Estanguini Gabriel

  • Error while deploying a web service whose return type is java.util.Date

    Hi
    I have written a simple web service which takes in a date input (java.util.Date) and returns the same date back to the client.
    public interface Ping extends Remote
    * A simple method that pings the server to test the webservice.
    * It sends a datetime to the server which returns the datetime.
    * @param pingDateRequest A datetime sent to the server
    * @returns The original datetime
    public Date ping(Date pingDateRequest) throws RemoteException;
    The generation of the Web service related files goes smoothly in JDeveloper 10g. The problem arises when I try to deploy this web service on the Oracle 10g (10.0.3) OC4J standalone. it gives me the following error on the OC4J console :
    E:\Oracle\oc4j1003\j2ee\home\application-deployments\Sachin-TradingEngineWS-WS\
    WebServices\com\sachin\tradeengine\ws\Ping_Tie.java:57: ping(java.util.Date) in com.sachin.tradeengine.ws.Ping cannot be applied to (java.util.Calendar) _result  = ((com.sachin.tradeengine.ws.Ping) getTarget()).ping
    (myPing_Type.getDate_1());
    ^
    1 error
    04/03/23 17:17:35 Notification ==> Application Deployer for Sachin-TradingEngineWS-WS FAILED: java.lang.InstantiationException: Error compiling :E:\Oracle\oc4j1003\j2ee\home\applications\Sachin-TradingEngineWS-WS\WebServices: Syntax error in source [ 2004-03-23T17:17:35.937GMT+05:30 ]
    I read somewhere that the conversion between java to xml datatype and vice versa fails for java.util.Date, so it is better to use java.util.Calendar. When I change the code to return a java.util.Calendar then the JDeveloper prompts me the following failure:
    Method Ping: the following parameter types do not have an XML Schema mapping and/or serializer specified : java.util.Calendar.
    This forces me to return a String data.
    I would appreciate if someone can help me out.
    Thanks
    Sachin Mathias
    Datamatics Ltd.

    Hi
    I got the web service working with some work around. But I am not sure it this approach would be right and good.
    I started altogether afresh. I did the following step :
    1. Created an Interface (Ping.java) for use in web Service as follows :
    public interface Ping extends Remote{
    public java.util.Date ping(java.util.Date pingDateRequest)
    throws RemoteException;
    2. Implemented the above interface in PingImpl.java as follows :
    public class PingImpl implements Ping
    public java.util.Date ping(java.util.Date pingDateRequest) throws RemoteException {
    System.out.println("PingImpl: ping() return datetime = " + pingDateRequest.toString());
    return pingDateRequest;
    3. Compiled the above 2 java files.
    4. Generated a Stateless Java Web Service with the help of JDeveloper. This time the generation was sucessful.(If I had "java.util.Calendar" in place of "java.util.Date" in the java code of the above mentioned files the web service generation would prompt me for error)
    5. After the generation of Web Service, I made modification to the Ping interface and its implementing class. In both the files I replaced "java.util.Date" with "java.util.Calendar". The modified java will look as follows :
    Ping.Java
    =========
    public interface Ping extends Remote{
    public java.util.Calendar ping(java.util.Calendar pingDateRequest)
    throws RemoteException;
    PingImpl.Java
    ================
    public class PingImpl implements Ping
    public java.util.Calendar ping(java.util.Calendar pingDateRequest) throws RemoteException {
    System.out.println("PingImpl: ping() return datetime = " + pingDateRequest.toString());
    return pingDateRequest;
    6. Now I recompile both the java files.
    7. Withour regenerating the Web Service I deploy the Web Service on OC4j 10.0.3 from JDeveloper. This time the deployment was sucessful.(The Deployment fails if I don't follow the step 5.)
    8. Now I generated a Stub from JDeveloper and accessed the stub from a client. It works fine. Here if you see the Stub code it takes java.util.Date as a parameter and returns a java.util.Date. (Mind you I am accepting a java.util.Calendar and returning the same in my Web Service interface. Step 5)
    The confusing thing is the Serialization and Deserialization of Data from Client java data to Soap message and Soap message to Server java data.
    From Client to SOAP :
    java.util.Date to datetime
    From SOAP to Server :
    datetime to java.util.Calendar
    From Server to SOAP :
    java.util.Calendar to datetime
    From SOAP to Client :
    datetime to java.util.Date (I am not able to understand this part of the conversion)
    Any help or inputs would be appreciated.
    Thanks
    Sachin Mathias

  • Web Service is not working after Upgrade SAP EHP6

    Hi ,
    Recently we upgraded SAP ECC 6.0 to EHP 6.
    We have a custom web service which is consumed in  .NET Application to get the Sold To from Sales Order.
    the service is working perfectly before upgrade and it is not working after upgrade to EHP6.
    When I tested the Service in WS Navigator in SAP, it is working fine.
    We raised a message to SAP and SAP analyze the Traces and confirm that the HTTP Request Header coming from .NET application is not having User ID and Password , so it is throwing exception from SAP as unauthorized.
    But in service it is configuration as basic authentication and log on using user id and password and .NET application is calling service by passing user ID & Password.
    Customer is not happy as it is working before Upgrade and SAP confirmed every thing fine in SAP, but the service is not working.
    we did the below steps.
    Regenerated the configuration
    Re imported the Certificates
    Activated the service in SICF.
    Please let me know if anybody have same problem or if any steps we are  missing.
    thanks.
    Uma

    after changing the .NET Application , Service is working fine.

  • Web service client type

    Hi,
    I am new to web services. I need to write a web service client that invokes a web service method. The method takes complex types as parameter and returns a complex type.what kind of client(static stub, dynamic proxy or DII) should I use to invoke such kind of method from a standalone java application?
    Thanks in advance.

    yes, you are right. stubs must be regenerated when the service definition changes. But is it possible to write a standalone client using dynamic proxy to invoke a web service method that uses complex types as parameters?.

  • Problem with document/literal web services

    Hi,
    I need to publish a document\literal WSDL for a web service on my OC4J 10.1.2.2 because my app has an interface with a .NET system.
    I generated the WSDL with JDEV 10.1.3.3 and tried to deploy it on an OC4J 10.1.2 using JDEV 10.1.2.
    The deployment worked fine but when I'm trying to access the web service with the generated stub I'm getting the following message:
    "These methods do not conform to the restrictions imposed by the web service implementation"
    and then a list of these methods.
    Later I tried to remove the parameters from the methods and regenerated the WSDL and it worked fine, but I need the methods with the parameters.
    What can I do?
    Thanks

    Jason, have you made any progress with CF7 and WS Security?
    It doesn't seem like enough information on this is available. Is it
    even possible? and how?

  • Generate web service model in web dynpro

    Hi,
    I have a web service which I generated a model in web dynpro and working fine.
    But the problem is that when I update my web service(change in method prototype, number of parameters, data type changes) I need to regenerate the model again and need to map to context elements.
    So, is there any way so that I can update my model instead of regenerating entire model to reflect to new changes in web service.
    Thanks for your time and effort.
    Regards,
    Shiva.

    Hi Shiva,
    Please look at this weblog for reimporting web service model.
    /people/bertram.ganz/blog/2005/10/10/how-to-reimport-web-service-models-in-web-dynpro-for-java
    There is no direct method available for that. But u can do by following this method.
    Regards,
    Bhavik

  • Consuming a Web Service via SSL with Basic Authentication

    Hello,
    I have a simple web service (returns a parameter value) and want to consume it. Therefore I have generated a proxy for its in Netweaver Studio SP13.
    When I set up the web service to be accessed via HTTP and Basic Authentication (Username/Password), everything is fine. When I set up the web service to communicate via HTTPS, I get the following error message in my client:
    java.rmi.RemoteException: Service call exception; nested exception is:
         java.lang.NullPointerException
         at priv.senw04.wsproxy.multisec_ssl.SSLBindingStub.pingText(SSLBindingStub.java:87)
         at priv.senw04.wsproxy.multisec_ssl.SSLBindingStub.pingText(SSLBindingStub.java:96)
         at priv.se.wsclient.MultiSecSSL.main(MultiSecSSL.java:38)
    Caused by: java.lang.NullPointerException
         at com.sap.engine.services.webservices.jaxm.soap.HTTPSocket.disconnect(HTTPSocket.java:625)
         at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.HTTPTransport.closeSession(HTTPTransport.java:396)
         at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.call(MimeHttpBinding.java:1312)
         at priv.senw04.wsproxy.multisec_ssl.SSLBindingStub.pingText(SSLBindingStub.java:80)
         ... 2 more
    Testing the web service with WebServiceNavigator and/or by using a generated WebDynpro Client results in the following error:
    000D604C66BE004E0000001300000AFC00040922E0160632 : An error occurred during processing the timestamp. The error was: com.sap.security.core.ws.wss.NoSecurityHeaderException No wsse:Security header has been defined for role soap:finalActor. Please verify the policy configuration..
    But my main focus is on the client implementation based on a proxy. Here comes the client's code:
    public class MultiSecSSL {
        public static void main(String[] args) {
            try {
                MultiSecuritySSLAuthImpl serviceInterface = new MultiSecuritySSLAuthImpl();
                SSLBindingStub service = (SSLBindingStub)serviceInterface.getLogicalPort(MultiSecuritySSLAuthViDocument.class);
                SecurityProtocol protocol = (SecurityProtocol) service._getGlobalProtocols().getProtocol("SecurityProtocol");
                AuthenticationContext auth = protocol.getAuthenticationContext();
                auth.setIgnoreSSLServerCertificate(true);
                auth.setUsername("cfpcompany");
                auth.setPassword("demo");
                String ret = service.pingText("Called service MultiSecurity via SSL");
                System.out.println(ret);
            } catch (Exception e) {
                 e.printStackTrace(System.out);
    Here comes the logical port information of the generated proxy:
    <?xml version="1.0" encoding="UTF-8"?>
    <LogicalPorts Name='MultiSecuritySSLAuth' InterfaceName='priv.senw04.wsproxy.multisec_ssl.MultiSecuritySSLAuth'>
      <LogicalPort Name='SSLPort_Document' Endpoint='https://192.168.129.76:50001/MultiSecuritySSLAuth/SSL?style=document' BindingName='SSLBinding' BindingUri='urn:MultiSecuritySSLAuthWsd/SSL/document' BindingImplementation='SOAP 1.1 HTTP Binding with Attachments' StubName='priv.senw04.wsproxy.multisec_ssl.SSLBindingStub' Default='true' InterfaceName='priv.senw04.wsproxy.multisec_ssl.MultiSecuritySSLAuthViDocument' Original='true' Valid='true'>
        <globalFeatures>
          <Feature Name='http://www.sap.com/webas/630/soap/features/headers/' Provider='SoapHeadersProtocol' Original='false'>
          </Feature>
          <Feature Name='http://www.sap.com/webas/630/soap/features/session/' Provider='SessionProtocol' Original='false'>
            <Property Name='SessionMethod' Value='httpCookies'>
            </Property>
          </Feature>
          <Feature Name='http://www.sap.com/webas/630/soap/features/authentication' Provider='SecurityProtocol' Original='true'>
            <Property Name='AuthenticationLevel' Value='None'>
            </Property>
            <Property Name='AuthenticationMechanism' Value='HTTP'>
            </Property>
            <Property Name='AuthenticationMethod' Value='BasicAuth'>
            </Property>
            <Property Name='SupportsSSO2Authentication' Value='false'>
            </Property>
          </Feature>
          <Feature Name='http://www.sap.com/webas/630/soap/features/transportguarantee' Original='true'>
            <Property Name='Level' Value='No'>
            </Property>
            <Property Name='TLSType' Value='SSL'>
            </Property>
          </Feature>
        </globalFeatures>
        <localFeatures>
          <Operation Name='pingText'>
            <Feature Name='http://www.sap.com/webas/630/soap/features/wss' Original='true'>
              <Property Name='RequestPolicy' Value='Signature'>
              </Property>
              <Property Name='ResponsePolicy' Value='None'>
              </Property>
            </Feature>
            <Feature Name='http://sap.com/webservices/authorization' Original='true'>
            </Feature>
          </Operation>
        </localFeatures>
      </LogicalPort>
    </LogicalPorts>
    To me, this looks consistent. Any idea, what is misconfigured on my machine ?

    Hi Martin,
    that is exactly, what I did.
    - Change Web Service Configuration in IDE
    - Build and Deploy the Service to my local Server
    - Check Service in Visual Administrator
    - Deleted and Regenerated the Standalone Proxy
    - Deleted and Recreated the link between CLient and Proxy Project in IDE
    - Started Client
    Here comes the section of the ws-deployment-descriptor.xml of the service. For me, it matches, what the proxy generated.
      <webservice>
        <guid>ed8363_10876a54b6d__7fe9_192_168_129_76_1135862193037</guid>
        <ejb-name-temp>MultiSecWSBean</ejb-name-temp>
        <webservice-name>
          <namespaceURI>urn:MultiSecuritySSLAuthWsd</namespaceURI>
          <localName>MultiSecuritySSLAuth</localName>
        </webservice-name>
        <webservice-internal-name>MultiSecuritySSLAuth</webservice-internal-name>
        <standard-namespaceURI>urn:MultiSecuritySSLAuthWsd</standard-namespaceURI>
        <ws-configuration>
          <configuration-name>SSL</configuration-name>
          <ejb-name>MultiSecWSBean</ejb-name>
          <service-endpoint-name>
            <namespaceURI>urn:MultiSecuritySSLAuthWsd</namespaceURI>
            <localName>SSLPort</localName>
          </service-endpoint-name>
          <wsdl-porttype-name>
            <namespaceURI>urn:MultiSecuritySSLAuthWsd</namespaceURI>
            <localName>MultiSecuritySSLAuthVi</localName>
          </wsdl-porttype-name>
          <webservice-definition-ref>
            <package>com.technidata.cfp.i3rdparty.cfpxml</package>
            <name>MultiSecuritySSLAuthWsd.wsdef</name>
          </webservice-definition-ref>
          <service-endpoint-vi-ref>
            <package>com.technidata.cfp.i3rdparty.cfpxml</package>
            <name>MultiSecuritySSLAuthVi.videf</name>
          </service-endpoint-vi-ref>
          <transport-binding name="SOAPHTTP_TransportBinding">
            <wsdl-binding-name>
              <namespaceURI>urn:MultiSecuritySSLAuthWsd</namespaceURI>
              <localName>SSLBinding</localName>
            </wsdl-binding-name>
          </transport-binding>
          <transport-address>/MultiSecuritySSLAuth/SSL</transport-address>
          <global-features>
            <feature name="http://www.sap.com/webas/630/soap/features/transportguarantee" protocol="SecurityProtocol">
              <property name="TLSType" value="SSL"/>
            </feature>
            <feature name="http://www.sap.com/webas/630/soap/features/authorization" protocol="SecurityProtocol"/>
            <feature name="http://www.sap.com/webas/630/soap/features/authentication" protocol="SecurityProtocol">
              <property name="AuthenticationMethod" value="BasicAuth"/>
              <property name="AuthenticationMechanism" value="HTTP"/>
              <property name="SupportsSSO2Authentication" value="false"/>
            </feature>
          </global-features>
          <operation-configuration uniqueViName="pingText(java.lang.String)">
            <transport-binding-configuration>
              <input>
                <property name="soapAction" value=""/>
                <property name="encodingStyle" value="http://schemas.xmlsoap.org/soap/encoding/"/>
              </input>
              <output>
                <property name="encodingStyle" value="http://schemas.xmlsoap.org/soap/encoding/"/>
              </output>
            </transport-binding-configuration>
            <feature name="http://www.sap.com/webas/630/soap/features/wss" protocol="SecurityProtocol">
              <property name="RequestPolicy" value="None"/>
              <property name="ResponsePolicy" value="None"/>
            </feature>
            <feature name="http://sap.com/webservices/authorization" protocol="SecurityProtocol">
              <property name="security-roles">
                <property name="role1" value="use_multisec_service"/>
              </property>
            </feature>
          </operation-configuration>
        </ws-configuration>
      </webservice>
    Regards,
    Stefan

  • Web service problem serializing objects?

    JDeveloper Studio Edition Version 10.1.3.2.0.4066
    I deployed a web service developed with JDeveloper to OAS 10.1.3.1.0
    I generated a web service client proxy in JDeveloper to call the web service.
    I get an exception (below). I tried regenerating the proxy code. Same exception when I try running it. I tried regenerating the web service and redeploying. Same exception.
    It seems like the WSDL is correct, but the XML produced by the web service drops some letters from the schema types?
    Has anyone else seen this? Here is the exception I'm getting:
    unexpected element type: expected={http://edu.apollogrp.selfservice/ISelfService.xsd}edu_apollogrp_selfservice_SelfServiceResults, actual={http://edu.apollogrp.selfservice/ISelfService.xsd}edu_apollog_SelfServiceResults
    at oracle.j2ee.ws.common.encoding.SerializerBase.verifyType(SerializerBase.java:168)
    at oracle.j2ee.ws.common.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:170)
    at oracle.j2ee.ws.common.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:147)
    at customerservice.proxy.runtime.SelfServiceBinding_Main_RespS__SOAPSerializer.doDeserialize(SelfServiceBinding_Main_RespS__SOAPSerializer.java:44)
    at oracle.j2ee.ws.common.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:180)
    at customerservice.proxy.runtime.SelfServiceBinding_Stub._deserialize_Main(SelfServiceBinding_Stub.java:193)
    at customerservice.proxy.runtime.SelfServiceBinding_Stub._readFirstBodyElement(SelfServiceBinding_Stub.java:176)
    at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java:333)
    at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:112)
    at customerservice.proxy.runtime.SelfServiceBinding_Stub.main(SelfServiceBinding_Stub.java:81)
    at customerservice.proxy.SelfServicePortClient.mainExt(SelfServicePortClient.java:44)
    at customerservice.SelfService.getSSData(SelfService.java:116)
    at customerservice.SelfService.Test(SelfService.java:93)
    at customerservice.SelfService.main(SelfService.java:109)

    Yeah. You need a deserialize class to deserialize (cast) the Complex Data Type (object). But the orignal class is not necessary. Also, it is impossible to use the orignal class if you write a client on J2EE platform to consume a service on .NET platform. Your can use the WSDL file to generate a tub using some tool. The stub can handle the remote calls and de/serialization (cast).
    Hope this can help you. Cheers
    Shaun

  • 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

  • Web Service Data Control Refresh

    Hi,
    We are creating the data controls for one of our web services and using the data control to create the user interfaces. Now the web service signature is changed and we would like to refresh the data control definition. But I am unable to find about regenerating the data control.
    If we use web service proxy, there is an option for regenerate the proxy. Can you please help in refreshing the data control based on the changes in the web service definitions.
    Thanks,
    S R Prasad

    simple! Refresh data control may now work. Remove the corresponding defs from connections.xml & datacontrols.dcx (AdapterDataControl). Refresh data control panel. Close jdev & open again. Generate the web services again. Make sure in both files the name attribute matches. You might have to re-commit all the files again (mostly just replace). You're all set.

  • Problem with Web Service Model code generation

    Hello,
    I'm importing two different web services into the same web dynpro component, which both contains properties "allGroup2" of type "All2".
    This causes some problems with the code generation, first of all the Model-classes can't be generated because they don't know which of the two All2-classes to use. If I fix that problem (which can be easily done by adding the correct import statement) I still can't use the models in my web dynpro component, since it too doesn't know which of the All2-classes to use.
    Even though I can fix this by adding imports and fixing the code, it of course gets regenerated next time I rebuild the project, and my changes are lost.
    Does anyone know how to solve this?

    Apparently this is a known bug which is fixed in SP15.
    Regards mattias

  • Adding security to a web service then generating a proxy [SOLVED]

    Hi
    I generated a web service based on a very simple java program. I have deployed it to a local oc4j install and successfully called it from a proxy generated from jdev. I am using 10.1.3.3.0.
    I added security to the web service and regenerated the proxy. I wanted to see the difference in the SOAP messages sent to the web service. However the proxy does not seem to have changed to take account of the new security settings on the web service.
    The security options I set were:
    On main security dialog: Ticked the port and "Text Password"
    On Authentication: Ticked "Expect Username ti Authenticate"
    "Password Required"
    Password Type = "Plain Text"
    "Nonce Required in Token"
    "Creation Time Required in Token"
    I have 2 questions:
    1. How do I get the proxy to send SOAP messages that contain the security headers required to run the web service. Here is the main method from my proxy. I thought adding setUsername and setPassword would be the solution
        public static void main(String[] args) {
            try {
                gpn3.Getphonenum3SoapHttpPortClient myPort = new gpn3.Getphonenum3SoapHttpPortClient();
                System.out.println("calling " + myPort.getEndpoint());
                // Add your own code here
                myPort.setUsername("oc4jadmin");
                myPort.setPassword("welcome");           
                myPort.getNum("Lisa");
            } catch (Exception ex) {
                ex.printStackTrace();
    2. When the web service receives a user name and password what does it check them against? I assume the oc4jadmin user will be allowed access but how do I set up other users?
    many thanks
    paul schweiger
    Message was edited by:
    [email protected]

    I have figured this out now
    1. I needed to set the same security settings in my proxy as I did for my web service. I had assumed that the proxy would generate the necessary security settings from the web service.
    2. For some reason my web service application is using the system level jazn-data xml file
    oc4j_extended_101330/j2ee/home/config/system-jazn-data.xml
    This does include the oc4jadmin user and I am now able to use that account to call the web service. I also managed to add another user and use that account to call the web service successfully.
    Thanks for the help
    paul

  • Properties of Web Services generated from Application services in CAF

    Hi to all,
    first sorry for posting one question twice (in CAF and CE forums) but I am not sure where exactly it belongs.
    I experience problems with exposing web services from application service in CE 7.1 (trial version).
    I want to add fault elements or use document literal instead of RPC binding. I do it from the design page for web services. The problem is that after saving and regenerating the application, the changed information gets lost.
    Is it possible to expose these services while changing some information?
    And another question that would arise if this is possible. How can I catch the faults in VC? Is there e possibility to show different panels according to the value returned (from the data service, which is a web service with fault element).
    Thank You in advance!
    V S

    Hi,
    Please check note 1004108.
    Methods of Application and/or Entity Services (Business Objects) of CAF of SAP NetWeaver CE 7.1 cannot be exposed in document style, only RPC/literal is possible. Sorry.
    It's a restriction that is planned to be solved in one of the next releases.
    Regards,
       Jan

  • After upgrade from FB4Beta to FB4, web services no longer returning the same data types.

    I just upgraded from FB4 beta to the FB4 release. I'm still running the Flex 3.5 SDK and amnow  unable to use a lot of my web services. In the previous FB4 beta, I could generate the proxy classes from the WSDL and would get a ResultEvent that containted either my complex data type or an ArrayCollection of those complex data types.
    After I deleted and regenerated the services under the FB4 release, I get a ProxyObject or an ArrayCollection of ProxyObjects. No matter what I try I cannot map those ProxyObjects to my complex data type and it's driving me nuts! The oddest thing is that it didn't break all of my services, just some of them.
    I've tried several methods of mapping the ProxyObject to my custom data type but I get a null result every time and no errors.
    private function getContactsResult_handleResult(event:ResultEvent):void
        this._contactsList.removeAll();
        if (event.result is ArrayCollection)
            for each (var contact:ContactType in event.result)
                _contactsList.addItem(contact);                   
        if (event.result is ContactType)
            _contactsList.addItem(event.result as ContactType);
    Any suggestions?

    It looks like this was a combination of the upgrade,
    increasing use of ASP files and not having seperate application
    pools in IIS.
    We've just starting edding aspx apps, previously we only had
    one asp app so we only used the default app;icaton pool in iis.
    With the errors in the virtual directory started, we deleted and
    remade the VD with it's only application pool. That appears to have
    resolved the issues. The only concern I have is one of the VD did
    have it's own applicaton pool and still had the very slow response
    after the upgrade. But I'll see how this solution works for the
    future.
    The decesion was made to only have cf8 installed since that
    worked well on our testing server, so we did intend to overwrite
    the CFIDE folder.
    Thanks for checking this out and for your time on this.
    At this point I consider this closed. If something else comes
    up I'll start a new thread on it.

Maybe you are looking for