使用业务规则问题来生成XSLT。 [英] Genrating XSLT using business rule issue.

查看:64
本文介绍了使用业务规则问题来生成XSLT。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

我正在尝试使用XSLT在地图中实现一些业务逻辑。

我的要求是我输入实例消息为:

Hi All,
I am trying to implementing some business logic in map using XSLT.
My requirement is that I have input instance message as :

<session id="9" charge="0" count="1">
<data id="sderFGT234Frtyh">
<account id="asd34dFGt6788853">
<DBA>TestDBA</DBA>
<NamedInsuredFirstName>Nitin</NamedInsuredFirstName>
<NamedInsuredLastName>Raj</NamedInsuredLastName>
<driver change="0" written="0">
<FirstName>Nitin</FirstName>
<FullName>Nitin Raj</FullName>
<HasCDL>Y</HasCDL>
<IndicatorNewViolation>0</IndicatorNewViolation>
<LastName>Raj</LastName>
</driver>
<driver change="0" written="0">
<FirstName>Rahul</FirstName>
<FullName>Rahul Nitin Raj</FullName>
<HasCDL>Y</HasCDL>
<IndicatorNewViolation>0</IndicatorNewViolation>
<LastName>Rahul</LastName>
</driver>
<driver change="0" written="0">
<FirstName>TestNitin</FirstName>
<FullName>Nitin Raj</FullName>
<HasCDL>Y</HasCDL>
<IndicatorNewViolation>0</IndicatorNewViolation>
<LastName>Test Raj</LastName>
</driver>
</account>
</data>
</session>



我想实现XSLT规则来生成元素 APH-CRW-FRF-REQ -IND
APH-CRW-PRTY-TYP-CD

基本元素 APH-CRW-PRTY-TYP-CD 将生成三个代码作为


14,04和03以及实施它的逻辑 如下 :


I want to implement XSLT rule to generate element APH-CRW-FRF-REQ-IND and APH-CRW-PRTY-TYP-CD.
basically element APH-CRW-PRTY-TYP-CD will generate with three code in it as
14, 04 and 03 and logic to implement it is as follows :

< xsl:if test =" data / account / DBA / text()!=''">

    < xsl:element name =" APH-CRW-PRTY-TYP-CD">

      < xsl:value-of select ="' 014 '" />
$
    < / xsl:element>

    < xsl:element name =" APH-CRW-FRF-REQ-IND">

    < / xsl:element>

< / xsl:if>

<xsl:if test="data/account/DBA/text()!=''">
    <xsl:element name="APH-CRW-PRTY-TYP-CD">
      <xsl:value-of select="'014'" />
    </xsl:element>
    <xsl:element name="APH-CRW-FRF-REQ-IND">
    </xsl:element>
</xsl:if>

< xsl:for-each select =" // data / account / driver">

if data / account / NamedInsuredFirstName = data / account / driver / FirstName and data / account / NamedInsuredLastName = data / account / driver / LastName then

生成记录为:

在这种情况下,根据输入的messgae(帐户中的3个驱动程序),只有一个记录符合此条件,(04)将分配给它,其他两个将带有APH-CRW-PRTY-TYP-CD ='03'的生成货币b $ b所以马赫条件的记录将生成如下。

< xsl:element name =" ; APH-CRW-PRTY-TYP-CD">

      < xsl:value-of select ="'04'" />
$
< / xsl:element>

< xsl:element name =" APH-CRW-FRF-REQ-IND">

      < xsl:value-of select ="'T'" />
$
< / xsl:element>

<xsl:for-each select="//data/account/driver">
if data/account/NamedInsuredFirstName = data/account/driver/FirstName and data/account/NamedInsuredLastName = data/account/driver/LastName then
generate records as :
In this case as per input messgae (3 drivers in account) only one record will match this condition and (04) will assign to it and other two will genrate with APH-CRW-PRTY-TYP-CD = '03'
so the record who mach condition will genrate as follows.
<xsl:element name="APH-CRW-PRTY-TYP-CD">
      <xsl:value-of select="'04'" />
</xsl:element>
<xsl:element name="APH-CRW-FRF-REQ-IND">
      <xsl:value-of select="'T'" />
</xsl:element>

对于没有加工的记录(在这种情况下会产生两次),如果条件是genrate值如下:

< xsl:element name =" APH-CRW-PRTY-TYP-CD">

      < xsl:value-of select ="'03'" />
$
< / xsl:element>

< xsl:element name =" APH-CRW-FRF-REQ-IND">

      < xsl:value-of select ="'F'" />
$
< / xsl:element>

