Quantcast
Channel: SCN: Message List - Service-Oriented Architecture (SOA) and SAP
Viewing all articles
Browse latest Browse all 1056

Re: Unable to connect to Salesforce using webservices (SOAP protocol)

$
0
0

Hi Aravind,

 

I have tried to use the code which worked for you, but still get error for Invalid session id in SOAMANAGER. Could you check my code and see if you could help me:

 

DATA: v_session_id   TYPE string,

           v_session_url  TYPE string.

 

 

 

  DATA: e_output          TYPE zsfdcupdate_response.

  DATA: i_input             TYPE zsfdcupdate_request.

  DATA: update_quote_no TYPE REF TO zsfdcco_soap.

 

 

 

 

 

  CLEAR v_session_id.

  CALL FUNCTION 'ZSFDC_GET_SESSION_ID'

    IMPORTING

      e_session_id  = v_session_id

      e_session_url = v_session_url.

 

 

 

 

  DATA: ixml TYPE REF TO if_ixml,

  xml_document TYPE REF TO if_ixml_document,

  xml_root TYPE REF TO if_ixml_element,

  xml_element TYPE REF TO if_ixml_element,

  xml_node TYPE REF TO if_ixml_node.

 

 

 

 

DATA: l_xstring  TYPE xstring,

        lv_xstring TYPE xstring,

        lv_string  TYPE string,

        lr_xml_document TYPE REF TO if_ixml_document,

        lr_xml_root     TYPE REF TO if_ixml_element,

        lr_xml_element  TYPE REF TO if_ixml_element,

        lr_xml_node     TYPE REF TO if_ixml_node,

        lv_name         TYPE string,

        lv_namespace    TYPE string.

 

 

 

 

DATA l_string TYPE string.

  DATA: name TYPE string,

        namespace TYPE string,

        go TYPE REF TO zsfdcco_soap,

        lr_action TYPE REF TO zsfdcco_soap.

 

 

 

DATA:  ls_header TYPE REF TO if_wsprotocol_ws_header.

 

 

  CREATE OBJECT lr_action

    EXPORTING

      logical_port_name = 'ZFDC_PORT'.

 

 

  ls_header ?= lr_action->get_protocol('IF_WSPROTOCOL_WS_HEADER').

 

 

 

 

 

 

 

  CONCATENATE

'<Soap:Header>'

'<ns2:session xmlns:ns2="https://test.salesforce.com/services/Soap/c/36.0/0DFm0000000CacF">'

'<sessionid>' v_session_id '</sessionid>'

'</ns2:session>'

'</Soap:Header>' INTO lv_string.

 

 

 

 

 

* convert to xstring

  lv_xstring = cl_proxy_service=>cstring2xstring( lv_string ).

  IF NOT lv_xstring IS INITIAL.

 

* create ixml dom document from xml xstring

    CALL FUNCTION 'SDIXML_XML_TO_DOM'

      EXPORTING

        xml           = lv_xstring

      IMPORTING

        document      = lr_xml_document

      EXCEPTIONS

        invalid_input = 1

        OTHERS        = 2.

    IF sy-subrc = 0 AND NOT lr_xml_document IS INITIAL.

      lr_xml_root = lr_xml_document->get_root_element( ).

      lr_xml_element ?= lr_xml_root->get_first_child( ).

 

* add header element by element to soap header

      WHILE NOT lr_xml_element IS INITIAL.

        lv_name = lr_xml_element->get_name( ).

        lv_namespace = lr_xml_element->get_namespace_uri( ).

        ls_header->set_request_header( name = lv_name namespace = lv_namespace dom = lr_xml_element ).

        lr_xml_element ?= lr_xml_element->get_next( ).

      ENDWHILE.

    ENDIF.

  ENDIF.

 

 

 

 

 

 

 

 

  TRY.

      CALL METHOD lr_action->update

        EXPORTING

          input  = i_input

        IMPORTING

          output = e_output.

 

 

    CATCH cx_ai_system_fault .

    CATCH zsfdccx_invalid_sobject_fault .

    CATCH zsfdccx_unexpected_error_fault .

    CATCH zsfdccx_invalid_id_fault .

    CATCH zsfdccx_invalid_field_fault .

    CATCH cx_ai_application_fault .

  ENDTRY.


Viewing all articles
Browse latest Browse all 1056

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>