Setting workflow payload as Java object

Hello,
The documentation for CQ workflows indicates that a Java object can be passed as the payload data for a workflow process.  I have a Java class that implements the WorkflowProcess interface and have hooked it up so I can invoke it programmatically.
However the documentation does not give any insight on the "payload type" options other than "JCR_PATH".  If I use JCR_PATH then it expects the Object passed to be a string (a node path obviously).  Passing anything else will cause a class cast exception. Using any payload type other than JCR_PATH results in the log message "com.day.cq.workflow.impl.jcr.WorkflowManager No payload set" and the process does not get invoked correctly.  They show up in the Workflow instances UI as RUNNING and have no payload (basically stuck).
Any help?

That's a reasonable limitation of the implementation behind the interface. Just serialize your payload into a JCR node (or a node structure) and then add this node as payload to the workflow. The WF steps then process this node.
A possible explanation for this: A workflow is guaranteed to be executed exactly once. So at the end of every workflow step the payload must be serialized to the repository to ensure that the next step can be repeated if it fails for any reason. So you can either serialize it yourself and upfront (the workflow then just updates this node struecture) or you would need some OR mapper here, which does this job for you. I prefer the first approach :-)
kind regards,
Jörg

Similar Messages

  • Can scheduled tasks be set up using a Java Object?

    I need to run a script that will create a scheduled task in
    the Coldfusion Administrator CF8. I have used a Java Object to
    register a custom tag and I am wondering if you can do the same
    thing with a scheduled task.

    No special java class/object is needed actually. ColdFusion
    offers a built-in tag for this, <cfschedule>.
    Read more here:
    http://livedocs.adobe.com/coldfusion/8/Tags_r-s_11.html

  • Calling Web Service Proxy with Custom java Object as parameter

    I created a web service proxy from WSDL URL using JDeveloper 11g(.5 version)
    I need to call a webservice method which takes custom Java Object( Ex: ABC.java) as Input parameter. It creates the XSD java (ABC.java) file for that.
    @XmlElementRef(name = "abc", namespace = "http://impl.service.ns.test", type = JAXBElement.class)
    protected JAXBElement<ABC> abc;
    ABC.java has a property of type java.util.Set of a custom Java Object (Set<XYZ.class>)
    It doesn't create xsd file for XYZ.java.
    @XmlElementRef(name = "XYZ", namespace = "http://model.ns.test/xsd", type = JAXBElement.class)
    protected JAXBElement<Set> xyz;
    Please help me.

    The passing of Java objects in and out of a web service is NOT supported. variables must be xml documents defined by a XML schema. In my opinion, missing Java object and WSDL is not a good idea. -Edwin

  • Send a Serializable java object as a payload in SOAPMessage

    Hi,
    I want to send any kind of java object (Serializable) as payload in SOAPMessage.
    I need the best solution to achive this.
    Regards,
    Riyaz..

    Lenine,
    Pardon me if I am stating the obvious here, but since you are talking about a java stored procedure, then you can use the "internal driver" to connect to the database. Have you read the relevant section of the documentation?
    (Note: Since I saw no details in your post regarding the Oracle version you are using, I have assumed the latest version, hence the above link.)
    Good Luck,
    Avi.

  • Set Java Object with Java Long Object from JNI

    Hi,
    i am getting crazy with the jni...
    in Java i have the follwoing:
    public class blabla{
    Object myObject;
    i chose Object cause the return value from native is not known
    in case for a long value i handle it like this :
    //get the Long class
    jclass LongCls = env->FindClass("Ljava/lang/Long;");
    jmethodID jmid = env->GetMethodID(LongCls, "<init>","(J)V");
    //create an Long Object with the long return value
    jobject LongObj = env->NewObject(LongCls,jmid,longreturnvalue);
    //set Long Objekt - doesnt work!(jclazz is the class of the return Object of the blabla class)
    jfid = env->GetFieldID(jclazz, "myObject", "Ljava/lang/Object;");
    env->SetObjectField( returnobjectofblabla,jfid,LongObj );
    the long value is set fine in the Long Object but i cant set the Long Object with the SetObjectField method into the Object myObject.
    Java is shown that the myObject contains a Long Object but the long value of the Long Object is totally wrong and doesnt equal to the long value which has been set.But setting the value works fine- any ideas or solutions?
    Thank you!

    charliess wrote:
    sometimes i really wonder about the answers in this forum - until now i got not one answer that helps me, even i tried to write down the problem very detailed...
    Sometimes I wonder about people who jump onto a site and immediately assume that
    1. They are the most important person in the world
    2. That they deserved the absolute undivided attention of absolute everyone.
    3. That everyone should be absolutely polite to them and provide them with perfect answers.
    4. Feel free to denigrate and posit their own opinion on everything while ignoring anything else that anyone else says.
    5. Expect that everyone else should understand their poorly worded questions.
    Myself I find such individuals extremely amusing. Although they seldom stick around long here. At least not under their original alias.
    plaz tel me how to realise your error checking?example plz
    You start by having at least a basic understanding of C/C++ and java.
    Then you read the JNI documents, all of them, for each method that you are using.
    Then you write code such that it actually reflects the documents. For example you check return types. And probably deal with the possibility that JNI methods might throw exceptions.
    as far as i know the jni methods like getfieldids and so on throw exceptions other like stObject dont do that the just return nothing
    i can see all exceptions in my Java console thats not the Problem, setting the Long Object does not throwing a exception btw->
    Myself I wouldn't expect that a JNI exception would show in the java console. Could I suppose though.
    However nothing so far would suggest that an exception is being thrown. That however doesn't alter the fact that you must still write the code such that it could happen.
    is it possible in general to set an java Long Object created in C(native) into a Object type (Object) overgiven as parameter in my JNI function with the setObject method?
    Is it possible that you could actually follow my previous request and create some code that actually runs instead of cut and pasting whatever you feel like?
    plz answer also with code and examples i did the same for you...No you didn't. You posted something which would not compile and quite possibly doesn't represent your actual code at all.
    And please note that we do not get paid to do this. If you want to pay someone to solve your problem then there are sites for that.
    Paying someone allows you to make all sorts of demands. The more you pay the more people will put up with.
    If you don't want to pay and do in fact want free answers then it will probably be in your interest to
    1. Be polite
    2. Answer the questions that have been asked of you.

  • Problem while trying to get task payload in java client.

    Hi,
    I am working on worklist application in 10.1.3 and trying to get task payload in java client.
    In BPEL proces, assigning a XML as following:
    <copy>
    <from expression="bpws:getVariableData('inputVariable','payload','/client:ErrorHandlerBPELProcessRequest/client:inputXML')"/>
    <to variable="initiateTaskInput" part="payload"
    query="/taskservice:initiateTask/task:task/task:payload"/>
    </copy>
    And in java client:
    Element payload = (Element)task.getPayloadAsElement();
    String xml = payload.getNodeValue();
    Result is a null value for xml. I am able to see the input XML is assigned to task payload in BPEL console and payload object is as "oracle.xml.parser.v2.XMLElement@13ae670"
    I also tried with getPayload() which returns oracle.bpel.services.workflow.task.model.AnyTypeImpl object.
    Any help is appreciated.
    Thanks,
    -Vidya

    Hi,
    Thanks for the reply.
    When I checked for childnodes also, it is showing zero childnodes.
    I had tried with both getTaskQueryService().getTaskDetailsById() method and getTaskQueryService().getTaskVersionDetails() to get details about task.
    I am able to fetch all other details except payload which has been assgined in BPEL process. I don't know why payload is not available.
    Following is input for intiatetask:
    <initiateTaskInput>
    -<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
    -<initiateTask xmlns="http://xmlns.oracle.com/bpel/workflow/taskService">
    -<task xmlns="http://xmlns.oracle.com/bpel/workflow/task">
    <title>OAG XML</title>
    <payload>
         <SyncPurchaseOrder releaseID="9.0" xmlns:ccf="http://www.oracle.com/XSL/Transform/java/com.myorg.integration.xpathfunctions.xsl.LookupFunctions" xmlns:ns1="http://www.openapplications.org/oagis/9" xmlns="http://www.openapplications.org/oagis/9">
         <ns1:ApplicationArea>
         <ns1:Sender>
              <ns1:LogicalID>
                                       LogicalID
                                       OAG Server Name</ns1:LogicalID>
              <ns1:ComponentID schemeAgencyName="'Jabil'">RR
                                  </ns1:ComponentID>
              <ns1:TaskID schemeAgencyName=" ">Inbound Order Event</ns1:TaskID>
              <ns1:ReferenceID>129537</ns1:ReferenceID>
              <ns1:ConfirmationCode>Never</ns1:ConfirmationCode>
         </ns1:Sender>
         <ns1:CreationDateTime>1969-12-31T18:59:50-05:00</ns1:CreationDateTime>
         <ns1:BODID>RR~4556839~129537</ns1:BODID>
         </ns1:ApplicationArea>
         <ns1:DataArea>
         <ns1:Sync/>
         <ns1:PurchaseOrder>
              <ns1:PurchaseOrderHeader>
              <ns1:DocumentID>
              <ns1:ID>4556839</ns1:ID>
              <ns1:VariationID schemeName="Version" schemeID=""/>
              </ns1:DocumentID>
              <ns1:Note status="Comments">test Rr inbound header notes</ns1:Note>
              <ns1:DocumentReference type="Contract">
              <ns1:DocumentID>
                   <ns1:ID>OSS1</ns1:ID>
              </ns1:DocumentID>
              </ns1:DocumentReference>
              <ns1:DocumentReference type="OrderProcessType">
              <ns1:DocumentID>
                   <ns1:ID>POI</ns1:ID>
              </ns1:DocumentID>
              </ns1:DocumentReference>
              <ns1:DocumentReference type="clientRefNo1">
              <ns1:DocumentID>
                   <ns1:ID>TEST CLIENT REF1</ns1:ID>
              </ns1:DocumentID>
              </ns1:DocumentReference>
              <ns1:DocumentReference type="clientRefNo2">
              <ns1:DocumentID>
                   <ns1:ID>TEST CLIENT REF2</ns1:ID>
              </ns1:DocumentID>
              </ns1:DocumentReference>
              <ns1:Status>
              <ns1:Code>Released</ns1:Code>
              </ns1:Status>
              <ns1:Party role="TradingPartner">
              <ns1:PartyIDs>
                   <ns1:ID schemeID="Primary">HPOSS</ns1:ID>
              </ns1:PartyIDs>
              </ns1:Party>
              <ns1:SupplierParty>
              <ns1:PartyIDs>
                   <ns1:ID schemeID="SupplierEBU"/>
              </ns1:PartyIDs>
              </ns1:SupplierParty>
              <ns1:SupplierParty>
              <ns1:PartyIDs>
                   <ns1:ID schemeID="SupplierEBU"/>
              </ns1:PartyIDs>
              </ns1:SupplierParty>
              <ns1:ShipToParty>
              <ns1:PartyIDs>
                   <ns1:ID schemeID="ShipToEBU">WMXAMS_HP KITTING</ns1:ID>
              </ns1:PartyIDs>
              </ns1:ShipToParty>
              <ns1:PaymentTerm type="Primary">
              <ns1:Term>
                   <ns1:ID schemeID="Primary"/>
              </ns1:Term>
              </ns1:PaymentTerm>
              <ns1:UserArea/>
              </ns1:PurchaseOrderHeader>
              <ns1:PurchaseOrderLine>
              <ns1:LineNumber>1</ns1:LineNumber>
              <ns1:Note status="Comments">TEST LINE1 NOTES</ns1:Note>
              <ns1:Status>
              <ns1:Code/>
              <ns1:ReasonCode>BACKLIGHT INOPERATIVE</ns1:ReasonCode>
              <ns1:Reason>TEST LINE1 NOTES</ns1:Reason>
              </ns1:Status>
              <ns1:Item>
              <ns1:ItemID agencyRole="Primary">
                   <ns1:ID>71BI2532101</ns1:ID>
              </ns1:ItemID>
              <ns1:Classification type="ShipFromOwnerEBU">
                   <ns1:Codes>
                   <ns1:Code listID="Primary" sequence="1">JGS AMSTERDAM</ns1:Code>
                   </ns1:Codes>
              </ns1:Classification>
              <ns1:Classification type="Priority">
                   <ns1:Codes>
                   <ns1:Code listID="Primary" sequence="1">High</ns1:Code>
                   </ns1:Codes>
              </ns1:Classification>
              <ns1:Specification type="Warehouse">
                   <ns1:Property sequence="1">
                   <ns1:NameValue name="esb"/>
                   </ns1:Property>
              </ns1:Specification>
              <ns1:Specification type="stkLoc">
                   <ns1:Property sequence="1">
                   <ns1:NameValue name="esb"/>
                   </ns1:Property>
              </ns1:Specification>
              <ns1:Specification type="Bin">
                   <ns1:Property sequence="1">
                   <ns1:NameValue name="esb"/>
                   </ns1:Property>
              </ns1:Specification>
              <ns1:Specification type="ItemsToAdd">
                   <ns1:Property>
                   <ns1:NameValue name="esb" type="SerialNumber">101</ns1:NameValue>
                   </ns1:Property>
              </ns1:Specification>
              </ns1:Item>
              <ns1:Quantity>1</ns1:Quantity>
              <ns1:UnitPrice>
              <ns1:Amount currencyID="USD">2.3</ns1:Amount>
              <ns1:PerQuantity>1</ns1:PerQuantity>
              </ns1:UnitPrice>
              <ns1:RequiredDeliveryDateTime>2007-02-22T18:00:00-05:00</ns1:RequiredDeliveryDateTime>
              <ns1:ShipToParty>
              <ns1:PartyIDs>
                   <ns1:ID schemeID="Primary">WMXAMS_HP KITTING</ns1:ID>
                   <ns1:ID schemeID="ShipToOwnerEBU">JGS AMSTERDAM</ns1:ID>
              </ns1:PartyIDs>
              <ns1:Location type="Warehouse">
                   <ns1:ID>WMXAMS_HP KITTING</ns1:ID>
              </ns1:Location>
              <ns1:Location type="StockLocation">
                   <ns1:ID>SL1</ns1:ID>
              </ns1:Location>
              <ns1:Location type="bin">
                   <ns1:ID>Bin1</ns1:ID>
              </ns1:Location>
              <ns1:Location type="Condition">
                   <ns1:ID>Workable</ns1:ID>
              </ns1:Location>
              </ns1:ShipToParty>
              <ns1:UserArea>
              <cl:myorg.SyncPurchaseOrder.PurchaseOrderLine.UserArea xmlns:cl="http://www.myorg.com/oagis">
                   <cl:Party role="ShipFrom">
                   <cl:ID/>
                   </cl:Party>
                   <cl:ShipByDate>2007-02-22T18:00:00-05:00</cl:ShipByDate>
                   <cl:ItemDetail>
                   <cl:SubInventory>
                        <cl:SubInventoryQuantity>1</cl:SubInventoryQuantity>
                        <cl:SubInventoryStatus>AVL</cl:SubInventoryStatus>
                   </cl:SubInventory>
                   </cl:ItemDetail>
                   <cl:Flex/>
              </cl:myorg.SyncPurchaseOrder.PurchaseOrderLine.UserArea>
              </ns1:UserArea>
              </ns1:PurchaseOrderLine>
              <ns1:PurchaseOrderLine>
              <ns1:LineNumber>2</ns1:LineNumber>
              <ns1:Note status="Comments">TEST LINE2 NOTES</ns1:Note>
              <ns1:Status>
              <ns1:Code/>
              <ns1:ReasonCode>BATTERY DRAINS TOO QUICKLY</ns1:ReasonCode>
              <ns1:Reason>TEST LINE2 NOTES</ns1:Reason>
              </ns1:Status>
              <ns1:Item>
              <ns1:ItemID agencyRole="Primary">
                   <ns1:ID>71BI2532101</ns1:ID>
              </ns1:ItemID>
              <ns1:Classification type="ShipFromOwnerEBU">
                   <ns1:Codes>
                   <ns1:Code listID="Primary" sequence="1">JGS AMSTERDAM</ns1:Code>
                   </ns1:Codes>
              </ns1:Classification>
              <ns1:Classification type="Priority">
                   <ns1:Codes>
                   <ns1:Code listID="Primary" sequence="1">High</ns1:Code>
                   </ns1:Codes>
              </ns1:Classification>
              <ns1:Specification type="Warehouse">
                   <ns1:Property sequence="1">
                   <ns1:NameValue name="esb"/>
                   </ns1:Property>
              </ns1:Specification>
              <ns1:Specification type="stkLoc">
                   <ns1:Property sequence="1">
                   <ns1:NameValue name="esb"/>
                   </ns1:Property>
              </ns1:Specification>
              <ns1:Specification type="Bin">
                   <ns1:Property sequence="1">
                   <ns1:NameValue name="esb"/>
                   </ns1:Property>
              </ns1:Specification>
              <ns1:Specification type="ItemsToAdd">
                   <ns1:Property>
                   <ns1:NameValue name="esb" type="SerialNumber">101</ns1:NameValue>
                   </ns1:Property>
              </ns1:Specification>
              </ns1:Item>
              <ns1:Quantity>1</ns1:Quantity>
              <ns1:UnitPrice>
              <ns1:Amount currencyID="USD">2.5</ns1:Amount>
              <ns1:PerQuantity>1</ns1:PerQuantity>
              </ns1:UnitPrice>
              <ns1:RequiredDeliveryDateTime>2007-02-22T18:00:00-05:00</ns1:RequiredDeliveryDateTime>
              <ns1:ShipToParty>
              <ns1:PartyIDs>
                   <ns1:ID schemeID="Primary">WMXAMS_HP KITTING</ns1:ID>
                   <ns1:ID schemeID="ShipToOwnerEBU">JGS AMSTERDAM</ns1:ID>
              </ns1:PartyIDs>
              <ns1:Location type="Warehouse">
                   <ns1:ID>WMXAMS_HP KITTING</ns1:ID>
              </ns1:Location>
              <ns1:Location type="StockLocation">
                   <ns1:ID>SL1</ns1:ID>
              </ns1:Location>
              <ns1:Location type="bin">
                   <ns1:ID>Bin1</ns1:ID>
              </ns1:Location>
              <ns1:Location type="Condition">
                   <ns1:ID>Workable</ns1:ID>
              </ns1:Location>
              </ns1:ShipToParty>
              <ns1:UserArea>
              <cl:myorg.SyncPurchaseOrder.PurchaseOrderLine.UserArea xmlns:cl="http://www.myorg.com/oagis">
                   <cl:Party role="ShipFrom">
                   <cl:ID/>
                   </cl:Party>
                   <cl:ShipByDate>2007-02-22T18:00:00-05:00</cl:ShipByDate>
                   <cl:ItemDetail>
                   <cl:SubInventory>
                        <cl:SubInventoryQuantity>1</cl:SubInventoryQuantity>
                        <cl:SubInventoryStatus>AVL</cl:SubInventoryStatus>
                   </cl:SubInventory>
                   </cl:ItemDetail>
                   <cl:Flex/>
              </cl:myorg.SyncPurchaseOrder.PurchaseOrderLine.UserArea>
              </ns1:UserArea>
              </ns1:PurchaseOrderLine>
         </ns1:PurchaseOrder>
         </ns1:DataArea>
         </SyncPurchaseOrder>
    </payload>
    <taskDefinitionURI>http://localhost:80/orabpel/default/ErrorHandlerBPEL/1.0/SimpleUserActivity/SimpleUserActivity.task
    </taskDefinitionURI>
    <creator/>
    <ownerUser/>
    <ownerGroup/>
    <priority>3
    </priority>
    <identityContext/>
    <userComment/>
    <attachment/>
    -<processInfo>
    <domainId>default
    </domainId>
    <instanceId>590085
    </instanceId>
    <processId>ErrorHandlerBPEL
    </processId>
    <processName>ErrorHandlerBPEL
    </processName>
    <processType>BPEL
    </processType>
    <processVersion>1.0
    </processVersion>
    </processInfo>
    <systemAttributes/>
    <systemMessageAttributes/>
    <titleResourceKey/>
    <callback/>
    <identificationKey/>
    </task>
    </initiateTask>
    </part>
    </initiateTaskInput>
    Thanks,
    -Vidya

  • Failed to load value at index 22 with java object of type java.lang.String

    Hi all,
    As i am trying to open the notifications created from Administartor Workflow ,
    It throws a below error::
    oracle.apps.fnd.framework.OAException: oracle.jbo.AttributeLoadException: JBO-27022: Failed to load value at index 22 with java object of type java.lang.String due to java.sql.SQLException. at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:912) at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:886) at oracle.apps.fnd.framework.OAException.wrapperInvocationTargetException(OAException.java:1009) at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:211) at oracle.apps.fnd.framework.server.OAApplicationModuleImpl.invokeMethod(OAApplicationModuleImpl.java:720) at oracle.apps.ap.oie.workflow.apexp.webui.NotifExpLinesCO.processRequest(NotifExpLinesCO.java:116) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:600) at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.process
    java.sql.SQLException: Invalid column index
    at oracle.jdbc.driver.OracleResultSetImpl.getObject(OracleResultSetImpl.java:1042) at oracle.jbo.server.OracleSQLBuilderImpl.doLoadFromResultSet(OracleSQLBuilderImpl.java:1198) at oracle.jbo.server.AttributeDefImpl.loadFromResultSet(AttributeDefImpl.java:1633) at oracle.jbo.server.ViewRowImpl.populate(ViewRowImpl.java:2221).
    No extensions done in the page
    Please let me know the cause for this error ASAP
    Thanks
    Kash

    Problem solved. set the datatype as timestamp for that attribute in buissiness object.

  • Problem with XMLEncoder for complex java object i

    Hi All.
    My problem with XMLEncoder is it doesnt transfrom java objects without default no arguement constructor. I was able to resolve this in my main java object class, by setting a new persistence delegate, but for other classes that are contained in the main class, they are not being encoded.
    Thanks in advance for your answers

    Better to put this in java forum :-)
    Just check, if this helps.
    http://forum.java.sun.com/thread.jspa?threadID=379614&messageID=1623434

  • Generating an XML representation of arbitrary Java objects

    Hi. Just for fun, I'm attempting to write some code which creates an XML representation of an arbitrary java object using reflection. The idea is that only properties with get/set methods should come through in the XML.
    Here is the code:
    package com.uhg.aarp.compas.persistence.common.xml;
    import java.io.IOException;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.FactoryConfigurationError;
    import javax.xml.parsers.ParserConfigurationException;
    import org.xml.sax.SAXException;
    import org.xml.sax.SAXParseException;
    import org.w3c.dom.Document;
    import org.w3c.dom.DOMException;
    import org.w3c.dom.Node;
    import java.util.Stack;
    public class XMLDAO {
         public static String getXMLWithHeader(Object obj){
              return "<?xml version=\"0\"?>" + getXML(obj);
          * Returns an XML representation of an arbitrary object
         public static String getXML(Object obj){
              StringBuffer buffer = new StringBuffer();
              AccessorMethod[] accessorMethods = getAccessorMethods(obj);
              buffer.append("<" + obj.getClass().getName() + ">\n");
              //List
              if(obj instanceof List){
                   List objList = (List)obj;
                   Iterator iterator = objList.iterator();
                   while(iterator.hasNext()){                              
                        buffer.append(getXML(iterator.next()));
              else{
                   for(int i = 0; i < accessorMethods.length; i++){
                        Object fieldObj = null;
                        try{
                             fieldObj = accessorMethods.invoke();
                             1. Primitive Wrapper or String(base case)
                             if(fieldObj instanceof Integer || fieldObj instanceof Float || fieldObj instanceof Double
                                  || fieldObj instanceof Long || fieldObj instanceof String){
                                  buffer.append("<" + accessorMethods[i].getAccessorFieldName() + ">");
                                  buffer.append(accessorMethods[i].invoke());
                                  buffer.append("</" + accessorMethods[i].getAccessorFieldName() + ">\n");
                             else if(fieldObj instanceof Object[]){
                                  buffer.append("<" + accessorMethods[i].getAccessorFieldName() + ">\n");
                                  Object[] fieldArray = (Object[])fieldObj;
                                  for(int j = 0; j < fieldArray.length; j++)
                                       buffer.append(getXML(fieldArray[i]));
                                  buffer.append("</" + accessorMethods[i].getAccessorFieldName() + ">\n");
                        }catch(Exception e){
                             System.out.println("Couldn't invoke method: " + accessorMethods[i].getName());
              buffer.append("</" + obj.getClass().getName() + ">\n");
              return buffer.toString();
         * Returns the Object representation for the XML - used to rebuild Java objects
         * converted to XML by XMLDAO.getXML().
         public static Object getObject(String xmlString) throws ParserConfigurationException,
              SAXException, IOException{
              //the root element is the class name
              DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
              DocumentBuilder builder = factory.newDocumentBuilder();
              Document document = builder.parse(xmlString);
              Stack objectStack = new Stack();
              return getObject(document);
         private static Object getObject(Node n){
              //every document is either an object or a bean property
              //all bean properties have values
              //no object has a value, it can only have bean properties
              //the base case occurs when the document has a value
              String nodeName = n.getNodeName();
              if(n.getNodeValue() == null){
                   System.out.println("node " + nodeName + " is an object");
              else{
                   System.out.println("node " + nodeName + " is a bean property");
              return null;
         * Returns all of the "getter" methods for the given object
         private static AccessorMethod[] getAccessorMethods(Object obj){
              Class theClass = obj.getClass();
              Method[] objMethods = theClass.getMethods();
              ArrayList methodList = new ArrayList();
              for(int i = 0; i < objMethods.length; i++){
                   try{
                        methodList.add(new AccessorMethod(obj, objMethods[i]));
                   }catch(IllegalArgumentException e){}
              return (AccessorMethod[])methodList.toArray(new AccessorMethod[methodList.size()]);
         * Invokes the specified "getter" method and returns the result as an Object
         private Object invokeAccessorMethod(Object obj, Method m) throws IllegalAccessException,
              InvocationTargetException{
              return m.invoke(obj, null);
    package com.uhg.aarp.compas.persistence.common.xml;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    * Represents an AccessorMethod (i.e. getField()) on an Object
    public class AccessorMethod{
         private Object obj;
         private Method m;
         private String accessorFieldName;
         * Constructor for AccessorMethod
         public AccessorMethod(Object obj, Method m) throws IllegalArgumentException{
              1. Method name starts with get
              2. Method name does not equal get
              3. Method takes no arguments
              4. Method return type is not void
              String methodName = m.getName();
              if(methodName.indexOf("get") != 0 || methodName.length() == 3 &&
                   m.getParameterTypes().length != 0 && m.getReturnType() != null){
                   throw new IllegalArgumentException("Not a valid getter method " + methodName);
              this.obj = obj;
              this.m = m;
              String tempName = m.getName().substring(3, m.getName().length());
              this.accessorFieldName = Character.toLowerCase(tempName.charAt(0)) + tempName.substring(1, tempName.length());
         public Object invoke() throws IllegalAccessException, InvocationTargetException{
              return m.invoke(obj, null);
         * Gets the m
         * @return Returns a Method
         public Method getM() {
              return m;
         * Sets the m
         * @param m The m to set
         public void setM(Method m) {
              this.m = m;
         * Gets the accessorFieldName
         * @return Returns a String
         public String getAccessorFieldName() {
              return accessorFieldName;
         * Sets the accessorFieldName
         * @param accessorFieldName The accessorFieldName to set
         public void setAccessorFieldName(String accessorFieldName) {
              this.accessorFieldName = accessorFieldName;
         * Gets the obj
         * @return Returns a Object
         public Object getObj() {
              return obj;
         * Sets the obj
         * @param obj The obj to set
         public void setObj(Object obj) {
              this.obj = obj;
         public String getName(){
              return this.m.getName();
    I'm having some trouble figuring out how to implement the XMLDAO.getObject(Node n) method. I was thinking of maintaining a Stack of the previous Objects as I traverse the DOM, but I think that might be unnecessary work. Basically I'm wondering how I determine what the last "object" is in the DOM from any given node. Anyone have any input?

    I think the end of my post got cut off:
    I'm having some trouble figuring out how to implement the XMLDAO.getObject(Node n) method. I was thinking of maintaining a Stack of the previous Objects as I traverse the DOM, but I think that might be unnecessary work. Basically I'm wondering how I determine what the last "object" is in the DOM from any given node. Anyone have any input?

  • Parse of a xml file to an java object model

    Hello,
    I'm trying to do a program that receive an xml file and ought to create all the neccesary java objects according to the content of the parsed xml file.
    I've all the class created for all the objects that could be present into the xml and the idea is to go down in the tree of nodes recursively until it returns nodes more simple. Then, I create the last object and while I come back of the recursively calls, I create the objects more complex until I reached to the main object.
    Until now, I have part of this code, that is the one wich have to parse the parts of the xml.
    public static void readFile(String root){
              DocumentBuilderFactory factory = DocumentBuilderFactory
                   .newInstance();
              try {
                   DocumentBuilder builder = factory.newDocumentBuilder();
                   Scanner scanner = new Scanner(new File(root)).useDelimiter("\\Z");
                   String contents = scanner.next();
                   scanner.close();
                   Document document = builder.parse(new ByteArrayInputStream(contents.getBytes()));
                   Node node = null;
                   NodeList nodes = null;
                   Element element = document.getDocumentElement();
                   System.out.println(element.getNodeName());
                   NodeList subNodes;
                   NamedNodeMap attributes;
                   //if (element.hasAttributes())
                   visitNodes(element);
              } catch (ParserConfigurationException e) {
                   e.printStackTrace();
              } catch (SAXException e) {
                   e.printStackTrace();
              } catch (IOException e) {
                   e.printStackTrace();
         private static void visitNodes (Node node){
              for(Node childNode = node.getFirstChild(); childNode!=null;){
                   if (childNode.getNodeType() == childNode.DOCUMENT_NODE){
                        System.out.println("Document node Name " + childNode.getNodeName());
                        visitNodes(childNode);
                   }else if (childNode.getNodeType() == childNode.ELEMENT_NODE){
                        System.out.println("Node Name " + childNode.getNodeName());
                        if (childNode.hasAttributes()){
                             visitAttributes(childNode.getAttributes());
                        if (childNode.hasChildNodes()){
                             visitNodes(childNode);
                   }else if (childNode.getNodeType() == childNode.TEXT_NODE && !childNode.getNodeValue().contains("\n\t")){
                        System.out.println("Node value " + childNode.getNodeValue());
                   Node nextChild = childNode.getNextSibling();
                   childNode = nextChild;
         private static void visitAttributes(NamedNodeMap attributes){
              Node node;
              for(int i = 0; i < attributes.getLength(); i++){
                   node = attributes.item(i);
                   System.out.print(node.getNodeName() + " ");
                   System.out.print(node.getNodeValue() + " ");
                  }I don't know the use of childNodeType. For example, I expected that the XML tags with childs in his structure, enter by the option NODE_DOCUMENT and the tags without childs by the ELEMENT_NODE.
    But the most important problem I've found are the nodes [#text] because after one ELEMENT_NODE I always found this node and when I ask if the node hasChilds, always returns true by this node.
    Has any option to obtain this text value, that finally I want to display without doing other recursively call when I enter into the ELEMENT_NODE option?
    When one Node is of type DOCUMENT_NODE or DOCUMENT_COMMENT? My program always enter by the ELEMENT_NODE type
    Have you any other suggestions? All the help or idea will be well received.
    Thanks for all.

    Hello again,
    My native language is Spanish and sorry by my English I attemp write as better I can, using my own knowledge and the google traductor.
    I have solved my initial problem with the xml parser.
    Firstly, I read the complete XML file, validated previously.
    The code I've used is this:
    public static String readCompleteFile (String root){
              String content = "";
              try {
                   Scanner scanner = new Scanner(new File(root)).useDelimiter("\\Z");
                   content = scanner.next();
                   scanner.close();
              } catch (IOException e) {
                   e.printStackTrace();
              return content;
         }Now, I've the file in memory and I hope I can explain me better.
    I can receive different types of XML that could be or not partly equals.
    For this purpose I've created an external jar library with all the possible objects contained in my xml files.
    Each one of this objects depend on other, until found leaf nodes.
    For example, If I receive one xml with a scheme like the next:
    <Person>
        <Name>Juliet</Name>
        <Father Age="30r">Peter</Father>
        <Mother age="29">Theresa</Mother>
        <Brother>
        </Brother>
        <Education>
            <School>
            </school>
        </education>
    </person>
    <person>
    </person>The first class, which initializes the parse, should selecting all the person tags into the file and treat them one by one. This means that for each person tag found, I must to call each subobject wich appears in the tag. using as parameter his own part of the tag and so on until you reach a node that has no more than values and or attributes. When the last node is completed I'm going to go back for completing the parent objects until I return to the original object. Then I'll have all the XML in java objects.
    The method that I must implement as constructor in every object is similar to this:
    public class Person{
      final String[] SUBOBJETOS = {"Father", "Mother", "Brothers", "Education"};
      private String name;
         private Father father;
         private Mother mother;
         private ArrayList brothers;
         private Education education;
         public Person(String xml){
           XmlUtil utilXml = new XmlUtil();          
              String xmlFather = utilXml.textBetweenXmlTags(xml, SUBOBJETOS[0]);
              String xmlMother = utilXml.textBetweenXmlTags(xml, SUBOBJETOS[1]);
              String xmlBrothers = utilXml.textBetweenMultipleXmlTags(xml, SUBOBJETOS[2]);
              String xmlEducation = utilXml.textBetweenXmlTags(xml, SUBOBJETOS[3]);
              if (!xmlFather.equals("")){
                   this.setFather(new Father(xmlFather));
              if (!xmlMother.equals("")){
                   this.setMother(new Father(xmlMother));
              if (!xmlBrothers.equals("")){
                ArrayList aux = new ArrayList();
                String xmlBrother;
                while xmlBrothers != null && !xmlBrothers.equals("")){
                  xmlBrother = utilXml.textBetweenXmlTags(xmlBrothers, SUBOBJETOS[2]);
                  aux.add(new Brother(xmlBrother);
                  xmlBrothers = utilXml.removeTagTreated(xmlBrothers, SUBOBJETOS[2]);
                this.setBrothers(aux);
              if (!xmlEducation.equals("")){
                   this.setEducation(new Father(xmlEducation));     
    }If the object is a leaf object, the constructor will be like this:
    public class Mother {
         //Elements
         private String name;
         private String age;
         public Mother(String xml){          
              XmlUtil utilXml = new XmlUtil();
              HashMap objects = utilXml.parsearString(xml);
              ArraysList objectsList = new ArrayList();
              String[] Object = new String[2];
              this.setName((String)objects.get("Mother"));
              if (objects.get("attributes")!= null){
                   objectsList = objects.get("attributes");
                   for (int i = 0; i < objectsList.size();i++){
                     Object = objectsList.get(i);
                     if (object[0].equals("age"))
                       this.setAge(object[1]);
                     else
         }Each class will have its getter and setter but I do not have implemented in the examples.
    Finally, the parser is as follows:
    import java.io.ByteArrayInputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import org.w3c.dom.Document;
    import org.w3c.dom.NamedNodeMap;
    import org.w3c.dom.Node;
    import org.xml.sax.SAXException;
    public class XmlUtil {
         public HashMap parsearString(String contenido){
              HashMap objet = new HashMap();
              DocumentBuilderFactory factory;
              DocumentBuilder builder;
              Document document;
              try{
                   if (content != null && !content.equals("")){
                        factory = DocumentBuilderFactory.newInstance();
                        builder = factory.newDocumentBuilder();
                        document = builder.parse(new ByteArrayInputStream(content.getBytes()));
                        object = visitNodes(document);                    
                   }else{
                        object = null;
              } catch (ParserConfigurationException e) {
                   e.printStackTrace();
                   return null;
              } catch (SAXException e) {
                   e.printStackTrace();
                   return null;
              } catch (IOException e) {
                   e.printStackTrace();
                   return null;
              return object;
         private HashMap visitNodes (Node node){
              String nodeName = "";
              String nodeValue = "";
              ArrayList attributes = new ArrayList();
              HashMap object = new HashMap();
              Node childNode = node.getFirstChild();
              if (childNode.getNodeType() == Node.ELEMENT_NODE){
                   nodeName = childNode.getNodeName();                    
                   if (childNode.hasAttributes()){
                        attributes = visitAttributes(childNode.getAttributes());
                   }else{
                        attributes = null;
                   nodeValue = getNodeValue(childNode);
                   object.put(nodeName, nodeValue);
                   object.put("attributes", attributes);
              return object;
         private static String getNodeValue (Node node){          
              if (node.hasChildNodes() && node.getFirstChild().getNodeType() == Node.TEXT_NODE && !node.getFirstChild().getNodeValue().contains("\n\t"))
                   return node.getFirstChild().getNodeValue();
              else
                   return "";
         private ArrayList visitAttributes(NamedNodeMap attributes){
              Node node;
              ArrayList ListAttributes = new ArrayList();
              String [] attribute = new String[2];
              for(int i = 0; i < attributes.getLength(); i++){
                   atribute = new String[2];
                   node = attributes.item(i);
                   if (node.getNodeType() == Node.ATTRIBUTE_NODE){
                        attribute[0] = node.getNodeName();
                        attribute[1] = node.getNodeValue();
                        ListAttributes.add(attribute);
              return ListAttributes;
    }This code functioning properly. However, as exist around 400 objects to the xml, I wanted to create a method for more easily invoking objects that are below other and that's what I can't get to do at the moment.
    The code I use is:
    import java.lang.reflect.Constructor;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    public class UtilClasses {
         public Object UtilClasses(String package, String object, String xml){
              try {
                Class class = Class.forName(package + "." + object);
                //parameter types for methods
                Class[] partypes = new Class[]{Object.class};
                //Create method object . methodname and parameter types
                Method meth = class.getMethod(object, partypes);
                //parameter types for constructor
                Class[] constrpartypes = new Class[]{String.class};
                //Create constructor object . parameter types
                Constructor constr = claseObjeto.getConstructor(constrpartypes);
                //create instance
                Object obj = constr.newInstance(new String[]{xml});
                //Arguments to be passed into method
                Object[] arglist = new Object[]{xml};
                //invoke method!!
                String output = (String) meth.invoke(dummyto, arglist);
                System.out.println(output);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SecurityException e) {
                e.printStackTrace();
            } catch (NoSuchMethodException e) {
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            } catch (InstantiationException e) {
                e.printStackTrace();
              return null;
         }This is an example obtained from the Internet that I've wanted modified to my needs. The problem is that when the class calls this method to invoke the constructor and does not fail, this does not do what I expect, because it creates an empty constructor. If not, the parent class gives a casting error.
    I hope that now have been more clear my intentions and that no one has fallen asleep reading this lengthy explanation.
    greetings.

  • Explicity mapping between ActionScript and Java objects for the BlazeDS Messaging Service

    The BlazeDS documentation shows how to explicitly map between ActionScript and Java objects. For example, this works fine for RPC services, e.g.
    import flash.utils.IExternalizable;
    import flash.utils.IDataInput;
    import flash.utils.IDataOutput;
    [Bindable]
    [RemoteClass(alias="javaclass.User")]
    public class User implements IExternalizable {
            public var id : String;
            public var secret : String;
            public function User() {
            public function readExternal(input : IDataInput) : void {
                    id = input.readObject() as String;
            public function writeExternal(output : IDataOutput) : void {
                    output.writeObject(id);
    and
    import java.io.Externalizable;
    import java.io.IOException;
    import java.io.ObjectInput;
    import java.io.ObjectOutput;
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;
    public class User implements Externalizable {
        protected String id;
        protected String secret;
        public String getId() {
            return id;
        public void setId(String id) {
            this.id = id;
        public String getSecret() {
            return secret;
        public void setSecret(String secret) {
            this.secret = secret;
        public void readExternal(ObjectInput in) throws IOException,
                    ClassNotFoundException {
            id = (String) in.readObject();
        public void writeExternal(ObjectOutput out) throws IOException {
            out.writeObject(id);
    If I called an RPC service that returns a User, the secret is not sent over the wire.  Is it also possible to do this for the messaging service? That is, if I create a custom messaging adapter and use the function below, can I also prevent secret from being sent?
    MessageBroker messageBroker = MessageBroker.getMessageBroker(null);
    AsyncMessage message = new AsyncMessage();
    message.setDestination("MyMessagingService");
    message.setClientId(UUIDUtils.createUUID());
    message.setMessageId(UUIDUtils.createUUID());
    User user = new User();
    user.setId("id");
    user.setSecret("secret");
    message.setBody(user);
    messageBroker.routeMessageToService(message, null);

    Hi Martin. The way that AMF serialization/deserialization works for BlazeDS is the same regardless of which service is being used, so yes that code will work for messaging as well. On the server, the serialization/deserialization of messages happens at the endpoint. For an incoming message for example, the endpoint deserializes the message and then hands it off to the MessageBroker which decides which service/destination to deliver the message to.
    That was a good question. Thanks for asking it. Lots of people are used to doing custom serialization/deserialization with the RPC services (RemoteObject/RemotingService) but I'm not sure everyone realizes they can do this for messaging as well.
    -Alex

  • How to pass the java object into the spring controller

    Hi Friends
    When I hit the url at the first time my call goes to the spring controller and sets the userDetails objects in the modelAndView.addObject("userDetails", userDetails.getUserDetails()) and returns the userDetails.html page. if I click any link in the same page i want to pass same (userDetails) object thru javascript or jquery and calls the another(controller) method and returns the same (userDetails.html) page.
    It means how can i pass the java object thru javascript or jquery and calls the controller. if i get the same object in my controller i can avoid calling the db again. please help me out to resolve this issue. i am tired of fixing this issue.
    Regards
    Sherin Pooja

    If you want to avoid calling the database again then cache the data.
    However before you do that make sure that calling the database, in the context of YOUR system, is going to be an actual problem.
    For example there is absolutely no point in caching a  User object when only one user an hour is actually using the system.

  • How to Pass Java Objects between Web Dynpro and Java SAP iViews

    Basically I have an SAP web dynpro iView that I do stuff with and I want to pass an object to another iView which is just a regular Java iView. From what I've read and tried, I can't just stick something in the session object and hope that the Java iView can pull it down the other end. I had a dream that it was possible (seriously).
    Anyway, are there any possible solutions around? Please advice and share you throughts. I will try to dream about it again tonight and see if its really gonna work this time.
    thanks for your help in advance

    There is no easy way you can pass objects other than those supported by express such as String, map, list etc.
    Though not advised, you can create a class with static variables to handle the storage of such java objects during transition between form and workflow. You will need to somehow identify the objects uniquely .

  • Cache distribution - Java object cache

    Hi.
    I'm trying to use Oracle Java Object Cache (cache.jar), the one included in the 9iAS 9.0.3.
    Everything works fine but the cache distribution between different JVM:s.
    Anyone got this to work?
    Regards
    Jesper
    package test;
    import oracle.ias.cache.*;
    * Singleton Cache class.
    public class Cache {
         /** The singleton instance of the object. */
         private static Cache instance = null;
         /** The root region. */
         private final static String APP_NAME = "Test";
         * Protected constructor - Use <code>getInstance()</code>.
         * @throws Exception if error
         protected Cache() throws Exception {
              CacheAccess.defineRegion(APP_NAME);
         * Gets the singleton instance.
         * @return The instance of the Cache object.
         public static Cache getInstance() throws Exception {
              if (instance==null) {
                   createInstance();
              return instance;
         * Creates the singleton instance in a thread-safe manner.
         synchronized private static void createInstance() throws Exception {
              if (instance==null) {
                   instance = new Cache();
         * Put an object on the cache.
         * @param name The object name
         * @param subRegion The sub region
         * @param object The object to cache
         * @throws Exception if error
         public static void put(String name, String subRegion, Object object) throws Exception {
              CacheAccess appAcc = null;
              CacheAccess subAcc = null;
              try {
                   appAcc = CacheAccess.getAccess(APP_NAME);
                   // Create a group
                   Attributes a = new Attributes();
                   a.setFlags(Attributes.DISTRIBUTE);
                   appAcc.defineSubRegion(subRegion, a);
                   subAcc = appAcc.getSubRegion(subRegion);
                   if (!subAcc.isPresent(name)) {
                        subAcc.put(name, a, object);
                   } else {
                        subAcc.replace(name, object);
              } catch (CacheException ex){
                   // handle exception
                   System.out.println(ex.toString());
              } finally {
                   if (subAcc != null) {
                        subAcc.close();
                   if (appAcc != null) {
                        appAcc.close();
         * Gets a cached object from the specified sub region
         * @param name The object name
         * @param subRegion The sub region
         * @return The cached object
         * @throws Exception if requested object not in cache
         public static Object get(String name, String subRegion) throws Exception {
              CacheAccess appAcc = null;
              CacheAccess subAcc = null;
              Object result = null;
              try {
                   appAcc = CacheAccess.getAccess(APP_NAME);
                   subAcc = appAcc.getSubRegion(subRegion);
                   // define an object and set its attributes
                   result = (Object)subAcc.get(name);
              } catch (CacheException ex){
                   // handle exception
                   throw new Exception("Object '" + name + "' not in cache region '" + subAcc.getRegionName() + "'.");
              } finally {
                   if (subAcc != null) {
                        subAcc.close();
                   if (appAcc != null) {
                        appAcc.close();
              return result;
         * Invalidates all objects in all regions
         public static void invalidateAll() throws Exception {
              CacheAccess appAcc = CacheAccess.getAccess(APP_NAME);
              appAcc.invalidate(); // invalidate all objects
              appAcc.close(); // close the CacheAccess access
         // Main method for testing purposes.
         public static void main(String[] args) throws Exception {
              try {
                   System.out.println(">> Caching object OBJ1 into region TEST1.");
                   Cache.getInstance().put("OBJ1", "TEST1", "Object cached in TEST1.");
                   System.out.println(">> Getting OBJ1 from cache region TEST1.");
                   System.out.println(Cache.getInstance().get("OBJ1", "TEST1"));
              } catch (Exception ex) {
                   System.out.println(ex.getMessage());
    Contents of JAVACACHE.PROPERTIES:
    # discoveryAddress is a list of cache servers and ports
    discoveryAddress = host1.myserver.com:12345,host2.myserver.com:12345
    logFileName = c:\javacache.log
    logSeverity = DEBUG
    distribute = true

    I have same problem
    Exist some reason?
    I'm testing Cache with isDistributed() method and I still got false!
    Thanx

  • Ho to store java objects in oracle database

    HI
    for me the sceanario is,
    i neeed to create , dynamically a table at the time of specified action.
    i need to store the values retreieved from session and store it in a database..
    for example
    User usr=session.getAttribute("usr"); i need to store the user object.
    and hashtable and hashmap values without iterating.
    please suggest at the earliest
    can it be done?
    Regards,
    Ramesh

    my requirement is like that,bcos of two different weblogic servers need to acess the central database.which contains user information.
    The user object from first server will be stored in database.and the second server will retrieve the user information and it will set for its application.
    please suggest me how to store java objects in database.
    regards,
    Ramesh

Maybe you are looking for

  • Problem upgrading from ios 4.3.5 to ios 6.

    Hi all, I'm trying to upgrade my wife's iphone 4 from ios 4.3.5 to ios 6, and I'm getting an error message I can't find a meaning for or a solution to. I'm upgrading via iTunes because "over the air" isn't available to go from 4.3.5 to 6. I've Synced

  • Urgent help with string tokenizing.

    Hello Everyone, I'm 4 months new to Java and JSP. Can some one help me with a small favor please, my program below reads from a file and Tokenize the string, the top layer of the string is OK however I want to write another method to tokenize off of

  • GL account & Financial Statement Version reg

    Hi I would like know,  when I create a new GL accout,  will that GL account will get assigned in the respective group of FSV (Finanical Statement Version) automatically or do I need to assign it manually  ? Thanks in advance for your reply. regards,

  • Numerous applications crashing after Maverick upgrade

    One Crash report below.  I'm still relatively new to Mac and up to recently a confirmed convert.  However over the last few months things have gotten steadily worse in terms of application quitting and now with the Adobe Elemnets app I cannot access

  • Amount in certain currency is multiplied by 100 in bex report.

    Hi, Amount in certain currency is multiplied by 100 in bex report. Data in multiprovider is good. Suppose if amount is 123.123 in multiprovider then in Bex report it is showing 12312.3. This is happening where currency is HUF. I understand that I hav