2014-12-31 130 views
1

1)如果在两种不同的策略中有两个以上的具有CategoryCd = GL AND selectedInd ='Y'AND deletedInd ='Y'的实例,则返回代码FAILURE失败并返回原因码MANYPOL如何根据输入条件输出

<policy VERSION_NO="1" MC_ID="66" ID="1"> 
    <businessGroupCdGvngOrgn>14</businessGroupCdGvngOrgn> 
      <linesOfInsurance> 
       <underlyingPolicy> 
        <PolicyNo>22</PolicyNo> 
        <deletedInd>Y</deletedInd> 
        <VersionNbr>2</VersionNbr> 
        <selectedInd>Y</selectedInd> 
        <CategoryCd>GL</CategoryCd> 
       </underlyingPolicy> 
       <underlyingPolicy ID="5"> 
        <PolicyNo>22</PolicyNo> 
        <deletedInd>Y</deletedInd> 
        <VersionNbr>1</VersionNbr> 
        <selectedInd>N</selectedInd> 
        <CategoryCd>GL</CategoryCd> 
       </underlyingPolicy>  
       <underlyingPolicy ID="4"> 
        <PolicyNo>11</PolicyNo> 
        <deletedInd>N</deletedInd> 
        <VersionNbr>2</VersionNbr> 
        <selectedInd>Y</selectedInd> 
        <CategoryCd>GL</CategoryCd> 
       </underlyingPolicy> 
       <underlyingPolicy ID="3"> 
        <PolicyNo>11</PolicyNo> 
        <deletedInd>Y</deletedInd> 
        <VersionNbr>1</VersionNbr> 
        <selectedInd>Y</selectedInd> 
        <CategoryCd>GL</CategoryCd> 
       </underlyingPolicy>  
      </linesOfInsurance> 
     </policy> 
Expected O/P: 
<AdaptikXML> 
    <PWResponse> 
     <ReturnCode>FAILURE</ReturnCode> 
     <ReturnReasonCode>MANYPOL</ReturnReasonCode> 
     <PWData> 
      <policy VERSION_NO="1" MC_ID="66"/> 
     </PWData> 
    </PWResponse> 
</AdaptikXML> 
-------------------------------------------------------------------------------- 

2)如果有underlyingPolicyCategoryCd = GL和selectedInd =“Y”和deletedInd =“Y”多个实例上相同的策略,然后返回码失败和退货原因代码许多人没有

<policy VERSION_NO="1" MC_ID="34"> 
    <businessGroupCd>14</businessGroupCd> 
      <linesOfInsurance> 
       <underlyingPolicy> 
        <PolicyNo>22</PolicyNo> 
        <deletedInd>Y</deletedInd> 
        <VersionNbr>2</VersionNbr> 
        <selectedInd>N</selectedInd> 
        <CategoryCd>GL</CategoryCd> 
       </underlyingPolicy> 
       <underlyingPolicy ID="5"> 
        <PolicyNo>22</PolicyNo> 
        <deletedInd>Y</deletedInd> 
        <VersionNbr>1</VersionNbr> 
        <selectedInd>N</selectedInd> 
        <CategoryCd>GL</CategoryCd> 
       </underlyingPolicy>  
       <underlyingPolicy ID="4"> 
        <PolicyNo>11</PolicyNo> 
        <deletedInd>Y</deletedInd> 
        <VersionNbr>2</VersionNbr> 
        <selectedInd>Y</selectedInd> 
        <CategoryCd>GL</CategoryCd> 
       </underlyingPolicy> 
       <underlyingPolicy ID="3"> 
        <PolicyNo>11</PolicyNo> 
        <deletedInd>Y</deletedInd> 
        <VersionNbr>1</VersionNbr> 
        <selectedInd>Y</selectedInd> 
        <CategoryCd>GL</CategoryCd> 
       </underlyingPolicy>  
      </linesOfInsurance> 
     </policy> 
Expected O/P: 
<AdaptikXML> 
     <PWResponse> 
      <ReturnCode>FAILURE</ReturnCode> 
      <ReturnReasonCode>MANY</ReturnReasonCode> 
      <PWData> 
       <policy VERSION_NO="1" MC_ID="34"/> 
      </PWData> 
     </PWResponse>  
