Dates you say? Stop the press! Hoist the mizenmast!
I had a situation where there was a node whose max occurs is unbounded and I needed to extract a single node from it to map to a destination node whose max occurs is one.
The problem was that I had to choose the node to map with the highest (newest) date:
<root>
<data>
<testdate>01-01-2000<testdate>
<testdata>a<testdata>
</data>
<data>
<testdate>01-01-2002<testdate>
<testdata>c<testdata>
</data>
<data>
<testdate>01-01-2001<testdate>
<testdata>b<testdata>
</data>
</root>
In the case above, I want the node with the highest <testval>, or 01-01-2002, therefore I want to map <testdata>c<testdata> to the destination node.
This can actually be done.
What I did was convert my date to ticks in a scripting functoid:
public string toTicks(string param1)
{
DateTime dt = DateTime.Parse(param1);
return dt.Ticks.ToString();
}
Afterwards I connected the scripting functoid to the cumulative max functoid.
Then I evaluate the output of the scripting functoid with the cumulative max functoid with an Equals functoid.
This should work for any set of repeating dates.