for records who is not maching (in this case will genrate two times)if condition will be genrate value as follwos :
<xsl:element name="APH-CRW-PRTY-TYP-CD">
      <xsl:value-of select="'03'" />
</xsl:element>
<xsl:element name="APH-CRW-FRF-REQ-IND">
      <xsl:value-of select="'F'" />
</xsl:element>

< xsl:element name =" APH-CRW-PRTY-TYP-CD">

      < xsl:value-of select ="'03'" />
$
< / xsl:element>
$
< xsl:element name =" APH-CRW-FRF-REQ-IND">

      < xsl:value-of select ="'F'" />
$
< / xsl:element>

<xsl:element name="APH-CRW-PRTY-TYP-CD">
      <xsl:value-of select="'03'" />
< /xsl:element>
< xsl:element name="APH-CRW-FRF-REQ-IND">
      <xsl:value-of select="'F'" />
< /xsl:element>

rach循环结束。

在其他示例中假设为每个循环,我们在帐户中有三个驱动程序,没有记录匹配
如果数据/帐户/ NamedInsuredFirstName = data / account / driver / FirstName和data / account / NamedInsuredLastName =数据/帐户/驱动程序/ LastName
然后

条件然后 四(4)条记录将生成

in other example suppose in for each loop , we have three drivers in account and none of records match for if data/account/NamedInsuredFirstName = data/account/driver/FirstName and data/account/NamedInsuredLastName = data/account/driver/LastName then
condition then four (4) record will generate with

  ; APH-CRW-PRTY-TYP-CD ='03'的三个要素 和APH-CRW-FRF-REQ-IND ='F'和APH-CRW-PRTY-TYP-CD ='04'的一条记录和APH-CRW-FRF-REQ-IND ='T'

 three elements for APH-CRW-PRTY-TYP-CD = '03'  and APH-CRW-FRF-REQ-IND = 'F' and one record for APH-CRW-PRTY-TYP-CD = '04' and APH-CRW-FRF-REQ-IND = 'T'

如何实施它  ?

APH-CRW-PRTY-TYP-CD和APH-CRW-FRF-REQ-IND是 无限元素。

希望我能正确解释。

提前感谢您的帮助。

how to implement it  ?
APH-CRW-PRTY-TYP-CD and APH-CRW-FRF-REQ-IND are  unbounded elements.
hope i explain it correctly.
thanks for help in advance.

谢谢和问候,Nitin。

Thanks and Regards, Nitin.

推荐答案

Hi Nitin,

Hi Nitin,

你可以这样:

< xsl:if test =" data / account / DBA / text()!=''">

  &NBSP; < APH-CRW-PRTY-TYP-CD>

&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; < xsl:value-of select =' 014'   />

   
< / APH- CRW-PRTY-TYP-CD>


  &NBSP;&NBSP; < APH-CRW-FRF-REQ-IND>

   
< / APH- CRW-FRF-REQ-IND>


< / xsl:if>

< xsl:choose>

< xsl:when test =" count(data / account / driver [FirstName = NamedInsuredFirstName
和LastName =
<跨度style ="color:#333333; font-family:'Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif; font-size:14px"> NamedInsuredLastName ]
> 0)">

< xsl:for-each test =" / data / account / driver ">

< xsl:choose>

< xsl:when test =" FirstName = ../ NamedInsuredFirstName
和LastName = .. /
NamedInsuredLastName ">

< APH-CRW-PRTY-TYP-CD>

     < xsl:value-of select ='04'/>

< / APH-CRW-PRTY-TYP-CD>

< APH-CRW-FRF-REQ-IND>

     < xsl:value-of select ='T'/>

< / APH-CRW-FRF-REQ-IND>

< xsl:when>

< xs:otherwise>

< APH-CRW-PRTY-TYP-CD>

     < xsl:value-of select ='03'/>

< / APH-CRW-PRTY-TYP-CD>

< APH-CRW-FRF-REQ-IND>

     < xsl:value-of select ='F'/>

< / APH-CRW-FRF-REQ-IND>

< / xsl:otherwise>

< / xsl:choose>

< / xsl:when>

< xsl:otherwise>

< APH-CRW-PRTY-TYP-CD>

     < xsl:value-of select ='04'/>

< / APH-CRW-PRTY-TYP-CD>

< APH-CRW-FRF-REQ-IND>

     < xsl:value-of select ='N'/>

< / APH-CRW-FRF-REQ-IND>

< xsl:otherwise>

< / xsl:for-each>

因为我在记事本中有这个而不是设计师,所以语法错误可能很少。但你会有这个工作..


这篇关于使用业务规则问题来生成XSLT。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