Making a call to a Business Connector Flow Service from within an ABAP prog

Hello,
I am trying to make a change to one of the flow services within BUsiness COnnector.
The way the system is currently set up is that the flow service is called from within an ABAP program via an RFC call.
A remote FM exists in SAP and this is called by the program and there is a corresponding flo service within Business Connector.
I have basically copied an existing flow service which works fine and made a few minor tweaks. Within SAP, I have copied the remote FM and again made a few minor tweaks.
However, when I run the program, it short dumps at the point whee my remote FM is called with th following message :-
"Unknown Partner and Message Type. Sender: xxxx Receiver: xxxx MsgType:  "
I am not a Business Connector expert and I guess I am missing a ste but I'm not sure what it is.
Can anyone advise?
Thanks,
Ruby

Hello,
I am trying to make a change to one of the flow services within BUsiness COnnector.
The way the system is currently set up is that the flow service is called from within an ABAP program via an RFC call.
A remote FM exists in SAP and this is called by the program and there is a corresponding flo service within Business Connector.
I have basically copied an existing flow service which works fine and made a few minor tweaks. Within SAP, I have copied the remote FM and again made a few minor tweaks.
However, when I run the program, it short dumps at the point whee my remote FM is called with th following message :-
"Unknown Partner and Message Type. Sender: xxxx Receiver: xxxx MsgType:  "
I am not a Business Connector expert and I guess I am missing a ste but I'm not sure what it is.
Can anyone advise?
Thanks,
Ruby

