Looping through DOM nodes ....
Hi,
I am having a problem looping through the DOM tree and inserting the nodes into my table correctly.
here is the basic structure of my XML file:
<root>
<row>
<user>
<db>
<data>A</data>
<data>B</data>
</db>
</user>
<user>
<db>
<data>A</data>
<data>B</data>
<data>C</data>
</db>
</user>
</row>
</root>
now, I need to put the text in the data-tag into a table, but since I dont know how many elements there are how in the world would one be able to insert the correct amount? Is there an Xpath-function that can count the nodes for me? I need some assistance or examples on PLSQL code for this please. I have so far just gone through with a for-loop with a delimiter=xmldom.getLength(mynodes) but that only measures the very first users data-tag, and that leaves the rest kinda in a lotto situation if the db-elements below have more or less data-elements than the first one. In addition its inserted a blank in the field in the table(not good).....
thanks for any help or assistance,
Sven
Hi,
I am having a problem looping through the DOM tree and inserting the nodes into my table correctly.
here is the basic structure of my XML file:
<root>
<row>
<user>
<db>
<data>A</data>
<data>B</data>
</db>
</user>
<user>
<db>
<data>A</data>
<data>B</data>
<data>C</data>
</db>
</user>
</row>
</root>
now, I need to put the text in the data-tag into a table, but since I dont know how many elements there are how in the world would one be able to insert the correct amount? Is there an Xpath-function that can count the nodes for me? I need some assistance or examples on PLSQL code for this please. I have so far just gone through with a for-loop with a delimiter=xmldom.getLength(mynodes) but that only measures the very first users data-tag, and that leaves the rest kinda in a lotto situation if the db-elements below have more or less data-elements than the first one. In addition its inserted a blank in the field in the table(not good).....
thanks for any help or assistance,
Sven
Similar Messages
-
Need to loop through Recursive node
Hi Everyone,
I am having troubles looping through a node to get a boolean value called "Check".
Basically I am using the TreeNesteedInTable UI. One of the columns I display is the "Check" mentioned above. Basically the user can go through the tree structure and check his/her options. I should then be able to loop through this structure to get all the records "Checked". My application is not doing this.
At the moment I am looping through the top level node - think this is where my probelm is because this node can only be singleton! This means that I then have to loop through the Recusrsive node of this type to get the values as the recusrive is always non-singleton en must therefor contain the elements I am looking for. But, i do not know how tho get access to this node. Is this the correct way of doing it, or how should it be done otherwise?
Many thanks,
ChristiaanHI,
I got it to work like this:
public void addICAMForIncident( ) {
//@@begin addICAMForIncident()
IWDMessageManager msgMgr = wdComponentAPI.getMessageManager();
try {
int count;
Bapi1240_Rc rootCause;
IPublicEhs_icam.IAbsentOrFailedControlsElement existingAbsentOrFailedControlsElement;
IPublicEhs_icam.IAbsentOrFailedControlsElement recursive;
IPublicEhs_icam.IAbsentOrFailedControlsElement recursiveChildElement;
IPublicEhs_icam.IAbsentOrFailedControlsNode recursiveChildNode;
// if(wdContext.nodeAbsentOrFailedControls() != null){
// set header data:
wdContext.currentHeader_CreateElement().setRecord_No(wdContext.currentHeader_GDElement().getRecord_No());
wdContext.currentHeader_CreateElement().setRecno_Root(wdContext.currentHeader_GDElement().getRecno_Root());
wdContext.currentHeader_CreateElement().setIncident(wdContext.currentGPInputNodeElement().getIPIncidentNum());
//Top Level Node (Singleton)
existingAbsentOrFailedControlsElement = wdContext.currentAbsentOrFailedControlsElement();
//We need to go through the values of the RECURSIVE node as that is where the values are!
//Each time we expand a node in the tree this recursive node is filled with values
for(int i = 0;i<existingAbsentOrFailedControlsElement.nodeRecursiveAbsentOrFailedControl().size();i++)
recursiveChildNode = existingAbsentOrFailedControlsElement.nodeRecursiveAbsentOrFailedControl().nodeRecursiveAbsentOrFailedControl(i);
for(int m = 0;m<recursiveChildNode.size();m++)
recursiveChildElement = recursiveChildNode.getAbsentOrFailedControlsElementAt(m);
if(recursiveChildElement.getCheck())
//New line in the "table":
rootCause = new Bapi1240_Rc();
rootCause.setFunction("009");
rootCause.setHierarchy_Key("EHS_IAL_STD");
rootCause.setNode_Key(recursiveChildElement.getNODE_ID());
rootCause.setRef_Recno(wdContext.currentHeader_GDElement().getRecord_No());
rootCause.setRef_Object("IAL");
rootCause.setRef_Recno_Smeas("0");
rootCause.setPrimarykey("00000000000000000001");
rootCause.setForeignkey("00000000000000000001");
rootCause.setFlgfrgnkey(true);
rootCause.setFlgprimkey(true);
rootCause.setFlag_Selected(true);
//add the line to the "table":
createInput.addRootcause(rootCause);
}//end if
}//end for
}// end for
// execute:
wdContext.currentBapi_Bus1240_Create_InputElement().modelObject().execute();
// invalidate the output structure:
wdContext.nodeOutput_Create().invalidate();
} catch (CMIException ex) {
msgMgr.reportException(ex.getLocalizedMessage(), true);
//@@end -
Loop through tree node children recursively
Is there an easy way of looping through all the child nodes of a MutableTreeNode and the children of those children if they have any?
ThanksWith a recursive function (this is depth first):
public void traverse(Node node) {
// do something with node
for(Node child : node.getChildren()) {
traverse(child);
}You could also look at depthFirst/breathFirst/preorder/postorderEnumeration() methods on DefaultMutableTreeNode if that's what you actually got. -
Questions reg Looping through a Node inside a Currently Selected Node.
i have the following context structure in my WD application.
Parent Customer Node A<Cardinality 1.n & Selection 1.n & Singleton True>
Child Addresses Node B<Cardinality 1.n & Selection 1.n & Singleton True>
Child Attribute B.City
Child Attribute A.Name
Child Attribute A.Age
For the currently selected Parent Customer Element, i want to read the all the addresses this customer has. How to read all the addresses of the customer and loop through it & show it.
Any inputs are appreciated.Hello Saravanan,
Please use the Singleton Concept.
Refer the following links.
http://help.sap.com/saphelp_nwce711core/helpdata/en/47/be673f79c8296fe10000000a42189b/frameset.htm
http://wiki.sdn.sap.com/wiki/display/WDJava/SupplyFunctionin+Webdynpro
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/60086bd5-9301-2b10-6f97-a14366a5602b/
if you have doubt in implementation then let us know.
Regards
Nizamudeen SM -
Oracle Looping through XML nodes
Hi,
I have this XML which i m getting as response from a webservice. i need to loop through nodes and i m not sure how to go about it. i have done example using dbms_xmldom but i m literally stuck. this is the xml here i need to loop through
statuslognotes for one enquiry, there may be multiple statuslognotes and need to insert into database....
i also need to check for multiple updatedenquiry and if thats got statuslognotes....i hope you get me.
<ProcessOperationsResult xmlns="http://www.abc.co.uk/schema/am/connector/webservice" >
<Response SchemaVersion="1.4" xmlns="" >
<OperationResponse>
<GetEnquiryStatusChangesResponse>
<UpdatedEnquiry>
<EnquiryNumber>104</EnquiryNumber>
<ExternalSystemNumber>1</ExternalSystemNumber>
<ExternalSystemReference>195</ExternalSystemReference>
<EnquiryStatusLog>
<EnquiryStatusCode>1224</EnquiryStatusCode>
<EnquiryStatusName>Cancelled By User</EnquiryStatusName>
<AssignedOfficerCode>BBB</AssignedOfficerCode>
<AssignedOfficerName>Testing</AssignedOfficerName>
<LoggedTime>2007-12-11T14:44:53</LoggedTime>
<LogEffectiveTime>2007-12-11T14:44:52</LogEffectiveTime>
<StatusFollowUpTime>2007-12-11T14:44:52</StatusFollowUpTime>
<LoggedByUserName>System Supervisor</LoggedByUserName>
<LoggedByUserId>AAA</LoggedByUserId>
</EnquiryStatusLog>
<EnquiryStatusLog>
<EnquiryStatusCode>1225</EnquiryStatusCode>
<EnquiryStatusName>Cancelled By User</EnquiryStatusName>
<AssignedOfficerCode>DEF</AssignedOfficerCode>
<AssignedOfficerName>Srinivas</AssignedOfficerName>
<LoggedTime>2007-12-11T14:44:53</LoggedTime>
<LogEffectiveTime>2007-12-11T14:44:52</LogEffectiveTime>
<StatusFollowUpTime>2007-12-11T14:44:52</StatusFollowUpTime>
<LoggedByUserName>System Supervisor</LoggedByUserName>
<LoggedByUserId>AAA</LoggedByUserId>
</EnquiryStatusLog>
</UpdatedEnquiry>
<UpdatedEnquiry>
<EnquiryNumber>105</EnquiryNumber>
<ExternalSystemNumber>1</ExternalSystemNumber>
<ExternalSystemReference>196</ExternalSystemReference>
<EnquiryStatusLog>
<EnquiryStatusCode>1226</EnquiryStatusCode>
<EnquiryStatusName>Cancelled By User</EnquiryStatusName>
<AssignedOfficerCode>Test</AssignedOfficerCode>
<AssignedOfficerName>SS</AssignedOfficerName>
<LoggedTime>2007-12-11T14:44:53</LoggedTime>
<LogEffectiveTime>2007-12-11T14:44:52</LogEffectiveTime>
<StatusFollowUpTime>2007-12-11T14:44:52</StatusFollowUpTime>
<LoggedByUserName>System Supervisor</LoggedByUserName>
<LoggedByUserId>BS</LoggedByUserId>
</EnquiryStatusLog>
</UpdatedEnquiry>
</GetEnquiryStatusChangesResponse>
</OperationResponse>
</Response>
</ProcessOperationsResult>
Any help appreciated....as i m new to this XPATH stuff in oracle.
Cheers
Shi,
i have written this stored procedure, but i m sure this is not perfect. i want someone to help me out with this.
CREATE OR REPLACE procedure ParseXML as
l_xml XMLTYPE;
l_value VARCHAR2(10);
SCHEMALIST_DOM DBMS_XMLDOM.DOMDOCUMENT;
SCHEMA_NODELIST DBMS_XMLDOM.DOMNODELIST;
SCHEMA_NODELIST_SUB DBMS_XMLDOM.DOMNODELIST;
SCHEMA_NODE DBMS_XMLDOM.DOMNODE;
SCHEMA_sub_XPATH VARCHAR2(256);
SCHEMA_XPATH VARCHAR2(256);
CHILD_XPATH VARCHAR2(256);
SOURCE_PATH VARCHAR2(256);
XPATH_INDEX number(2);
XPATH_sub_INDEX number(2);
NODE_VALUE VARCHAR2(256);
Statcode VARCHAR2(256);
Statname VARCHAR2(256);
Officer VARCHAR2(256);
BEGIN
l_xml := XMLTYPE.createXML('<ProcessOperationsResult xmlns="http://www.abc.co.uk/schema/am/connector/webservice">
<Response SchemaVersion="1.4" xmlns="">
<OperationResponse>
<GetEnquiryStatusChangesResponse>
<UpdatedEnquiry>
<EnquiryNumber>104</EnquiryNumber>
<ExternalSystemNumber>1</ExternalSystemNumber>
<ExternalSystemReference>195</ExternalSystemReference>
<EnquiryStatusLog>
<EnquiryStatusCode>1224</EnquiryStatusCode>
<EnquiryStatusName>Cancelled By User</EnquiryStatusName>
<AssignedOfficerCode>TEST</AssignedOfficerCode>
<AssignedOfficerName>test</AssignedOfficerName>
<LoggedTime>2007-12-11T14:44:53</LoggedTime>
<LogEffectiveTime>2007-12-11T14:44:52</LogEffectiveTime>
<StatusFollowUpTime>2007-12-11T14:44:52</StatusFollowUpTime>
<LoggedByUserName>System Supervisor</LoggedByUserName>
<LoggedByUserId>BS</LoggedByUserId>
</EnquiryStatusLog>
<EnquiryStatusLog>
<EnquiryStatusCode>1225</EnquiryStatusCode>
<EnquiryStatusName>Cancelled By User</EnquiryStatusName>
<AssignedOfficerCode>DEF</AssignedOfficerCode>
<AssignedOfficerName>SSi</AssignedOfficerName>
<LoggedTime>2007-12-11T14:44:53</LoggedTime>
<LogEffectiveTime>2007-12-11T14:44:52</LogEffectiveTime>
<StatusFollowUpTime>2007-12-11T14:44:52</StatusFollowUpTime>
<LoggedByUserName>System Supervisor</LoggedByUserName>
<LoggedByUserId>SBS</LoggedByUserId>
</EnquiryStatusLog>
</UpdatedEnquiry>
<UpdatedEnquiry>
<EnquiryNumber>105</EnquiryNumber>
<ExternalSystemNumber>1</ExternalSystemNumber>
<ExternalSystemReference>196</ExternalSystemReference>
<EnquiryStatusLog>
<EnquiryStatusCode>1226</EnquiryStatusCode>
<EnquiryStatusName>Cancelled By User</EnquiryStatusName>
<AssignedOfficerCode>TEST</AssignedOfficerCode>
<AssignedOfficerName>test</AssignedOfficerName>
<LoggedTime>2007-12-11T14:44:53</LoggedTime>
<LogEffectiveTime>2007-12-11T14:44:52</LogEffectiveTime>
<StatusFollowUpTime>2007-12-11T14:44:52</StatusFollowUpTime>
<LoggedByUserName>System Supervisor</LoggedByUserName>
<LoggedByUserId>SBS</LoggedByUserId>
</EnquiryStatusLog>
</UpdatedEnquiry>
</GetEnquiryStatusChangesResponse>
</OperationResponse>
</Response>
</ProcessOperationsResult>');
SCHEMALIST_DOM := DBMS_XMLDOM.newDOMDocument(L_XML);
SCHEMA_NODELIST := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(SCHEMALIST_DOM,'GetEnquiryStatusChangesResponse');
SCHEMA_NODELIST_SUB := DBMS_XMLDOM.GETELEMENTSBYTAGNAME(SCHEMALIST_DOM,'/UpdatedEnquiry/EnquiryStatusLog');
FOR i in 0 .. (DBMS_XMLDOM.GETLENGTH(SCHEMA_NODELIST) - 1) LOOP
XPATH_INDEX := i+1;
FOR j in 0 .. (DBMS_XMLDOM.GETLENGTH(SCHEMA_NODELIST_SUB) - 1) LOOP
XPATH_SUB_INDEX := J+1;
SCHEMA_SUB_XPATH := '/GetEnquiryStatusChangesResponse/UpdatedEnquiry[' || XPATH_INDEX || ']/EnquiryStatusLog[' || XPATH_sub_INDEX || ']/';
--dbms_output.put_line(SCHEMA_SUB_XPATH);
CHILD_XPATH := SCHEMA_SUB_XPATH || 'EnquiryStatusCode/text()';
dbms_output.put_line('child path text ' || child_XPATH);
DBMS_XSLPROCESSOR.VALUEOF(DBMS_XMLDOM.MAKENODE(SCHEMALIST_DOM),CHILD_XPATH, Statcode);
CHILD_XPATH := SCHEMA_SUB_XPATH || 'EnquiryStatusName/text()';
DBMS_XSLPROCESSOR.VALUEOF(DBMS_XMLDOM.MAKENODE(SCHEMALIST_DOM),CHILD_XPATH, Statname);
CHILD_XPATH := SCHEMA_SUB_XPATH || 'AssignedOfficerCode/text()';
DBMS_XSLPROCESSOR.VALUEOF(DBMS_XMLDOM.MAKENODE(SCHEMALIST_DOM),CHILD_XPATH, Officer);
dbms_output.put_line('EnquiryStatusCode => "' || Statcode || '",');
dbms_output.put_line('EnquiryStatusname => "' || Statname || '",');
dbms_output.put_line('AssignedOfficerCode => "' || Officer || '",');
end loop;
--GetEnquiryStatusChangesResponse/UpdatedEnquiry[2]
schema_xpath := '/GetEnquiryStatusChangesResponse/UpdatedEnquiry[' || XPATH_INDEX || ']/EnquiryStatusLog['|| XPATH_INDEX || ']/' ;
CHILD_XPATH := SCHEMA_XPATH || 'EnquiryStatusCode/text()';
dbms_output.put_line('another node text ' || child_XPATH);
DBMS_XSLPROCESSOR.VALUEOF(DBMS_XMLDOM.MAKENODE(SCHEMALIST_DOM),CHILD_XPATH, Statcode);
end loop;
end;
Basically i may just get one UpdatedEnquiry record with multiple EnquiryStatusLog (changes),
I need to get the EnquiryStatusLog nodes and create a insert stmt with the Enquiry Number.
and if theres multiple <UpdatedEnquiry> nodes, i need the same thing done.
Hope i make sense here.....
Can someone help
Cheers
S -
Tree control loop through nodes
Hi All,
I have a tree control. I want to loop through the nodes and
add all the nodes to an array collection.
How do I do it?
Thanks in advance;
JoshIt depends on the data type of the dataProvider.
If XML, then myXML.descendants(); will return an xmlList of
all nodes. You could loop over the XMLList and build an
ArrayCollection
If the dataProvider is a collection, then you will need a
recursive function to process the dataProvider.
Tracy -
How to loop through XML data in a table of XMLType?
Hi,
I am failry new to xml document processing in Oracle using PL/SQL.
My DB version: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
I have successfully loaded an xml document into a table using the following two statements:
1) CREATE TABLE mytable2 OF XMLType;
2) INSERT INTO mytable2 VALUES (XMLType(bfilename('IMAGE_FILE_LOC', 'IFTDISB20100330172157C002.xml'), nls_charset_id('AL32UTF8')));
Now I need to traverse through the various nodes within the xml document and extract values of elements of each node. The question I have is:
How do I loop through a node? A VALID record is enclosed within the <checkItem> </checkItem> tags.
Here is a snippet of the data in that xml document:
++++++++++++++++++++++++++++++++++++++++++++++++
<?xml version="1.0" encoding="UTF-8"?>
<bdiData>
<documentControlInfo>
<documentInfo>
<docDescription>Check images and data for Test Company, account number 1234567890</docDescription>
<docID>
<ID>20100330172157</ID>
</docID>
<docModifier>Test Company</docModifier>
<docCreateDate>2010-03-30</docCreateDate>
<docCreateTime>17:21:57-0700</docCreateTime>
<standardVersion>1.0</standardVersion>
<testIndicator>0</testIndicator>
<resendIndicator>0</resendIndicator>
</documentInfo>
<sourceInfo>
<sourceName>The Bank IFT</sourceName>
<sourceID>
<idOther>TheBankIFT</idOther>
</sourceID>
</sourceInfo>
<destinationInfo>
<destinationName>Test Company</destinationName>
<destinationID>
<idOther>FEI3592</idOther>
</destinationID>
</destinationInfo>
</documentControlInfo>
<checkItemCollection>
<collectionInfo>
<description>Items</description>
<ID>1269994919135</ID>
<Classification>
<classification>Items</classification>
</Classification>
</collectionInfo>
<checkItemBatch>
<checkItemBatchInfo>
<description>Paid Checks</description>
<ID>1269994919135</ID>
<Classification>
<classification>Paid Checks</classification>
</Classification>
</checkItemBatchInfo>
<checkItem>
<checkItemType>check</checkItemType>
<checkAmount>86468</checkAmount>
<postingInfo>
<date>2010-03-29</date>
<RT>10700543</RT>
<accountNumber>1234567890</accountNumber>
<seqNum>009906631032</seqNum>
<trancode>001051</trancode>
<amount>86468</amount>
<serialNumber>300040647</serialNumber>
</postingInfo>
<totalImageViewsDelivered>2</totalImageViewsDelivered>
<imageView>
<imageIndicator>Actual Item Image Present</imageIndicator>
<imageViewInfo>
<Format>
<Baseline>TIF</Baseline>
</Format>
<Compression>
<Baseline>CCITT</Baseline>
</Compression>
<ViewSide>Front</ViewSide>
<imageViewLocator>
<imageRefKey>201003260000738400851844567205_Front.TIF</imageRefKey>
<imageFileLocator>IFTDISB20100330172157M002.zip</imageFileLocator>
</imageViewLocator>
</imageViewInfo>
<imageViewInfo>
<Format>
<Baseline>TIF</Baseline>
</Format>
<Compression>
<Baseline>CCITT</Baseline>
</Compression>
<ViewSide>Rear</ViewSide>
<imageViewLocator>
<imageRefKey>201003260000738400851844567205_Rear.TIF</imageRefKey>
<imageFileLocator>IFTDISB20100330172157M002.zip</imageFileLocator>
</imageViewLocator>
</imageViewInfo>
</imageView>
</checkItem>
<checkItem>
<checkItemType>check</checkItemType>
<checkAmount>045</checkAmount>
<postingInfo>
<date>2010-03-29</date>
<RT>10700543</RT>
<accountNumber>1234567890</accountNumber>
<seqNum>008518967429</seqNum>
<trancode>001051</trancode>
<amount>045</amount>
<serialNumber>200244935</serialNumber>
</postingInfo>
<totalImageViewsDelivered>2</totalImageViewsDelivered>
<imageView>
<imageIndicator>Actual Item Image Present</imageIndicator>
<imageViewInfo>
<Format>
<Baseline>TIF</Baseline>
</Format>
<Compression>
<Baseline>CCITT</Baseline>
</Compression>
<ViewSide>Front</ViewSide>
<imageViewLocator>
<imageRefKey>201003290000713900851896742901_Front.TIF</imageRefKey>
<imageFileLocator>IFTDISB20100330172157M002.zip</imageFileLocator>
</imageViewLocator>
</imageViewInfo>
<imageViewInfo>
<Format>
<Baseline>TIF</Baseline>
</Format>
<Compression>
<Baseline>CCITT</Baseline>
</Compression>
<ViewSide>Rear</ViewSide>
<imageViewLocator>
<imageRefKey>201003290000713900851896742901_Rear.TIF</imageRefKey>
<imageFileLocator>IFTDISB20100330172157M002.zip</imageFileLocator>
</imageViewLocator>
</imageViewInfo>
</imageView>
</checkItem>
<checkItemBatchSummary>
<totalItemCount>1028</totalItemCount>
<totalBatchAmount>61370501</totalBatchAmount>
<totalBatchImageViewsDelivered>2056</totalBatchImageViewsDelivered>
</checkItemBatchSummary>
</checkItemBatch>
<collectionSummary>
<totalBatchCount>1</totalBatchCount>
<totalItemCount>1028</totalItemCount>
<totalCollectionAmount>61370501</totalCollectionAmount>
<totalCollectionImageViewsDelivered>2056</totalCollectionImageViewsDelivered>
</collectionSummary>
</checkItemCollection>
<documentSummaryInfo>
<totalCollectionCount>1</totalCollectionCount>
<totalBatchCount>1</totalBatchCount>
<totalItemCount>1028</totalItemCount>
<totalDocumentAmount>61370501</totalDocumentAmount>
<totalDocumentImageViewsDelivered>2056</totalDocumentImageViewsDelivered>
</documentSummaryInfo>
</bdiData>
++++++++++++++++++++++++++++++++++++++++++++++++
Any ideas and or suggestions will be greatly appreciated.
Cheers!
Edited by: user12021655 on Aug 3, 2010 1:25 PMI really need to update my blog to get the example you are looking for posted. I did a quick search on the forums for XMLTable and found a good example at {message:id=4325701}. You will want to use OBJECT_VALUE in the PASSING clause where you need to reference the column in your table.
Note: See the FAQ in the upper right for how to use the tag to wrap objects to retain formatting. Also your XML is missing closing nodes. -
Script code sample for looping through the records from xml data file in formCalc script
Hi
I have a xml data file which contains a sequence of repeating applicant data like given below
US
II
CEO
Mr
111111111
0000000111
GuarantorA
111
IN
11111
WILLIAMS1
R3
KENNETH1
City1GU
PA
1934-03-14
[email protected]
GU
R
113 Lazlo LaneCA
Suite 3500CA
OaklandCA
TX
11345
AL
I want to assign a textfield with a value based on the value of coap_flag.
So i need to loop through all the record and check the value of coap_flag and then assign the textfield a value based on that.
I am new to Adobe livecycle...Please help me how it can be done.
I have developed something like this
foreach Item in ($record.applicant[*].coap_flag) do
test.value=Item
if(test.value=="MA")then
concat($record.applicant.first_name,$record.applicant.middle_name)endif
endforUsing the data you posted in the forum, I copied it a couple of times to give multiple records and used this code to extract the different values that you wanted. I had to wrap it in a <root> node that I called root (to make it valid XML). In my case I wrote the extracted values to a field, but in your case you can do whatever you want with them. Note that this was done in javascript:<br /><br />var currentElement;<br />var obj;<br /><br />//Get the nodes below the root node in the dataDom<br />obj = xfa.datasets.data.root.nodes;<br /><br />//Set an initial value for the textField<br />TextField1.rawValue = "The values of the coap_flag are: ";<br /><br />//Loop through the nodes in the obj set <br />for (i=0; i< obj.length ; i++){<br /> //set the currentElement to the 1st child node<br /> currentElement = obj.item(i);<br /> //Check to see if it is an applicant node<br /> if (currentElement.name == "applicant"){<br /> //It is an applican, now find the coap_flag node value and write it to the text field<br /> TextField1.rawValue += "\n" + xfa.resolveNode("xfa.datasets.data.root.applicant[" + i + "]").coap_flag.value;<br /> }<br />}
-
Loop through the records from xml data file in formCalc script
Hi
I have a xml data file which contains a sequence of repeating applicant data like given below
US
II
CEO
Mr
111111111
0000000111
GuarantorA
111
IN
11111
WILLIAMS1
R3
KENNETH1
City1GU
PA
1934-03-14
[email protected]
GU
R
113 Lazlo LaneCA
Suite 3500CA
OaklandCA
TX
11345
AL
I want to assign a textfield with a value based on the value of coap_flag.
So i need to loop through all the record and check the value of coap_flag and then assign the textfield a value based on that.
I am new to Adobe livecycle...Please help me how it can be done.
I have developed something like this
foreach Item in ($record.applicant[*].coap_flag) do
test.value=Item
if(test.value=="MA")then
concat($record.applicant.first_name,$record.applicant.middle_name)endif
endforUsing the data you posted in the forum, I copied it a couple of times to give multiple records and used this code to extract the different values that you wanted. I had to wrap it in a <root> node that I called root (to make it valid XML). In my case I wrote the extracted values to a field, but in your case you can do whatever you want with them. Note that this was done in javascript:<br /><br />var currentElement;<br />var obj;<br /><br />//Get the nodes below the root node in the dataDom<br />obj = xfa.datasets.data.root.nodes;<br /><br />//Set an initial value for the textField<br />TextField1.rawValue = "The values of the coap_flag are: ";<br /><br />//Loop through the nodes in the obj set <br />for (i=0; i< obj.length ; i++){<br /> //set the currentElement to the 1st child node<br /> currentElement = obj.item(i);<br /> //Check to see if it is an applicant node<br /> if (currentElement.name == "applicant"){<br /> //It is an applican, now find the coap_flag node value and write it to the text field<br /> TextField1.rawValue += "\n" + xfa.resolveNode("xfa.datasets.data.root.applicant[" + i + "]").coap_flag.value;<br /> }<br />}
-
How to loop through a Data Node
Hello,
I have an Interactive Adobe form in WebDynpro Java project.
My data View tab includes the following structure:
Bapi_test
ValueHelpData
CodeNumber
CodeDescription
Can someone please tell how I can loop through the ValueHelpData node, and get values for CodeNumber and CodeDescription
The ValueHelpData node has the cardinality of 0..n. and has approximately 100 elements.
Thanks. Your help is much appreciated.
Rob.Hi Robby,
You could try the following :
int n = wdContext.nodeValueHelpData().size();
for(int i = 0; i < n; i++)
wdContext.nodeValueHelpData().moveTo(i);
IPrivateMyDataView.IValueHelpDataElement ele = wdContext.currentValueHelpDataElement();
String codenum = ele.getCodeNumber();
String codedesc = ele.getCodeDescription();
// Any other processing logic..//
Hope this helps. -
Cannot loop through values in Node
Hi Everyone,
I am using a TreeNestedInTable UI. I have 2 columns: a Master Column with a TextView Cell Editor, and a field called "Check" whereby one of the values in the Master Column can be selected. The "checked" attribute of the Check column is mapped to a isChecked attribute in my Node that contains all the data being displayed in the TreeNestedInTable (IncidentAgent Node).
I would like to loop through all the Check boxes ticked in this TreeNestedInTable and get the corresponding Value to write to a Test Node (to make sure that I am in fact reading all cheked rows).
I do not seem to, however, get all the values checked. Please see my code below and comment. I am testing and so I put a button on the screen that should loop through all the values and see which ones are checked. It should then write these checked valus to a node that is also linked to a table control on the screen. The Idea is that each time you check a few values they should be displayed in this table control when the button is pressed. This is not happening - the table stays blank.
public void onActionSeeIACollection(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActionSeeIACollection(ServerEvent)
IWDMessageManager msgMgr = wdComponentAPI.getMessageManager();
//New Element added each time:
ITEST_IA_NODEElement newElement;
//Incident Agent element:
IIncidentAgentElement agentElement;
//Loop through ALL the IncidentAgent Elements and see which ones hace got the "Check" value
//flagged:
for(int i=0;i<wdContext.nodeIncidentAgent().size();i++)
//Get the currently processed element:
agentElement = wdContext.nodeIncidentAgent().getIncidentAgentElementAt(i);
//If the Check value is flagged, add it to the TEST_IA_NODE node:
if(agentElement.getCheck())
newElement = wdContext.createAndAddTEST_IA_NODEElement();
newElement.setVALUE(agentElement.getVALUE());
msgMgr.reportSuccess(agentElement.getVALUE());
}//end if
}//end for
//@@endSure. Thank you for your help.
"Data Containing" Node:
h1 IncidentAgent(Top Level Node)
h2 RecursiveNode(Pointing to IncidentAgent as recursiveNode)
h4 Check (boolean attribute)
h4 ChildrenLoaded (boolean attribute for TreeNestedInTable)
h4 Expanded (boolean attribute for TreeNestedInTable)
h4 IsLeaf (boolean attribute for TreeNestedInTable)
h4 NODE_ID (attribute)
h4 PARENT_ID (attribute)
h4 VALUE (attribute)
Collection Cardinality: 0...N
Selection Cardinality: 0...N
Singleton: TRUE
Node that should contain VALUE attribute from node above if Check attribute above is checked
h1 TEST_IA_NODE
h4 VALUE
Collection Cardinality: 0...N
Selection Cardinality: 0...N
Singleton: TRUE -
Looping through all the Nodes at any Particular Level Specified
Dear Forum Members,
I have an XML File in the database in a Column of type XMLTYPE.
The Format is given below
<XML-SSDFILELIST>
<Training>
<BRKCD_STMNSWTINVIN_C Key="6707">
<FINISHED><![CDATA[This is a Finished data ]]></FINISHED>
<CONTACT-NUMBER><![CDATA[This is a CONTACT-NUMBER data ]]></CONTACT-NUMBER>
<DEFAULT></DEFAULT>
<MIN></MIN>
<MAX></MAX>
<UNIT></UNIT>
<FORMULA></FORMULA>
<FORMULA-DESC></FORMULA-DESC>
<ADVANCED-FORMULA></ADVANCED-FORMULA>
<INTERNAL-ADAPT-DESC></INTERNAL-ADAPT-DESC>
<DATA-DESC-REPORT></DATA-DESC-REPORT>
<REV-DESC></REV-DESC>
</BRKCD_STMNSWTINVIN_C>
<BRKCD_STREDSWTINVIN_C Key="6708">
<FINISHED><![CDATA[This is a Finished data ]]></FINISHED>
<CONTACT-NUMBER><![CDATA[This is a CONTACT-NUMBER data ]]></CONTACT-NUMBER>
<DEFAULT></DEFAULT>
<MIN></MIN>
<MAX></MAX>
<UNIT></UNIT>
<FORMULA></FORMULA>
<FORMULA-DESC></FORMULA-DESC>
<ADVANCED-FORMULA></ADVANCED-FORMULA>
<INTERNAL-ADAPT-DESC></INTERNAL-ADAPT-DESC>
<DATA-DESC-REPORT></DATA-DESC-REPORT>
<REV-DESC></REV-DESC>
</BRKCD_STREDSWTINVIN_C>
<VSACD_TIPER_C Key="7285">
<FINISHED><![CDATA[This is a Finished data ]]></FINISHED>
<CONTACT-NUMBER><![CDATA[This is a CONTACT-NUMBER data ]]></CONTACT-NUMBER>
<DEFAULT></DEFAULT>
<MIN></MIN>
<MAX></MAX>
<UNIT></UNIT>
<FORMULA></FORMULA>
<FORMULA-DESC></FORMULA-DESC>
<ADVANCED-FORMULA></ADVANCED-FORMULA>
<INTERNAL-ADAPT-DESC></INTERNAL-ADAPT-DESC>
<DATA-DESC-REPORT></DATA-DESC-REPORT>
<REV-DESC></REV-DESC>
</VSACD_TIPER_C>
<VSSCD_NTHRESPLA_C Key="6266">
<FINISHED><![CDATA[This is a Finished data ]]></FINISHED>
<CONTACT-NUMBER><![CDATA[This is a CONTACT-NUMBER data ]]></CONTACT-NUMBER>
<DEFAULT></DEFAULT>
<MIN></MIN>
<MAX></MAX>
<UNIT></UNIT>
<FORMULA></FORMULA>
<FORMULA-DESC></FORMULA-DESC>
<ADVANCED-FORMULA></ADVANCED-FORMULA>
<INTERNAL-ADAPT-DESC></INTERNAL-ADAPT-DESC>
<DATA-DESC-REPORT></DATA-DESC-REPORT>
<REV-DESC></REV-DESC>
</VSSCD_NTHRESPLA_C>
<VSSCD_QTHRESPLA_C Key="6267">
<FINISHED><![CDATA[This is a Finished data ]]></FINISHED>
<CONTACT-NUMBER><![CDATA[This is a CONTACT-NUMBER data ]]></CONTACT-NUMBER>
<DEFAULT></DEFAULT>
<MIN></MIN>
<MAX></MAX>
<UNIT></UNIT>
<FORMULA></FORMULA>
<FORMULA-DESC></FORMULA-DESC>
<ADVANCED-FORMULA></ADVANCED-FORMULA>
<INTERNAL-ADAPT-DESC></INTERNAL-ADAPT-DESC>
<DATA-DESC-REPORT></DATA-DESC-REPORT>
<REV-DESC></REV-DESC>
</VSSCD_QTHRESPLA_C>
<VSSCD_VDFL_C Key="6269">
<FINISHED><![CDATA[This is a Finished data ]]></FINISHED>
<CONTACT-NUMBER><![CDATA[This is a CONTACT-NUMBER data ]]></CONTACT-NUMBER>
<DEFAULT></DEFAULT>
<MIN></MIN>
<MAX></MAX>
<UNIT></UNIT>
<FORMULA></FORMULA>
<FORMULA-DESC></FORMULA-DESC>
<ADVANCED-FORMULA></ADVANCED-FORMULA>
<INTERNAL-ADAPT-DESC></INTERNAL-ADAPT-DESC>
<DATA-DESC-REPORT></DATA-DESC-REPORT>
<REV-DESC></REV-DESC>
</VSSCD_VDFL_C>
<VSSCD_VMAX_C Key="6270">
<FINISHED><![CDATA[This is a Finished data ]]></FINISHED>
<CONTACT-NUMBER><![CDATA[This is a CONTACT-NUMBER data ]]></CONTACT-NUMBER>
<DEFAULT></DEFAULT>
<MIN></MIN>
<MAX></MAX>
<UNIT></UNIT>
<FORMULA></FORMULA>
<FORMULA-DESC></FORMULA-DESC>
<ADVANCED-FORMULA></ADVANCED-FORMULA>
<INTERNAL-ADAPT-DESC></INTERNAL-ADAPT-DESC>
<DATA-DESC-REPORT></DATA-DESC-REPORT>
<REV-DESC></REV-DESC>
</VSSCD_VMAX_C>
<VSSCD_VMIN_C Key="6271">
<FINISHED><![CDATA[This is a Finished data ]]></FINISHED>
<CONTACT-NUMBER><![CDATA[This is a CONTACT-NUMBER data ]]></CONTACT-NUMBER>
<DEFAULT></DEFAULT>
<MIN></MIN>
<MAX></MAX>
<UNIT></UNIT>
<FORMULA></FORMULA>
<FORMULA-DESC></FORMULA-DESC>
<ADVANCED-FORMULA></ADVANCED-FORMULA>
<INTERNAL-ADAPT-DESC></INTERNAL-ADAPT-DESC>
<DATA-DESC-REPORT></DATA-DESC-REPORT>
<REV-DESC></REV-DESC>
</VSSCD_VMIN_C>
<VSSCD_VTHRESPLA_C Key="6272">
<FINISHED><![CDATA[This is a Finished data ]]></FINISHED>
<CONTACT-NUMBER><![CDATA[This is a CONTACT-NUMBER data ]]></CONTACT-NUMBER>
<DEFAULT></DEFAULT>
<MIN></MIN>
<MAX></MAX>
<UNIT></UNIT>
<FORMULA></FORMULA>
<FORMULA-DESC></FORMULA-DESC>
<ADVANCED-FORMULA></ADVANCED-FORMULA>
<INTERNAL-ADAPT-DESC></INTERNAL-ADAPT-DESC>
<DATA-DESC-REPORT></DATA-DESC-REPORT>
<REV-DESC></REV-DESC>
</VSSCD_VTHRESPLA_C>
</Training>
</XML-SSDFILELIST>
Is there any way I can Loop through all the Child records at 3rd Level(Bolded Level in the File).
Regards
Madhu.check this blog,
http://www.oracleappshub.com/11i/oracleapps-responsibility-vs-sap-functions/
Re: How to change OM responsibility as read-only in oracle applications 11i
read only responsibility-user -
Cost of creating org.w3c.dom.Node
I am trying to create an xml of cached data at run time. I need to know if this would increase the response time considerably ..?
Is there any documents which talk about the cost of creating nodes(e.g.within loops) ..?
public Node createnode(Document d, String node_name, int node_value) {
org.w3c.dom.Node temp_element_node, temp_text_node;
temp_element_node = d.createElement(node_name);
temp_text_node = d.createTextNode(node_name);
temp_text_node.setNodeValue(node_value + "");
temp_element_node.appendChild(temp_text_node);
return temp_element_node;
Has anybody implimented a pool of nodes(like pool of database connections). Any information is appreciated!It would certainly depend somewhat on which parser you were using, but i can't imagine it would be any more costly than any other type of object.
-
Error converting DOM nodes into SOAP nodes
Hi,
i am doing an http call using http binding activity in oracle soa suite 11g.The http call requires some header information.When I pass the header information through headers in invoke activity and invoke the http call,I get an error " Error converting DOM nodes into SOAP nodes".What might be the reason and how to solve it.
NareshHello,
It appears your code is trying to repeat messagePart itself. Split Joins strictly adheres to a WSDL definition for incoming and outgoing messages.
Instead of repeating <RootElement> which is defined as single occurance in your message definition within WSDL, you should find a way to tweak the WSDL to have "repetitive node which will become single message after split" within 1 Root element.
This will call for having need of implementing transformation within split join based on need of target input message. Below is the example:
WSDL contains:
<wsdl:message name="inputMessageName">
<wsdl:part name="partInput" element="rootElement"/>
</wsdl:message>
What your current xml structure is(please note how message itself is repeating below while it has been defined as single in wsdl, unfortunately there is nothing maxOccurs for message in WSDL definition , although you can define multiple parts but that is not case here):
<soap:Body>
<rootElement>
</rootElement>
<rootElement>
</rootElement>
<rootElement>
</rootElement>
</soap:Body>
What Split-Join expects(If you have existing wsdl then you need to tweak it to conform to below kind of structure then use transformation within split join to convert it into correct xml structure for outgoing):
<soap:Body>
<rootElement>
<repetitiveElementSpecificToIndividualSplitRequest/>
<repetitiveElementSpecificToIndividualSplitRequest/>
<repetitiveElementSpecificToIndividualSplitRequest/>
</rootElement>
</soap:Body>
I hope this helps.
Regards,
Ankit -
ORA-31185 DOM NODES DO NOT BELONG TO THE SAME DOCUMENT
Hi all,
I developed an Oracle function that returns a XMLTYPE. In this function, I first created a node <ROOT> and I would like to append children nodes to this root node.
To create children nodes I loop on a cursor and each iteration of this loop "build" a XMLTYPE node. I would like append this XMLTYPE node to the root node but for now I get the ORA-31185 error !
Here is the code of my function (simplified version (without use of cursor)):
CREATE OR REPLACE
FUNCTION GET_MEDOC2 RETURN XMLTYPE IS
parent_document DBMS_XMLDOM.DOMDOCUMENT;
parent_rootnode DBMS_XMLDOM.DOMNODE;
child_document DBMS_XMLDOM.DOMDOCUMENT;
child_rootnode DBMS_XMLDOM.DOMNODE;
rootXML XMLTYPE;
subXML XMLTYPE;
countLOOP NUMBER;
BEGIN
SELECT XMLELEMENT("ROOT") INTO rootXML FROM DUAL;
parent_document := DBMS_XMLDOM.newDOMDocument(rootXML);
parent_rootnode := DBMS_XMLDOM.makeNode(DBMS_XMLDOM.getDocumentElement(parent_document));
FOR countLOOP IN 1..10 LOOP
SELECT XMLELEMENT("CHILD", countLOOP) INTO subXML FROM DUAL;
child_document := DBMS_XMLDOM.newDOMDocument(subXML);
child_rootnode := DBMS_XMLDOM.makeNode(DBMS_XMLDOM.getDocumentElement(child_document));
child_rootnode := DBMS_XMLDOM.appendchild(parent_rootnode, child_rootnode);
END LOOP;
RETURN rootXML;
END GET_MEDOC2;When I execute the following :
SELECT GET_MEDOC2() FROM DUAL;I get the beautiful ORA-31185 DOM NODES DO NOT BELONG TO THE SAME DOCUMENT
What I expect is an XML like this :
<ROOT>
<CHILD>1</CHILD>
<CHILD>2</CHILD>
<CHILD>3</CHILD>
<CHILD>4</CHILD>
<CHILD>5</CHILD>
<CHILD>6</CHILD>
<CHILD>7</CHILD>
<CHILD>8</CHILD>
<CHILD>9</CHILD>
<CHILD>10</CHILD>
</ROOT>Can someone help me please ? (I'm on Oracle 10.1.0.5.0)
ThanksHi,
I get the beautiful ORA-31185 DOM NODES DO NOT BELONG TO THE SAME DOCUMENTYou need function importNode (or adoptNode) to copy nodes across different documents.
But, do not use DOM manipulation in this case.
A single query using SQL/XML functions is certainly simpler and more performant :
SELECT XMLElement("ROOT",
XMLAgg(
XMLelement("CHILD",
XMLForest(
empno
, ename
) order by empno
) as result
FROM (
-- your query goes here, e.g. :
SELECT empno, ename
FROM scott.emp
<ROOT>
<CHILD>
<EMPNO>7369</EMPNO>
<ENAME>SMITH</ENAME>
</CHILD>
<CHILD>
<EMPNO>7499</EMPNO>
<ENAME>ALLEN</ENAME>
</CHILD>
<CHILD>
<EMPNO>7521</EMPNO>
<ENAME>WARD</ENAME>
</CHILD>
<CHILD>
<EMPNO>7566</EMPNO>
<ENAME>JONES</ENAME>
</CHILD>
<CHILD>
<EMPNO>7654</EMPNO>
<ENAME>MARTIN</ENAME>
</CHILD>
<CHILD>
<EMPNO>7698</EMPNO>
<ENAME>BLAKE</ENAME>
</CHILD>
<CHILD>
<EMPNO>7782</EMPNO>
<ENAME>CLARK</ENAME>
</CHILD>
<CHILD>
<EMPNO>7839</EMPNO>
<ENAME>KING</ENAME>
</CHILD>
<CHILD>
<EMPNO>7844</EMPNO>
<ENAME>TURNER</ENAME>
</CHILD>
<CHILD>
<EMPNO>7900</EMPNO>
<ENAME>JAMES</ENAME>
</CHILD>
<CHILD>
<EMPNO>7902</EMPNO>
<ENAME>FORD</ENAME>
</CHILD>
<CHILD>
<EMPNO>7934</EMPNO>
<ENAME>MILLER</ENAME>
</CHILD>
</ROOT>
Maybe you are looking for
-
How can i get the itunes store authorization on a windows 7 laptop
i need help big time please. i am about to either throw my laptop because itunes is not authurizing my dell windows 7 laptop
-
Error in mailexample8i_sql.txt PL/SQL sample
Hello, I found error in http://technet.oracle.com/sample_code/tech/pl_sql/htdocs/mailexample8i_sql.txt file accessed from http://technet.oracle.com/sample_code/tech/pl_sql/htdocs/Utl_Smtp_Sample.html Problem is in demo_mail.begin_attachment procedure
-
Crystal reports in mySAP ERP ECC 6.0
Hi all, Our company currently has mySAP ERP implemented. I just wanted to know if it is possible to get crystal report in to our SAP implementation. And what are the steps to do that. SAP componenet version is SAP ECC 6.0 Transaction SM51 Component v
-
We are running Sql server 2005. This server has been running for over a year without any problems. There are no custom databases or scripts (Operations manager, WSUS, ACS databases) Recently the ERRORLOG has started filling rapidly with the error: sp
-
What is correct update or upgrade for Mac OSX v 10.5.8? Also can't use sites without updates on firefox & safari. Auto update shows none available?