在BIP RTF模板中使用参数连接字符串

时间:2018-08-17 00:08:49

标签: rtf bi-publisher

在我的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))?>

我的示例RTFXML文件。

1 个答案:

答案 0 :(得分:0)

如果您只使用通配符进行比较,我认为这对您来说会更容易。

引用:https://blogs.oracle.com/xmlpublisher/wildcards

https://www.quackit.com/xml/tutorial/xpath_string_functions.cfm

您可以搜索

starts-with(ssRohClinicFacilityName, $Clinic)

-新内容----

它可以与if函数一起使用,甚至可以不使用。这是我尝试过的:

enter image description here

这是结果。

enter image description here

<?starts-with(ssRohClinicFacilityName, $Clinic)?>

具有if条件

<?if:starts-with(ssRohClinicFacilityName, $Clinic)?> 
'MATCHED'
<?end if?>

我建议您尝试单独测试该部分,如果if语句中可能存在其他错误,导致输出错误。