XML to model, problem with arrays

I've imported XML data from the server using the HTTPService
and using the service to convert the XML to a model. So below is my
XML:
<details>
<field label="" value=""/>
<field label="" value=""/>
</details>
I have to deal with the situation where if there is only one
field, details.field is not Array otherwise it is but the following
condition doesn't seem to work:
if (details.field is Array)
but I can still iterate through the elements as if it was an
array. So if details.field is not an Array, what is it? Or more
generally how do I find out the class of a variable?

The default resultFormat of HTTPService is object. This
causes your xml to be converted to a nested object structure. This
is rarely desirable. And it causes the issue you are seeing,
because the convertor can't differentiate between an array with a
single element and an object..
Instead, set resultFormat="e4x". then, in the result handler,
do:
var xmlResult:XML = XML(event.result);
trace(xmlResult.toXMLString);
The expression, xmlResult.field, will return an XMLList. You
can iterate over that using a normal for loop with bracketed index
style references.
There are also solutions to your issue if you want to stay
with resultFormat="object". They involve, as you expect, examining
the the result object for its contained datatype. You can probably
find an example in the archives.
But switch to XML, and drop Model. Look up e4x xml if you
want more erasons.
Tracy

Similar Messages

  • Data Modeler: Problems with importin from DDL and Designer

    I have a few problems with importing models from Designer and DDL:
    1. Can I import spatial indexes from Designer or DDL file? An index does appear in the model but it doesn’t seem to be a spatial index. When trying to import from database, the index doesn’t appear in the model at all.
    2. Is it possible to import sdo_geometry data types from DDL file? I haven’t succeeded with it, instead the column's data type appears unknown.
    3. Sometimes import from DDL files (that are generated with DM) failed with nothing appearing to the model. I haven’t figured out why that happens. I didn’t receive any error message, the model just opened empty.
    4. DM doesn’t seem to recognize public synonym creation from DDL. View log gives the following message:
    <<<<< Not Recognized >>>>>
    CREATE PUBLIC SYNONYM TABLE1
    FOR TABLE1
    5. Sequences lose their properties when importing from Designer. They only have a name but but start with, increment by and min/max values are empty in DM. Importin from DDL works fine.
    I’m using data modeler version 2.0.0 build 584

    Hi Alex,
    There is newer version of Data Modeler (3.0 EA2) and it is free
    You can download it from here
    http://www.oracle.com/technetwork/developer-tools/datamodeler/ea2-downloads-185792.html
    Regards
    Edited by: Dimitar Slavov on Dec 9, 2010 2:15 AM

  • [XML/XPATH] jaxen : problem with "parent" function

    Hello
    I have a problem with jaxen, when I try to use the XPath function parent :
    When I try this :
    import ...
    DocumentNavigator dn=new DocumentNavigator();
    try {
    objet=dn.getDocument("TESTXPath.xml");
    apath=dn.parseXPath("/Entry/Resultats/step/Population/individu/*");
    result=apath.evaluate(objet);
    System.out.println(result);
    apath=dn.parseXPath("/Entry/Resultats/step/Population/parent::*");
    result=apath.evaluate(objet); // ---> exception
    System.out.println(result);
    catch(Exception e) {
    e.printStackTrace();
    The first result is well displayed, but just before the second, I catch this exception:
    Exception in thread "main" java.lang.NoSuchMethodError: org.jdom.Element.getParent()Lorg/jdom/Element; at org.jaxen.jdom.DocumentNavigator.getParentAxisIterator(DocumentNavigator.java: 252)
    at org.jaxen.expr.iter.IterableParentAxis.iterator(IterableParentAxis.java:82)
    at org.jaxen.expr.DefaultStep.axisIterator(DefaultStep.java:139)
    at org.jaxen.expr.DefaultLocationPath.evaluate(DefaultLocationPath.java:188)
    at org.jaxen.expr.DefaultAbsoluteLocationPath.evaluate(DefaultAbsoluteLocationPat h.java:126)
    at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:107)
    at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:716)
    at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:239)
    at org.jaxen.BaseXPath.evaluate(BaseXPath.java:196)
    at MainTestClass.main(MainTestClass.java:85)
    However, the first query works good and I received list so I'm quite sure that it's not a problem of unfindable elements.
    Finaly I can't be syccessful to use XPath parent function:
    Either I catch an exception, or it returns nothing or empty list
    Isn't the XPath syntax correct in my second expression ?
    Can we do :
    /.../.../parent::* ? ou //individu/parent::* ?

    Thanks
    I think so, but.
    In fact I don't think I'm using different version of JDOM.
    I use eclipse with jdk1.4.2.
    I have downloaded JDOM-b10 and the only things I have done is to extract zip archive and to add all .jar files of the jdom directory in my library path.
    Do this is the only version of JDOM I'm using.
    All works perfectly excepted only the XPath parent method. It's strange that the other methods work fine.
    I don't knnow how to solve this problem ! so if you can help me I be very thankfull.

  • FCP XML to Flint - Problems with Time Remap

    My Flint artist and I have had some problems with the XML Export and Import that we cannot figure out. The XMLs from FCP sequences that have variable speed Time Remaps applied show up on the Flint with those particular clips with the wrong in/out points in both the source and record times. Also, the speed ramp info doesn't show up properly.
    We have followed the Flint manual to a T on importing correctly. Anyone encountered this or know a solution? Especially why it's throwing off the in points. It screws the whole timeline when that happens.
    Thanks in advance.

    The TimerEvent target is a flash.utils.Timer object and does
    not contain a reference to your lblTimeUntil label.
    Recode
    trace("Seconds Left" + evt.target.lblTimeUntil.text);
    to
    trace("Seconds Left" + lblTimeUntil.text);
    and you will not blow up anymore.
    This code will display the count up till refresh.
    public function onTick(evt:TimerEvent):void {
    var minuteTimer:Timer = evt.target as Timer;
    lblTimeUntil.text = minuteTimer.currentCount.toString();

  • I have hp pavilian dv 9700 series dv9815nr model. probleme with motherboard

    hp pavilion dv 9700, s/n [Personal Information Removed], p/n kn866ua, model dv9815nr.
    facing problem with motherboard.
    out of warranty.
    i was told the hp 9700 series with amd processors is plagued with mother board problems,
    what do i do now

    You were told correctly. You can have it repaired by a service or replace the whole thing.
    http://www.ebay.com/itm/Laptop-Motherboard-Repair-HP-dv2000-dv6000-dv9000-/220775573543?pt=LH_Defaul...

  • Presario V6205 NR/ 6000 models problem with motherboard, if it is "dead"t, read this

    I purchased a V6205 in Feb 2007 for $600 and had no problems until 6 weeks beyond the two year mark.  My wireless card went out and I did research and found that it is a problem with this computer and had it been within the 2 year period, it could have been fixed by HP. I purchased a usb wireless.  Several weeks ago, after turning the computer on, it lit up but had a completely black screen. No error message. I called a local computer repair place that has a good reputation.  The local company let me talk to the laptop repair person he said I would need a new motherboard.  $350 for the board and $100 for installing it.  In searching Craigslist for a used Dell or Mac, I found a listing for someone who works on "dead" computers. The ad said if you had a non working Compaq or HP with the 6000 series included, he had a 75% success rate in repairing the motherboard. The costs involved,  $25 if he could not repair it and between $85-$100 if he could.  He fixed everything and even cleaned it for $88.The chips on the board are not soldered well.  He says the stuff used to attach the components over time lose contact with the board.  All he did was resolder the chips back on with good solder.  I think he called it micro soldering or something like that. I would suggest finding someone who does this kind of work on motherboards without replacing the whole thing.  

    The problem wasn't that the soldering was bad, it's that the heat generated by the notebook is so extensive that it causes the solder to melt. Much like with the X360 first and second generation. (Red Ring Of Death issue.)
    This is a temporary, (albeit cheaper) fix that might work for some people, but it doesn't correct the problem of the Notebook getting too hot. If you do get this kind of repair, make sure you get a chill pad to sit under the notebook; that will help increase the life expectancy. As will removing the battery unless you're using it.

  • XML to ABAP Problems with many attributes in one Tag (Simple Transform)

    Hi
    i have a XML-Dataset like this. (It's a sample, in originl there are more fields under <Faktura> and more <Faktura>.) My Problem is reading the Attributes.
    <?xml version="1.0" encoding="utf-8"?>
    <Fakturen>
    <Faktura AVnr="123456789" Amt="100" Lang="1" Nr="1209" RechnungsTyp="B" Status="7" Waehrung="CHF" Year="2011" ZahlungsTyp="B"/>
    </Faktura>
    </Fakturen>
    In the Tag "Faktura are many Attributes. How can i read this. I have try this with this code and many other variation. But it does not work.
    <?sap.transform simple?>
    <tt:transform xmlns:tt="http://www.sap.com/transformation-templates" xmlns:ddic="http://www.sap.com/abapxml/types/dictionary" xmlns:def="http://www.sap.com/abapxml/types/defined">
      <tt:root name="FAKTUREN" type="ddic:ZKSO_HRNET_INTERFACE"/>
      <tt:template>
        <Fakturen>
         <Faktura>
          <tt:attribute name="AVNR" value-ref=".FAKTUREN.FAKTURA.AVNR"/>
          <tt:attribute name="AMT" value-ref=".FAKTUREN.FAKTURA.AMT"/>
          <tt:attribute name="LANG" value-ref=".FAKTUREN.FAKTURA.LANG"/>
          <tt:attribute name="NR" value-ref=".FAKTUREN.FAKTURA.NR"/>
          <tt:attribute name="RECHNUNGSTYP" value-ref=".FAKTUREN.FAKTURA.RECHNUNGSTYP"/>
          <tt:attribute name="STATUS" value-ref=".FAKTUREN.FAKTURA.STATUS"/>
          <tt:attribute name="WAEHRUNG" value-ref=".FAKTUREN.FAKTURA.WAEHRUNG"/>
          <tt:attribute name="YEAR" value-ref=".FAKTUREN.FAKTURA.YEAR"/>
         </Faktura>
        </Fakturen>
      </tt:template>
    </tt:transform>
    Thanks for help
    Stefan
    Edited by: Franziska Madl on Mar 2, 2011 2:39 PM

    Hi
    Thank you for your answer. The function module SMUM_XML_PARSE is a good way to Read a XML. Now I have found the Correct way with simple transfer and it  works with an array too.
    many regards
    Stefan
    <?sap.transform simple?>
    <tt:transform xmlns:tt="http://www.sap.com/transformation-templates" xmlns:ddic="http://www.sap.com/abapxml/types/dictionary" xmlns:def="http://www.sap.com/abapxml/types/defined">
      <tt:root name="FAKTUREN" type="ddic:ZKSO_HRNET_INTERFACE"/>
      <tt:template>
        <Fakturen>
          <tt:loop ref=".FAKTUREN.FAKTURA">
            <Faktura>
                <tt:attribute name="AVnr" value-ref="AVNR"/>
                <tt:attribute name="Amt" value-ref="AMT"/>
                <tt:attribute name="Lang" value-ref="LANG"/>
                <tt:attribute name="Nr" value-ref="NR"/>
                <tt:attribute name="RechnungsTyp" value-ref="RECHNUNGSTYP"/>
                <tt:attribute name="Status" value-ref="STATUS"/>
                <tt:attribute name="Waehrung" value-ref="WAEHRUNG"/>
                <tt:attribute name="Year" value-ref="YEAR"/>
                <tt:attribute name="ZahlungsTyp" value-ref="ZAHLUNGSTYP"/>
            </Faktura>
          </tt:loop>
        </Fakturen>
      </tt:template>
    </tt:transform>

  • Problem with arrays and comparing

    Hi,
    I am having problem accessing the array indexes.
    The program supposed to ask the user to enter the car model.
    If the car exists then it will display the message The modelname is available.
    If it doesnt exist The modelname does not exist.
    Thanks
    Car.java.........
    public class Car {
         private String regno;
         private String make;
         private String model;
         private int deposit;
         private int rate;
         public void setCar(String m, String mo, String reg, int dep, int r) {
              make = m;
              model = mo;
              regno = reg;
              deposit = dep;
              rate = r;
         public String getRegNo() {
              return regno;
         public String getmake() {
              return make;
         public String getModel() {
              return model;
         public int getdeposit() {
              return deposit;
         public int getrate() {
              return rate;
    Database.java.........
    public class Database {
    public void showDetails(){
    Car carList[] = new Car[9];
    carList[0] = new Car();
    carList[0].setCar("Toyota","Altis", "SJC2456 X", 100, 60);
    carList[1].setCar("Toyota","Vios", "SJG 9523 B", 100, 50);
    carList[2].setCar("Nissan","Latio", "SJB 7412 B", 100, 50);
    carList[3].setCar("Nissan","Murano", "SJC 8761 B", 300, 150);
    carList[4].setCar("Honda","Jazz", "SJB 4875 N", 100, 60);
    carList[5].setCar("Honda","Civic", "SJD 73269 C", 120, 70);
    carList[6].setCar("Honda","Stream", "SJL 5169 J", 120, 70);
    carList[7].setCar("Honda","Odyssey", "SJB 3468 E", 200, 150);
    carList[8].setCar("Subaru","WRX", "SJB 8234 L", 300, 200);
    carList[9].setCar("Subaru","Impressa", "SJE 8234 K", 150, 80);
    public Car findCarByModel(String findModel){
    Car car = new Car();
    for(int i = 0; i <=9; i++){
    if(car.getModel().equalsIgnoreCase(findModel)== true)
    return car; }
    } return null;
    IssueCarUi.java
    public class IssueCarUI {
    public static void main(String args[]){}
    private String requestModel;
    private Customer myCustomer;
    // Payment myPayment = new Payment();
    Rental myRental = new Rental();
    Database myDatabase = new Database();
    private int noOfDays;
    public IssueCarUI() {
    myCustomer = new Customer("", "");
    }//end Constructor
    public void createCustomer(String n, String i) {
    myCustomer.setName(n);
    myCustomer.setIC(i);
    System.out.println("Name: " + myCustomer.getName());
    System.out.println("Name: " + myCustomer.getIC());
    }// end Create customer method
    public void calculateCost(int d){
    myRental.setdays(d);
    System.out.println("Duration: 5 days");
    }// End Calculate cost
    public void showCarDetails(String requestModel) {
    requestModel=null;
    if(myDatabase.findCarByModel().equalsIgnoreCase(requestModel)==true){
    System.out.println("Model " requestModel " is available");
    }else{  System.out.println("Model " +requestModel + " not is available");}
    }// End Class
    mainmethod.java
    import java.util.Scanner;
    public class mainmethod {
    public static void main(String args[]) {
    IssueCarUI myIssue = new IssueCarUI();
    Scanner input = new Scanner(System.in);
    String name, ic,requestModel;
    System.out.print("Please enter the model to rent");
    requestModel = input.nextLine();
    myIssue.showCarDetails(requestModel);
    // System.out.print("Please Enter your name: ");
    // name = input.nextLine();
    // System.out.print("Please Enter your IC: ");
    // ic = input.nextLine();
    // myIssue.createCustomer(name, ic);
    }

    Assumption:
    * Removed setCar method and implemented the same method as a constructor for Car.
    public class Car {
      private String regno;
      private String make;
      private String model;
      private int deposit;
      private int rate;
      public Car(String m, String mo, String reg, int dep, int r) {
        make = m;
        model = mo;
        regno = reg;
        deposit = dep;
        rate = r;
      public String getRegNo() {
        return regno;
      public String getmake() {
        return make;
      public String getModel() {
        return model;
      public int getdeposit() {
        return deposit;
      public int getrate() {
        return rate;
    * When the values in the Car array are assigned in the new init() default method, they are created using the Car constructor.
    public class Database {
      //Car array is now an instance variable, rather then a local variable.
      private Car carList[]];
      //Default constructor initializes Car array and populates.
      public Database() {
        init();
      //Assign Car array with a custom Car array.
      public Database(Car carList[]) {
        this.carList = carList;
       * I highly suggest passing in as a parameter to the constructor, the car list rather then depending on this restrictive internal initialization.
       * I simply altered it in an init() method to keep it relative to your original code.
      private void init(){
        carList[] = new Car[9];
        carList[0] = new Car();
        carList[0] = new Car("Toyota","Altis", "SJC2456 X", 100, 60);
        carList[1] = new Carr("Toyota","Vios", "SJG 9523 B", 100, 50);
        carList[2] = new Car("Nissan","Latio", "SJB 7412 B", 100, 50);
        carList[3] = new Car("Nissan","Murano", "SJC 8761 B", 300, 150);
        carList[4] = new Car("Honda","Jazz", "SJB 4875 N", 100, 60);
        carList[5] = new Car("Honda","Civic", "SJD 73269 C", 120, 70);
        carList[6] = new Car("Honda","Stream", "SJL 5169 J", 120, 70);
        carList[7] = new Car("Honda","Odyssey", "SJB 3468 E", 200, 150);
        carList[8] = new Car("Subaru","WRX", "SJB 8234 L", 300, 200);
        carList[9] = new Car("Subaru","Impressa", "SJE 8234 K", 150, 80);
      public Car findCarByModel(String findModel){
        for(Car car : carList) {
          if(car.getModel().equalsIngoreCase(findModel)) {
            return car;
        return null;
    }Mel

  • Problems with Array-Parameters when using Document-Binding

    Hi,
    I use the following environment:
    JDeveloper 11.1.1.3.0
    WLS 10.3.3.0
    I created a small EJB (2.1), containing a simple method, which is using arrays as parameters:
    public String doTestArray(String[] aStringArray, int[] aIntArray)
    throws RemoteException;
    I exposed this EJB as a Webservice using JDev's Webservice wizard. I choosed Document/Wrapped-Binding. WSDL and mapping file are being generated. Made an EAR-Deployment-Profile and deployed the application to Integrated-WLS.
    I tried to test the Webservice with the WLS integrated test client, which is generating the following request:
    <doTestArrayElement xmlns="http://model/types/">
    <!--Zero or more repetitions:-->
    <arrayOfString_1>string</arrayOfString_1>
    <!--Zero or more repetitions:-->
    <arrayOfint_2>3</arrayOfint_2>
    </doTestArrayElement>
    Unfortunately, the invokation fails. WLS returns
    weblogic.wsee.codec.CodecException: Failed to decode message
    at weblogic.wsee.codec.soap11.SoapCodec.decode(SoapCodec.java:188)
    at weblogic.wsee.ws.dispatch.server.CodecHandler.decode(CodecHandler.java:139)
    That only happens in methods, which use array-parameters. Simple parameters are no problem.
    However, when I use RPC/Encoded as Webservice-Binding, everything seems to be fine.
    Does WLS have problems in general using array-parameters and Document-Binding?
    Any help would be appreciated.
    Thanks,
    Stefan

    Hi Josko,
    Where do you have this problem 3.5 or 7.0 BexAnalyzer.
    When ever heirarchy icons are created in BEx, respective hyperlink is assigned to each of them, Make sure that you dont manipulate with them,,
    If you still have problem then create OSS message.
    Regards,
    Vinay

  • File XML Content Conversion: Problem with special characters

    Hello,
    in a file sender cc content conversion is used to transform a flat structure to XML. What we experiencecd is that the message mapping failed due to a character that was not allowed in XML:
    I was assuming that the file content conversion just creates XML messages with allowed characters. Is there any way to configure content conversion to remove control characters which are not allowed in XML? Unfortunately the sender system cannot be modified.
    Thank you.

    Hi Florian,
      Please use this UDF to remove special characters which prevent XML messages to form properly.
    public static String removeSpecialChar(String s)
              try
                   s=s.replaceAll("&","& amp ;");
                   s=s.replaceAll("<"  , "  & lt ;");
                   s=s.replaceAll(">", "& gt ;");
                   s=s.replaceAll("'", "& apos ;");
                   s=s.replaceAll("\"", "& quot ;");
              catch(Exception e)
                   e.printStackTrace();
              return s;
    Please remove spaces between characters within double quotes. I have added them because otherwise you can't see this code properly. Please check this below link , please replace the characters with proper values as the display is causing a problem here   
    http://support.microsoft.com/kb/316063
    regards
    Anupam
    Edited by: anupamsap on Jul 7, 2011 4:22 PM
    Edited by: anupamsap on Jul 7, 2011 4:23 PM

  • Problem with array type in SOAP response for sync interface

    Hi,
    We have a Synchronous Interface from SAP -->PI-->Unifier .The WSDL response has array type and when WSDL is imported it is showing red (I was able to activate  and use it in mapping) .We are able to send the request successfully and when retrieving the response we are getting mapping error .Please find the attachment for reference and response message from unifier .I feel that the error is because of array type .Could someone throw some light how we can solve this soon as it was a bit urgent .
    http://scn.sap.com/thread/326591
    I tried to create the Data Type and use the same instead of using the WSDL from External Definition but did not helped.Request your help in this.I have attached the WSDL for reference .
    The response is received as shown below which is giving mapping error :
    <ns1:getUDRDataResponse xmlns:ns1='http://diran:12020/ws/services/mainservice' soapenv:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'><getUDRDataReturn href='#id0'/></ns1:getUDRDataResponse>
    The complete response looks like below where PI is not able to receive (this is retrieved from SOAP UI)
    <?xml version="1.0" encoding="utf-8" ?>
    - <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    - <soapenv:Body> 
    - <ns1:getUDRDataResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://general.service.webservices.skire.com"> 
    <getUDRDataReturn href="#id0" /> 
    </ns1:getUDRDataResponse>
    - <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:XMLObject" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="mainservice"> 
    <errorStatus soapenc:arrayType="xsd:string[0]" xsi:type="soapenc:Array" /> 
    <statusCode xsi:type="xsd:int">200</statusCode> 
    <xmlcontents xsi:type="xsd:string"><?xml version="1.0" encoding="UTF-8"?> <report> <report_header> <c1>Name</c1> <c2>Number</c2> <c3>Status</c3> <c4>Location</c4> <c5>Phase</c5> </report_header> <report_row> <c1>Test - Sprint 1 - v10</c1> <c2>GB424</c2> <c3>Active</c3> <c4>/North Sea</c4> <c5></c5> </report_row> <report_row> <c1>Test Training 3</c1> <c2>GB424-TRN3</c2> <c3>Active</c3> <c4>/North Sea</c4> <c5></c5> </report_row> </report></xmlcontents> 
    </multiRef>
    </soapenv:Body>
    </soapenv:Envelope>

    Hi Praveen and Mark,
    Thanks for the help.I tried to use XSLT mapping for request and try to read Response as a single string but i was getting an error in SXMB_MONI with Cannot display document format,Do you want too save it to harddisk and i could not get rid of this even after pressing Yes in popup .
    Can some one help to extract only the xmlcontents  from the above response and map it to target where the target structure looks like
    <report>
    <report_header>
    <report_row>
    Please help .

  • Problem with array param when calling a webservice from a BPM Process

    Hi. I have a web service and uses an array as parameter.
    The array (named "atributos") as part of a business object is defined here:
    <xs:schema targetNamespace="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/TrackPCPDOTrans" ...>
    <xs:complexType name="TrackPCPDOTransType">
    <xs:sequence>
    <xs:element name=... />
    <xs:element name="atributos" nillable="true" type="ns2:AtributosType" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="TrackPCPDOTrans" type="TrackPCPDOTransType"/>
    </xs:schema>
    <xs:schema targetNamespace=... >
    <xs:complexType name="AtributosType">
    <xs:sequence>
    <xs:element name="key" nillable="true" type="xs:string"/>
    <xs:element name="value" nillable="true" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="Atributos" type="AtributosType"/>
    </xs:schema>
    In the service task activity, I pass the params to the web service:
    "descripcion" --> TrackPCPDOTrans.atributos[1].key
    DataObject.descripcion --> TrackPCPDOTrans.atributos[1].value
    "estado" --> TrackPCPDOTrans.atributos[2].key
    DataObject.estado --> TrackPCPDOTrans.atributos[2].value
    "justificacion" --> TrackPCPDOTrans.atributos[3].key
    DataObject.justificacion --> TrackPCPDOTrans.atributos[3].value
    But when I test the process, an error ocurrs:
    <auditQueryPayload auditId="8712004" ciKey="380019">
    <dataState>
    <dataObject name="FaultMessage" isBusinessIndicator="false">
    <value> oracle.bpm.bpmn.engine.model.runtime.microinstructions.TrappableException: faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} cause: {faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} parts: {{ summary=<summary>empty expression result. The expression bpmn:getDataInput('trackPCPDOTrans')/ns:atributos[2]/ns1:key is empty. An attempt to read or copy data referenced or computed by the XPath expression either had invalid data, according to the XML schema, or did not contain certain optional data. Ensure that the variable or expression result named in the error message is not empty. Enable XML schema validation of related data elements to ensure the run-time data is valid. </summary>} } </value>
    </dataObject>
    </dataState>
    </auditQueryPayload>
    What is wrong?
    Thanks for your help.

    I did the assignment in XPATH:
    oraext:parseXML(concat('<AtributosTracking xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/AtributosTracking">
    <arrayAtributosTracking>
    <key xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos">','descripcion','</key>
    <value xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos">',bpmn:getDataObject('DataObjectDDSAO')/ns:descripcion,'</value>
    </arrayAtributosTracking>
    <arrayAtributosTracking>
    <key xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos">','estado','</key>
    <value xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos">',bpmn:getDataObject('DataObjectDDSAO')/ns:estado,'</value>
    </arrayAtributosTracking>
    </AtributosTracking>'))
    AtributosTracking.xsd:
    <?xml version="1.0" encoding="UTF-8"?>
    <?bpmo version="11.1.1.6.0.15.53" build="15.53" fullName="DataTypes.AtributosTracking" modifiers="268435456"?>
    <xs:schema targetNamespace="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/AtributosTracking" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/AtributosTracking" xmlns:ns1="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos" xmlns:bpmo="http://xmlns.oracle.com/bpm/bpmobject/" >
    <xs:import namespace="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos" schemaLocation="Atributos.xsd"/>
    <xs:complexType name="AtributosTrackingType">
    <xs:sequence>
    <xs:element name="arrayAtributosTracking" nillable="true" type="ns1:AtributosType" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="AtributosTracking" type="AtributosTrackingType"/>
    Atributos.xsd:
    <?xml version="1.0" encoding="UTF-8"?>
    <?bpmo version="11.1.1.6.0.15.53" build="15.53" fullName="DataTypes.Atributos" modifiers="0"?>
    <xs:schema targetNamespace="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://xmlns.oracle.com/bpm/bpmobject/DataTypes/Atributos" xmlns:bpmo="http://xmlns.oracle.com/bpm/bpmobject/" >
    <xs:complexType name="AtributosType">
    <xs:sequence>
    <xs:element name="key" nillable="true" type="xs:string"/>
    <xs:element name="value" nillable="true" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    <xs:element name="Atributos" type="AtributosType"/>
    </xs:schema>
    But a new error occurrs when I run the BPM process:
    <auditQueryPayload auditId="8724004" ciKey="380025">
    <dataState>
    <dataObject name="FaultMessage" isBusinessIndicator="false">
    <value> oracle.bpm.bpmn.engine.model.runtime.microinstructions.TrappableException:
    faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    cause: {faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure}
    messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
    parts: {{ summary=<summary>XPath query string returns multiple nodes.
    The assign activity part and query bpmn:getDataObject('AtributosTracking')/ns:atributosTracking are returning multiple nodes.
    The assign activity part and query named in the error message returned multiple nodes. It should return single node.
    According to BPEL4WS specification 1.1 section 14.3, the assign activity part and query named in the error message should
    not return multiple nodes. Verify the part and xpath query named in the error message at line number -1 in the BPEL source. </summary>} } </value>
    </dataObject>
    </dataState>
    </auditQueryPayload>
    Any idea?
    Thanks
    Edited by: César on 10/01/2013 11:02 AM

  • A basic question/problem with array element as undefined

    Hello everybody,
    thank you for looking at my problem. I'm very new to scripting and javaScript and I've encountered a strange problem. I'm always trying to solve all my problem myself, with documentation (it help to learn) or in the last instance with help of google. But in this case I am stuck. I'm sure its something very simple and elementary.
    Here I have a code which simply loads a text file (txt), loads the content of the file in to a "var content". This text file contents a font family name, each name on a separate line, like:
    Albertus
    Antenna
    Antique
    Arial
    Arimo
    Avant
    Barber1
    Barber2
    Barber3
    Barber4
    Birch
    Blackoak ...etc
    Now, I loop trough the content variable, extract each letter and add it to the "fontList[i]" array. If the character is a line break the fontList[i] array adds another element (i = i + 1); That's how I separate every single name into its own array element;
    The problem which I am having is, when I loop trough the fontList array and $.writeln(fontList[i]) the result in the console is:
    undefinedAlbertus
    undefinedAntenna
    undefinedAntique
    undefinedArial ...etc.
    I seriously don't get it, where the undefined is coming from? As far as I have tested each digit being added into the array element, I can't see anything out of ordinary.
    Here is my code:
    #target illustrator
    var doc = app.documents.add();
    //open file
    var myFile = new File ("c:/ScriptFiles/installedFonts-Families.txt");
    var openFile = myFile.open("r");
    //check if open
    if(openFile == true){
        $.writeln("The file has loaded")}
    else {$.writeln("The file did not load, check the name or the path");}
    //load the file content into a variable
    var content = myFile.read();
    myFile.close();
    var ch;
    var x = 0;
    var fontList = [];
    for (var i = 0; i < content.length; i++) {
        ch = content.charAt (i);
            if((ch) !== (String.fromCharCode(10))) {
                fontList[x] += ch;
            else {
                x ++;
    for ( i = 0; i < fontList.length; i++) {
       $.writeln(fontList[i]);
    doc.close (SaveOptions.DONOTSAVECHANGES);
    Thank you for any help or explanation. If you have any advice on how to improve my practices or any hint, please feel free to say. Thank you

    CarlosCantos wrote an amazing script a while back (2013) that may help you in your endeavor. Below is his code, I had nothing to do with this other then give him praise and I hope it doesn't offend him since it was pasted on the forums here.
    This has helped me do something similar to what your doing.
    Thanks again CarlosCanto
    // script.name = fontList.jsx;
    // script.description = creates a document and makes a list of all fonts seen by Illustrator;
    // script.requirements = none; // runs on CS4 and newer;
    // script.parent = CarlosCanto // 02/17/2013;
    // script.elegant = false;
    #target illustrator
    var edgeSpacing = 10;
    var columnSpacing = 195;
    var docPreset = new DocumentPreset;
    docPreset.width = 800;
    docPreset.height = 600;
    var idoc = documents.addDocument(DocumentColorSpace.CMYK, docPreset);
    var x = edgeSpacing;
    var yyy = (idoc.height - edgeSpacing);
    var fontCount = textFonts.length;
    var col = 1;
    var ABcount = 1;
    for(var i=0; i<fontCount; i++) {
        sFontName = textFonts[i].name;
        var itext = idoc.textFrames.add();
        itext.textRange.characterAttributes.size = 12;
        itext.contents = sFontName;
        //$.writeln(yyy);
        itext.top = yyy;
        itext.left = x;
        itext.textRange.characterAttributes.textFont = textFonts.getByName(textFonts[i].name);
        // check wether the text frame will go off the bottom edge of the document
        if( (yyy-=(itext.height)) <= 20 ) {
            yyy = (idoc.height - edgeSpacing);
            x += columnSpacing;
            col++;
            if (col>4) {
                var ab = idoc.artboards[ABcount-1].artboardRect;
                var abtop = ab[1];
                var ableft = ab[0];
                var abright = ab[2];
                var abbottom = ab[3];
                var ntop = abtop;
                var nleft = abright+edgeSpacing;
                var nbottom = abbottom;
                var nright = abright-ableft+nleft;
                var abRect = [nleft, ntop, nright, nbottom];
                var newAb = idoc.artboards.add(abRect);
                x = nleft+edgeSpacing;
                ABcount++;
                col=1;
        //else yyy-=(itext.height);

  • XML Form Builder-Problem with the save button

    Hi All,
    I created a project in XML Form Builder.
    I included a button "Save" in my project.
    All is working fine when i preview my project in XML Form Builder.
    The problem is when i run my project with iview.
    I suppose the form to save my input and then to be closed but
    unfortunately it did not.
    I don't know where the problem is as in the XML Form Builder everything seems ok.
    Thank you for your help!
    Regards,
    Ari

    Hi Carsten,
    Thank you for your help.
    There is no javascript error in the form.
    In the status bar when i have my mouse over the button i can see "javaxcript:HrefSubmit('save',"");"
    And when push the button "Transering Data..."
    I created the form in the Xml Form Builder and in preview there the project works.
    What do you mean "Did you access your Form using the KM Admin Explorer via a comman?"
    How can i have acess there?
    I appreciate you help!
    Regards,
    Ari

  • Javax.xml.stream.XMLInputFactory problems with &

    Hi all
    I am using javax.xml.stream.XMLInputFactory to create an XMLStreamReader, which reads XML in from a database.
    The problem is that when it encounters & entities, it is replacing them simply with &. When I then go to transform the XML with an XSL stylesheet, it fails with a parser error due to the presence of unescaped & characters.
    Looking at the API documentation, I thought that setting the property javax.xml.stream.isReplacingEntityReferences to false would solve the problem, but it isn't. The line of code I am using is as follows: -
    inputFactory.setProperty("javax.xml.stream.isReplacingEntityReferences", new Boolean(false));
    Any further ideas as to what I am doing wrong or what else I should be doing?
    Many thanks for reading and considering my post.
    Kind Regards
    Jon

    Thanks for your continued posts guys...
    Quote from DrClap: "So if you consider this to be a problem, you are most likely misunderstanding. Or is there a reason why you feel you have to know how the text was represented in the document it came from?"
    Right, just to clarify, this is what I'm trying to do...
    1. XML, complete with properly escaped characters (&, etc) is sitting in the database.
    2. Next, I am attempting to read the XML into memory character for character via an XMLInputStream and so I still want &, etc, not just &.
    3. Finally, I apply stylesheet to XML Now I do want the parser to decode the & into &. The problem is that it has already been done in 2 (above) so the parser in 3 falls over.
    Thanks for pointing out that javax.xml.stream.XMLInputFactory is not a standard class DrClap - looks like it's back to the drawing board for me!!
    Thanks
    Jon

Maybe you are looking for