Unable to add custom SOAP header to consumer webservice in CRM( without using PI)

Hello Experts,
We have a requirement to consume webservice proxy in CRM without involving PI. We have WSDL file which has many services as depicted in the first screenshot.After checking old posts, I could add custom SOAP header by using if_wsprotocol_ws_header and there is no xml parsing error for ws_header.Have used if_ixml_stream_factory to check xml parsing error for header.
'<soapenv:Header>'
'<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">'
'<wsse:UsernameToken wsu:Id="UsernameToken-2">'
            '<wsse:Username>user id</wsse:Username>'
            '<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">paswd</wsse:Password>'
            '<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">MT0B9XFzsZJXXKmVKOsj/Q==</wsse:Nonce>'
            '<wsu:Created>2015-03-30T06:29:17.407Z</wsu:Created>'
'</wsse:UsernameToken>'
'</wsse:Security>'
'</soapenv:Header>' INTO l_string.
But when my ABAP program as a whole gets executed where consumer proxy is called, then it still throws XML parsing error - undeclared namespace prefix. As mentioned, there is no parsing error for header and WSDL file as a whole in SOAP UI tool works fine,by manually adding SOAP header.
Have configured SOAMANAGER with logical port.Or any wrong setting in SOAMANAGER can cause this issue? When I tested webservice ping, it gave me attached error but I read in a SAP note that such error can be ignored.
I want to know if some more setting/coding is required if we manually add custom header to a payload? Is PI really required to implement this requirement? Payload mapping has to be done to add custom header and if that can be taken care by ABAP coding and how?
Can you please help?
BR,
Nisha Verma

Hello Experts,
I have not found the solution yet.
Can anyone provide some insight??
BR,
Nisha Verma

