Best Practice Web Service Output Mapping (deep structure)

Hi All,
My current scenario is as follows:
In my BPM I consume a Web Service which was created from a Function Module in the Backend.
This Web Service has the same Data Types as the original BAPI.
For instance a table containing return values (BAPIRET2).
When the Web Service inside the process is executed I assume that my return table is filled.
Based on that return table I want to decide what to do next using a gateway.
What would be the best way to process the table in a gateway condition?
The table may contain several entries so I guess a simple not() function does not suffice.
I hope you do understand my problem here.
Curiously waiting for your replies,
Bastian

Hi Bastian,
the parallel for each loop feature will come with NW 7.2.
You will have a new property pane at each activity (automated activity, human task, referenced subflow, and the embedded subflow which will also come with NW 7.1) where you can switch on the looping.
If you do that, the activity will be started (in parallel) for each line item in a list of data from a data object in the context (the list can also be specified in the new property pane).
At the end of each activity execution the result can be mapped via append into another DO from the context.
Unfortunately, this feature is too extensive to be downported to 7.11
Best regards,
Oliver

Similar Messages

  • Best Practices Web Services - Complex Data Types

    Can someone provide some best practices documentation or info that for customers using CR against web services? Speciffically any information on complex data types such as  String[] or Address.
    Thanks
    Ian S

    And That's what I did.
    name.cfc is the component that has complex data types
    created.

  • Designer beginner's question: How to populate form with XML web service output?

    sorry, here is yet another Adobe Designer beginners question: <br /><br />My form uses a webservice data connection which returns <br />an xml-string like this: <br /><br /><?xml version="1.0" encoding="utf-16"?> <br /><CurrentWeather> <br />  <Location>Sion, Switzerland (LSGS) 46-13N 007-20E 481M</Location> <br />  <Time>Apr 26, 2007 - 09:50 AM EDT / 2007.04.26 1350 UTC</Time> <br />  <Wind> from the WSW (240 degrees) at 15 MPH (13 KT):0</Wind> <br />  <Visibility> greater than 7 mile(s):0</Visibility> <br />  <SkyConditions> partly cloudy</SkyConditions> <br />  <Temperature> 80 F (27 C)</Temperature> <br />  <DewPoint> 46 F (8 C) </DewPoint> <br />  <RelativeHumidity> 30%</RelativeHumidity> <br />  <Pressure> 29.88 in. Hg (1012 hPa)</Pressure> <br />  <Status>Success</Status> <br /></CurrentWeather> <br /><br />What is the simplest and recommended way to extract the <br />element fields to my form? <br /><br />Thank you very much an kind regards, <br />Hans Grund

    The question is still unanswered!
    Let me give some details and break up the problem
    in more specific questions:
    - In Designer 8.1 I click new data binding --> wsdl -->
    http://www.webservicex.net/globalweather.asmx?wsdl
    A message box comes up and says "cannot load wsdl file"
    ==> 1. Question:
    Why maybe refuses Designer to load the http-wsdl,
    although this option is explicitly allowed?
    - When I save the wsdl to a file, Designer loads it
    without any problems. The web service uses two input parameters
    (CountryName and CityName) and returns an xml-string GetWeatherResult)
    like the one in my first posting. I drag these fields from the binding view to my form, and it runs ok!
    - THE PROBLEM IS, THAT I NEET TO EXTRACT THE ELEMENT FIELDS
    FROM THE RESULT XML-STRING!
    ==> 2. Question:
    How to extract xml element fields from wsdl output into a form?
    - I tried with eclipse and XmlSpy to build a modified wsdl file
    with structured output definition, so that the specific element fields
    show up in the data binding view and are usable to my form,
    and the modified wsdl maps consistently to the web service result string.
    So far without success: In the PDF -preview or Reader-
    when the wsdl-binding is executed and the web service output
    should show up in the result fields, just nothing happens.
    ==> 3. Question:
    Can this strategy to provide a "modified wsdl" possibly succeed,
    and how?
    ==> 4. Question:
    Is is possible -and how?- to check whether an xml string
    is valid as web service output against the wsdl-definition?
    ==> 5. Question:
    How to debug a web service connection with Designer?
    - Finally I tried to find a way to load the result xml-string
    into a local var in the script editor and parse it, much like:
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.load(DataSet.MyForm.GetWeatherResult.rawValue);
    ==> 6. Question:
    Is it possible -and how?- to use a framework like dotnet?
    How to utilize SAX or DOM in Designer?
    Many thanks and appreciations for your help!!

  • Converting string data from a web service respons into XML structure of XI

    Hi,
    We receive a string structure from a web service.
    The string structure has an xml type format, that is all the tags and its content are in one line .
    The WSDL file of the webservice defines its response structure as a string type.
    How do i convert this string into proper XML structure (predefined by me in Integration repository).
    OR how do i make XI understand this string as an XML structure for further processing.
    Later i have to map this XML message type into IDoc.
    Himani

    Hi Himani,
    Please find the code for ur requirement -
    String need to parse -<response_webservice><from_date>20080101</from_date><to_date>20080202</to_date></response_webservice>
    Below mentioned code will convert it to -<MT_DATA><FROMDATE>20080202</FROMDATE><TODATE>20080101</TODATE></MT_DATA>
    Create a Message type and map it like this using java mapping ( no need to use Graphical mapping).
    Use MT_DATA as source and map it to your target structure .
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.StringReader;
    import java.util.HashMap;
    import java.util.Map;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.FactoryConfigurationError;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.TransformerFactoryConfigurationError;
    import org.w3c.dom.DOMException;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NodeList;
    import org.w3c.dom.Text;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXException;
    public class XMLParser {
         private Map param = null;
         public static void main(String[] args) {
              try {
                   XMLParser wdb = new XMLParser();
                   wdb.parse();
              } catch (Exception e) {
                   e.printStackTrace();
         public void setParameter(Map param) {
              this.param = param;
              if (param == null) {
                   this.param = new HashMap();
         public void parse() {
              String document = "<response_webservice><from_date>20080101</from_date><to_date>20080202</to_date></response_webservice>";
              try {
                   Document sdoc;
                   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                   // Using factory get an instance of document builder
                   DocumentBuilder db = dbf.newDocumentBuilder();
                   // parse using builder to get DOM representation of the XML file
                   sdoc = db.parse(new InputSource(new StringReader(document)));
                   Element docEle = sdoc.getDocumentElement();
                   NodeList nl = docEle.getElementsByTagName("from_date");
                   Element lstElmnt = (Element) nl.item(0);
                   NodeList nl1 = docEle.getElementsByTagName("to_date");
                   Element fstElmnt = (Element) nl1.item(0);
                   System.out.println(fstElmnt.getFirstChild().getNodeValue());
                   System.out.println(lstElmnt.getFirstChild().getNodeValue());
                   Document tdoc = db.newDocument();
                   Element structure = createElement("MT_DATA", null, tdoc);
                   tdoc.appendChild(structure);
                   Element statement = createElement("FROMDATE", fstElmnt.getFirstChild().getNodeValue(), tdoc);
                   structure.appendChild(statement);
                   Element statement2 = createElement("TODATE", lstElmnt.getFirstChild().getNodeValue(), tdoc);
                   structure.appendChild(statement2);
                   System.out.println("Struct is :::"+tdoc.getDocumentElement().toString());               
              } catch (DOMException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              }  catch (IOException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (FactoryConfigurationError e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (ParserConfigurationException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (SAXException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (TransformerFactoryConfigurationError e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
         static Element createElement(String elementName, String content,
                   Document document) {
              Element returnElement;
              returnElement = document.createElement(elementName);
              if (content != null) {
                   Text T = document.createTextNode(content);
                   returnElement.appendChild(T);
              return returnElement;
         static Element createElement(String elementName, String content,
                   String attributeName, String attributeValue, Document document) {
              Element returnElement = createElement(elementName, content, document);
              returnElement.setAttribute(attributeName, attributeValue);
              return returnElement;
    Regards,
    Kishore

  • Process web service output

    I'm new to ADF Mobile so I want to ask is it possible to process a web service output before being displayed at view? I want to pass the web service through a method call activity before passing forward to a view.

    Hi,
    you can configure a PageDef file for a method activity and then invoke the WebService. However, the returned data will not persist until you get to the view. So either you need to query the WS result and save it in a Java bean for access on the view you navigate to or have the WS executed when the view loads.
    Frank

  • Best Practice for report output of CRM Notes field data

    My company has a requirement to produce a report with variable output, based upon a keyword search of our CRM Request Notes data.  Example:  The business wants a report return of all Service Requests where the Notes field contains the word "pay" or "payee" or "payment".  As part of the report output, the business wants to freely select the output fields meant to accompany the notes data.  Can anyone please advise to SAP's Best Practice for meeting a report requirement such as this.  Is a custom ABAP application built?  Does data get moved to BW for Reporting (how are notes handles)?  Is data moved to separate system?

    Hi David,
    I would leave your query
    "Am I doing something wrong and did I miss something that would prevent this problem?"
    to the experts/ gurus out here on this forum.
    From my end, you can follow
    TOP 10 EXCEL TIPS FOR SUCCESS
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/204c3259-edb2-2b10-4a84-a754c9e1aea8
    Please follow the Xcelsius Best Practices at
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/a084a11c-6564-2b10-79ac-cc1eb3f017ac
    In order to reduce the size of xlf and swf files follow
    http://myxcelsius.com/2009/03/18/reduce-the-size-of-your-xlf-and-swf-files/
    Hope this helps to certain extent.
    Regards
    Nikhil

  • BAPI Web Service Context Mapping Problem

    Hello all,
                 I am developing a process consisting of an automated activity.
    This automated activity uses a logical destination for a web service call to an ECC BAPI.
    The BAPI name is 'BAPI_INQUIRY_CREATEFROMDATA2'
    Now the problem is the Output mapping in the automated activity which calls the web service for the above BAPI has the response name as 'BAPI_INQUIRY_CREATEFROMDATA2.Response'
    So when i try to map the nodes it gives me an error, 'Error at Line 2, Column 29, Found '.' after BAPI_INQUIRY_CREATEFROMDATA2'.
    Since there is no mapping i do not get the process working
    If i remove the '.' from the wsdl file source, mapping is done. But the backend service call gives an error.
    How can i solve this problem?
    Any inputs will be very helpful.

    Hello Martin,
                     thnks a ton for your replies.
    The '.' is a standard thing.
    Its the part of the WSDL file which is a standard WSDL file for a service offered for a standard SAP BAPI. So i haven't changed anything.
    Its what is standardly available. So i cant anything on that.
    And the response element is not below the bapi node.
    The name of the root node of the BAPI return context is
    "BAPI_INQUIRY_CREATEFROMDATA2.Response"
    This is what is causing the problem.
    Please note here that '.' is not responsible for any hierarchy. Its the name of one single root node element.

  • The Best Java Web Services Technology for Developing Web Services

    Hi,
    I am new to Web services world.
    I read the java web services page . there are more than 6 technologies.
    JAX-WS,
    JAX-RPC,
    JAXB,
    SAAJ,
    JAXP,
    WSIT,
    XWS-Security
    I went through several documents on web services.
    I could not get a clear idea of which technolgy to use.
    Which Java web service technology will be the best to develop web services independant of language, platform.
    or is there any 3rd party implemetations available ? for rapid development of web services.
    Could anyone help me !.
    Thanks in advance.
    Message was edited by:
    Siva.Prakash

    Which Java web service technology will be the best
    to develop web services independant of language,
    platform.
    Java by nature is a cross-platform language, so if your focus is on the need for portability, the choisce of WS should not be a problem. However, each WS is best suited for paricular uses.
    SAAJ, a low-level level API, offers much simplicity, but is not the first choice for programmers, as SOAP (Simple Object Access Protocol)messages need to be constructed piece by piece, making it a quite arduous code to program.
    If you are not familiar with XML, your best bet would be to use JAX-RPC (Java API for XML-Remote Procedure Calls), as it hides the underlying detail from the programmer, in terms of SOAP and XML. The shortcoming with RPC-based WS is that it is "restricted to the local programming experience". Another failing is that assumes there is a network path- a reliability concern.
    If your program will be contacting other services during downtimes, unlike JAX-RPC, JAXM is quite useful. However, your listing did not mention it, so I wont cover it.
    JAXR is a client-side only API that acts as an interface between registries (not referring to JAXP)
    I am not famiiar with JAXB, JAXP, WSIT or XWS-Security..
    or is there any 3rd party implemetations available ?It depends on what platform you are used to. Assuming you are familiarized with the J2EE platform (now changed to Java EE SDK), the NetBeans IDE (either 5.5, 5.5.1 or the latest editiion) is quite useful. I am using 5.5.1, but have found that it is quite buggy, especially when adding WS operations, a core requirement of a WS. if you will be using to devlop a service for an immediate need, you may find the learning curve to be a bit high, in terms of getting to grips with how to use it. (Download link:
    http://www.netbeans.info/downloads/index.php)
    The IBM Autonomic IDE (or AIDE), based on the WSDM standard, includes 3 sub-tools, icluding the IBM Manageability Endpoint Builder which, according to their website, allows individuals to build endpoints to allow manageability interface exposure; Manageable Resource Browser and the IBM Manageability Endpoint Simulator. However, I'm not familiar with this IDE. (Download link: http://www.alphaworks.ibm.com/tech/aide/download)
    The .NET Framework uses the Visual Studio IDE. For an unbiased comparison of J2EE and the .NET Framework in terms of WS, see http://www.webservicesarchitect.com/content/articles/hanson01.asp.
    Apache Axis2, Geronimo and JiBX allows fast development of WS, or so the creators profess.
    The PHP environment- you could try NuSPHERE PHPed. According to one website, with it you can develop a web service in under an hour.
    I hope this was useful to you.
    [Based partly on Topley, K. (2003) [i]Java TM Web Services in a Nutshell: A desktop Quick Reference. 1st ed. California: O�Reilly & Associates, Inc]

  • REST Web Service Output Parameter not working in POST Handler

    I've created a RESTful Web Service in Oracle Apex, using a POST method as "handler".   I've setup 11 input parameters which all work fine, it is my one output parameter that does not return successfully.
    Here is detail on the Output Paramter
    Name:  returns
    Bind Variable Name:  :returns
    Access Method:  OUT
    Source Type: Response
    Parameter Type:  String
    The actual source is a call to a pl/sql package that returns a value that I set :returns equal to (eg :returns := v_result).   I've tried this with Source Type Header and still the same result, 'no output'.
    I see APEX is calling wwv_flow_api.create_restful_param to generate the parameters (for importing), is there any documentation on this procedure?
    How can I get this output parameter to return something in the response?
    The request accepts a Json payload.
    Any help greatly appreciated
    Thanks,
    James

    Solved my own problem :returns does not work needs to be returns
    Does Not Work
    Name:  returns
    Bind Variable Name:  :returns
    Access Method:  OUT
    Source Type: Response
    Parameter Type:  String
    Does Work
    Name:  returns
    Bind Variable Name:  returns
    Access Method:  OUT
    Source Type: Response
    Parameter Type:  String

  • Certain data missing from Web service output in LV8.5.1

    I just installed Labview 8.5.1 and thereby got rid of a problem where the Import Web Service Wizard hung.
    However, a new problem appeared. The XML output of my web service call does not contain the actual result values. When I call the web service using SOAPUI from http://www.soapui.org/, I can see the actual result values in a section of the XML output called diffgr:diffgram. When I inspect the Labview XML output, the whole diffgram section is missing! Se attachments.
    Any help appreciated!
    Attachments:
    SOAPUI Web Service output2.txt ‏3 KB
    Labview Web Service output1.txt ‏1 KB

    It is on our company's intranet. The description in wsdl-format is attached.
    (You might have to save it as a .txt file on your hard drive in order to view it with Notepad.)
    Message Edited by andreas nilsson on 04-23-2008 05:47 AM
    Attachments:
    Axaptaws_wsdl.txt ‏146 KB

  • Problem Mapping Deep Structure to Flat Structure

    Hello,
    I hope someone can help me.  My scenario is idoc to file.  I am collecting many idocs with a bpm and writing them out to one file.  My bpm is working great, but my mapping program is not working properly.  My source message is a deep structure and my target message is a flat structure. 
    See my example message formats below.
    Source message:
    zmessage (1..1)
    +zidocmessage (0..unbounded)
    ++zidoc       (1..1)
    +++zidocheader (1..1)
    ++++zidocitem  (0..unbounded)
    Target Message:
    zmessage (1..1)
    +zfilemessage   (1..1)
    ++zfilefirstrec (1..1)
    ++zfileheader (1..unbounded)
    ++zfileitem   (1..unbounded)
    I need to map zidocheader to zfileheader and zidocitem to zfileitem. 
    The Source Data:
    <zmessage>
      <zidocmessage>
        <zidoc>
          <zidocheader>
             <hfield1>hf1</hfield1>
             <hfield2>hf2</hfield2>
             <zidocitem>
               <ifield1>if1</ifield1>
               <ifield2>if2</ifield2>
             </zidocitem>
             <zidocitem>
               <ifield1>if1</ifield1>
               <ifield2>if2</ifield2>
             </zidocitem>
          </zidocheader>
        </idoc>
      <zidocmessage>
        <zidoc>
          <zidocheader>
             <hfield1>hf1</hfield1>
             <hfield2>hf2</hfield2>
             <zidocitem>
               <ifield1>if1</ifield1>
               <ifield2>if2</ifield2>
             </zidocitem>
             <zidocitem>
               <ifield1>if1</ifield1>
               <ifield2>if2</ifield2>
             </zidocitem>
          </zidocheader>
        </idoc>
    </zmessage>
    The Target Data:
    <zmessage>
      <zfilemessage>
        <zfilefirstrec>
          <firstrecfield1>ff1</firstrecfield1>
          <firstrecfield2>ff2</firstrecfield2>
        </zfilefirstrec>
        <zfileheader>
          <hfield1>hf1</hfield1>
          <hfield2>hf2</hfield2>
        </zfileheader>
        <zfileitem>
           <ifield1>if1</ifield1>
           <ifield2>if2</ifield2>
        </zfileitem>
        <zfileitem>
           <ifield1>if1</ifield1>
           <ifield2>if2</ifield2>
        </zfileitem>
        <zfileheader>
          <hfield1>hf1</hfield1>
          <hfield2>hf2</hfield2>
        </zfileheader>
        <zfileitem>
          <ifield1>if1</ifield1>
          <ifield2>if2</ifield2>
        </zfileitem>
        <zfileitem>
           <ifield1>if1</ifield1>
           <ifield2>if2</ifield2>
        </zfileitem>
      <zfilemessage>
    </zmessage>
    Can someone advise me on how to map this correctly?
    Thank you,
    Rhonda

    Hello,
    Can someone please help me with this problem?
    I am at the point where all of the records in my source message are being written out, however, all of the header records are together and all of the line item records are together.  So, the target message is not in the proper sequence.  It should contain the header record, then item records, header record, then item records, etc. 
    Is there anyone that can help me with this issue?
    Thank you,
    Rhonda

  • Missing IMG steps for Best Practice CRM Service.

    Dear SDN'ers,
    I am working for a client and we are now implementing CRM Service.
    In the Best Practice guide I found IMG step like
    3.3.3.4.     Defining Time Allocation Types,
    3.3.3.6     Defining Availability Template
    3.3.3.8     Defining Service Area
    etc.
    However I cannot find these corresponding transactions in SPRO. They all refer to the path Customer Relationship Management  Workforce Deployment  WFD Server  Business Settings for WFD Server  only In our system this path doesn't excist. It calls IMG transaction like WFM_001 but the system doesn't recognize this IMG activity.
    Please can anybody help me?
    Kind regards,
    Niels

    Hi,
    Have you carried out the prerequisite steps?
    Also chk this path in SPRO
    Customer Relationship Management>Transactions>Settings for Service Processes>Settings for Service Resource Planning>WFM Core-->Make Settings for the WFM Core.
    And also ensure that no RFC connection has been assigned to the WFM Core if you are using it as an add-on in SAP CRM.
    Regards,
    PePe

  • ? Best practice -- Repare service purchase

    Hi Expert,
    Who could tell me the best practice for below scenario ?
    We want to send parts A to vendor for reparing.
    After reparing, the parts is still A in system .
    We want to create PO for this, but after goods receipt, we would like reparing fee booked on one Expense G/L , that means the value of parts A will not change.
    So how to create this PO ?
          How to issue parts A ?
          How to receipt parts A ?
          How to configure the account determination for repare fee to expense G/L ?
    Thanks and Regards
    Shubin

    Create PO with Item category L. give all required details....
    Also Under Service tab mention same  material as  "A" as BOM.
    Now do the stock transfer to subcontracting vendor in tcode MB1B with mvt 541..
    Now receive the stocks from vendor in MIGO with 101 .
    Re:How to configure the account determination for repare fee to expense G/L:  (Create seperate G/L account for this..take help of FI guy)
    Hope it helps

  • Best Practices for Service Entry Sheet Approval

    Hi All
    Just like to get some opinion on best practices for external service management - particularly approval process for Service Entry Sheet.
    We have a 2 step approval process using workflow:
    1 Entry Sheet Created (blocked)
    2. Workflow to requisition creator to verify/unblock the Entry Sheet
    3. Workflow to Cost Object owner to approve the Entry Sheet.
    For high volume users (e.g. capital projects) this is cumbersome process - we looking to streamline but still maintain control.
    What do other leaders do in this area?  To me mass release seems to lack control, but perhaps by using a good release strategy we could provide a middle ground? 
    Any ideas or experiences would be greatly appreciated.
    thanks
    AC.

    Hi,
    You can have purchasing group (OME4) as department and link cost center to department (KS02). Use user exit for service entry sheet release and can have two characteristics for service entry sheet release, one is for value (CESSR- LWERT) and another one for department (CESSR-USRC1) .Have one release class for service entry sheet release & then add value characteristics (CESSR- LWERT) and department characteristics (CESSR-USRC1). Now you can design release strategies for service entry sheet based on department & value, so that SES will created and then will be released by users with release code based on department & value assigned to him/her.
    Regards,
    Biju K

  • Building a best practice web application using ColdFusion and Jave EE

    I've been tasked with rewriting a software using ColdFusion.  I cannot seem to find a lot of information on best practice development in ColdFusion.  I am an experience Java developer who has never used ColdFusion before.  I want to build this application using a synergy of ColdFusion and Java EE technologies.  Can someone recommend me a book that outlines how to developer in ColdFusion?  Ideally this book assumes the reader is an experienced developer with no exposure to ColdFusion.  Ideally the methods outlined in the book are still "best practice" methods.

    jaisheela wrote:
    Hello Friends,
    I am also in the same situation.
    I am a building a new web application using JSF and AJAX.
    Requirement is I need to use IBM version of DOJO and JSF but I need to develop the whole application using Eclipse 3.3,2 and Tomcat 5.5.
    With IBM version of DOJO and JSF, will Eclipse and Tomcat help to speed up the development or do you suggest me to go for Rational Application Developer and WebSphere Application Server.
    If I need to go with RAD and WAS, then I am new to RAD and WAS, is it easy to use RAD and WAS for this kind of application and implement web applicaiton fast.
    Any feedback will be great help.Those don't sound like requirements of the system to me. They sound more like someone wants to improve their CV/resume
    From what I've read recently, if it's just fast you want, look at Ruby on Rails

Maybe you are looking for