For each activity
Major Parts
1. Activity Name
Simple name of the
activity, does not play any major role in the processing of the
component.
2.Counter Name
This is the self
increased counter value,which keep on increasing once we do it for
3.Start Value
This is the value of the counter when the
activity is initiated, this is decided on run-time. You can have a static value
here too.
4.End Value
This is the final value of the counter, where
loop terminate.
5.Completion condition
Not mandatory but it will provide the
condition which will be considered as a completion of the activity.
Parallel flow will
give an indication to execution engine, if activity has to run in parallel
or sequential.
XSLT:
Global declaration:
<xsl:param
name="InvokeStoreId_Select_OutputVariable.LocationInfoCollection"/>
<xsl:param
name="forEachCountervalue"/>
Call functions:
<xsl:call-template
name="rtl_loc_id_template">
<xsl:with-param name="forEachCountervalue"
select="$forEachCountervalue"/>
</xsl:call-template>
Called
functions:
<xsl:template name="rtl_loc_id_template">
<xsl:param name="forEachCountervalue"/>
<xsl:param name="index" select="1"/>
<xsl:param name="total" select="50"/>
<xsl:if
test="$InvokeStoreId_Select_OutputVariable.LocationInfoCollection/ns1:LocationInfoCollection/ns1:pLocationInfo[$index
+ (($forEachCountervalue - 1) * 50)]/ns1:locationId/text()">
<tns:rtl_loc_id>
<xsl:value-of
select="$InvokeStoreId_LOCATION_INFOSelect_OutputVariable.LocationInfoCollection/ns1:LocationInfoCollection/ns1:LocationInfo[$index
+ (($forEachCountervalue - 1) * 50)]/ns1:locationId"/>
</tns:rtl_loc_id>
</xsl:if>
<xsl:if test="not($index = $total)">
<xsl:call-template name="rtl_loc_id_template">
<xsl:with-param name="index" select="$index +
1"/>
<xsl:with-param name="forEachCountervalue"
select="$forEachCountervalue"/>
</xsl:call-template>
We can create variable in transformation:
Declaration:<xsl:param
name="InvokeStoreId_LOCATION_INFOSelect_OutputVariable.LocationInfoCollection"/>
<xsl:param name="forEachCountervalue"/>
<xsl:param name="StoreBatchSize"/>
To check each index of 50:
Function declaration:
<xsl:call-template
name="rtl_loc_id_template">
<xsl:with-param name="forEachCountervalue"
select="$forEachCountervalue"/>
Function definition:
<xsl:template
name="rtl_loc_id_template">
<xsl:param name="forEachCountervalue"/>
<xsl:param name="index" select="1"/>
<xsl:param name="total"
select="$StoreBatchSize"/>
<xsl:if test="$InvokeStoreId_LOCATION_INFOSelect_OutputVariable.LocationInfoCollection/ns1:LocationInfoCollection/ns1:LocationInfo[$index
+ (($forEachCountervalue - 1) *
$StoreBatchSize)]/ns1:locationId/text()">
<tns:rtl_loc_id>
<xsl:value-of
select="$InvokeStoreId_LOCATION_INFOSelect_OutputVariable.LocationInfoCollection/ns1:LocationInfoCollection/ns1:LocationInfo[$index
+ (($forEachCountervalue - 1) * $StoreBatchSize)]/ns1:locationId"/>
</tns:rtl_loc_id>
</xsl:if>
<xsl:if test="not($index = $total)">
<xsl:call-template name="rtl_loc_id_template">
<xsl:with-param name="index" select="$index +
1"/>
<xsl:with-param name="forEachCountervalue"
select="$forEachCountervalue"/>
</xsl:call-template>
</xsl:if>
From update date and to update date: it should take one day before:
<xsl:choose>
<xsl:when
test="/ns0:TransactionRequest/ns0:from_update_date/text()">
<tns:from_update_date>
<xsl:value-of
select="/ns0:TransactionRequest/ns0:from_update_date"/>
</tns:from_update_date>
</xsl:when>
<xsl:when
test="/ns0:TransactionRequest/ns0:Source='ESS_SCHEDULE'">
<tns:from_update_date>
<xsl:call-template
name="XDaysMinus"/>
</tns:from_update_date>
</xsl:when>
<xsl:otherwise>
<tns:from_update_date></tns:from_update_date>
</xsl:otherwise>
</xsl:choose>
<xsl:template name="XDaysMinus">
<xsl:variable name="vToday"
select="xp20:current-dateTime()"/>
<xsl:variable name="vXday"
select="xp20:subtract-dayTimeDuration-from-dateTime($vToday,'P1D')"/>
<xsl:variable name="vXdayFormated" select="xp20:format-dateTime($vXday,
'[M01]-[D01]-[Y0001]')"/>
<xsl:value-of select="$vXdayFormated"/>
</xsl:template>