</AdaptikXML> 
-------------------------------------------------------------------------------- 

3)如果MANYPOL和MANY条件均为真,MANYPOL sho ULD返回(这意味着你可以检查MANYPOL条件第一,如果这是真的,你可以停止处理并返回

<policy VERSION_NO="1" MC_ID="66"> 
    <businessGroupCdGvngOrgn>14</businessGroupCdGvngOrgn> 
      <linesOfInsurance> 
       <underlyingPolicy> 
        <PolicyNo>22</PolicyNo> 
        <deletedInd>Y</deletedInd> 
        <VersionNbr>2</VersionNbr> 
        <selectedInd>Y</selectedInd> 
        <CategoryCd>GL</CategoryCd> 
       </underlyingPolicy> 
       <underlyingPolicy ID="5"> 
        <PolicyNo>22</PolicyNo> 
        <deletedInd>Y</deletedInd> 
        <VersionNbr>1</VersionNbr> 
        <selectedInd>N</selectedInd> 
        <CategoryCd>GL</CategoryCd> 
       </underlyingPolicy>  
       <underlyingPolicy ID="4"> 
        <PolicyNo>11</PolicyNo> 
        <deletedInd>Y</deletedInd> 
        <VersionNbr>2</VersionNbr> 
        <selectedInd>Y</selectedInd> 
        <CategoryCd>GL</CategoryCd> 
       </underlyingPolicy> 
       <underlyingPolicy ID="3"> 
        <PolicyNo>11</PolicyNo> 
        <deletedInd>Y</deletedInd> 
        <VersionNbr>1</VersionNbr> 
        <selectedInd>Y</selectedInd> 
        <CategoryCd>GL</CategoryCd> 
       </underlyingPolicy>  
      </linesOfInsurance> 
     </policy> 
EXPECTED O/P: 
    <AdaptikXML> 
     <PWResponse> 
      <ReturnCode>FAILURE</ReturnCode> 
      <ReturnReasonCode>MANYPOL</ReturnReasonCode> 
      <PWData> 
       <policy VERSION_NO="1" MC_ID="66"/> 
      </PWData> 
     </PWResponse> 
</AdaptikXML> 

4)如果有与underlyingPolicyCategoryCd = GL和selectedInd =“Y”没有实例和deletedInd = 'Y',然后返回码=成功和退货原因代码NOCHANGE

<policy VERSION_NO="1" MC_ID="56"> 
     <businessGroupCdGvngOrgn>14</businessGroupCdGvngOrgn> 
     <linesOfInsurance> 
      <underlyingPolicy ID="8"> 
       <PolicyNo>33</PolicyNo> 
       <deletedInd>N</deletedInd> 
       <VersionNbr>2</VersionNbr> 
       <selectedInd>Y</selectedInd> 
       <CategoryCd>AL</CategoryCd> 
      </underlyingPolicy> 
      <underlyingPolicy ID="7"> 
       <PolicyNo>33</PolicyNo> 
       <deletedInd>Y</deletedInd> 
       <VersionNbr>1</VersionNbr> 
       <selectedInd>N</selectedInd> 
       <CategoryCd>AL</CategoryCd> 
      </underlyingPolicy>   
      <underlyingPolicy> 
       <PolicyNo>22</PolicyNo> 
       <deletedInd>Y</deletedInd> 
       <VersionNbr>2</VersionNbr> 
       <selectedInd>N</selectedInd> 
       <CategoryCd>GL</CategoryCd> 
      </underlyingPolicy> 
      <underlyingPolicy ID="5"> 
       <PolicyNo>22</PolicyNo> 
       <deletedInd>Y</deletedInd> 
       <VersionNbr>1</VersionNbr> 
       <selectedInd>N</selectedInd> 
       <CategoryCd>GL</CategoryCd> 
      </underlyingPolicy>  
      <underlyingPolicy ID="4"> 
       <PolicyNo>11</PolicyNo> 
       <deletedInd>N</deletedInd> 
       <VersionNbr>2</VersionNbr> 
       <selectedInd>Y</selectedInd> 
       <CategoryCd>GL</CategoryCd> 
      </underlyingPolicy> 
      <underlyingPolicy ID="3"> 
       <PolicyNo>11</PolicyNo> 
       <deletedInd>Y</deletedInd> 
       <VersionNbr>1</VersionNbr> 
       <selectedInd>N</selectedInd> 
       <CategoryCd>GL</CategoryCd> 
      </underlyingPolicy>  
     </linesOfInsurance> 
    </policy> 