Similar Messages

  • Call a Web Service from within an e-Sourcing script

    Hi Guys
    I would like to know wether anyone has successfully been able to call a Web Service from within an
    e-Sourcing script? If you have, can you please share your experience and code?
    Thank You

    Hi Faaiez -
    As with any use of Web Services, however, you should carefully consider the security issues that may come up. How, for example, will the Web Service server validate that the Web Service client (E-Sourcing) is properly authenticated? Will password information be included in the web service call? You will find that it is very easy to make a web service call, but I would encourage you to carefully consider security before implementing a productive solution.
    Web service calls can be made using raw Java web service APIs from the open source Axis library which is included with E-Sourcing; this approach is slightly more difficult to code, but very dynamic. Web service calls can also be made using proxies. In one solution that I worked on, we generated java proxies for the web service, compiled those proxies into a Jar file, and included that jar file as a custom jar in E-Sourcing. Let me provide a few more details on each of these approaches.
    Using raw java web service APIs that are part of the Service and Call classes, I prototyped a web service call to Googles sample spell checker web service. Here is the code:
    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;
    import org.apache.axis.encoding.XMLType;
    import javax.xml.rpc.ParameterMode;
    import javax.xml.namespace.QName;
    String endpoint = "http://api.google.com/search/beta2";
    Service  service = new Service();       
    Call call = (Call) service.createCall();       
    call.setTargetEndpointAddress( new java.net.URL(endpoint) );       
    call.setOperationName( "doSpellingSuggestion" );       
    call.setOperationName(new QName("urn:GoogleSearch", "doSpellingSuggestion"));       
    call.addParameter("key", XMLType.XSD_STRING, ParameterMode.IN);       
    call.addParameter("phrase", XMLType.XSD_STRING, ParameterMode.IN);       
    call.setReturnType( XMLType.XSD_STRING );       
    String ret = (String) call.invoke( new Object[] { "googlekey", doc.getDocumentDescription()} );       
    doc.setDocumentDescription(ret);
    This block of code does a very simple thing...it calls the Google "doSpellingSuggestions" web service with two parameters: a key provided by Google, and a string for which the spelling suggestions should be generated. I used the current document description as my sample string for the web service and I put the results back into the document description - remember, this is just showing how you can call the web service, not doing anything really intelligent or useful from a business perspective
    There is nothing special to E-Sourcing about the above code...this is really just using the Axis java classes to call a web service.
    The second approach that can be used is to generate Java proxies for the web service calls. The open source Axis library includes a tool called "wsdl2java". Using the WSDL for the web service, you can generate Java proxies. Java classes will be generated by the tool; these Java classes will then need to be compiled and included in E-Sourcing as a custom jar. Once they are part of the E-Sourcing deployment, they can be called like any Java API. If you were to examine the generated code, you would notice that it looks a lot like the raw web service code shown above...the generated classes really just provide a simpler interface to the same functionality.
    You can see this information and other E-Sourcing information at my blog at: http://www.sunshinesys.com/
    Rob

  • Calling a Portal Service from within a Web Dynpro DC

    Hello,
    I am trying to call a Portal Service from within a Web Dynpro development component without sucess.
    Can anyone give me some hints on the necessary steps in order to accomplish this task?
    Thanks
    Diz

    Hi Diz,
    I tried doing the same thing by following the steps as mentioned by you. Just to re iterate,
    1. Created a DC "Portal Application Standalone" project by the name myservice.
    2. Created a portal service inside myservice by the ame AmitsService.
    3. Exposed IAmitsService.class in the public part.
    4 Build and deployed the DC on server and tested it through an abstract portal component and it worked FINE !!
    Now..
    5. Created anoter DC of type WebDynPro
    6. Added SAP_JTECHS -> epbc.prtapi._api as a "Used DC" with dependency build time and runtime
    7. Specified the sharing reference in the properties as PORTAL:sap.com/myservice
    8. Tried to reference the service using the following code..
    IAmitsService portalservice=(IAmitsService)WDPortalUtils.getServiceReference(IAmitsService.KEY);
    9.Build and deployed the DC.
    10. When I run the application I am getting the following error
    Processing HTTP request to servlet [dispatcher] finished with error.
    The error is: com.sap.engine.frame.core.load.SAPNoClassDefFoundError: com/sapportals/portal/prt/service/IService
    Exception id: [000D6008418B005C0000002C00000D200004163CE6719E1D]
    PLEASE ADVISE

  • Help needed with process to call an external web service from within ABAP

    Hello,
    I have an understanding of how I can provision web service from within SAP so that it can be consumed by external apps.
    Now, I am in need to know the, how I can call an external non-sap web service (let's say a java application) or even a public domain web service for that matter:
    Is there any lay man's guide out there? which will list following step:
    A sample ABAP program calling an external web service
    List of all the configurations needed within SAP to make this happen (calling an external web service).
    Any help will be greatly appreciated.

    Hi Matesh,
    Please use the following command in Google : site:sdn.sap.com abap consuming web service
    There is many samples of your needs on SDN.
    Like this one :
    http://wiki.sdn.sap.com/wiki/display/Snippets/WebServiceconsumerusingABAP-PROXY
    Regards, Gilles.

  • RFC function callls a SAP Business Connector Flow - only upper case

    Hi everybody,
    I wrote a function in SE37 which is calling a Flow in SAP Business Connector.
    R/3 and SAP BC, both are Non Unicode systems.
    The export parameter is TYPE makt-maktx.
    The call to SAP BC works fine. Only all the text I can see in the pipeline of SAP BC is upper case.
    I checked wether the domain of the makt-maktx allows case sensitive texts.
    This is OK.
    I have no idea how I can tell SAP BC to receive case sensitive texts.
    I checked the forums. Seems nobody had such a problem.
    Can somebyody help?
    Best regards
    Jochen
    Hi to all,
    it was not the JAVA Version, or a bug or whatelse.
    I just ingnored while testing in SE37 that there is
    a Flag [X] case sensitive - That's all!
    Shame on me!
    Greetings Joe
    Message was edited by:
            Jochen Seeliger

    Hi Priya
    Seeing the messages, it appears that server is down.
    "java.net.ConnectException" occurs whenever you try to connect to a system which is not up and running.
    cheers
    Sameer
    PS: Please award points if you find the answer useful

  • Error message when calling a Business Connector RFC destination from SRM

    Hello all,
    We are facing one problem with data Purchase Order transmission between SRM 5.0 (SRM_SERVER 5.5, extended classic scenario) and Business Connector 4.7.
    We made needed customizing in order to have "XML / XI" output medium available in tab 'Company Data' in "Manage Business Partners" web transaction (by updating BBP_USE_AI table in SM30 transaction).
    Then, we implemented BAdI definition BBP_EBPXML_OUT_BADI with method PURCHASEORDER in order to change XI system type to Business Connector.
    In this way, PO transfer data between SRM and BC is done using BC Module Function BAPI_POEC_XML_SEND (TCP/IP RFC connection was defined for Purchase Order in BBPC_RFCDEST table).
    Nevertheless, even if method BBP_PO_SEND_XML is correctly triggered when PO is created with a vendor with XML output medium, we have in the document output log ("Process Purchase Order" web transaction) an error message:
    ' Error (Unknown Partner and Message Type. Routing Rule created. Sender: SMR Receiver:) when calling RFC destination BC '
    where SRM is the SRM log. sys. and BC the Business Connector log. sys.
    Our EAI team is working on it, but if you have any idea, your are welcome !
    Thank you in advance.
    Regards.
    Laurent

    Hello Christian,
    Thank you for your help. However, we abandoned this solution between SRM and Business Connector.
    So, we followed instructions indicated in OSS note 883693 - "ECS: PO output determination in R/3".
    Nevertheless, in order to restrict this behaviour for specific vendors and purchasing organizations, we added some filters.
    It is working fine.
    However, when the PO is modified in SRM, then order again, PO is modified in R/3 (by the RFC user from SRM) more than once.
    As a consequence, we have as much messages as modifications of the order in R/3 (due to multiple RFC access with the SRM RFC user).
    Does anybody have an idea to have only one R/3 output message when the PO is modified in SRM ?
    One solution could be to check in the NAST table if the time creation of the last output message is lower than, for example, one minute.
    If it is the case, we do not allow R/3 ouput message.
    Any suggestions is welcome.
    Regards.
    Laurent.

  • SAP Business Connector MIME Services to SAP XI Transition

    Today we are using the built in MIME services in Business Connector (pub.mime) to format a MIME message, and are then using https to post it to an external business partner by placing the data into the "mimeStream".
    Is there a way to perform this same functionality in SAP XI?
    Thanks
    Peter

    Hello Prateek,
    Thank you very much for your answer. The AdapterGuide was really helpfull.
    Now the routing rule is associated to the correct Service (that was a the problem). So the rule started to process the XML files from the folder (the XML files disappeared immediately after I corrected the rule).
    But now my problem is that on the SAP side there is no inbound IDOCs so it seems the trasmission may failed.
    Moreover under "Routing"-->"Transactions" I don't see these entries with the the current date.
    Our routing rule is simple: "wildcard" "wildcard" "wildcard" "ALE (R/3 IDOC)"--><OUR SAP SYSTEM>
    The SAP connection is working as I can test under "SAP..." menu.
    Is there any other way to monitor what had happened with these XML files? I'm sure the BC processed as the files are gone, but there is no IDOC in the destination SAP...
    Thanks a lot!

  • Security issues with calling web services from within Oracle?

    I'd like to use a trigger to initiate pushing data to a web service, so I thought we should call the web service from PL/SQL in a DBMS job, or perhaps create a .NET stored proc to call the service. Our DB Lead is concerned about security, since the standard model is for clients to call the database, and not for the database to function as a client.
    Does this pose any security risk? Can you refer me to any best practices or articles on this?
    Thanks in advance.
    Edited by: Kit.net on Nov 9, 2010 11:28 AM

    First, a trigger is there to for a single sole purpose - guaranteeing the integrity of the data and the transaction. It is not there to interact with external services and processes (like mail, web and other services). Doing that exposes the transaction to those other processes/services. The transaction can now fail. not because of a business rule validation, but because of a network error when the trigger accesses an external service. How on earth can a business transaction fail when the transaction is valid, but a the transaction's trigger hit an external access error!?
    And what happens do that event you have fired off in the trigger, when the transaction is rolled back? How do you undo that event you have created in the trigger that was based on uncommitted data?
    So using a trigger like this is simply stupid (and yes, I have seen it too often in practice with horrible results to sugarcoat such an idiotic approach).
    As for calling a web service from the database, using the database as the client in such a case. This is not a security risk. This is not unusual. In fact, it is very common in my experience. We have a lot of databases, ranging from SE to EE and several RAC clusters. All of them function as a client at some stage during processing. Some use a db link - and as a client fire off a SQL via that db link to a database server to obtain data. Some use ftp and act as a ftp clients, transferring processed data (XML format) to a server. Some call web services to extract data from 3rd party systems to reconcile the differences between local data sets and 3rd party data sets..
    This is common between server and server. I do not see anything unusual in the database server using another server (and acting as a client when it does). Security between servers should not be a major problem (in fact, it can easily be done in a very robust way using trusted and encrypted communication).
    The problem occurs when a client connects to the server and client and server roles are swapped at some stage (like the server "writing" a file directly to the client's filesystem). This very seldom makes any sense. And this is where authentication and security become an issue.

  • Is it possible to call an executable of compiled c code from within LabVIEW?

    I can compile 'genesis' (the name of the code we are planning to use) under unix: it produces an executable which can be
    linked to user-constructed c files which contain specific crossover and/or
    mutation strategies, so once a user has the executable, it is not
    neccesary to re-compile the main GA everytime a user mucks around with the
    combination rules. I think that a question is, can you call the (or any)
    executable from within LabView?
    Thanks
    Alan Homer

    You can call executables using the System Exec VI, which can be found in the Communications palette.
    Try to take over the world!

  • How to deploy Oracel Business Rule (11 TP4) from within JDeveloper?

    Hello,
    I'm testing the Oracle Business Rules functionality provided in JDeveloper 11TP4.
    Development looks nice. I'd like to test the rules, wether it be from within a Java Class or as a Web Service.
    - How can I test the Business Rule 11G in Jdev TP4?
    - How can I deploy the Business Rules to an Application Server?
    Who's got ideas?
    Thanks in advance,
    Regards Léon Smiers

    Leon,
    Try the business rules sample for TP4. It includes instructions on how to build the rule and deploy it from JDev.
    http://www.oracle.com/technology/products/ias/bpel/techpreview/index.html
    Heidi.

  • ORA-14551 Call to a proc that performs INSERT from within a FUNCTION

    Anyone,
    I have written a number of functions that serve to convert an old_value to a new_value. But there are some times when the conversion fails. I wish to log those exceptions into a table and move on. I undertand FUNCTIONS are not to insert data but that is why I created a PROC and want to be able to call it from within the FUNCTIONs.
    Is there any way to get around the ORA-14551 error?
    Here is what I have:
    CREATE OR REPLACE FUNCTION MAXIMO.fcn_get_worktype
      ( worktype_IN IN varchar2,
        siteid_IN IN varchar2)
      RETURN  varchar2 IS
      var_worktype varchar2(5);
    BEGIN
         IF siteid_IN IN ('ML','OK','BE') THEN
            BEGIN
                 SELECT NVL(NEW_WTYPE,NULL)
                INTO var_worktype
                 FROM MAXIMO.MAX411_WBK_WORKTYPE$
                 WHERE OLD_WTYPE = worktype_IN;
            EXCEPTION
                WHEN NO_DATA_FOUND THEN
                    MAXIMO.SP_CONVERSION_EXCEPTION('WORKTYPE', 'WORKTYPE', worktype_IN, siteid_IN);
                    var_worktype := 'XX';
                     RETURN var_worktype;
            END;
        END IF;
        RETURN var_worktype ;
    END;And here is my PROC:
    CREATE OR REPLACE PROCEDURE MAXIMO.sp_conversion_exception (table_IN IN VARCHAR2, column_IN IN VARCHAR2, value_IN IN VARCHAR2, tab_ID IN VARCHAR2)
    IS
    BEGIN
        INSERT INTO MAXIMO.MAX411_CONVERSION_EXCEPTIONS
             ( TABLE_NAME,
             COLUMN_NAME,
             VALUE ,
              TAB_ID)
        VALUES
             ( table_IN,
             column_IN,
             value_IN,
              tab_ID );
        EXCEPTION
            /* If value was already recorded then do not record again, Key is on all three columns */
            WHEN DUP_VAL_ON_INDEX
                THEN
                    NULL;
        COMMIT;
    END;Can anyone shed any light on how I can stop getting:
    ERROR at line 1:
    ORA-14551: cannot perform a DML operation inside a query
    ORA-06512: at "MAXIMO.SP_CONVERSION_EXCEPTION", line 5
    ORA-06512: at "MAXIMO.FCN_GET_WORKTYPE", line 16
    ORA-01403: no data found
    ORA-06512: at "MAXIMO.LOAD_PM", line 181
    ORA-06512: at line 1
    Thanks in advance for any help I can get...
    Miller

    You need a PRAGMA AUTONOMOUS_TRANSACTION in your exception procedure, eg:
    CREATE OR REPLACE PROCEDURE MAXIMO.sp_conversion_exception (table_IN IN VARCHAR2, column_IN IN VARCHAR2, value_IN IN VARCHAR2, tab_ID IN VARCHAR2)
    IS
      PRAGMA AUTONOMOUS_TRANSACTION
    BEGIN
      ...

  • Hpw tp call a 'Page with Flow Logic' from within a View

    Within the same BSP, I have the requirment to call a page in the ;Page with Flow Logic' section from a page in the 'View' section.   
    Is this possible and if it is, how do I do it?  I have tried some calls but they all have failed.
    Thanks
    Glenn

    in the view you want to navigate then try
    <bsp: call > or <bsp: goto>  htmlb tags. or else you can use window.open method and open in a new window.

  • Calling a BSP page with flow logic from LAYOUT

    Hello all.  I am developing a BSP transaction to update HR data on SAP.  I initially developed this with one 'page with flow logic' and several 'page fragment's.  It has been suggested that I break this out into several pages with flow logic because the code in  the 'OnInputProcessing' Event Handler was getting quite complicated.  I was using the BSP directive to execute my 'page fragments'.  This was very simple to do.  What do I replace the BSP directive to call a page fragment with in order to call a page with flow logic.  I have included the code below.  I have converted the 'body.htm' 'page fragment' to a 'page with flow logic' and I am not sure of the correct way to call the page.  I do not have access to the navigation->goto_page( 'body.htm' ) at this point.  I am new to BSP and appreciate any help offered.
    <%@page language="abap" %>
    <%@extension name="htmlb" prefix="htmlb" %>
    <%@extension name="phtmlb" prefix="phtmlb" %>
    <%@extension name="xhtmlb" prefix="xhtmlb" %>
    <htmlb:content id     = "content"
                   design = "design2002+design2003" >
      <htmlb:document disableBackspaceNavigation="TRUE" >
        <htmlb:documentHead title="ESS: Employee Self Service" >
        </htmlb:documentHead>
        <htmlb:documentBody>
          <htmlb:form id="OOEform" >
            <%-- Positioning --%>
            <htmlb:gridLayout columnSize = "2"
                              rowSize    = "2"
                              width      = "100 %" >
              <%-- Row 1 - Header --%>
              <htmlb:gridLayoutCell columnIndex       = "1"
                                    rowIndex          = "1"
                                    colSpan           = "2"
                                    width             = "100 %"
                                    verticalAlignment = "MIDDLE" >
                <DIV style="border-bottom-style:solid;border-color:#A5B1BF;border-width:20px">
                <%@include file="header.htm" %>
                </DIV>
              </htmlb:gridLayoutCell>
              <%-- Row 2; Column 1 (Body Area) --%>
              <htmlb:gridLayoutCell columnIndex       = "1"
                                    rowIndex          = "2"
                                    width             = "80%"
                                    verticalAlignment = "MIDDLE" >
                <%@include file="body.htm" %>
              </htmlb:gridLayoutCell>
              <%-- Row 2; Column 2 (Right Area) --%>
              <htmlb:gridLayoutCell columnIndex         = "2"
                                    rowIndex            = "2"
                                    width               = "20%"
                                    verticalAlignment   = "TOP"
                                    horizontalAlignment = "LEFT" >
                <%@include file="right.htm" %>
              </htmlb:gridLayoutCell>
            </htmlb:gridLayout>
          </htmlb:form>
        </htmlb:documentBody>
      </htmlb:document>
    </htmlb:content>

    Hi,
    uhmmm, as it was previously suggested, you should perhaps think about MVC for your development. Working with classes and methods gives you more room for a better looking code. But at this point I´m not sure where your real problem is. You mentioned first that you created one page with logic and several page fragments and then you are worried because the code in the OnInputProcessing event is getting out of control
    First, you cannot insert a page in a page. You can only insert fragments in a page with <%@include file="header.htm" %>.
    Second, if you don´t have idea of MVC or you don´t want to switch to MVC, then create a modules program (SE38) where you´ll enter your code as subroutines and you call these subroutines from OnInputProcessing as follows:
    perform subrout1 in program XXXXXX tables YYYYY using AAAAA.
    In your programm XXXXX you declare the code as:
    form subrout1 in program XXXXXX tables YYYYY using AAAAA.
    This can be a substitute to classes and methods.

  • Making SOAP calls to a 3rd party Web service with PeopleCode

    Hi everyone :) I'm new to PS and have two questions (the first is most important):
    1. Are there any good resources for using PeopleCode to make SOAP (or even GET/POST) requests to Web services hosted outside a PS environment? I found [this page|http://www.zutshigroup.com/site/tech/peoplesoft_soap_example], but it doesn't appear to connect to a remote WSDL.
    2. How does development work, exactly? I'm used to the standard web languages where you launch a local dev server like IIS, launch an IDE, build code, and view the output in a browser. Does the PS model work like this?
    I am a developer for a company who offers Web services and am soon going to be remotely connecting to another company's PS dev environment to develop some sample code for them that integrates our services with their PS. I have no experience with the platform and due to the complexity of the PS installation won't be able to try it out before I begin developing. I would like to get as good a feel for this platform as I can before the meeting.
    I appreciate any information you can give me on sample code resources, workflow concepts, etc, but my question is primarily about SOAP requests. I can research the rest.
    Thank you!
    Edited by: user10655996 on Nov 26, 2008 3:09 PM

    Hi,
    Not sure if that App Package is available in versions below 9. But, I think it should be available since PS internally does use the same App Class for integrating with Tax softwares like Vertex and Taxware. Also that example is used when one does not want to make use of any IB Objects...
    You can definitely go ahead and make use of Standard IB Objects to Consume and Provide a Web Service in PS...
    Would like to know, if PS is the Consumer or the Provider?
    If PS is the Consumer then you can have a look at the code below ...
    import PT_IB_UDDI:UDDIException;
    class XMETHODS
    method XMETHODS();
    method AssignConnInfo();
    method IBInfoMethods();
    method IBInfoIBConnectorMethods();
    method WriteRequest(&ReqXML As XmlDoc);
    method WriteResponse(&ResXML As XmlDoc);
         * Helper function to throw appropriate exeception whenever ConnectorRequest returns null response.
    method HandleNullSoapResponse(&soapMs As XmlDoc, &ul As string);
    method HandleSoapFault(&soapReq As XmlDoc, &soapFaultNode As XmlNode);
    method CreateSOAPDocument();
    property Message req;
    property Message res;
    property boolean b;
    property string url;
    property string UserName;
    property string Str_Process;
    property string Str_TransID;
    property string Str_SourceNode;
    property string Str_ReqNodeName;
    property string Str_ReqNodeDescr;
    property string Str_ConnectorClass;
    property string Str_ConnectorName;
    property string Str_PathInfo;
    private
    rem Constant &NULL_SOAP_RESPONSE = 15301;
    Constant &NULL_SOAP_RESPONSE = 16022;
    Constant &BAD_RESPONSE_STATUS = 15303;
    Constant &NON_XML_RESPONSE = 15304;
    end-class;
    /* Constructor */
    method XMETHODS
    %This.CreateSOAPDocument();
    end-method;
    method IBInfoMethods
    &UserName = &req.IBInfo.OrigUser;
    &Str_Process = &req.IBInfo.OrigProcess;
    &Str_TransID = &req.IBInfo.TransactionID;
    &Str_SourceNode = &req.IBInfo.SourceNode;
    &Str_ReqNodeName = &req.IBInfo.RequestingNodeName;
    rem &Str_ReqNodeDescr = &req.IBInfo.RequestingNodeDescription;
    end-method;
    method IBInfoIBConnectorMethods
    &Str_ConnectorClass = &req.IBInfo.IBConnectorInfo.ConnectorClassName;
    &Str_ConnectorName = &req.IBInfo.IBConnectorInfo.ConnectorName;
    &Str_PathInfo = &req.IBInfo.IBConnectorInfo.PathInfo;
    end-method;
    method WriteRequest
    /+ &ReqXML as XmlDoc +/
    Local File &ppfile1 = GetFile("C:\temp\XMETHODS_SOAP_" | %Datetime | ".out", "W", %FilePath_Absolute);
    &ppfile1.WriteString(&ReqXML.GenFormattedXmlString());
    &ppfile1.Close();
    end-method;
    method WriteResponse
    /+ &ResXML as XmlDoc +/
    Local File &ppfile = GetFile("C:\temp\XMETHODS_MESSAGE_" | %Datetime | ".out", "W", %FilePath_Absolute);
    &ppfile.WriteString(&xml.GenFormattedXmlString());
    &ppfile.Close();
    end-method;
    method HandleNullSoapResponse
    /+ &soapMs as XmlDoc, +/
    /+ &ul as String +/
    Local PT_IB_UDDI:UDDIException &ex = create PT_IB_UDDI:UDDIException(&NULL_SOAP_RESPONSE);
    &ex.DefaultText = "There is no reply from the Web server hosting the Web Service at '%1'.";
    &ex.SetSubstitution(1, &ul);
    &ex.SoapRequest = &soapMs.GenFormattedXmlString();
    throw &ex;
    end-method;
    method HandleSoapFault
    /+ &soapReq as XmlDoc, +/
    /+ &soapFaultNode as XmlNode +/
    Local PT_IB_UDDI:UDDIException &ex = create PT_IB_UDDI:UDDIException(0);
    &ex.SoapRequest = &soapReq.GenFormattedXmlString();
    &ex.InitFromSoapFault(&soapFaultNode);
    throw &ex;
    end-method;
    method AssignConnInfo
    &req.IBInfo.IBConnectorInfo.ConnectorClassName = "HttpTargetConnector";
    /* Specifies OutBound Request */
    &b = &req.IBInfo.IBConnectorInfo.AddConnectorProperties("Method", "POST", %HttpProperty);
    &b = &req.IBInfo.IBConnectorInfo.AddConnectorProperties("Content-Type", "text/xml", %Header);
    &b = &req.IBInfo.IBConnectorInfo.AddConnectorProperties("SOAPUpContent", "Y", %HttpProperty);
    &b = &req.IBInfo.IBConnectorInfo.AddConnectorProperties("Authorization", "Basic cHJhc2hhbnQ6cHJha2FzaA==", %Header);
    /* End Point */
    &url = "http://webservices.daelab.net/datesservice/datesservice.wso";
    rem &url = GetURL(URL.XMETHODS_MONTH);
    &b = &req.IBInfo.IBConnectorInfo.AddConnectorProperties("URL", &url, %HttpProperty);
    end-method;
    method CreateSOAPDocument
    REMARK ENDPOINT = "http://webservices.daelab.net/datesservice/datesservice.wso";
    rem Local Message &req, &res;
    Local SOAPDoc &soap;
    Local XmlDoc &xml;
    rem Local boolean &b;
    Local integer &i;
    Local XmlNode &node;
    Local number &num;
    rem Local string &UserName;
    rem Local string &Str_Process, &Str_SourceNode, &Str_ReqNodeName;
    rem Local string &Str_ConnectorClass, &Str_ConnectorName;
    rem Local string &Str_PathInfo;
    Local array of XmlNode &nodes;
    &req = CreateMessage(Operation.XMETHODS, %IntBroker_Request);
    &soap = CreateSOAPDoc();
    /* set the Month Number */
    &num = Z_EXAMPLE_WRK.ACCESS_ID.Value;
    If &num <= 0 Or
    None(&num) Or
    &num >= 13 Then
    &num = 1;
    End-If;
    Local string &soapstr = GetHTMLText(HTML.XMETHODS, &num); /* SOAP 1.1 */
    rem Local string &soapstr = GetHTMLText(HTML.XMETHODS_12, &num); /* SOAP 1.2 */
    Local boolean &bool = &soap.ParseXmlString(&soapstr);
    &xml = &soap.XmlDoc;
    * Test Whether we can send a PSNONXML format for SOAP Requests - AND YES WE CAN SEND THAT
    Local string &encoded = Substitute(&xml.GenXmlString(), "<?xml version=""1.0""?>", "<?xml version=""1.0"" encoding=""UTF-8""?>");
    /* Encode the XML as a PSNONXML String and create the XML again */
    Local string &nonXmlData = "<?xml version=""1.0""?><data psnonxml=""yes""><![CDATA[" | &encoded | "]]></data>";
    rem %This.WriteRequest(&xml);
    /* Assign the Request to a Page Field */
    Z_EXAMPLE_WRK.XML_TESTI.Value = &xml.GenFormattedXmlString();
    /* Assign Connector and relevant Properties */
    %This.AssignConnInfo();
    /* Assign the XML Object to a Message Object */
    &xml = CreateXmlDoc(&nonXmlData);
    rem Z_EXAMPLE_WRK.XML_TESTI.Value = &xml.GenFormattedXmlString();
    rem %This.WriteRequest(&xml);
    &req.SetXmlDoc(&xml);
    /*IBInfo Methods */
    %This.IBInfoMethods();
    /* IBConnectorInfo Methods */
    %This.IBInfoIBConnectorMethods();
    rem &res = CreateMessage(Operation.XMETHODS_RESP, %IntBroker_Response);
    &res = %IntBroker.ConnectorRequest(&req);
    /* Additional Error Handling */
    If &res = Null Then /* Throw exception */
    %This.HandleNullSoapResponse(&xml, &url);
    End-If;
    /* Check for soap faults */
    &xml = &res.GetXmlDoc();
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
         <soap:Body>
              <soap:Fault>
    If &xml <> Null Then
    Local array of XmlNode &faultNodes = &xml.DocumentElement.GetElementsByTagNameNS("http://schemas.xmlsoap.org/soap/envelope/", "Fault");
    If &faultNodes <> Null And
    &faultNodes.Len > 0 Then
    %This.HandleSoapFault(&xml, &faultNodes [1]);
    End-If;
    End-If;
    /* Check response Status */
    If &res.ResponseStatus <> 0 Then
    Local PT_IB_UDDI:UDDIException &ex1 = create PT_IB_UDDI:UDDIException(&BAD_RESPONSE_STATUS);
    &ex1.SetSubstitution(1, NumberToString("", &res.ResponseStatus));
    &ex1.SoapRequest = &xml.GenFormattedXmlString();
    throw &ex1;
    End-If;
    If &xml = Null Then
    /* Some error in returned object. Does not look like valid Xml */
    Local PT_IB_UDDI:UDDIException &ex2 = create PT_IB_UDDI:UDDIException(&NON_XML_RESPONSE);
    &ex2.SoapRequest = &xml.GenFormattedXmlString();
    throw &ex2;
    End-If;
    /* retrieve the response */
    &xml = &res.GetXmlDoc();
    Z_EXAMPLE_WRK.XMLLINKDTD.Value = &xml.GenFormattedXmlString();
    %This.WriteResponse(&xml);
    end-method;
    Thanks
    Prashant

  • Calling a web service from within PLSQL

    Hello !
    I am trying to activate a web service located on a remote machine inside a database trigger . This WSDL has been generated by a XI (SAP) tool and located on the server on which the XI is installed.
    XI is an EAI tool a product that is included in the SAP products - for integrating between SAP and other tools - including Oracle DB.
    When I try to call the web service using UTL_HTTP package - a procedure i wrote correctly - I get the following error message :
    ORA-29273: HTTP request failed
    ORA-06512: at "SYS.UTL_HTTP", line 1029
    ORA-12545: Connect failed because target host or object does not exist
    I have GOOGLED the last message ( ORA-12545) , but the forums referred to a client for ORACLE, which is configured incorrectly; none of them referred to my case - calling a web service. BTW I tried using the web server's IP address instead of the DNS but got the same error.
    Any suggestion would be very appreciated.
    Best Regards,
    Shimon B.

    Try the following type of "telnet" test using PL/SQL:
    SQL> create or replace function tcpPing( ipAddress varchar2, portNum number) return varchar2 is
    2 socket utl_tcp.connection;
    3 t1 timestamp with local time zone;
    4 begin
    5 t1 := systimestamp;
    6 socket := utl_tcp.Open_Connection(
    7 remote_host => ipAddress,
    8 remote_port => portNum,
    9 tx_timeout => 5
    10 );
    11 utl_tcp.Close_Connection( socket );
    12
    13 return( ipAddress||':'||TO_CHAR(portNum)||' is alive. ('|| TO_CHAR(systimestamp-t1) ||')' );
    14
    15 exception when OTHERS then
    16 return( ipAddress||':'||TO_CHAR(portNum)||' did not respond. ('||SQLERRM(SQLCODE)||')' );
    17 end;
    18 /
    Function created.
    SQL>
    SQL> col STATUS format a80
    SQL> select tcpPing( '10.251.93.87', 80 ) as STATUS from dual;
    STATUS
    10.251.93.87:80 is alive. (+000000000 00:00:00.002422000)
    SQL> select tcpPing( '10.251.93.87', 81 ) as STATUS from dual;
    STATUS
    10.251.93.87:81 did not respond. (ORA-29260: network error: TNS:operation timed
    out)

Maybe you are looking for

  • How to put mp4 on Iphone to post to instagram

    I have posted videos from my phone to instagram before and they always come up very poor quality. I have a short video (11 seconds) I made imovie on my macbook pro that I would like to post to instagram so it is high quality. I used HandBrake to conv

  • Open a form in full Screen mode

    Hi all, I want to open a form in IE with full screen mode . Is it possible ? Plz guide .... Thanks

  • Oracle Prepared Statement Class Cast exception

    I am using the TxDataSource with Oracle thin driver in WL6.1 I get a ClassCastException when I cast the PreparedStatement to OraclePreparedStatement. It is unable to cast from weblogic.jdbc.rmi.SerialPreparedStatement. I am not if I can use Oracle ex

  • How to create a graph in ADF Faces

    Hi there, I am working with ADF using JDeveloper 10.1.3 with Business Components (BC) and ADF Faces. I am trying to create a graph base on a View object, but I can't see any options on the Data Control Palette. Is there a graph wizard component for A

  • Rebate settlement plz

    how do we settle the  rebate plz  let me know the process?