Similar Messages

  • How to add new custom SOAP header when generate webservice?

    Hi
    When invoke an external webservice, SOA Gateway provide a method to add new customized SOAP Header, via extending seeded java function "WebServiceInvokerSubscription".
    And in case of generating a new webservice in EBS, is there some similar method to add new customized SOAP header in the webservice?
    Thanks
    James

    Look at your Payment Process Profile. THere should be a reporting subtab and within that subtab is a Separate Remittance Advice region. I believe that is where you specify the format for the remittance advice document (which is built in XML Publisher). Take a look at that.
    John Dickey

  • Get Custom SOAP Header Value in SOA Suite 11.1.1.6 using BPEL 1.1

    Hi Experts,
    We are using SOA Suite 11.1.1.6 and in one of the projects we have requirement to retrieve custom SOAP header value.
    This is enhancement to existing process which is developed using BPEL 1.1 and deployed to Production. So we cannot convert this now to BPEL 2.0
    We suggested to use custom XML element in Header the definition of which will be defined in custom XSD and stored in common location. However the 3rd party who are invoking this service will not be able to do any customization in their process to pass custom XML header.
    Please can you help me in providing any approach through which we can retrieve custom Header value from SOAP header using BPEL 1.1
    I have read some blogs for retrieving the custom XML header but they are using BPEL 2.0. I would like achieve this functionality using BPEL 1.1
    Appreciate your inputs.
    Thanks in Advance - RK

    Hello RK,
    Have you've tried to put the bpex:outputHeaderVariable on the invoke activity of the invoked service.
    <invoke name="Invoke"
                bpelx:outputHeaderVariable="HeaderVariable"/>
    Where the "HeaderVariable" reflects the XSD Datastructure of the received header.
    This is also specified here in section 6.19.1 How to Receive SOAP Headers in BPEL
    Please note that the exact header must be specified in the WSDL of the invoked service.
    Also note that in case of a soap fault. No header will be returned from the invoked service but only a /soap/body/fault part.
    Good luck!
    Melvin

  • How to add empty soap header?

    Hello,
    I created a web service proxy using WSDL and XSD files. Then, I created a sample request from client interface and sent the request as an object to call the web services. However, I am not directly calling the webservices as I am doing it through a Gateway. Here, the problem is, the Gateway accepts only empty SOAP headers and the Gateway inserts the security details in that SOAP header and will send a request to the original web services. Even if we add any element in the SOAP header, it is not accepting the request.
    While sending a request through the client interface(Java class), I am not able to generate a empty SOAP header and send as request. I tried several ways adding a empty header. but no result. Is there any way we can add empty SOAP header while sending a requesting through Java class(Client interface)?
    Thanks
    sekhar

    Thanks for your reply.
    I have tried different approaches for adding empty SOAP header with no elements. But, none of them worked. The only solution for this issue is to add OSB proxy which has the functionality to send empty SOAP header which worked for me.
    Thanks
    sekhar

  • Since the last software update, I am unable to add new contacts or change existing contacts - neither if I use the green Phone app nor using the brown Contacts app. Any suggestions?

    since the last software update, I am unable to add new contacts or change existing contacts - neither if I use the green Phone app nor using the brown Contacts app. Any suggestions?

    *Update*
    I thought I had found the offending 'app' namely "Songpop."
    I regularly use "Songpop" on my phone late at night via my wifi connection.
    All enteries on my phonebill are at midnight (even though I have a data allowance it was excluded from allowance). I switched 3G off on Friday, played "Songpop" at midnight and at the exact time I got a "Server Error" message.
    I posted a message on the "Songpop" support forum.At first they said this was a problem relating to my ISP.
    I have spoken to my ISP and asked if there are connection drops at the time I have been billed (ie to establish if my wifi dropped and 3G kicked in without my knowledge) and have been advised that there aren't any connection drops at that time.
    "Songpop" have now responded that "This is an issue to take up with Apple Support"  see: http://support.songpop.fm/songpop/topics/playing_songpop_on_phone_via_wifi_but_i ncurring_download_data_charges_for_3g_useage?utm_content=topic_link&utm_medium=e mail&utm_source=reply_notification
    Hopefully someone at Apple can respond ....

  • How can I add more than one submit button in a jsp without use of javascrip

    I want to add more than one submit button in a jsp without use of javascript

    you can do add multiple submit button with this way
    <input type="submit" value="Previous" />
    <input type="submit" value="Next" />
    <input type="submit" value="Finish" />

  • How to add byte[] array based Image to the SQL Server without using parameter

    how to add byte[] array based Image to the SQL Server without using parameter.I have a column in table with the type image in sql and i want to add image array to the sql image column like below:
    I want to add image (RESIM) to the procedur like shown above but sql accepts byte[] RESIMI like System.Drowing. I whant that  sql accepts byte [] array like sql  image type
    not using cmd.ParametersAdd() method
    here is Isle() method content

    SQL Server binary constants use a hexadecimal format:
    https://msdn.microsoft.com/en-us/library/ms179899.aspx
    You'll have to build that string from a byte array yourself:
    byte[] bytes = ...
    StringBuilder builder = new StringBuilder("0x", 2 + bytes.Length * 2);
    foreach (var b in bytes)
    builder.Append(b.ToString("X2"));
    string binhex = builder.ToString();
    That said, what you're trying to do - not using parameters - is the wrong thing to do. Not only it is insecure due to the risk of SQL injection but in the case of binary data is also inefficient since these hex strings are larger than the original byte[]
    data.

  • Invoking web service with customized SOAP Header

    Hi,
    how can I invoke web services from my BPEL process with additional elements in the SOAP Header?
    Regards,
    Piotr

    I don't know if I completely understand your question, but here is an attempt at and answer.
    It place variables in the SOAP Header open the invoke popup, click on the Adapters tab and select the variable that you would like to add into the SOAP header.
    I really hope that helps.
    Chris

  • Reading custom SOAP header with XHeaderName1

    Hello Experts,
    I have a SOAP to File scenario and I am trying to do dynamic receiver determination by looking at the SOAP request header info. I am adding a custom field (System_ID) that I want rules to run against in Receiver Determination..
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:*******************">
    <soapenv:Header>
    <System_ID>100</System_ID>
    </soapenv:Header>
      <soapenv:Body>
       </soapenv:Body>
    </soapenv:Envelope>
    In the Receiver Determination I have multiple rules using SOAP context object to  XHeaderName1 = the System_ID (100) to pass the message to the right system at runtime according to the  System_ID.
    In the SOAP sender channel I have Set Adapter-Specific Message Attributes and Variable Transport Binding checked. I also have the variable name System_ID in the first Variable Header (XHeaderName1).
    In the SOAP sender Conversion Parameters I have Do Not Use SOAP Envelope and Keep Headers checked, as well as nosoap=true in the SOAP request URL.
    I'm getting the System ID to show in XI in sxmb_moni in the Header but no where do I see it being used with XHeaderName1.
    Am I using XHeaderName1 right? If not could you advise as to how XHeaderName1 should be used?
    My requirement is to read system ID from Header, not payload.
    Thank you!
    Tim

    I was able to find a solution to my problem.
    I created a basic senario below to test:
    1.A basic Asynchronous scenario is created using a SOAP sender adapter to 2 possible flat file receivers.
    2.The SOAP sender channel will have the option u201CDo Not Use SOAP envelopeu201D checked and SOAPUI URL will have u201C&nosoap=trueu201D added to the end.
    3.The receiver system name will be stored in the WS-Addressing u201CActionu201D field sent from SOAPUI.
    4.Two ABAP mappings are created. One mapping will extract the system number from the WS-Addressing u201CActionu201D field. The other mapping will extract just the body of the SOAP message to send along. Using regex and string manipulation in the ABAP mappings we can reuse the mappings for any SOAP message.
    5.Enhanced (Extended) Receiver Determination is selected and interface mapping using system/XI ReceiverDetermination  service interface is used to capture the receiver system.
    While this is a solution is not the best, it is a solution. Upon research I found a recent SAP Note 1385579 talking about implementing a SAP delivered generic SOAP Sender AXIS handler com.sap.aii.axis.soap.HeaderExtractionHandler to extract SOAP Header elements and place in message attributes. I will be trying this out.

  • How to add a soap header in the mesage

    Hi expert:
       We have a problem about this synchronous scenario: ECC(ABAP Proxy)>PI>P6(SOAP),  In P6,it need additional soap header as below:
    <soapenv:Header>
    <wsse:Security mustUnderstand="0" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <wsse:UsernameToken wsu:Id="UsernameToken-5700630" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsse:Username>admin</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">admin</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    </soapenv:Header>
    How can i add this header to the receiver message?

    Hi
    Create an XSL file like below and use in your mapping.
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/">
    <soapenv:Header>
    <wsse:Security mustUnderstand="0" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <wsse:UsernameToken wsu:Id="UsernameToken-5700630" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsse:Username>admin</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">admin</wsse:Password>
    </wsse:UsernameToken>
    </wsse:Security>
    </soapenv:Header>
             <xsl:copy-of select=""/>*     
    </xsl:template>
    </xsl:stylesheet>

  • Setting up the Soap Header when consuming a web service.

    Hi SDN,
    I am trying to consume a web service,where I need to pass the soap header for sending the request to the sever.
    I am using if_ws_protocol_ws_header->SET_REQUEST_HEADER to set the Username and Password to the soap header. After a lot of trouble shooting I came to conclusion that the Username and Password are not being updated in soap header.
    I want to know how to set the soap header? I have tested the web service in the SOAP UI testing tool and it works fine taking the credentials. The webservice is using HTTPS protocol.Do we have any separate config for https. Do I need to pass the nonce and date created in the soap header for sure ? And is there any thing to be configured by basis team?
    Here is what I am trying to pass:
    ' <soapenv:Header>'
          '<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">'
             '<wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">'
                '<wsse:Username>XXXXXXX</wsse:Username>'
                '<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXXX</wsse:Password>'
                '</wsse:UsernameToken>'
         ' </wsse:Security>'
          '/soapenv:Header>'
    Thank you.

    CONCATENATE
    '<soapenv:Header>'
    '<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"'
    'xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"'
    'xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">'
    '<wsse:UsernameToken>'
    '<wsse:Username>XXXXXX</wsse:Username>'
    '<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXXXX</wsse:Password>'
    '<wsse:Nonce>' XXXXX'</wsse:Nonce>'
    '<wsu:Created>' XXXXX '</wsu:Created>'
    '</wsse:UsernameToken>'
    '</wsse:Security>'
    '</soapenv:Header>'
       INTO l_string.
    I solved my self and its working , Here is what I was passed.
    Thank you guys.

  • Creating Custom SOAP header in the Sender soap scenario

    Hello Experts,
    Currently i have a SOAP to RFC scenario . In which in the request parameter i have single input parameter. But as per the requirement we need to have some xml parameters in the soap header .
    So i want the soap request looks like below,
    <?xml version="1.0"?>
    -<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    -<SOAP-ENV:Header>
    -<ns0:TestHeader xmlns:ns0="http://testcustomer.com">
    -<MessageDetails>
    <ServiceType/>
    <ServiceAction>String</ServiceAction>
    <MessageRole rtype=""/>
    -<MessageSource>
    <SourceName/>
    <SourceID idtype=""/>
    </MessageSource>
    -<MessageDestinations>
    -<MessageDestination>
    <DestinationID idtype=""/>
    <DestinationName/>
    </MessageDestination>
    </MessageDestinations>
    <Property Name=""/>
    </MessageDetails>
    </ns0:TestHeader>
    </SOAP-ENV:Header>
    -<SOAP-ENV:Body>
    -<m:MT_CERT_IP xmlns:m="http://mydzit.gov.sa/zakat">
    <INPUT1>102140000007</INPUT1>
    </m:MT_CERT_IP>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Kindly let me know the steps, how can i achieve this ??
    I have referred the AddSOAPHeaderBean  module but still not received the needed output.
    Best Regards,
    Amit

    Hi Amit,
    My few cents.
    You have an example in Dimitri Sannen's blog Read SOAP header information doing the mapping with XSLT.
    Also, you have an other example like Dev Noronha suggestion, in William Li's blog How to Read SOAP Header Information
    Regards.

  • Change Soap Header in P2P WebService (No PI available)

    Hi Experts,
    I need your help with a Webservice we are building.
    --Facts--
    We have the requirement to build a WebService in CRM that will be consumed by an external system. (We are service Providers)
    Since we have no PI available we are building it as a Function Module that will be later transformed into a WebService.
    The WebService / communication will be Asynchronous. We want to use WS-Adressing to handle the asynchonous process. (Check the requirement Backgroud at the end)
    We have a sample xml message in which we need to base and build the service WSDL based on:
    <?xml version="1.0" encoding="utf-8" ?>
    - <NS1:Envelope xmlns:NS1="http://schemas.xmlsoap.org/soap/envelope/"> 
    - <NS1:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"> 
    - <requestHeader> 
    <systemID>DEFAULT</systemID>  
    <messageID>MSGID</messageID>  
    <aplicativoOrigen>bizagi</aplicativoOrigen>  
    <timeStamp>2014-12-06T20:24:33.839428</timeStamp>  
    <operacion>crearProspecto</operacion>  
    </requestHeader>
    <wsa:To>http://127.0.0.1:7700/dummy</wsa:To>  
    - <wsa:ReplyTo> 
    <wsa:Address>http://127.0.0.1:7700/IA_asynchronousWS</wsa:Address>  
    </wsa:ReplyTo>
    <wsa:MessageID>414d51204d4237514d47522020202020484f835403110120</wsa:MessageID>  
    <wsa:Action>crearProspecto</wsa:Action>  
    </NS1:Header>
    + <NS1:Body> 
    - <crearProspecto xmlns:ges="http://grupobancolombia.com/intf/GestionarProspectosCRM"> 
    - <datosGenerales> 
    <agenteRetencion>ac</agenteRetencion>  
    </datosGenerales>
    </crearProspecto>
    </NS1:Body>
    </NS1:Envelope>
    -- Background --
    1- We have a CRM system with no PI and an external system (INT) to which we need to communicate in an Asynchronous way. Simply put, we need to provide to and consume from this non SAP System.
    (This INT system is the equivalent of an SAP PI system and it will be responsible to transform and reroute the messages to the corresponding legacy systems)
    2- We want to allow the creation of BPs in an Asynchronous way. The way we want to achieve Asynchronous communication is by means of two Web services.
    a.      CRM publishes a WS that is consumed by the INT (directly no PI)
    In the header of this message we will be using WS-Adressing standard and receiving from the INT the MessageID field.
    CRM receives the messages, stores the information (does not process it) and immediately sends an accepted HTTP 202 code as a response to the INT.
    b.      INT also publishes a WS that is consumed by the CRM and is used to receive the response of the first message from INT to CRMAfter X amount of time (Hours or days), the CRM gets the stored data and processes it finally creating the BP in the system. Once the BP is successfully created, CRM Consumes this WS exposed by the INT and sends the information that the BP has been finally created. The RelatesTo field in the header is then matched with the MessageID field sent before in the WS-A header and this way the INT finds out to which original message this second Web Service correlates to.
    3- Please consider no PI is available,
    --Question--
    How can we build a WSDL for this service? I am asking in specifically how do you build a WSDL with a header with 4 fields and WS-Adressing fields also. Keep in mind that we have no PI and we are using a Function Module to Build the Service.
    - <requestHeader>
    <systemID>DEFAULT</systemID>  
    <messageID>MSGID</messageID>  
    <aplicativoOrigen>bizagi</aplicativoOrigen>  
    <timeStamp>2014-12-06T20:24:33.839428</timeStamp>  
    <operacion>crearProspecto</operacion>  
    </requestHeader>
    <wsa:To>http://127.0.0.1:7700/dummy</wsa:To>
    - <wsa:ReplyTo>
    <wsa:Address>http://127.0.0.1:7700/IA_asynchronousWS</wsa:Address>  
    </wsa:ReplyTo>
    <wsa:MessageID>414d51204d4237514d47522020202020484f835403110120</wsa:MessageID>
    <wsa:Action>crearProspecto</wsa:Action>
    I am attaching the XML and a WSDL that was provided to us, but not generated by us in CRM. We need to create a service with a WSDL similar to that one in the CRM
    Thanks!
    Pablo.

    Hi Ganesh,
    Please go through this link.
    http://www.sapag.co.in/SAP-XI-SOAP-Adapter-FAQ'S.html
    I think this would be helpful for you..
    Reward points if useful,
    Swamy Kunche

  • How to Capture Runtime SOAP Header in ABAP Webservice

    Hi All,
    I have created a WebService from a ABAP Function Module, and an external (Java Based) system is able consume to it. But while making the call, the external System enriches the SOAP header with certain values, and I need to capture these values in ABAP Function Module.
    How can read the enriched SOAP Header in my ABAP Function Module? is there any Class/Function Module which I can call to get the Runtime SOAP-HEADER or is the runtime SOAP-header available in one of the structures similar to SYST?
    Thanks,
    Ganesh

    Hi Ganesh,
    Please go through this link.
    http://www.sapag.co.in/SAP-XI-SOAP-Adapter-FAQ'S.html
    I think this would be helpful for you..
    Reward points if useful,
    Swamy Kunche

  • Add TWO Edge Animations/Stages to ONE web page (without using oam)

    Hi All,
    This is a bit of a follow on question for those who are adding scalable height/width edge compositions to web pages using the awesome piece of code created by Sarah (http://sarahjustine.com/) and other forum contributors... (attached code below).
    My question is: How do I add a second Edge Animate composition to the same page using this method?  So it's using "Stage" already... i'm guessing it's a matter of changing it to "Stage_02" etc in the following code?  I've tried changing the relevant code but so far I have been unsuccessful in getting it to recognise a second stage.
    Any help would be appreciated, many thanks in advance for your time.
    Jeff
    Index.html
    <!--Adobe Edge Runtime-->
        <script type="text/javascript" charset="utf-8" src="clouds_edgePreload.js"></script>
        <style>
            .edgeLoad-EDGE-78729757 { visibility:hidden; }
        </style>
    <!--Adobe Edge Runtime End-->
    <div class="stagewrap">
            <div id="Stage" class="EDGE-78729757">
            </div><!-- Close Edge Animate Stage -->
    </div><!-- Close stagewrap -->
    Adobe Edge Stage Script
    var stageHeight = sym.$('Stage').height(); // Set a variable for the height of the stage
    sym.$("#Stage").css({ // Set the transform origin so we always scale to the top left corner of the stage
    "transform-origin":"0 0",
    "-ms-transform-origin":"0 0",
    "-webkit-transform-origin":"0 0",
    "-moz-transform-origin":"0 0",
    "-o-transform-origin":"0 0"
    function scaleStage() {
        var stage = sym.$('Stage'); // Set a reusable variable to reference the stage
        var parent = sym.$('Stage').parent(); // Set a reusable variable to reference the parent container of the stage
        var parentWidth = stage.parent().width(); // Get the parent of the stage width
        var stageWidth = stage.width(); // Get the stage width
        var desiredWidth = Math.round(parentWidth * 1); // Set the new width of the stage as it scales
        var rescale = (desiredWidth / stageWidth); // Set a variable to calculate the new width of the stage as it scales
    // Rescale the stage!
         stage.css('transform', 'scale(' + rescale + ')');
        stage.css(  '-o-transform', 'scale(' + rescale + ')');
         stage.css('-ms-transform', 'scale(' + rescale + ')');
        stage.css('-webkit-transform', 'scale(' + rescale + ')');
         stage.css('-moz-transform', 'scale(' + rescale + ')');
        stage.css('-o-transform', 'scale(' + rescale + ')');
        parent.height(stageHeight * rescale); // Reset the height of the parent container so the objects below it will reflow as the height adjusts
    // Make it happen when the browser resizes
    $(window).on('resize', function(){
         scaleStage();
    // Make it happen when the page first loads
    $(document).ready(function(){
        scaleStage();

    I also met this question, have you solved this question?  Jeff

Maybe you are looking for