PO Response XML generation

Hi,
I are working EBP-SUS Extended Classic Scenario having EBP and SUS on same server SRM Server 7.0 but differenct clients.
I am tring  purchase order response from SUS Supplier to SRM in ebp-sus scenario while before this PO is correctly transferred from EBP to SUS by XML communication.  We are using XML communication by SRM to SUS and SUS to SRM.
When i sent POR from SUS  I am having Purchase Order Response in BBP_PD by selecting BUS2232 in SUS, is it correct Object for PO Response? Or  it should be BUS2209?
and None XML message triggered for PO Response (checked in sxmb_moni in sus) while number range and transaction type is maintained in SUS. Is any method or report to trouble shoot for POR?
<<Text removed>>
Hope to hear from you all using POR approval workflow in this scenario.
Thanks and Regards,
Pawan Keshwani
Edited by: Matt on Jul 30, 2011 7:11 AM

Hi,
Issue is resolved by the the help of below forum :
SUS PO confirmations.
SENT :SENT was not maintained in SUS Supplier System.
XML Messege is generating fine SXMB_MONI in SUS  and XI  but for *I am getting the below error at SXMB_MONI in EBP System* :
  <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!--  Call Inbound Proxy
  -->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
  <SAP:Category>XIProxy</SAP:Category>
  <SAP:Code area="ABAP">INTERFACE_REGISTRATION_ERROR</SAP:Code>
  <SAP:P1>ifmmessif</SAP:P1>
  <SAP:P2>PurchaseOrderConfirmation_In</SAP:P2>
  <SAP:P3>http://sap.com/xi/GovernmentProcurement</SAP:P3>
  <SAP:P4 />
  <SAP:AdditionalText />
  <SAP:ApplicationFaultMessage namespace="" />
  <SAP:Stack>No implementing class registered for the interface (ABAP interface, request message PurchaseOrderConfirmation_In, request message, namespace http://sap.com/xi/GovernmentProcurement)</SAP:Stack>
  <SAP:Retry>M</SAP:Retry>
  </SAP:Error>
Kindly help me guys, if you face this before.
Thanks.
Regards,
Pawan Keshwani

Similar Messages

  • Change error tag names of the Response xml of a vanilla Inbound Webservice

    Hi,
    I am invoking a vanilla inbound webservice "Service Request" through Soap UI. Whenever any error occurs, in the response xml, some tags like "siebelf:error" is generated in the xml. However these tags are not present in the IO.My question is, can we change these tag names? If yes, then how?
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Server</faultcode>
    <faultstring>Method 'SetFieldValue' of business component 'Service Request' (integration component 'Service Request') returned the following error:
    "The value entered in field Status of buscomp Service Request does not match any value in the bounded pick list FIN PickList Service Request Status.(SBL-DAT-00225)"(SBL-EAI-04376)</faultstring>
    <detail>
    <siebelf:siebdetail xmlns:siebelf="http://www.siebel.com/ws/fault">
    <siebelf:logfilename>EAIObjMgr_enu_0033_34603066.log</siebelf:logfilename>
    <siebelf:errorstack>
    <siebelf:error>
    <siebelf:errorcode>SBL-DAT-00225</siebelf:errorcode>
    <siebelf:errorsymbol/>
    <siebelf:errormsg>Method 'SetFieldValue' of business component 'Service Request' (integration component 'Service Request') returned the following error:
    "The value entered in field Status of buscomp Service Request does not match any value in the bounded pick list FIN PickList Service Request Status.(SBL-DAT-00225)"(SBL-EAI-04376)</siebelf:errormsg>
    </siebelf:error>
    </siebelf:errorstack>
    </siebelf:siebdetail>
    </detail>
    </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Regards
    Sagnik

    Hi,
    You should be able to edit the generated wsdl as you suggested, changing the
    "return" to something else. Then save the wsdl to a file, say
    "filename.wsdl", and then at the top of your jws add the following:
    * @jws:wsdl file="filename.wsdl"
    This will force the jws to use the wsdl you specify and you won't have to
    edit any maps. Of course, as your jws changes, you will need to regenerate
    the wsdl and change the "return" to something else.
    Mike Kaufman
    Software Engineer
    BEA Systems
    "sherlock" <[email protected]> wrote in message
    news:3cbbe81f$[email protected]..
    >
    I have created a webservice in workshop that has some methods what returnstring-data.
    Now I want to create clients with different software-products. Because Igot some
    errors with one of these products, I looked into the WSDL and noticed thatthe
    name of the response-datatype is 'return' (by default).
    You can see this here:
    - <s:element name="addUserResponse">
    - <s:complexType>
    - <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="return" nillable="true"type="s:string"
    />
    This 'return' is interpreted as a keyword in the client-generation tool.If I
    change this manually to another word then it works.
    When I try to change the 'Return XML' in the 'Edit Maps and Interface'Dialog,
    than the WSDL looks like this:
    - <s:element name="addUserResponse">
    - <s:complexType mixed="true">
    - <s:sequence>
    <s:any minOccurs="1" maxOccurs="unbounded" />
    Now the name- and type-definitions are completely missing.
    The question is now: how to change the name of the response-datatype from'return'
    to another (not-keyword-) name?
    I think this is important because I don't know what software a customeruses to
    generate a client and I can not expect that he manually edits myWSDL-file.
    >
    Thanks.

  • New line character (/n ) getting introduced in the response XML in Biztalk 2010

    Hello,
    In one of our enviornment, we have started facing an issue that the response XML does not get structered correctly, hence when the response is finally redenered, there is a /n in the response fields. this is for all string fields that do not have data . 
    e.g.
    If you see the sample below, FName field has data and hence is structered correctly, however HairColorCd does not have data.
    The opening and closing tags of HairColorCd are on different lines when the xml response is opened in a text editor, and when opened in IE, there is a space. When the BizTalk (hosted as a WCF )responds to the caller application there appears a '/n ' in the
    value of the field.
    The correct value should have been null, i.e. ""
    <FName>LISA</FName><HairColorCd>
        </HairColorCd><HairColorDesc>
        </HairColorDesc><EyeColorCd>
        </EyeColorCd><EyeColorDesc>
        </EyeColorDesc>                                                                                                                                                                          
    ANy ideas on why this is happenning?ALl other enviornments(with same code) is working fine.

    Hi Rachana,
    I have faced the same issue last weeks with BizTalk 2010. This happens with versions of BizTalk 2006R2+ and  if you are loading the message using XML Document in some stage. So if that is the case, please check everytime you load the content of the
    message using XMLDocument and do it this way:
    Xmldoc= new System.Xml.XmlDocument();
    Xmldoc.PreserveWhitespace=false;
    Xmldoc.Load(CONTENT); // or Xmldoc.LoadXml(CONTENTAsSTRING)
    Xmldoc.PreserveWhitespace=true;
    YourBizTalkMessage=Xmldoc;
    Do it in this sequence and your problem should be solved.
    Regards, Mazin - MCTS BizTalk Server 2006

  • XML generation problem?

    Hi I'm relatively new to Flex 2 and I have a question.
    I'm generating an xml file from an oracle view and hope to
    use it as the basis for a chart/data grid.
    My generation process yields data something like this:
    <list>
    <commodity name="Laptop Computer" total="0">
    <warehouse name="California" onhand="10"/>
    <warehouse name="Viriginia" onhand="20"/>
    <warehouse name="Washington" onhand="0"/>
    </commodity>
    <commodity name="Desktop Computer" total="0">
    <warehouse name="Washington" onhand="9"/>
    </commodity>
    </list>
    I've taken this generated xml and put it into a local file
    for now.
    When I attempt to load this data I get this error:
    TypeError: Error #1009: Cannot access a property or method of
    a null object reference.
    at TestFileAccess/TestFileAccess::resultHandler()
    at TestFileAccess/__srv_result()
    at
    flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at flash.net::URLLoader/flash.net:URLLoader::onComplete()
    My mxml file looks something like this:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="absolute" xmlns="*" paddingTop="3"
    creationComplete="initApp()" pageTitle="Warehouse Levels">
    <mx:Script>
    <![CDATA[
    import mx.collections.ArrayCollection;
    import mx.rpc.events.*;
    [Bindable]
    private var commodData:Array;
    [Bindable]
    private var warehouseData:Array;
    [Bindable]
    public var slicedCommodData:ArrayCollection;
    private function initApp():void
    srv.send();
    slicedCommodData = new ArrayCollection();
    private function resultHandler(event:ResultEvent):void
    commodData = event.result.list.name.source as Array;
    warehouseData = new Array(commodData.length);
    slicedCommodData.source = commodData;
    var commodTotal:Number;
    for (var x:Number = 0; x < commodData.length; x++)
    warehouseData[x] = {name: commodData[x].name, onhand:0};
    var warehouses:Array = commodData[x].warehouse.source as
    Array;
    commodTotal = 0;
    for (var j:Number = 0; j < warehouses.length; j++)
    commodTotal += warehouses[j].onhand;
    commodData[x].total = commodTotal;
    ]]>
    </mx:Script>
    <mx:HTTPService id="srv" url="result.xml"
    useProxy="false" result="resultHandler(event)"/>
    <mx:Panel layout="absolute">
    <mx:ColumnChart id="WarehouseTotals"
    dataProvider="{slicedCommodData.source}">
    <mx:horizontalAxis>
    <mx:CategoryAxis dataProvider="{slicedCommodData.source}"
    categoryField="Name"/>
    </mx:horizontalAxis>
    <mx:series>
    <mx:ColumnSeries xField="Name" yField="Total"/>
    </mx:series>
    </mx:ColumnChart>
    <mx:DataGrid dataProvider="{slicedCommodData.source}">
    <mx:columns>
    <mx:DataGridColumn headerText="Commodity"
    dataField="Name"/>
    <mx:DataGridColumn headerText="Total"
    dataField="Total"/>
    </mx:columns>
    </mx:DataGrid>
    </mx:Panel>
    </mx:Application>
    I'm wondering if something is wrong with my generated xml
    data or if its something else. I did notice that my xml generation
    doesn't always produce 3 warehouse tags for every commodity. Could
    this be the problem?
    Also, the reason the commodity tag's total is always 0 in the
    xml is because this information is not captured in the view...I use
    mxml to calculate that.
    Thanks!

    It seems that I played with it for a while and fixed it. The
    problem was my xml data and the format my httpservice was
    returning. First my xml data needed to be enclosed by <data>
    and </data> tags not <list> and </list> tags.
    Second my httpservice needed to have a result format of e4x. This
    also caused me to have to change how I was handling the individual
    xml properties of the data.
    Anyway the fixed code looks like this for anyone that cares
    and has gotten a similar error.
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    xmlns="*" paddingTop="3" creationComplete="initApp()"
    pageTitle="Warehouse Levels">
    <mx:Script>
    <![CDATA[
    import mx.collections.XMLListCollection;
    import mx.rpc.events.*;
    [Bindable]
    private var commodData:XMLList;
    [Bindable]
    public var slicedCommodData:XMLListCollection;
    private function initApp():void
    srv.send();
    private function resultHandler(event:ResultEvent):void
    commodData = event.result.commodity;
    slicedCommodData = new XMLListCollection(commodData);
    var commodTotal:Number;
    var nextNum:Number;
    for (var x:Number = 0; x < commodData.length(); x++)
    var warehouses:XMLList = commodData[x].warehouse as XMLList;
    commodTotal = 0;
    for (var j:Number = 0; j < warehouses.length(); j++)
    nextNum = 0;
    nextNum = new Number(warehouses[j].@onhand);
    commodTotal = commodTotal + nextNum;
    var firstItem:Object = slicedCommodData.getItemAt(i);
    firstItem.@total = commodTotal;
    ]]>
    </mx:Script>
    <mx:HTTPService id="srv" url="result.xml"
    resultFormat="e4x" result="resultHandler(event)"/>
    <mx:HDividedBox width="50%" height="100%">
    <mx:ColumnChart id="WarehouseTotals"
    dataProvider="{slicedCommodData}">
    <mx:horizontalAxis>
    <mx:CategoryAxis dataProvider="{slicedCommodData}"
    categoryField="@name"/>
    </mx:horizontalAxis>
    <mx:series>
    <mx:ColumnSeries xField="@name" yField="@total"/>
    </mx:series>
    </mx:ColumnChart>
    </mx:HDividedBox>
    <mx:HDividedBox width="50%" height="100%">
    <mx:DataGrid dataProvider="{slicedCommodData}">
    <mx:columns>
    <mx:DataGridColumn headerText="Commodity"
    dataField="@name"/>
    <mx:DataGridColumn headerText="Total"
    dataField="@total"/>
    </mx:columns>
    </mx:DataGrid>
    </mx:HDividedBox>
    </mx:Application>
    Thanks for all of your help!

  • Problem for xml generation using DBMS_XMLGEN

    Hi All,
    i have problem during xml generation using Any help would be highly appreciate
    how could we publish xml data using data base API DBMS_XMLGEN in oracle applications (APPS) i.e. at 'View Output" using
    Any help would be highly appreciate.
    Let me know if need more explanation, this is High priority for me.
    Thanks and Regards,
    [email protected]
    Message was edited by:
    user553699

    You can set the null attribute to true , so that the tag appears in your XML
    see the statement in Bold.
    DECLARE
    queryCtx dbms_xmlquery.ctxType;
    result CLOB;
    BEGIN
    -- set up the query context
    queryCtx := dbms_xmlquery.newContext(
    'SELECT empno "EMP_NO"
    , ename "NAME"
    , deptno "DEPT_NO"
    , comm "COMM"
    FROM scott.emp
    WHERE deptno = :DEPTNO'
    dbms_xmlquery.setRowTag(
    queryCtx
    , 'EMP'
    dbms_xmlquery.setRowSetTag(
    queryCtx
    , 'EMPSET'
    DBMS_XMLQUERY.useNullAttributeIndicator(queryCtx,true);
    dbms_xmlquery.setBindValue(
    queryCtx
    , 'DEPTNO'
    , 30
    result := dbms_xmlquery.getXml(queryCtx);
    insert into clobtable values(result);commit;
    dbms_xmlquery.closeContext(queryCtx);
    END;
    select * from clobtable
    <?xml version = '1.0'?>
    <EMPSET>
    <EMP num="1">
    <EMP_NO>7499</EMP_NO>
    <NAME>ALLEN</NAME>
    <DEPT_NO>30</DEPT_NO>
    <COMM>300</COMM>
    </EMP>
    <EMP num="2">
    <EMP_NO>7521</EMP_NO>
    <NAME>WARD</NAME>
    <DEPT_NO>30</DEPT_NO>
    <COMM>500</COMM>
    </EMP>
    <EMP num="3">
    <EMP_NO>7654</EMP_NO>
    <NAME>MARTIN</NAME>
    <DEPT_NO>30</DEPT_NO>
    <COMM>1400</COMM>
    </EMP>
    <EMP num="4">
    <EMP_NO>7698</EMP_NO>
    <NAME>BLAKE</NAME>
    <DEPT_NO>30</DEPT_NO>
    <COMM NULL="YES"/>
    </EMP>
    <EMP num="5">
    <EMP_NO>7844</EMP_NO>
    <NAME>TURNER</NAME>
    <DEPT_NO>30</DEPT_NO>
    <COMM>0</COMM>
    </EMP>
    <EMP num="6">
    <EMP_NO>7900</EMP_NO>
    <NAME>JAMES</NAME>
    <DEPT_NO>30</DEPT_NO>
    <COMM NULL="YES"/>
    </EMP>
    </EMPSET>
    http://sqltech.cl/doc/oracle9i/appdev.901/a89852/d_xmlque.htm

  • Avoid Bug 7146375 ORA-4030 MEMORY LEAK IN (Xml generation) in oracle 10g

    Hi All,
    I have to generate an xml from database which contains around 4 lac records. I had written a query using XmlSerialize and XmlElement.
    It does run properly for records less than 2 lacs.
    But when the record count goes above 2 lacs..it is throwing the following error -
    { ORA-04030: out of process memory when trying to allocate 1032 bytes (qmxlu subheap,qmemNextBuf:alloc)
    ORA-06512: at "SYS.XMLTYPE", line 111!}
    For the above error - I have tried increasing pga from 480M to 800M, but still we are getting the same error.
    After researching i found out -
    Cause
    This is caused by the following bug:
    Bug 7146375 ORA-4030 AND MEMORY LEAK IN SESSION HEAP: "KOH DUR HEAP D"
    Solution
    Bug 7146375 is fixed in 11.2
    So i tried out the query in another a db which has 11g installed and my query runs perfectly fine for records of upto 4 lacs.
    But since we have oracle 10g on our clients machine, are there other ways to achieve this XML generation other than this?
    Thanks.

    913389 wrote:
    After researching i found out -
    Cause
    This is caused by the following bug:
    Bug 7146375 ORA-4030 AND MEMORY LEAK IN SESSION HEAP: "KOH DUR HEAP D"
    Solution
    Bug 7146375 is fixed in 11.2
    So i tried out the query in another a db which has 11g installed and my query runs perfectly fine for records of upto 4 lacs.
    But since we have oracle 10g on our clients machine, are there other ways to achieve this XML generation other than this?I doubt it. If Oracle have investigated and created a bug report that says the solution is to upgrade to 11.2, then that's the answer, otherwise they would indicate that a particular 10g patch set can also be used.

  • Workbench freezes on call to BAPI_PRODORDCONF_GETLIST Request/Response XML

    I have created a simple transaction in MII 12.0.6 with three JRA actions: Start Session, Function Call, and End Session.  From the configuration dialog of the Function Call action, I confirmed the existance of BAPI_PRODORDCONF_GETLIST via a BAPI search. I attempted to select this BAPI only to have the Workbench freeze up.  This BAPI works flawlessly in SE37. I checked the logs and saw that the following error message was thrown:
    com.sap.mw.jco.jra.JRA$ResourceException: Couldn't execute interaction. Transaction rolledback due to connection interruption...
    I am using the same JRA connection to call BAPIs in other transactions without any issues.
    Has someone ran into a similar issue before that could assist me in resolving this?
    FYI...my objective is to obtain a list of confirmations, including the confirmation number and confirmation counters, from the output of this BAPI which will be inputted into BAPI_PROCORDCONF_GETDETAIL to maintain a count of the yield and scrap already confirmed for that particular operation/phase.
    Thanks,
    Michael Teti
    Senior Solutions Consultant
    SeeIT Solutions, LLC

    Michael,
    It was my understanding (via customer confirmation) that the returned Yield and Scrap located in the Phase tables of the BAPI_PROCORD_GET_DETAIL Bapi are the Planned Operation Yield and Scrap for that operation and not the Yield and Scrap already confirmed.  The Help documentation in the BAPI Explorer does not verify this one way or another.
    Also, after numerous attempts of trying to pull down the BAPI_PROCORDCONF_GETLIST Request/Response XML, the configuration dialog actually closed.  It tooke quite a long time to complete.  My guess is that it timed out because when I look at the BAPI structure, there was none.
    I did see the other thread prior to my submission but since that thread was referring to a JCO connection and a timeout wasn't actually confirmed on my end, I decided to creat a new one.
    Thanks,
    Michael Teti

  • Outputting request/response XML

    I usually tend to use a network analyzer to examine outgoing/incoming packets for actual XML. However, I'm invoking web services using HTTPS and due to the encryption I cannot see the packets' payload. I tried using the following VM setting: -Dweblogic.webservice.verbose=true but it didn't help. My question is whether anybody knows how to output the web service XML (outgoing/incoming) using either a system property or within the code?

    Refer this link for Custom Handlers: http://download.oracle.com/docs/cd/E12840_01/wls/docs103/webserv_adv/handlers.html
    There may be some other simpler approach.
    BUT, you can use Handlers approach to intercept the outgoing and incoming request and in that method, you can do System.out.println or write the webservice xml into a File. Below is the code snippet in custom handler, where I am writing my Ougoing WebServices XML into a file named: webServiceRequest.xml
    Create a custom Handler class and implement the logic in the method: handleMessage(SOAPMessageContext messageContext). I used standard sun jdk imports and nothing specific to weblogic. Then add this Handler to my Service binding provider.
    *** To add custom handler to your service object ***
    // Set the Custom Handler to to your aPort object with this code snippet. Remeber that IoDHandler1.java is a custom java file.
    BindingProvider bindingProvider = (BindingProvider) aIoDPort;
    Binding aBinding = bindingProvider.getBinding();
    List<Handler> allHandlers = aBinding.getHandlerChain();
    allHandlers.add(new IoDHandler1());
    aBinding.setHandlerChain(allHandlers);
    **** Code snippet in Custom Handler1 class *****
    import javax.xml.namespace.QName;
    import javax.xml.ws.handler.soap.SOAPHandler;
    import javax.xml.ws.handler.MessageContext;
    import javax.xml.ws.handler.soap.SOAPMessageContext;
    import javax.xml.soap.*;
    public boolean handleMessage(SOAPMessageContext messageContext) {
    Boolean outboundProperty = (Boolean) messageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
    if (outboundProperty.booleanValue()) {
         System.out.println("IoDHandler1::handleMessage() -> Outbound Message");
         try {
              SOAPMessage soapMessage = messageContext.getMessage();
              File aFile = new File("webServiceRequest.xml");
              FileOutputStream aFOS = new FileOutputStream(aFile);
              soapMessage.writeTo(aFOS);
         } catch (Exception e) {
              System.out.println("IoDHandler1::handleMessage() -> Inside CATCH Error Block -> IGNORE FOR NOW AND CONTINUE...");
              e.printStackTrace();
    } else {
    // You can write similar code snippet to out Response xml also in this section...
         System.out.println("IoDHandler1::handleMessage() -> Inbound Message");
    //System.out.println("IoDHandler1::handleMessage() -> Response: " + messageContext.getMessage().toString());
    return true;
    HTH
    Ravi Jegga

  • Response XML Cutoff ?

    Hi Guys,
    I have configured HTTP-RFC sysnchronus scenario. The response xml from sap back to third party system is ok but after mapping it is getting cutoff at some stage.
    we have incresed the HTTP Processtime out from 60 to 6000 secs and we are able to process some large xmls but when the input xml size grows then again it is giving the problem. do we need to increse the time beyond 6000 secs.
    what is the max time we can mention for the HTTP process time out and conn time out ?
    any help would be really appreciated
    Thanks,
    srini

    Hi,
    Please donot incraese the time..because after sometime msg start increasing in XI and Xi will have bottleneck problem.....
    As u are saying when XML is big it is giving problem....Just do one think First brak the XML according to some pattern and then at reciver end make it a one file.
    Regards
    Hemant
    Awards points if find helpful

  • PI 7.11 - Sync HTTP receiver adapter with response XML file

    Hi
    We have a File to HTTP scenario in which we need a sync HTTP interface. We send a file to the HTTP address and receive a XML acknowledge. As I read in this forum: sync HTTP interfaces are not possible with the "standard" HTTP adapter. So I found an entry which recommended to use the SOAP adapter instead.
    I configured it:
    - Do Not Use SOAP envelope
    - modules: RequestResponseBeans, CallSapAdapter, ResponseOneWayBean
    If i use this scenario, i get following error in the RWB - Message Display Tool:
    Delivering the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.lang.NullPointerException: while trying to invoke the method com.sap.engine.interfaces.messaging.api.Message.getMessageId() of an object loaded from local variable 'message1'.
    I testet this scenario using CURL and it worked properly. Should this kind of scenario work with the SOAP adapter or do I need to buy/develop an own adapter? Is in NW7.3 possible to configure sync HTTP scenarios?
    Thanks in advance
    Michael

    Hi
    actually i use a simple HTTP receiver CC with the setting "XI Payload in HTTP Body" to send a XML datafile to a webpage (java servlet). This part works fine by now. But, this servlet would also send back a status information to the state of the received datafile, which I like to catch.
    e.g. HTTP response from the servlet (catched using CURL):
    HTTP/1.0 403 Forbidden
    Server: Apache-Coyote/1.1
    X-Powered-By: Servlet 2.4; JBoss-4.3.0.GA (build: SVNTag=JBPAPP_4_3_0_GA date=200801031548)/Tomcat-5.5
    Set-Cookie: JSESSIONID=OALHMomjR9TVgIATi8SrPQ**.ajp13_ls_1; Path=/ls
    Content-Type: text/xml
    Date: Tue, 06 Mar 2012 16:19:56 GMT
    X-Cache: MISS from proxy.xxxx.com
    Via: 1.0 proxy.xxxx.com:xxxx (http_scan/4.0.2.6.19)
    Proxy-Connection: close
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE transportordersfromls [ <!ELEMENT transportordersfromls (userid, clntid, msgid, (transportorderfromls+ | error))> <!ATTLIST transportordersfromls vers CDATA #REQUIRED> <!ELEMENT userid (#PCDATA)> <!ELEMENT clntid (#PCDATA)> <!ELEMENT msgid (#PCDATA)> <!ELEMENT transportorderfromls (refid, status)> <!ELEMENT refid (#PCDATA)> <!ELEMENT status (ok | error+)> <!ELEMENT ok EMPTY> <!ELEMENT error EMPTY> <!ATTLIST error reason (XMLError | SystemNotAvailable | ApplicationError | OTHER) #REQUIRED message CDATA #REQUIRED> ]>
    <transportordersfromls vers="1.0">
        <userid/>
        <clntid>XXXXX</clntid>
        <msgid>0</msgid>
        <error reason="OTHER" message="Access denied"/>
    </transportordersfromls>
    Michael

  • Webservice response (XML response) with tag not mandatory

    Hello all,
    I have a problem with a webservice response.
    I implemented a wsdl who created some method to call webservices (Methox X, Y ,Z).
    I call the method 'X' with a table of string who have3 values in input, and I have in a  XML Answer of the webservice call that :
    <tag1> Value 1.1
    <tag2> Value 1.2
    <tag3> Value 1.3
    <message>OK
    <tag3> Value 2.3
    <message>KO
    <tag1> Value 3.1
    <tag2> Value 3.2
    <tag3> Value 3.3
    <message>OK
    Tags 1, 2 and 3 are not mandatory in wsdl (Min occurs = 0).
    In output of the method 'X' (created by wsdl implemantation) a ABAP structure with that :
    ValueTag1 | ValueTag2 | ValueTag3 | message
    Value 1.1 | Value 1.2 | Value 1.3 | OK
    Value 3.1 | Value 3.2 | Value 2.3 | KO
    No value. | No value. | Value 3.3 | OK
    I expect to have logically:
    ValueTag1 | ValueTag2 | ValueTag3 | message
    Value 1.1 | Value 1.2 | Value 1.3 | OK
    No value. | No value. | Value 2.3 | KO
    Value 3.1 | Value 3.2 | Value 3.3 | OK
    SAP put into the line 2of the structure, data of 3rd response because it dont found tag in the 2nd response.
    If i do my call, value by value and i concatenate anwsers, i have no problem.
    I dont understand the error and i cant find SAP note on the subject.
    Someone know ths problem ?
    Thanks.

    Hello,
    I have a wsdl file who describe webmethod and his parameters.
    I implemented this wsdl into a client proxy.
    SAP create automatically some CLASS, METHOD, STRUTURE.
    I call one of this method to ask the webservice.
    A XML flow sent and the webservice respond to me with a other XML flow.
    The XML flow response his automatically transforme by SAP, and i receive it into a structure in output of my method.
    Example :
    CREATE OBJECT XXX
      EXPORTING
        logical_port_name = `ZZZZ`.
    CATCH cx_ai_system_fault INTO fault.
      RAISE EXCEPTION fault.
    IF XXX IS BOUND.
      TRY.
        XXX->METHODYYY(
                EXPORTING
                   input =  ii_input
                IMPORTING
                   output = oo_output ).
       CATCH cx_ai_system_fault INTO fault1.
         RAISE EXCEPTION lr_fault1 .
       CATCH Error_ws INTO fault2.
         RAISE EXCEPTION lr_fault2.
       CATCH cx_ai_application_fault INTO fault3.
         RAISE EXCEPTION lr_fault3.
       CLEANUP.
      ENDTRY.
    ENDIF.
    METHODYYY was created by SAP with wsdl file.
    ii_input and oo_output and typed like structure in wsdl file.
    I can see XML flow and his content in SOAMANAGER transaction when i activate full trace.

  • BizTalk Map: Grouping CRM Response XML based on the ID field in Custom XSLT

    Hi,
    I will receive a CRM response as below. 
    <ns0:RetrieveMultipleResponse xmlns:ns0="http://schemas.microsoft.com/xrm/2011/Contracts/Services" xmlns:ns2="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:ns3="http://schemas.microsoft.com/xrm/2011/Metadata" xmlns:ns5="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:ns1="http://schemas.datacontract.org/2004/07/System.Collections.Generic" xmlns:ns4="http://schemas.microsoft.com/xrm/2011/Contracts"><ns0:RetrieveMultipleResult>    <ns4:Entities>      <ns4:Entity>        <b:Attributes xmlns:b="http://schemas.microsoft.com/xrm/2011/Contracts" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts/Services" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="http://schemas.datacontract.org/2004/07/System.Collections.Generic">            <b:KeyValuePairOfstringanyType>            <c:key>ccx_datevaccineinfostatementpresented</c:key>            <c:value i:type="d:dateTime" xmlns:d="http://www.w3.org/2001/XMLSchema">2012-08-14T04:00:00Z</c:value>          </b:KeyValuePairOfstringanyType>          <b:KeyValuePairOfstringanyType>            <c:key>ccx_administeredamount</c:key>            <c:value i:type="d:decimal" xmlns:d="http://www.w3.org/2001/XMLSchema">0.75000000</c:value>          </b:KeyValuePairOfstringanyType>          <b:KeyValuePairOfstringanyType>            <c:key>ccx_immunizationid</c:key>            <c:value i:type="d:guid" xmlns:d="http://schemas.microsoft.com/2003/10/Serialization/">826c2b0e-a349-e411-866c-00155d1e1f77</c:value>          </b:KeyValuePairOfstringanyType>     </b:Attributes>  </ns4:Entity>   <ns4:Entity>        <b:Attributes xmlns:b="http://schemas.microsoft.com/xrm/2011/Contracts" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts/Services" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="http://schemas.datacontract.org/2004/07/System.Collections.Generic">            <b:KeyValuePairOfstringanyType>            <c:key>ccx_datevaccineinfostatementpresented</c:key>            <c:value i:type="d:dateTime" xmlns:d="http://www.w3.org/2001/XMLSchema">2012-08-14T04:00:00Z</c:value>          </b:KeyValuePairOfstringanyType>          <b:KeyValuePairOfstringanyType>            <c:key>ccx_administeredamount</c:key>            <c:value i:type="d:decimal" xmlns:d="http://www.w3.org/2001/XMLSchema">0.25000</c:value>          </b:KeyValuePairOfstringanyType>          <b:KeyValuePairOfstringanyType>            <c:key>ccx_immunizationid</c:key>            <c:value i:type="d:guid" xmlns:d="http://schemas.microsoft.com/2003/10/Serialization/">766c2b0e-a349-e411-866c-00155d1e1f77</c:value>          </b:KeyValuePairOfstringanyType>     </b:Attributes>  </ns4:Entity><ns4:Entity>        <b:Attributes xmlns:b="http://schemas.microsoft.com/xrm/2011/Contracts" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts/Services" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="http://schemas.datacontract.org/2004/07/System.Collections.Generic">            <b:KeyValuePairOfstringanyType>            <c:key>ccx_datevaccineinfostatementpresented</c:key>            <c:value i:type="d:dateTime" xmlns:d="http://www.w3.org/2001/XMLSchema">2012-08-14T04:00:00Z</c:value>          </b:KeyValuePairOfstringanyType>          <b:KeyValuePairOfstringanyType>            <c:key>ccx_administeredamount</c:key>            <c:value i:type="d:decimal" xmlns:d="http://www.w3.org/2001/XMLSchema">0.7500000000</c:value>          </b:KeyValuePairOfstringanyType>          <b:KeyValuePairOfstringanyType>            <c:key>ccx_immunizationid</c:key>            <c:value i:type="d:guid" xmlns:d="http://schemas.microsoft.com/2003/10/Serialization/">826c2b0e-a349-e411-866c-00155d1e1f77</c:value>          </b:KeyValuePairOfstringanyType>     </b:Attributes>  </ns4:Entity></Entities></ns0:RetrieveMultipleResult></ns0:RetrieveMultipleResponse>
    I have  to count the distinct Entities based on ccx_immunizationid value & also I have to group the fields if both entity has same immunization ID. If the xml file (without namespace) and the field is <ccx_immunizationid>2323</ccx_imunizationid>,
    I can use something like below,
    <xsl:template match="//Entity/Attributes[not(./ccx_immunizationid= preceding::ccx_immunizationid)]">
    but here, I have to look for the key 'ccx_immunizationid' and its value. 
    I am using custom xslt in BizTalk map. Please help. Thanks.
    Regards,
    Lakshmi

    You need to get the distinct record filtered by "value" field whose "key" is "ccx_immunizationid" i.e <c:key>ccx_immunizationid</c:key>".
    So you need to use the XPath with syntax: 
    /*[not(@name = preceding::*/@name)]
    So in your case, the XPath value will be like the following:
    /*[local-name()='RetrieveMultipleResponse' and namespace-uri()='http://schemas.microsoft.com/xrm/2011/Contracts/Services']/*[local-name()='RetrieveMultipleResult' and namespace-uri()='http://schemas.microsoft.com/xrm/2011/Contracts/Services']/*[local-name()='Entities' and namespace-uri()='http://schemas.microsoft.com/xrm/2011/Contracts']/*[local-name()='Entity' and namespace-uri()='http://schemas.microsoft.com/xrm/2011/Contracts']/*[local-name()='Attributes' and namespace-uri()='http://schemas.microsoft.com/xrm/2011/Contracts']/*[local-name()='KeyValuePairOfstringanyType' and namespace-uri()='http://schemas.microsoft.com/xrm/2011/Contracts'][*[local-name()='key' and namespace-uri()='http://schemas.datacontract.org/2004/07/System.Collections.Generic']/text() ='ccx_immunizationid'][not(*[local-name()='value' and namespace-uri()='http://schemas.datacontract.org/2004/07/System.Collections.Generic'] = preceding::*[local-name()='value' and namespace-uri()='http://schemas.datacontract.org/2004/07/System.Collections.Generic'])]
    You may need to change the namespaces according to yours. This XPath would give you an idea of how to use the distinct XPath (1.0) snystax as shown above in your XML.
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • Given WSDL, need to generate example request / response XML to give testers

    Without actually making the service calls I need to generate example XML request and response messages for each service in a given a WSDL.
    So far the only other tool that can do this is the Oxygen xml editor wsdl inspector. Not even XMLspy does this.
    Just wondering if my experimenting with Jdev 11.(latest) has missed a way to get this accomplished?
    tnx curt

    how about SoaPUI tool?

  • How to transform response xml according to user defined xsd?

    Hi all,
    In my use case I should invoke a webservcie which gives the employee details. For that I have a business service which returns the response in an xml which format is some thing like given below:
    *<output>*
    *<Name>Sample<Name>*
    *<Id>231231<Id>*
    *</output>*
    But I want the response in the format given below:
    *<output>*
    *<Employee Attribute = 'Name' Value = 'Demo'/>*
    *<Employee Attribute = 'Id' Value = '231231'/>*
    *</output>*
    Kindly help me in achieving this.
    Thanks,
    Phanindra.

    in your process you start is the proxy service, after that you will arrive in the pipeline pair, and after this you route to your business service (this is just a guess of how the flow will look like)
    in the request pipeline you transform the input of your proxy service to the input of your business service (right?)
    in assume you do something like replace ./* in body ( send this to your xquery) and replace the result of the xquery to $body.
    after this your ready to call your business service and this will result in a response.
    at this time $body got replaces by the response of your business service (uses log $body) to see the content.
    the only thing you need to do now is the same as you did in the request pipeline
    use a second xquery which will transform $body (output of the business service) to the output of your proxy service (wsdl + xsd ?)
    replace ./* in body with (your xquey response creator)
    a bit clear i hope ?

  • Response XML - How to remove non-used namespaces ?

    Hey guys, I have a proxy service with the following transformation:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
    xmlns:inf="http://dfs.us.dell.com/Infolease"
         xmlns:xsl="http://www.w3.org/1999/XSL/Transform">               
         <xsl:template match="/">          
              <xsl:if test="Envelope/Body/Response/Quotes">
                   <xsl:variable name="oNodo" select="Envelope/Body/Response/Quotes"/>          
                   <inf:GetBuyoutQuoteDetailsResponse xmlns:inf="http://dfs.us.dell.com/Infolease">
                        <inf:QtKey><xsl:value-of select="$oNodo/@pk"/></inf:QtKey>
                        <inf:QtAmtQuotedx><xsl:value-of select="$oNodo/QtAmtQuoted/text()"/></inf:QtAmtQuotedx>                    
              <inf:QtBuyoutDate><xsl:value-of select="$oNodo/QtBuyoutDate/text()"/></inf:QtBuyoutDate>
              <inf:QtExpirationDate><xsl:value-of select="$oNodo/QtExpirationDate/text()"/></inf:QtExpirationDate>
              <inf:QtQuotedDate><xsl:value-of select="$oNodo/QtQuotedDate/text()"/></inf:QtQuotedDate>
              <inf:QtRcvbBalance><xsl:value-of select="$oNodo/QtRcvbBalance/text()"/></inf:QtRcvbBalance>
              <xsl:element name="inf:QtBuyoutType">
                   <xsl:attribute name="pk"><xsl:value-of select="$oNodo/QtBuyoutType/@pk"/></xsl:attribute>
                   <xsl:element name="inf:BuyDefTypeDesc"><xsl:value-of select="$oNodo/QtBuyoutType/BuyDefTypeDesc"/></xsl:element>
              </xsl:element>                                                       
                   </inf:GetBuyoutQuoteDetailsResponse>
              </xsl:if>               
         </xsl:template>     
    </xsl:stylesheet>
    This is the response of the service after the proxy finishs:
    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header/>
    <soapenv:Body>
    <inf:GetBuyoutQuoteResponse xmlns:inf="http://dfs.us.dell.com/Infolease">
    <inf:QtKey xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">200-1122247-018*34</inf:QtKey>
    <inf:QtAmtQuotedx xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">8195.82</inf:QtAmtQuotedx>
    <inf:QtBuyoutDate xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2011-10-04</inf:QtBuyoutDate>
    <inf:QtExpirationDate xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2012-12-29</inf:QtExpirationDate>
    <inf:QtQuotedDate xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">2011-10-04</inf:QtQuotedDate>
    <inf:QtRcvbBalance xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">7021.83</inf:QtRcvbBalance>
    <inf:QtBuyoutType pk="BUYOUT*34"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <inf:BuyDefTypeDesc>EARLY PURCHASE-10%-TRANSACTION</inf:BuyDefTypeDesc>
    </inf:QtBuyoutType>
    </inf:GetBuyoutQuoteResponse>
    </soapenv:Body>
    </soapenv:Envelope>
    How do I remove these XSD and XSI namespaces? I haven't referenced them..
    Thanks in advance,
    Davinod

    Hi,
    Please remove the 3 non-exists DC from environment using the metadata clean-up process using script from below article. then manually delete the records from DNS management console as given below.
    https://gallery.technet.microsoft.com/scriptcenter/d31f091f-2642-4ede-9f97-0e1cc4d577f3
    Manual steps to clear the records.
    Dnsmgmt.msc [Dns Management]
    A.Expand the forward lookup zones\_msdcs folder
    i. Make sure only the actual domain controllers are listed, delete wrong Alias recordsremove wrong name server records
    ii. Select the container [forward lookup zones\_msdcs.domain.com\dc\_sites_\sitename\_tcp] > delete incorrect _ldap and _kerberos records are listed.
    iii. Select the container [forward lookup zones\_msdcs.domain.com\dc\_tcp] and delete incorrect _ldap and _kerberos records
    iv. Expand the [forward lookup zones\_msdcs.domain.com\domains\guid\_tcp] and delete incorrect _ldap entries
    v. Select [forward lookup zones\_msdcs.domain.com\gc] – delete incorrect HostA records
    vi. Expand the [forward lookup zones\_msdcs.domain.com\gc\_sites\sitename\_tcp] – delete incorrect _ldap entries
    vii.Select the [forward lookup zones\_msdcs.domain.com\gc\_tcp] – delete incorrect _ldap entries
    viii. Select the [forward lookup zones\_msdcs.domain.com\pdc\_tcp] – delete incorrect _ldap entries
    B.Expand the forward lookup zones\domain.com folder
    i.Delete Host(A) records of dc’s which are non-existant.
    ii.Correct the NameServer (NS) records
    iii. Follow steps similar to ’ A ii ‘ >> ‘ A viii’
    · Dssite.msc [Sites and Services]
    A.Expand the [Sites\Sitename\Servers] – delete incorrect server’s
    B.Delete incorrect subnet configurations [Sites\Subnets]
    C.Delete incorrect site links [Sites\IP]
    · Make sure the domain controllers are pointing to the correct dns servers in tcp\ip settings.
    · Force replication – ‘repadmin /syncall’

Maybe you are looking for