在 BIP RTF 模板中连接带有参数的字符串
Concating String with parameter in BIP RTF template
在我的 BIP RTF 模板中,我在参数(比如 Clinic)中接收到一个字符串,在 IF 条件下,我必须将参数($Clinic)与 XML 标签(ssRohClinicFacilityName)相匹配。
现在的问题是,传入参数是一个截断的字符串,为了准确匹配,我们必须附加一个带有如下参数的字符串:
$Clinic + " Clinic"
由于报告是从 Siebel 应用程序生成的,因此 Siebel 方面对参数中要发送的字符数有限制。
为了达到上述要求,我尝试了多种选择,但 none 对我有用。
到目前为止我已经尝试过以下操作:
尝试进行串联。这是按原样工作的,但我不确定如何在 IF 条件下与其他现有条件一起使用它。当我尝试关注时出现错误。
= (xdoxslt:format_date($StartDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE)) 和 (xdoxslt:format_date(ssAssignmentDate, 'yyyy-mm-dd', 'mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE)))?>
我尝试使用 XSLT:Subscrting 截断 ssRohClinicFacilityName 但我需要这样的东西 xdoxslt:substring(ssRohClinicFacilityName, length(ssRohClinicFacilityName)-7, length(ssRohClinicFacilityName)) = $Clinic)
因为我只需要截断最后 07 个字符但找不到相关函数
这是我现有的 if 条件:
<?if:( xdoxslt:format_date(ssAssignmentDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE))>= (xdoxslt:format_date($StartDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE)) and (xdoxslt:format_date(ssAssignmentDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE))<= (xdoxslt:format_date($EndDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE))?>
我认为如果您只使用通配符进行比较,对您来说会更容易。
参考:https://blogs.oracle.com/xmlpublisher/wildcards
&
https://www.quackit.com/xml/tutorial/xpath_string_functions.cfm
您可以搜索
starts-with(ssRohClinicFacilityName, $Clinic)
--新内容---
可以和if函数一起使用,也可以不使用。这是我尝试过的:
这是结果。
<?starts-with(ssRohClinicFacilityName, $Clinic)?>
有 if 条件
<?if:starts-with(ssRohClinicFacilityName, $Clinic)?>
'MATCHED'
<?end if?>
我建议您尝试单独测试这部分,if 语句中可能存在其他错误导致输出不正确。
在我的 BIP RTF 模板中,我在参数(比如 Clinic)中接收到一个字符串,在 IF 条件下,我必须将参数($Clinic)与 XML 标签(ssRohClinicFacilityName)相匹配。
现在的问题是,传入参数是一个截断的字符串,为了准确匹配,我们必须附加一个带有如下参数的字符串:
$Clinic + " Clinic"
由于报告是从 Siebel 应用程序生成的,因此 Siebel 方面对参数中要发送的字符数有限制。
为了达到上述要求,我尝试了多种选择,但 none 对我有用。
到目前为止我已经尝试过以下操作:
尝试进行串联。这是按原样工作的,但我不确定如何在 IF 条件下与其他现有条件一起使用它。当我尝试关注时出现错误。
= (xdoxslt:format_date($StartDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE)) 和 (xdoxslt:format_date(ssAssignmentDate, 'yyyy-mm-dd', 'mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE)))?>我尝试使用 XSLT:Subscrting 截断 ssRohClinicFacilityName 但我需要这样的东西
xdoxslt:substring(ssRohClinicFacilityName, length(ssRohClinicFacilityName)-7, length(ssRohClinicFacilityName)) = $Clinic)
因为我只需要截断最后 07 个字符但找不到相关函数
这是我现有的 if 条件:
<?if:( xdoxslt:format_date(ssAssignmentDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE))>= (xdoxslt:format_date($StartDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE)) and (xdoxslt:format_date(ssAssignmentDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE))<= (xdoxslt:format_date($EndDate, 'yyyy-mm-dd','mm/dd/yyyy', $_XDOLOCALE, $_XDOTIMEZONE))?>
我认为如果您只使用通配符进行比较,对您来说会更容易。
参考:https://blogs.oracle.com/xmlpublisher/wildcards
& https://www.quackit.com/xml/tutorial/xpath_string_functions.cfm
您可以搜索
starts-with(ssRohClinicFacilityName, $Clinic)
--新内容---
可以和if函数一起使用,也可以不使用。这是我尝试过的:
这是结果。
<?starts-with(ssRohClinicFacilityName, $Clinic)?>
有 if 条件
<?if:starts-with(ssRohClinicFacilityName, $Clinic)?>
'MATCHED'
<?end if?>
我建议您尝试单独测试这部分,if 语句中可能存在其他错误导致输出不正确。