Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

extracting xml data into process variables: (not happening)

Avatar

Former Community Member

Hi,

  I have a process that takes xml data as input and it should extract the data from it into the process variables I created. For this I used setvalue process, where the input parameter is of type xfaform. For that variable, I gave the form as template url ( i tried both pdf and xdp). It is loading the schema file as well when I checked in the schema settings. I mapped this value (one of the objects in xml) to other process variable in the setvalue parameter. When I execute this process, I dont see the object value of xml getting assigned to the process variable.

The process is not erroring out. I checked the recordings as well. I dont know what I'm missing in the mappings. I'm using 8.2 version. I attached LCA that contains the process and resources. Your help will be highly appreciated.

Thanks,

chaitanya

1 Accepted Solution

Avatar

Correct answer by
Level 10

I gave the pdf template as reference to the xfaform variable. So, whenI navigate for companyname in the xpath expression, it is taking thatpath.

You might be able to drill down to the node you want in the xPath builder, it doesn't mean that the xPath is going to work based on the data you will receive. You need to make sure you send xdp data otherwise the xPath won't work.

The Submit by Email button doesn't submit xdp data. It just send xml. The difference is that xdp data wraps the xml with the xdp/datasets/data tags. That what you see when you drill down using the xPath builder for a xfaForm variable.

I think you have two options:

1- Use a normal submit button, set the submit data to XDP data and the submit url would use the MAILTO protocol.

2- Have a xml input variable and change your XPath to match the structure of the xml your going to receive.

Jasmin

View solution in original post

9 Replies

Avatar

Level 10

I don't have a 8.2 environment off hand, but can you use the // notation to get to your data element?

For example /process_data/myXFA//myField or maybe /process_data/myXFA/object/datasets/data//myField.

Jasmin

Avatar

Former Community Member

Jasmin,

  I tried your method. It didnot work. If you check my process, you may come to know if my configuration parameters are not set right.

Thanks,

Chaitanya

Avatar

Former Community Member

Do anyone got a chance to look into this problem?

Avatar

Level 10

Looks like your invoking you process via email right?

If it's the case, I would change my input variable from xfaForm to xml, since your submitting xml to LiveCycle.

Jasmin

Avatar

Former Community Member

Thanks Jasmin. Now I could see some improvement in the process.

 

  I gave input file as xml and invoked the process through workbench. It pops me with text area to enter xml data. Wondering why it doesn't ask for a file location for xml. I copied my xml data from the xml file I got through mail. It assigns the values to the variables only if I delete the header part of the xml (<?xml version = "1.0" encoding = "UTF-8" ?> ). Otherwise, it's not recognizing the xml fields from the file.

  Why is this happenning this way? I want to give the exact xml file generated from pdf as input file to the LC process.

To give a big picture on what I want to achieve:

This is the end-to-end process I'm developing for the client. End user fills the pdf form, clicks the submit button. Click function should invoke the livecycle webservice (LC process) with the data he entered in the form (ofcourse, we will Reader Extend the form for this). LC process takes the data from web service, extracts the data, put in process variables, calls the database to query for proper record and finally put the xml file as a BLOB in the database.

So, can you suggest the best approach to go on this?

Avatar

Level 10

When I hit the submit button, I get the following xml as an attachment to the email:

<?xml version="1.0" encoding="UTF-8"?>
<xfa:data xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">

<purchaseOrder>

<general>

<poNum/>

<poDate/>

</general>

<order>

<companyName>aaaaa</companyName>

<address/>

<city>bbbbb</city>

...

this xPath wouldn't work for sure since there's no data/xdp/datasets/data node:

/process_data/inputdoc/object/data/xdp/datasets/data/purchaseOrder/order/companyName

Am I missing anything?

Jasmin

Avatar

Former Community Member

I gave the pdf template as reference to the xfaform variable. So, when I navigate for companyname in the xpath expression, it is taking that path. It should be compatible with the xml attachment because it is the xml coming from the same pdf template when we click the submit button.

Can you give me a big picture of the your implementation idea on the client process I mentioned below? It would be a great help.

Thanks,

Chaitanya

Avatar

Correct answer by
Level 10

I gave the pdf template as reference to the xfaform variable. So, whenI navigate for companyname in the xpath expression, it is taking thatpath.

You might be able to drill down to the node you want in the xPath builder, it doesn't mean that the xPath is going to work based on the data you will receive. You need to make sure you send xdp data otherwise the xPath won't work.

The Submit by Email button doesn't submit xdp data. It just send xml. The difference is that xdp data wraps the xml with the xdp/datasets/data tags. That what you see when you drill down using the xPath builder for a xfaForm variable.

I think you have two options:

1- Use a normal submit button, set the submit data to XDP data and the submit url would use the MAILTO protocol.

2- Have a xml input variable and change your XPath to match the structure of the xml your going to receive.

Jasmin