在我的BIP RTF模板中,我在参数(例如Clinic)中接收到一个字符串,在IF条件下,我必须将参数($ Clinic)与XML标记(ssRohClinicFacilityName)匹配。
现在的问题是,传入参数是一个截断的字符串,为了精确匹配,我们必须在字符串后面附加如下参数:
$Clinic + " Clinic"
由于正在从Siebel应用程序生成报告,因此Siebel方面在参数中要发送的字符数受到限制。
为了达到上述要求,我尝试了多种选择,但没有一个适合我。
到目前为止,我已经尝试过以下操作:
试图进行串联。这是按原样工作的,但是我不确定如何在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))?>
答案 0 :(得分:0)
如果您只使用通配符进行比较,我认为这对您来说会更容易。
引用: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语句中可能存在其他错误,导致输出错误。