Expected O/P: 
<AdaptikXML> 
    <PWResponse> 
     <ReturnCode>SUCCESS</ReturnCode> 
     <ReturnReasonCode>NOCHANGE</ReturnReasonCode> 
     <ReturnMessage/> 
     <PWData> 
      <policy VERSION_NO="1" MC_ID="56"/> 
     </PWData> 
    </PWResponse> 
</AdaptikXML> 

测试案例3 - 2每2报价版本GL政策。策略22版本1选择了='Y'AND deletedInd ='Y'并且策略11版本1具有selectedInd ='Y'AND deletedInd ='N'。其他两个版本的selectedInd ='N'和deletedInd ='Y'。最终结果应该是策略22版本1的selectedInd ='Y'AND deletedInd ='N',策略11版本1的selectedInd ='N'AND deletedInd ='Y'。

<policy VERSION_NO="1" MC_ID="66"> 
    <businessGroupCdGvngOrgn>14</businessGroupCdGvngOrgn> 
    <linesOfInsurance>   <underlyingPolicy> 
      <PolicyNo>22</PolicyNo> 
      <deletedInd>Y</deletedInd> 
      <VersionNbr>2</VersionNbr> 
      <selectedInd>N</selectedInd> 
      <CategoryCd>GL</CategoryCd> 
     </underlyingPolicy> 
     <underlyingPolicy ID="5"> 
      <PolicyNo>22</PolicyNo> 
      <deletedInd>Y</deletedInd> 
      <VersionNbr>1</VersionNbr> 
      <selectedInd>Y</selectedInd> 
      <CategoryCd>GL</CategoryCd> 
     </underlyingPolicy>  
     <underlyingPolicy ID="4"> 
      <PolicyNo>11</PolicyNo> 
      <deletedInd>Y</deletedInd> 
      <VersionNbr>2</VersionNbr> 
      <selectedInd>N</selectedInd> 
      <CategoryCd>GL</CategoryCd> 
     </underlyingPolicy> 
     <underlyingPolicy ID="3"> 
      <PolicyNo>11</PolicyNo> 
      <deletedInd>N</deletedInd> 
      <VersionNbr>1</VersionNbr> 
      <selectedInd>Y</selectedInd> 
      <CategoryCd>GL</CategoryCd> 
     </underlyingPolicy>  
    </linesOfInsurance> 
</policy> 

预期O/P:

<AdaptikXML> 
    <PWResponse> 
     <ReturnCode>SUCCESS</ReturnCode> 
     <ReturnReasonCode>CHANGE</ReturnReasonCode> 
     <ReturnMessage/> 
     <PWData> 
      <policy VERSION_NO="1" MC_ID="66" ExtAction="U"> 
       <linesOfInsurance ExtAction="U"> 
        <underlyingPolicy ID="5" ExtAction="U"> 
         <PolicyNo>22</PolicyNo> 
         <VersionNbr>1</VersionNbr> 
         <selectedInd>Y</selectedInd> 
         <deletedInd>N</deletedInd> 
        </underlyingPolicy> 
        <underlyingPolicy ID="3" ExtAction="U"> 
         <PolicyNo>11</PolicyNo> 
         <VersionNbr>1</VersionNbr> 
         <selectedInd>N</selectedInd> 
         <deletedInd>Y</deletedInd> 
        </underlyingPolicy> 
       </linesOfInsurance> 
      </policy> 
     </PWData> 
    </PWResponse> 
</AdaptikXML> 

-___________________________________________________________________________________________

测试案例4 - 2个AL政策,1与2个报价版本和1 3.政策33版本1具有selectedInd = 'Y'AND deletedInd ='Y'并且策略44版本2具有selectedInd ='Y'AND deletedInd ='Y'。最终结果应该是策略33版本1和策略44版本2的selectedInd ='Y'AND deletedInd ='N'。策略33版本2和策略44版本1的selectedInd ='N'AND deletedInd ='Y'。政策44版本3个保持不变(selectedInd = 'N' AND deletedInd = 'Y')

