(EWS) How to call autodiscover URL to retrieve exchange service URL?

Hi Folks,
I have some code that finds the autodiscover url by searching on the SCP.  What I would like to do is then call the auto discover service at that location to determine the URL of the ExchangeService for making EWS calls.
The examples I can find in the MS documentation use an email address (ExchangeService.AutoDiscoverURL  and GetUserSettingsResponse).
What I would like to do is call the service located at the address given by the SCP and then set the ExchangeService.Url property.
I am aware that I need to use the ASUrl property of the AutoDiscover Response (POX), however, I do not seem to be able to find any information on how to make the request (using C#) and how to retrieve the response.
Regards
Andy

You can use the Autodiscover classes to do an Autodiscover against your SCP endpoint (although I don't really see the point when you use AutoDiscoverURL it will do a SCP lookup first anyway?).
eg to use the Autodiscover class you can use
adAutoDiscoverService.Url = new Uri(" https://autodiscover-s.outlook.com/autodiscover/autodiscover.svc");
adAutoDiscoverService.Credentials = new NetworkCredential(UserName,Password);
adAutoDiscoverService.EnableScpLookup = false;
adAutoDiscoverService.RedirectionUrlValidationCallback = adAutoDiscoCallBack;
adAutoDiscoverService.PreAuthenticate = true;
GetUserSettingsResponse adResponse = adAutoDiscoverService.GetUserSettings(Identity, (new UserSettingName[1] { UserSettingName.ExternalEwsUrl }));
if (adResponse.Settings.Count >= 1)
String exClientURL = (String)adResponse.Settings[UserSettingName.ExternalEwsUrl];
CASURL = exClientURL;
This will do a SOAP Autodiscover rather then POX if you want to do a POX discover you can do something like
String EWSURL = null;
String auDisXML = "<Autodiscover xmlns=\"http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006\"><Request>" +
"<EMailAddress>" + Identity + "</EMailAddress>" +
"<AcceptableResponseSchema>http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a</AcceptableResponseSchema>" +
"</Request>" +
"</Autodiscover>";
System.Net.HttpWebRequest adAutoDiscoRequest = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(adURL);
adAutoDiscoRequest.ContentType = "text/xml";
adAutoDiscoRequest.Headers.Add("Translate", "F");
adAutoDiscoRequest.Method = "Post";
adAutoDiscoRequest.Credentials = NetCredential;
byte[] bytes = Encoding.UTF8.GetBytes(auDisXML);
adAutoDiscoRequest.ContentLength = bytes.Length;
Stream rsRequestStream = adAutoDiscoRequest.GetRequestStream();
rsRequestStream.Write(bytes, 0, bytes.Length);
rsRequestStream.Close();
WebResponse adResponse = adAutoDiscoRequest.GetResponse();
Stream rsResponseStream = adResponse.GetResponseStream();
XmlDocument reResponseDoc = new XmlDocument();
reResponseDoc.Load(rsResponseStream);
String EWSURL = "";
XmlNodeList pfProtocolNodes = reResponseDoc.GetElementsByTagName("Protocol");
foreach (XmlNode xnNode in pfProtocolNodes)
XmlNodeList adChildNodes = xnNode.ChildNodes;
foreach (XmlNode xnSubChild in adChildNodes)
switch (xnSubChild.Name)
case "ASUrl": EWSURL = xnSubChild.InnerText;
break;
Cheers
Glen

Similar Messages

  • RRI?  How to call ITS URL and pass field value from Bex Query.

    I am doing RRI from query to webaddress,
    i have defined jump(report type: webaddress and reicver report as url) from shopping cart bex query(SRM ) to webaddres.
    here url is SRM ITS base link for monitoring shoppingcart(http://(hostname):(SRM port)/sap/bc/gui/sap/its/bbp_mon_sc?sap-client=200&sap-language=EN).
    jump is working from portal(from bex query ivew).
    but i want to pass value(shopping cart value) to above url and want to skip first screen.
    i have maintained assignment detail by assigning field name against shopping cart infoobject with type url parameter, but its not directly call reciver url with given input field.
    i tried the diffrent combination of url and field assignment as like below:
    1: web address url:http://(hostname):(SRM port)/sap/bc/gui/sap/its/bbp_mon_sc?sap-client=200&sap-language=EN
    assigned field: GS_HEADER-OBJECT_ID
    but when we call reciver url from portal bex ivew, only initial screen come with page url as below:
    http://(hostname):(SRM port)/sap/bc/gui/sap/its/bbp_mon_sc?sap-client=200&sap-language=EN?GS_HEADER-OBJECT_ID='selected number value'
    2: web address url:http://(hostname):(SRM port)/sap(cz1TSUQlM2FBTk9OJTNhc3JtZGV2X0lTRF8wMCUzYUdxdFNqdWdMS2xyTEFEelFTNFlWTnJXRjEzdy05UnhTWXl4TW03c3AtQVRU)/bc/gui/sap/its/bbp_mon_sc/~flNUQVRFPTgzMTcuMDAyLjAxLjAx====#jump_to_selected_sc
    assigned field: flNUQVRFPTgzMTcuMDAyLjAxLjAx
    but when we call reciver url from portal bex ivew, only initial screen come with page url as below:
    http://(hostname):(SRM port)/sap(cz1TSUQlM2FBTk9OJTNhc3JtZGV2X0lTRF8wMCUzYUdxdFNqdWdMS2xyTEFEelFTNFlWTnJXRjEzdy05UnhTWXl4TW03c3AtQVRU)/bc/gui/sap/its/bbp_mon_sc/~flNUQVRFPTgzMTcuMDAyLjAxLjAx====#jump_to_selected_sc?flNUQVRFPTgzMTcuMDAyLjAxLjAx='selected number value'
    I have seen the source code of that url(inital screen and after entring the value to that screen) too.
    how to call webadress(SRM ITS base shopping cart URL) with passing the one of field value of that url screen?
    Thanks and regards,
    Dushyant.

    Declare the gv_orderid in modulepool program.
    And Declare the parameter as import parameter in smartform.
    CALL FUNCTION  lv_form
       EXPORTING
    *   ARCHIVE_INDEX              =
    *   ARCHIVE_INDEX_TAB          =
    *   ARCHIVE_PARAMETERS         =
    *   CONTROL_PARAMETERS         =
    *   MAIL_APPL_OBJ              =
    *   MAIL_RECIPIENT             =
    *   MAIL_SENDER                =
    *   OUTPUT_OPTIONS             =
    *   USER_SETTINGS              = 'X'
         i_input                    =  gv_orderid
    * IMPORTING
    *   DOCUMENT_OUTPUT_INFO       =
    *   JOB_OUTPUT_INFO            =
    *   JOB_OUTPUT_OPTIONS         =
    * EXCEPTIONS
    *   FORMATTING_ERROR           = 1
    *   INTERNAL_ERROR             = 2
    *   SEND_ERROR                 = 3
    *   USER_CANCELED              = 4
    *   OTHERS                     = 5

  • How to call a URL from a button

    Hi Experts,
    In my requirement I have to  call a URL in the same page,through a button,
    so please tell me how to acheive this.
    Regards
    Upendra

    Hi,
    use the below code to call the URL onAction of the Button,
    IWDWindow window = wdComponentAPI.getWindowManager().createExternalWindow(
    "<place URL here example http:www.sdn.sap.com>",
    "<description about the URL >",
    false);
    window.open();
    Regards,
    ramesh

  • How to call Web URL's as values of an BW InfoObject via BEx Web

    Hi experts,
    I want to call Web URL´s as values of an BW InfoObject via BEx Web.
    Is there any option to convert the character into a direct URL link to call the Web adress directly?
    Example:
    no direct URL (e.g. http://help.sap.com) to call the Web address per left click...
    Any ideas?
    Thanks in advance and best regards,
    Michael

    Hi Michael,
    Have you ever tried using generic module properties of analysis item. There are implementations such as com.sap.ip.bi.rig.format, maybe you can ctach up something trying that. I didn't try it myself yet though there can be solution through using modules.
    Regards
    Yasemin...

  • How to call a URL in jsp without direct the page to the URL

    Hi,
    I have a jsp page, which when user come in to the page, the page will call a URL without direct the current jap page the URL. This URL will only help me to do on something in the backend. Anyone know any method that i can use to call the URL?
    Thanks a lot

    Doeas AJAX rings a bell? ;-)
    https://blueprints.dev.java.net/bpcatalog/ee5/ajax/usingAJAXwithoutJSF.html

  • How to call a URL from forms ?

    Dear All,
    I would like to invoke / call a URL from forms. I know we can make a call Using Web.show_document. But this will execute in a browser.
    What i need to do is, i have to send a request to by calling an URL, that should not visible to any body.
    This is my requirement, please help if you know.
    Thanks
    Balaji

    hi,
    here is a quick example : (data from url returns as a clob. you need to write it at db. and call from forms.)
    FUNCTION Get_DataFromUrl(pUrl IN VARCHAR2,pProxy IN VARCHAR2,pData IN OUT CLOB) RETURN NUMBER IS
    vRcv UTL_HTTP.HTML_PIECES;
    vData CLOB;
    eNoDataReceived EXCEPTION;
    BEGIN
    UTL_HTTP.SET_DETAILED_EXCP_SUPPORT(TRUE);
    -- Get data pieces from Url
    vRcv := UTL_HTTP.REQUEST_PIECES(pUrl,Proxy => pProxy);
    IF vRcv.COUNT < 1 THEN
    RAISE eNoDataReceived;
    ELSE
    -- Append varchar2 table data into clob variable
    DBMS_LOB.CreateTemporary(vData,FALSE,DBMS_LOB.CALL);
    FOR i IN 1..vRcv.COUNT LOOP
    DBMS_LOB.WriteAppend(vData,LENGTH(vRcv(i)),vRcv(i));
    END LOOP;
    -- Copy local data into return variable
    DBMS_LOB.Copy(pData,vData,DBMS_LOB.GetLength(vData));
    DBMS_LOB.FreeTemporary(vData);
    END IF;
    RETURN SUCCESS;
    EXCEPTION
    WHEN eNoDataReceived THEN
    RETURN FAILURE;
    WHEN UTL_HTTP.INIT_FAILED THEN
    RETURN FAILURE;
    WHEN UTL_HTTP.Request_Failed THEN
    RETURN FAILURE;
    WHEN OTHERS THEN
    RETURN FAILURE;
    END Get_DataFromUrl;
    hope this helps.
    Engin.

  • How to call a url i-view with parameters

    Hello,
    I want to make a portal navigation in a absolute way. This call should open a url-iview. In this iview the main url string is placed. Further more, a url-parameter ("test") is placed with a standard value. Now, i want to call this iview (see the call below) and hand over the value of this url-parameter. But how could this be done? In the following way, it doesn`t work. The iView will be called but the parameter is not settet.
    Call:
    WDPortalNavigation.navigateAbsolute(
                    "ROLES://portal_content/de.dbag.dbag-f/de.dbag.optitechpro.connection_monitor-f/com.dbag.iViews-f/com.dbag.urltest-i",
                    WDPortalNavigationMode.SHOW_INPLACE,
                    (String) null,
                    (String) null,
                    WDPortalNavigationHistoryMode.NO_DUPLICATIONS,
                    (String) null,
                    (String) null,
                    "test=NUIBI");
    best regards
    Mathias

    hi Mathias
    Try this
    1) First right click on the iView you wish to open and click Open -> Object
    2) In the iView editor you will see:
    url parameter : The parameter identifier as recognized by the information source
    value: The value of the parameter
    type: The data type
    personalize:Define if portal end users can view the param and its assigned value and if they can personalize the iView at runtime
    display name: The display name for the parameter identifier
    3) Once you have defined the iView’s URL to the targeted Web page, you may need to configure parameters that are passed to the information source as part of the URL .
    4) The parameter name is something that shouldn’t be changed because it is recognized by the information source .
    5) The parameter value can be changed.
    6) The type specifies data type of the parameter. String: Apply this option for all data types whose property is for example, an integer or string. Mapped User and Mapped Password : Apply this option when the URL parameter requires authentication with the information source at runtime.
    7) The Personalization -specifies whether or not portal end users can view the parameter and its assigned value if they personalize the iView at runtime.
    Hidden: The end user does not see the parameter and its value. This is the default setting.
    Read/Write: The end user sees the parameter and is able to modify its value.
    Read Only: The end user sees the parameter and the fixed value assigned to it. The end user cannot modify the parameter value.
    8) The display name - specifies an intuitive display name for the parameter identifier. If you set the parameter to be viewable by end users at runtime, this name is displayed instead of the parameter identifier, which is often abbreviated and unintuitive. This attribute is available only if Read/Write or Read Only is selected in the Personalize attribute
    9) The Request method:
    Get – appends parameters to the URL when the data request is sent to the information source. The server receives the data in one long query string, which typically limits the length of parameters that can be passed.
    Post - sends parameters for the URL in the header of the data request stream (parameters are not appended to the URL). This allows for long parameters to be passed to a script and parsed one element at a time. POST is only supported when the Fetch Method property defined in the iView is set to Server-side
    Regards
    Pratyush

  • How to call a url using javascript

    Hi friends
    Iam a newbie i have a requirement
    i have to call some n number of URL using javascript i have all my url in one table .... i have to call all the url from that table ... and the output of the url should be saved in a flat file...The output of the url is in XML format... can any one please suggest me in doing my task ... and one more thing in which tool can i run the javascript coding...please give me ur suggestion and idea how it can be done ....
    My URL for example ll be like this as shown below wen i run this url it ll give me an XML format output
    HTTP://www.myserver.com/ev_api.action?user_id=<username>l&password=<password>&statevar=history&cutoff=<date>&id=<id>
    Thanks in advance
    Thiliban

    thilib wrote:
    In this OTN is there is javascript forum can please give me the link for it
    Thanks
    thilibJust to rephrase Walter's reply: there is no javascript forum in OTN!

  • How to call .aspx URL  from OSB

    Hi
    can any one please suggest how I need to call .aspx from OSB
    eg: http://<host>/ExternalServices/Customer/xyz/Posto.aspx
    Regards,
    Lavanya Sarma

    The service could have been a WSDL based web service or a normal XML/HTTP or SOAP/HTTP service without a WSDL definition.
    If its a WSDL based service you need a WSDL(along with any referenced XML schemas) and if its a XML/HTTP service then you need XML Schemas
    First of all you need to identify which one it is. To do that:
    1. Ask the team who has provided you the endpoint! If its a WSDL based service, ask them for the WSDL file along with referenced schemas. If its a XML/HTTP service ask them for XML schemas.
    2. If you are not able to contact them right away, Try accessing the URL in a browser:
    Open following URLs in a Browser:
    http://<host>/ExternalServices/Customer/xyz/Posto.aspx?wsdl
    http://<host>/ExternalServices/Customer/xyz/Posto.aspx
    Do you see any WSDL coming up in Browser? If yes then copy the content of the WSDL, also open the URLs of any imported schemas in the WSDL content in browser and copy their content as well. The idea is to have all the WSDLs and Schemas on your local machine,
    Once you get the WSDL files and XML schemas here is what you need to do:
    For WSDL based target servce
    1. Save the contents of any referenced schemas as XML Schema resources in OSB
    2. Save the content of WSDL as a WSDL resource in OSB
    3. Create a new business service, select WSDL based service types and select a port or binding from the WSDL resource you created in step 2
    4. Provide transport as HTTP and add http://<host>/ExternalServices/Customer/xyz/Posto.aspx as the endpoint
    5. Save this service and now you can call this business service from any Proxy Service in OSB
    If its a XML/HTTP service, then you can create business service with following types:
    1. XML HTTP with no specific XML schema - Choose ANY XML service type
    2. SOAP/HTTP with no specific XML schema - Choose ANY SOAP service type
    3. XML/HTTP with a specific request and response schema - Choose Message service type and select the request and (optionally) a response message type from an existing XML schema resource

  • How to call the url page inside the procedure.

    Hi,
    I am not exposure in plsql.
    I am getting some problem in utl_http link.
    I create a one procedure. The procedure was successfully compiled. But the url page doesnt open..
    I attached the procedure,
    create or replace procedure p(mob number)
    IS
    l_page long;
    l_url varchar2(25000 char) ;
    begin
    null;
    l_page := utl_http.request( 'http://www.yahoo.com');
    end;
    please tell me the solution for this problem..
    I am waiting for ur response.
    Thanks,
    Sasi.

    this is a duplicate thread:
    how to open the web page in pl/sql
    the OP doesn't seem to understand the difference between a web browser and a programming language....... I can't say I've ever had to explain the difference before...
    let's just say.... butterflies are not in any way similar to electric shavers..

  • How to call an URL from ABAP

    Hi,
    When an user clicks on a document display link in a SAP tranasction(for example FB02),an URL has to be called in the background(by ABAP) and the details of the URL should be displayed in a browser.
    What are the possilbe options available in SAP4.7 to meet the above requirement?
    Thanks in advance,
    Leo

    hi,
    you can use call browser function
    data url(200) type c.
    url = 'your_url'.
    CALL FUNCTION 'CALL_BROWSER'
      EXPORTING
        URL                          = url
       WINDOW_NAME                  = ' '
       NEW_WINDOW                   = ' '
       BROWSER_TYPE                 =
       CONTEXTSTRING                =
    EXCEPTIONS
       FRONTEND_NOT_SUPPORTED       = 1
       FRONTEND_ERROR               = 2
       PROG_NOT_FOUND               = 3
       NO_BATCH                     = 4
       UNSPECIFIED_ERROR            = 5
       OTHERS                       = 6
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    for this you have to enable SSO on your server.
    hope this helps you, else revert back.
    regards,
    Hemendra

  • How to call BPEL process from Java Web Service?

    Any example/sample/tutorial on this?
    TIA.

    I've done something similar a few times, specifically using a standalone Java application to invoke a BPEL process (so that it can be called from a cron job, for instance).
    The thing to remember is that a BPEL process presents itself to the outside world as a Web service. If your Java Web service can communicate with other Web services (by sending a message of the appropriate format to the URL of the other Web service), then exactly the same technique can be used to call the BPEL process. You know what the input message has to look like, and you know where the process is located on your network, so set up the Java Web service to send the message to that address.

  • How to call a sap transaction in Internet Service

    Hi,
    I have a requirement to call a sap transaction code in the Internet Service. By donig this, the SAP transaction will be called in the web browser via ITS.
    Internet Service has HTML Templates - inside html templates I want to call the sap transaction based on a button event.
    Below is the transaction code. When I enter below link in the browser then it works fine. The same I need to call progrmatically in html template on some event.
    http://xxxxxxxxxxx/sap/bc/gui/sap/its/webgui?~transaction=me23n
    Thanks,

    Hello Sal.
    This does not look like an ABAP issue, but rather JavaScript, JQuery or whatever you are using to handle the button-click-event in your "Internet Service" web application.
    You might try window.open("http://xxx...me23n","_self").
    Best regards,
    Frank.

  • How to call a Stored procedure from xsodata service?

    Hi Everyone,
    I have created an stored procedure and I'm trying to consume this store procedure from xsodata service.
    But unable to activate the service because of an error.
    Invalid procedure or parameter list in procedure "package.WebContent.src.hana.procedures::PROCEDURE
    I have activated both store procedure as well as attribute view.
    Here is my stored procedure.
    PROCEDURE "SCHEMA"."package.WebContent.src.hana.procedures::PROCEDURE" (
    IN row "SCHEMA"."package.tables::object" )
      LANGUAGE SQLSCRIPT
      SQL SECURITY INVOKER AS
      --DEFAULT SCHEMA <default_schema_name>
      --READS SQL DATA AS
    BEGIN
      Write your procedure logic
    declare shortdesc string;
    SELECT SHORT_DESCRIPTION INTO shortdesc FROM :row;
    END;
    Service:
    service namespace "package.WebContent.src.hana.service"{
    "package/OBJECT.attributeview" as "OBJECTS"
    key ("OBJECT_ID")
        create using "package.WebContent.src.hana.procedures::PROCEDURE";
    Is there anything wrong in the way i'm calling the procedure??

    Hi Arjun,
    You can expose the procedure as an Odata Service if you wrap it in a Scripted Calculation View..
    Firstly You will have to create a Scripted Calculation View from the Modeller perspective.
    Below is an example I just tried.
    Add Columns & Input Parameters
    Consume this Calc View in your Odata service :
    service namespace "services.test"
    "pda.Models::CV_TEST" as "Customer"
    keys generate local "ID"
    parameters via entity;
    Check your service by Passing the Input Parameters
    http://<host>:<port>/<>/services/test.xsodata/CustomerParameters(2)/Results?$format=json
    Hope this was Helpful
    Regards,
    Avinash Raju

  • How to call external processes before & after WL services start/stop

    I set up WL Admin Server and Managed Server to run as Windows services.
    I have the code to retire/re-activate in an ANT script and right now, I execute it via the command line.
    Here's my question
    I want to retire a SOA composite BEFORE my Managed Server Windows service stops and re-activate it AFTER the Window service starts up.
    Do you know how to do that? Or if you have other suggestions, please let me know
    Thanks
    I'm using 11.1.1.2

    I want to retire a SOA composite BEFORE my Managed Server Windows service stops and re-activate it AFTER the Window service starts up.
    This means you need to check for the ManagedServer is in RUNNING state right?
    in WLST you can get State of a given Managed Server with getState() method. write a WLST invoke method in ANT and try.

Maybe you are looking for