Need to access parent elements in nested for-each loop
Hi All,
I have a xslt mapping requirement in which I am completely stuck. The details are as listed below. Please help!
Schema structure is as follows:
Root
Payload
Transaction-123
Loop-LINE
Loop-SDPP
Segment-FSTT
Element-111
Required xslt file structure is:
<xsl:for-each Loop-LINE>
<tns:Item>
<Line-1000>
<Line-2000>
<Line-3000>
<Line-8000>
<xsl:for-each Loop-SDPP>
<xsl:for-each Segment-FSTT[ns0:Element-111 != "A"]>
<SDetails>
</SDetails>
<xsl:for-each Loop-LINE> --------- How to access Loop-LINE element from this for loop????
<tns:Item>
<2000>
<2020>
<2070>
<2150>
</tns:Item>
</xsl:for-each>
</for-each>
</for-each>
</tns:item>
</for-each>
Need help in understanding how can I run a for-each loop for Loop-LINE which is two levels up in the schema tree structure.
Thanks..
Thanks for this answer but I can't obtain the right output with my test case; the multi column must be in the loop as that :
ALPHABETICAL INDEX C1
Alternator .......................................... Feed Pump
Belt Details / Engine Gaskets Sets ..... Flywheel Housing
< NEW PAGE>
INDEX ALPHABETIQUE C2
Alternateur......................................... Culbuteurs
Bloc-Cylindres.................................... Demarreur
Denis
Similar Messages
-
Nested for-each issue [Solved]
Hi.
First of all, just started looking into xsl, so please explain things carefully.
I need to make a master-detail form, but the xml is a bit tricky.
I've made a demo here:
<DATASET>
<ROWSET1>
<ROW>
<ID>1</ID>
<NAME>Harry Potter</NAME>
</ROW>
<ROW>
<ID>2</ID>
<NAME>Draco Malfoy</NAME>
</ROW>
</ROWSET1>
<ROWSET2>
<ROW_R2>
<OWNER_ID>1</OWNER_ID>
<PC>HP</PC>
</ROW_R2>
<ROW_R2>
<OWNER_ID>1</OWNER_ID>
<PC>Dell</PC>
</ROW_R2>
<ROW_R2>
<OWNER_ID>2</OWNER_ID>
<PC>Compaq</PC>
</ROW_R2>
</ROWSET2>
</DATASET>
Here's what I want printed:
Harry Potter
-HP
-Dell
Draco Malfoy
-Compaq
Here's how I've tried making my xsl and if's for joining.
<xsl:for-each select="DATASET/ROWSET1/ROW">
<xsl:value-of select="NAME"/>
<xsl:for-each select="../../ROWSET2/ROW_R2">
<xsl:if test=" ../../ROWSET1/ROW/ID = OWNER_ID">
<xsl:text>ID: </xsl:text><xsl:value-of select="../../ROWSET1/ROW/ID"/>
<xsl:text>OWNER_ID: </xsl:text><xsl:value-of select="OWNER_ID"/>
<xsl:text>PC: </xsl:text><xsl:value-of select="PC"/>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
This only outputs
Harry Potter
Draco Malfoy
If I remove the if/end if, it outputs
Harry Potter
ID:1 Owner_ID:1 PC:HP
ID:1 Owner_ID:1 PC:Dell
ID:1 Owner_ID:2 PC:Compaq
Draco Malfoy
ID:1 Owner_ID:1 PC:HP
ID:1 Owner_ID:1 PC:Dell
ID:1 Owner_ID:2 PC:Compaq
Obviously there's a couple of things wrong, so if anyone could help out I'd be greatful.
I know it's a bit tacky looping through twice to find matching id vs owner_id, but with this kind of xml I don't know any other way, and I can't change the xml. Fortunately it's not that much data so it shouldn't be too slow.
Cheers,
Vidar
Message was edited by:
Vidar
:added solved to subjectA solution that works is to great a for-each loop table using ROWSET1 and setting a variable to the ID value. Then put a nested for-each loop inside the first using ROWSET2 and using a filter on the for-each to filter for OWNER_ID like this:
<?for-each:/DATASET/ROWSET2/ROW_R2[xdoxslt:get_variable($_XDOCTX, 'x')=OWNER_ID]?>
for template then looks like the following:
inialize variable 'x'
for-each ROWSET1
NAME
ID set 'x'
for-each ROWSET2[filter]
OWNER ID PC
end for-each
end for-each -
106 nested for next loops!
Well, this is not a problem, but I just had to mention that I could not believe that Java would actually process 106 nested for next loops. I had an hour of free time yesterday and we needed to run an exhaustive branch test of an application that we have, to do so we needed to have 104 data elements generated with all possible cases. I thought, what the heck, and tried it in Java--our old language wouldn't do that on it's best day and in our dreams! Java did it, it not only did it, but it left a clean environment after it was done!
well, here is more the thing that comes to mind with i think about loop limits: in VB when you get a dozen or so pending closing parentesis, things start to go funny in memory and in some cases, the formula/routine becomes too complicated to interpret. Just how many pending closing parentesis will be accepted before things go bonkers.
-
Do I need to have a separate Apple ID for each apple product we own if I do not want to share my contacts with my children
Yes. And separate user accounts on the computer if you only have one computer.
How to use multiple iPhone, iPad, or iPod devices with one computer -
Do we need to buy the license from SAP for EACH 'Z'form
Hello
I heard that, we (company) have to take license for the development of EACH adobe interactive form (even though its totally custom brand-new interactive form created from scratch), on individual form basis, is it true? (i know, its free of cost to play around with interactive forms in DEV and QA, but, if we want to move them to PROD, in that case do we need to buy the license from SAP for EACH form individually?)
Thank youThats true...license based on end user usage is required for SAP interactive forms. For more information read SAP note number 750784. The license comes in package like per 1000 users one time payment.
Regards,
Vaibhav -
I need to check three comparative conditions and for each status I need to perform some action. can anybody please suggest
Requirment:
Need to check if a numeric value is within a number range by using comparative function. Depending on status i need to ggive a constant input to numeric function.Easiest is suing an array of range boundaries, e.g. as follows:
(Found here)
Now it is fully scalable and independent of the number of ranges. The solution in the earlier post would get complicated quickly whenever the number of ranges or boundary locations changes.
LabVIEW Champion . Do more with less code and in less time . -
Package Help needed For each Loop container
Hello all,
I need a bit of advice, I`m a newbee to SSIS so I`m learning. Here`s what I need. I have a EDI 837 file which needs to be converted and inserted into a sql table. These are multiple files and I need to maintain them with a monthly load. So I have a source
folder where these files will be dumped. I created a Package which will grab the files process the EDI aspect inserts into the data into table. This is the story on a high level.
Here`s what I did.
Created a For each loop container.
I have a stored proc which takes in a 837 files and gets the fields what I want and it inserts it into a staging table from there I have a data flow task which pipes it into my production table.
Inside the loop first task is to exec the Stored Proc but my question is once a file is picked up from for each loop I need the file to be inserted into a table which I am referencing in my store proc. All the EDI conversion takes place in my SP and it references
the table..
My question is the For each loop container picks up the files but where does the data goes?? Can someone help me out
FMThe foreach loop container (file enumerator) only returns the filename or filepath which you can use as a parameter in an Execute SQL Task or within an expression on a connection manager (which can be used in a Data Flow). So it doesn't do anything with
the file. You have to add a task within the loop to do something with the file (Execute SQL Task/Data Flow Task/File System Task/etc.).
Please mark the post as answered if it answers your question | My SSIS Blog:
http://microsoft-ssis.blogspot.com |
Twitter -
For Each Loop: Enumerator Configuration In the For each loop Editor Help needed
Hi All,
I have a package that runs and updates a table with everytime someone adds a flat file in the source folder. One of the requirement is to upload files with the following
ACA Flat files will have a naming convention of “ACA_ccyy_<julian date>” : How can I add this?
Under Files this is how I have setup the qualifies "ACA_*.*"
Is there anyway to pass the entire naming convention in the file section? If so how can I ?
Please help?
FMAs you have ACA_*.* set in Files Filter, it will return all the files from the folder which start with ACA_.
You can have one dummy Sequence Container inside FE Loop Container. Connect it to your starting task and do right click on Precedence Constraint and write the expression the way you want by using SSIS functions. If the expression is evaluated to True only
then it will go to the next task.
In this way you can skip Non-ACA files.
Please refer:
SSIS Skip Certain Files in a For Each Loop
- Vaibhav -
How to use for each loop in XSLT when my source is a multilayout file and db
How do I use a for each loop in XSLT when my source is multilayout file and db .
My multilayout file is basically contain 2 kind of data one for employee and another for dependent.
Now my requirement is I want to read each line of data whether it is it is employee or dependent do a join with db and write it in my target file.
eg : File content
1 RichaKumari 311289 TCS INDIA
2 KiarnKumar 456782 BRO RichaKumari 311289 INDIA
2 Ravi 456882 BRO RichaKumari 311289 INDIA
eg : db Content
311289 RichaKumari TCS INDIA Bangalore [email protected]
Now in Final File I need something like this :
1 RichaKumari 311289 TCS INDIA
2 KiarnKumar RichaKumari 311289 TCS INDIA
2 Ravi RichaKumari 311289 TCS INDIA
here 1 and 2 are the identifier which will decide which layout to follow .Hi,
I think you'll need two nested for-each's... Something like...
<xsl:for-each select="$root/row[layout = 1]">
<xsl:variable name="employee" select="."/>
... write employee ...
<xsl:for-each select="$root/row[layout = 2 and dependentid = $employee/id]">
... write dependent ...
</xsl:for-each>
</xsl:for-each>
Cheers,
Vlad -
Loading accdb file using for each loop in to single target table
I have 3 accdb file as below in single folder, in control flow I have created a for each loop to loop through all the below file. In dataflow task I have created oledb source using connection manager to point to first file a1.accdb. I am trying
to load all the file into single below mentioned target table, here It is only loading first file it is not looping through other two file.
This I have tried to load .txt files and csv files it is working perfectly but similarly when I try to load access db file table it is not working, can any one of you help me?
1. a1.accdb contains only one table a1tab ( col1 col2 col3 )
2. a2.accdb contains only one table a2tab ( col1 col2 col3 )
3. a3.accdb contains only one table a3tab ( col1 col2 col3 )
I have a target table with similar structure as source
Target table <TargetTable> Col1 Col2 Col3
aakThanks Arthur, please find below response
How do you handle the different table names? Cant we handle it in a similar manner, how we handle the .csv/.txt files with different name and similar structure for sources(multiple files) and target (single table)
Is it good to drop the idea of for each loop and create a separate task for each accdb file? to be loaded to same target table( performance wise etc.. any justification would be helpful)
You must handle the connection string dynamically?
Can you help me with the logic for handling connection string dynamically
aak -
Hi,
I have a senario where i have a varied length XMl is coming to me in response of a service callout, and I need to iterate over it to get the fieldvalue of a particular tag based on its fieldName(e.g FUNCTION_CODE) and assign to a tag of another xml for example
THE XML Coming as response of service callout is
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getDefaultValueResponse xmlns="http://data.transformation.nab.cz.fc.ofss.com">
<getDefaultValueReturn>
<fieldDefaultValue>F</fieldDefaultValue>
<fieldName>FUNCTION_CODE</fieldName>
</getDefaultValueReturn>
<getDefaultValueReturn>
<fieldDefaultValue xsi:nil="true"/>
<fieldName>PAYMENT_TRANSACTION_ID</fieldName>
</getDefaultValueReturn>
<getDefaultValueReturn>
<fieldDefaultValue xsi:nil="true"/>
<fieldName>CHANNEL_ID</fieldName>
</getDefaultValueReturn>
<getDefaultValueReturn>
<fieldDefaultValue>CR</fieldDefaultValue>
<fieldName>CREDIT_DEBIT_FLAG</fieldName>
</getDefaultValueReturn>
<getDefaultValueReturn>
<fieldDefaultValue xsi:nil="true"/>
<fieldName>BRAND</fieldName>
</getDefaultValueReturn>
<getDefaultValueReturn>
<fieldDefaultValue>001</fieldDefaultValue>
<fieldName>ACCOUNT_STATUS</fieldName>
</getDefaultValueReturn>
<getDefaultValueReturn>
<fieldDefaultValue>Mr</fieldDefaultValue>
<fieldName>NAME_TITLE</fieldName>
</getDefaultValueReturn>
<getDefaultValueReturn>
<fieldDefaultValue>Y</fieldDefaultValue>
<fieldName>MAIL_RETURN_INDICATOR</fieldName>
</getDefaultValueReturn>
<getDefaultValueReturn>
<fieldDefaultValue xsi:nil="true"/>
<fieldName>ENTITY</fieldName>
</getDefaultValueReturn>
<getDefaultValueReturn>
<fieldDefaultValue xsi:nil="true"/>
<fieldName>TRANSACTION_CURRENCY</fieldName>
</getDefaultValueReturn>
<getDefaultValueReturn>
<fieldDefaultValue xsi:nil="true"/>
<fieldName>VERSION</fieldName>
</getDefaultValueReturn>
<getDefaultValueReturn>
<fieldDefaultValue xsi:nil="true"/>
<fieldName>TRANSACTION_RATE</fieldName>
</getDefaultValueReturn>
</getDefaultValueResponse>
</soapenv:Body>
</soapenv:Envelope>
and i want to assign that value to transactionType tag of
<?xml version="1.0" encoding="UTF-8"?>
<tns:sandstonetns xmlns:tns="http://sandstone.response.transactionHistory.app.nab.cz.fc.ofss.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://sandstone.response.transactionHistory.app.nab.cz.fc.ofss.com Sandstone_Data_Transaction_History_Response.xsd ">
<tns:listOfTransactions>
<tns:transactions>
<tns:clients>
<tns:clientID>tns:clientID</tns:clientID>
</tns:clients>
<tns:timestamp>2001-12-31T12:00:00</tns:timestamp>
<tns:sequenceNumber>tns:sequenceNumber</tns:sequenceNumber>
<tns:description>tns:description</tns:description>
<tns:amount>0</tns:amount>
<tns:accountNumber>tns:accountNumber</tns:accountNumber>
<tns:debitOrCreditFlag>tns:debitOrCreditFlag</tns:debitOrCreditFlag>
<tns:*transactionType*>tns:transactionType</tns:transactionType>
</tns:transactions>
</tns:listOfTransactions>
<tns:returnResponse>
<tns:returnCode>0</tns:returnCode>
<tns:returnDescription>tns:returnDescription</tns:returnDescription>
</tns:returnResponse>
</tns:sandstonetns>
I want to achieve this using for-each loop...kindly help me as I dont have any idea about how to use for-each loop...i want to select a the tag fieldValue based on the data in tag fieldName for eg if i iterate over the whole response XML searching for fieldName=FUNCTION_CODE then I whuold get the value 'F' and then I would assign this value 'F' to the transactionType tag of the XML
<?xml version="1.0" encoding="UTF-8"?>
<tns:sandstonetns xmlns:tns="http://sandstone.response.transactionHistory.app.nab.cz.fc.ofss.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://sandstone.response.transactionHistory.app.nab.cz.fc.ofss.com Sandstone_Data_Transaction_History_Response.xsd ">
<tns:listOfTransactions>
<tns:transactions>
<tns:clients>
<tns:clientID>tns:clientID</tns:clientID>
</tns:clients>
<tns:timestamp>2001-12-31T12:00:00</tns:timestamp>
<tns:sequenceNumber>tns:sequenceNumber</tns:sequenceNumber>
<tns:description>tns:description</tns:description>
<tns:amount>0</tns:amount>
<tns:accountNumber>tns:accountNumber</tns:accountNumber>
<tns:debitOrCreditFlag>tns:debitOrCreditFlag</tns:debitOrCreditFlag>
*<tns:transactionType>tns:transactionType</tns:transactionType>*
</tns:transactions>
</tns:listOfTransactions>
<tns:returnResponse>
<tns:returnCode>0</tns:returnCode>
<tns:returnDescription>tns:returnDescription</tns:returnDescription>
</tns:returnResponse>
</tns:sandstonetns> -
My trace statements inside my for each loop won't show.
Please someone check my code. I"m getting no errors in flex
builder. When i debug all vars are holding prober data. Thanks so
much"essa tkinen" <[email protected]> wrote in
message
news:gr27rt$3sb$[email protected]..
> yes there is data there a commas delimited list of
keywords that are
> catagorys. the selectedCatArray holds at list one
element. I want to
> return true if element is in that list
For one thing, you're going to exit the function in the first
iteration,
because you return the result inside the loop. Return
immediately exits the
function. For another, I'd be tempted to switch it to
something more like
this:
for (var i = 0; i<_item.cats.length; i++) {
var iCat=item.cats
//do your stuff here
I have had really bad luck getting for each in to work the
way I think it
should.
HTH;
Amy -
Hello Everyone,
Please assist with a step by step guide on how to setup a For Each Loop for XML Task
I'm trying to convert XML to XSLT
I have tried more than 10 times and i just do not know what i am doing wrong - no error, my package just runs for a few seconds but nothing happens
Thanks in advance
DeeI managed to get my XML to XSLT to work but now when i run my package to import the data into SQL table,
it stops after a few records, i get the following error:
[XML Source [1]] Error: The component "XML Source" (1) was unable to process the XML data. The element "Errors" cannot contain a child element. Content model is text only.
Please assist
Check this:
http://social.msdn.microsoft.com/Forums/en-US/80726e0c-9e85-43ca-87bc-7cf90fd7fb31/xml-source-data-flow-throws-cannot-contain-a-child-element-content-model-is-text-only-error?forum=sqlintegrationservices
Chaos isn’t a pit. Chaos is a ladder. Many who try to climb it fail and never get to try again. The fall breaks them. And some are given a chance to climb, but they refuse. They cling to the realm, or the gods, or love. Illusions. Only the ladder is real.
The climb is all there is. -
Hi,
I am trying to use a For each loop:
FE Agreement_No
Customer
0.00
0.00<?end for-each?>
This does not work. Does the code FE need to be grouped?
Can anyone help?
ThanksHi,
I have created a repeating group:
<?for-each-group:ROW;./Agreement_No?>
This places an F in front of agreement_no field
and places E in front of the following field customer.
I would also like to add a condition where installment = 'Under 1'
Would that be <?for-each-group:ROW;./Agreement_No[../Installments='Under 1']?> -
For Each Loop Load Dynamic Excel Files
Hi All,
SSIS 2005
I want to load excel file .xls one at a time files that have different names without having to select the file in the connection manager, every time. So a user can easily place the excel file in the folder and right the sql job and it loads the file data.
The data flow tasks all work when I manually select the excel file, but I am unable to get this to work dynamically.
I have setup a for each loop with multiples data flow tasks and sql tasks to load my data from file.
Variables:
@filename d:\new file\*.xls
For Each Loop:
ForEachFile Enumerator
Folder: d:\new file\
Files: *.xls
Retrieve File Name: Fully Qualified
Variable Mappings:
User::filename (index 0)
Connection Managers:
Excel Connection Manager: Expressions, ConnectionString @[User::filename]
Error Message: Error at new buyer(package name) the connection string format is not valid. it must consist of one or more components of the form X=Y, seperated by semicolons.
Can anyone assist thanks.You still need the file name variable.
ExcelFilePath is the fully qualified file name of your Excel file. ie. it contains both the path and file name.
e.g. D:\inbox\myExcelFile.xls
All the steps you mentioned are correct, except you need to set the property of ExcelFilePath of the Excel connection to the variable that you map to in the ForEach Loop:
Connection Managers:
Excel Connection Manager: Expressions, ExcelFilePath @[User::filename]
Hope this helps.
~ J.
Maybe you are looking for
-
my ipad has gone in lost mode by mistake and now i have it and i enter the password and i cant enter my ipad how can i enter or restart the ipad and start back over new
-
I don't get any error messages, it just won't launch at all. Quick time does launch. I was searching support yesterday and found a link that helped (for the moment), but it's no longer available and didn't help me in the longterm anyway. I can still
-
Mail package in receiver mail adapter
Hi , I am trying to put XIPAYLOAD with <b>USE mail package</b> option.I have gone through the blogger posted my Michal on this... when I download the Document mentioned in the blog for mailpackage to create the message do I need to use the <b>namesp
-
What should be the directory structure for new theme
I want to create a new theme for my BSP pages. Currently all my BSP are using /sap/public/bc/ur/Design2002/themes/sap_tradeshow/ur/ur_ie6.css for styling. I want to create a new theme named testTheme and want to call my bsp pages with sap-themeRoot=t
-
Can some one tell me how to load flah player on my I mac i have downloaded it 10000x