<policy VERSION_NO="1" MC_ID="55">   
<businessGroupCdGvngOrgn>14</businessGroupCdGvngOrgn> 
     <linesOfInsurance>    
<underlyingPolicy ID="7"> 
       <PolicyNo>44</PolicyNo> 
       <deletedInd>Y</deletedInd> 
       <VersionNbr>3</VersionNbr> 
       <selectedInd>N</selectedInd> 
       <CategoryCd>AL</CategoryCd> 
      </underlyingPolicy>  
      <underlyingPolicy> 
       <PolicyNo>44</PolicyNo> 
       <deletedInd>Y</deletedInd> 
       <VersionNbr>2</VersionNbr> 
       <selectedInd>Y</selectedInd> 
       <CategoryCd>AL</CategoryCd> 
      </underlyingPolicy> 
      <underlyingPolicy ID="5"> 
       <PolicyNo>44</PolicyNo> 
       <deletedInd>N</deletedInd> 
       <VersionNbr>1</VersionNbr> 
       <selectedInd>Y</selectedInd> 
       <CategoryCd>AL</CategoryCd> 
      </underlyingPolicy>  
      <underlyingPolicy ID="4"> 
       <PolicyNo>33</PolicyNo> 
       <deletedInd>N</deletedInd> 
       <VersionNbr>2</VersionNbr> 
       <selectedInd>Y</selectedInd> 
       <CategoryCd>AL</CategoryCd> 
      </underlyingPolicy> 
      <underlyingPolicy ID="3"> 
       <PolicyNo>33</PolicyNo> 
       <deletedInd>Y</deletedInd> 
       <VersionNbr>1</VersionNbr> 
       <selectedInd>Y</selectedInd> 
       <CategoryCd>AL</CategoryCd> 
      </underlyingPolicy>  
     </linesOfInsurance> 
    </policy> 

EXPECTED O/P:

<AdaptikXML> 
    <PWResponse> 
     <ReturnCode>SUCCESS</ReturnCode> 
     <ReturnReasonCode>CHANGE</ReturnReasonCode> 
     <ReturnMessage/> 
     <PWData> 
      <policy VERSION_NO="1" MC_ID="55" ExtAction="U"> 
       <linesOfInsurance ExtAction="U"> 
        <underlyingPolicy ExtAction="U"> 
         <PolicyNo>44</PolicyNo> 
         <VersionNbr>2</VersionNbr> 
         <selectedInd>Y</selectedInd> 
         <deletedInd>N</deletedInd> 
        </underlyingPolicy> 
        <underlyingPolicy ID="5" ExtAction="U"> 
         <PolicyNo>44</PolicyNo> 
         <VersionNbr>1</VersionNbr> 
         <selectedInd>N</selectedInd> 
         <deletedInd>Y</deletedInd> 
        </underlyingPolicy> 
        <underlyingPolicy ID="4" ExtAction="U"> 
         <PolicyNo>33</PolicyNo> 
         <VersionNbr>2</VersionNbr> 
         <selectedInd>N</selectedInd> 
         <deletedInd>Y</deletedInd> 
        </underlyingPolicy> 
        <underlyingPolicy ID="3" ExtAction="U"> 
         <PolicyNo>33</PolicyNo> 
         <VersionNbr>1</VersionNbr> 
         <selectedInd>Y</selectedInd> 
         <deletedInd>N</deletedInd> 
        </underlyingPolicy>     
       </linesOfInsurance> 
      </policy> 
     </PWData> 
    </PWResponse> 
</AdaptikXML> 

测试案例5 - 最终结果应当是政策22版本1的selectedInd ='Y'AND deletedInd ='N'且策略11版本1的selectedInd ='N'AND deletedInd ='Y'。策略33版本1和策略44版本2的selectedInd ='Y'AND deletedInd ='N'。策略33版本2和策略44版本1的selectedInd ='N'AND deletedInd ='Y'。

<policy VERSION_NO="1" MC_ID="89"> 
    <businessGroupCdGvngOrgn>14</businessGroupCdGvngOrgn> 
    <linesOfInsurance> 
     <underlyingPolicy ID="10"> 
      <PolicyNo>44</PolicyNo> 
      <deletedInd>Y</deletedInd> 
      <VersionNbr>2</VersionNbr> 
      <selectedInd>Y</selectedInd> 
      <CategoryCd>AL</CategoryCd> 
     </underlyingPolicy> 
     <underlyingPolicy ID="9"> 
      <PolicyNo>44</PolicyNo> 
      <deletedInd>N</deletedInd> 
      <VersionNbr>1</VersionNbr> 
      <selectedInd>Y</selectedInd> 
      <CategoryCd>AL</CategoryCd> 
     </underlyingPolicy>  
     <underlyingPolicy ID="8"> 
      <PolicyNo>33</PolicyNo> 
      <deletedInd>N</deletedInd> 
      <VersionNbr>2</VersionNbr> 
      <selectedInd>Y</selectedInd> 
      <CategoryCd>AL</CategoryCd> 
     </underlyingPolicy> 
     <underlyingPolicy ID="7"> 
      <PolicyNo>33</PolicyNo> 
      <deletedInd>Y</deletedInd> 
      <VersionNbr>1</VersionNbr> 
      <selectedInd>Y</selectedInd> 
      <CategoryCd>AL</CategoryCd> 
     </underlyingPolicy> 
     <underlyingPolicy> 
      <PolicyNo>22</PolicyNo> 
      <deletedInd>Y</deletedInd> 
      <VersionNbr>2</VersionNbr> 
      <selectedInd>N</selectedInd> 
      <CategoryCd>GL</CategoryCd> 
     </underlyingPolicy> 
     <underlyingPolicy ID="5"> 
      <PolicyNo>22</PolicyNo> 
      <deletedInd>Y</deletedInd> 
      <VersionNbr>1</VersionNbr> 
      <selectedInd>Y</selectedInd> 
      <CategoryCd>GL</CategoryCd> 
     </underlyingPolicy>  
     <underlyingPolicy ID="4"> 
      <PolicyNo>11</PolicyNo> 
      <deletedInd>Y</deletedInd> 
      <VersionNbr>2</VersionNbr> 
      <selectedInd>N</selectedInd> 
      <CategoryCd>GL</CategoryCd> 
     </underlyingPolicy> 
     <underlyingPolicy ID="3"> 
      <PolicyNo>11</PolicyNo> 
      <deletedInd>N</deletedInd> 
      <VersionNbr>1</VersionNbr> 
      <selectedInd>Y</selectedInd> 
      <CategoryCd>GL</CategoryCd> 
     </underlyingPolicy>     
    </linesOfInsurance> 
</policy> 

预期的O/P:

<AdaptikXML> 
    <PWResponse> 
     <ReturnCode>SUCCESS</ReturnCode> 
     <ReturnReasonCode>CHANGE</ReturnReasonCode> 
     <ReturnMessage/> 
     <PWData> 
      <policy VERSION_NO="1" MC_ID="89" ExtAction="U"> 
       <linesOfInsurance ExtAction="U"> 
        <underlyingPolicy ID="5" ExtAction="U"> 
         <PolicyNo>22</PolicyNo> 
         <VersionNbr>1</VersionNbr> 
         <selectedInd>Y</selectedInd> 
         <deletedInd>N</deletedInd> 
        </underlyingPolicy> 
        <underlyingPolicy ID="3" ExtAction="U"> 
         <PolicyNo>11</PolicyNo> 
         <VersionNbr>1</VersionNbr> 
         <selectedInd>N</selectedInd> 
         <deletedInd>Y</deletedInd> 
        </underlyingPolicy> 
        <underlyingPolicy ID="10" ExtAction="U"> 
         <PolicyNo>44</PolicyNo> 
         <VersionNbr>2</VersionNbr> 
         <selectedInd>Y</selectedInd> 
         <deletedInd>N</deletedInd> 
        </underlyingPolicy> 
        <underlyingPolicy ID="9" ExtAction="U"> 
         <PolicyNo>44</PolicyNo> 
         <VersionNbr>1</VersionNbr> 
         <selectedInd>N</selectedInd> 
         <deletedInd>Y</deletedInd> 
        </underlyingPolicy> 
        <underlyingPolicy ID="8" ExtAction="U"> 
         <PolicyNo>33</PolicyNo> 
         <VersionNbr>2</VersionNbr> 
         <selectedInd>N</selectedInd> 
         <deletedInd>Y</deletedInd> 
        </underlyingPolicy> 
        <underlyingPolicy ID="7" ExtAction="U"> 
         <PolicyNo>33</PolicyNo> 
         <VersionNbr>1</VersionNbr> 
         <selectedInd>Y</selectedInd> 
         <deletedInd>N</deletedInd> 
        </underlyingPolicy>         
      </policy> 
     </PWData> 
    </PWResponse> 
</AdaptikXML> 
+0

没有进入细节,什么是输出你得到?哪种情况不起作用? –

+0

我得到第二个场景输出,但不是1和3. –

回答

0

你的样式看起来是这样做不仅仅是检查“MANYPOL”和“多”更多,但我将只关注于手头的任务.. 。

考虑使用密钥通过相关指标来查找underlyingPolicy元素

<xsl:key name="policy" 
     match="underlyingPolicy" 
     use="concat(CategoryCd, '|', selectedInd, '|', deletedInd)" /> 

然后,您可以测试是否有与像这样相同的指标两个不同的政策编号:

<xsl:when test="linesOfInsurance/underlyingPolicy 
        [PolicyNo != key('policy', concat(CategoryCd, '|', selectedInd, '|', deletedInd))/PolicyNo]"> 

这会给你你的MANYPOL结果。现在

,你可能只是做改变“不等于”一个被诱惑检查MANY“等于”

<xsl:when test="linesOfInsurance/underlyingPolicy 
        [PolicyNo = key('policy', concat(CategoryCd, '|', selectedInd, '|', deletedInd))/PolicyNo]"> 

这不会工作,虽然,因为这将与当前的underlyingPolicy匹配元素本身!取而代之的是,创建一个包括PolicyNo

<xsl:key name="policy_with_no" 
     match="underlyingPolicy" 
     use="concat(PolicyNo, '|', CategoryCd, '|', selectedInd, '|', deletedInd)" /> 

然后你可以检查是否有相同数量的多个政策,共享相同的指标,像这样第二个键:

<xsl:when test="linesOfInsurance/underlyingPolicy 
        [key('policy_with_no', concat(PolicyNo, '|',CategoryCd, '|', selectedInd, '|', deletedInd))[2]]"> 

通过使用xsl:choose ,首先对xsl:when进行评估,因此MANYPOL将始终输出,即使MANY也是如此。

试试这个XSLT

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" > 
    <xsl:output method="xml" indent="yes" /> 

    <xsl:key name="policy" match="underlyingPolicy" use="concat(CategoryCd, '|', selectedInd, '|', deletedInd)" /> 
    <xsl:key name="policy_with_no" match="underlyingPolicy" use="concat(PolicyNo, '|', CategoryCd, '|', selectedInd, '|', deletedInd)" /> 

    <xsl:template match="/policy"> 
     <PWResponse> 
      <xsl:choose> 
       <xsl:when test="linesOfInsurance/underlyingPolicy[PolicyNo != key('policy', concat(CategoryCd, '|', selectedInd, '|', deletedInd))/PolicyNo]"> 
        <ReturnCode>FAILURE</ReturnCode> 
        <ReturnReasonCode>MANYPOL</ReturnReasonCode> 
       </xsl:when> 
       <xsl:when test="linesOfInsurance/underlyingPolicy[key('policy_with_no', concat(PolicyNo, '|',CategoryCd, '|', selectedInd, '|', deletedInd))[2]]"> 
        <ReturnCode>FAILURE</ReturnCode> 
        <ReturnReasonCode>MANYPOL</ReturnReasonCode> 
       </xsl:when> 
       <xsl:otherwise> 
        <ReturnCode>SUCCESS</ReturnCode> 
        <ReturnReasonCode></ReturnReasonCode> 
       </xsl:otherwise> 
      </xsl:choose> 
     </PWResponse> 
    </xsl:template> 
</xsl:stylesheet> 
+0

非常感谢蒂姆。我了解了这个概念,还有3个案例让我感到安静,可以请你帮忙。我会增加投入和预期产出。 –

+0

如果你可以把你的问题回复到原来的样子,可能会更好,并且在你的新案例中提出一个全新的问题。谢谢。 –

+0

谢谢蒂姆,将把新的测试用例放回原位。 –