Siebel排序不起作用(但它在数据库中起作用)



所以我正在处理客户请求的Siebel更改,必须测试它是否正常工作。由于我们没有权限编辑Siebel本身的某些内容,我们不得不直接转到数据库(有些记录变成只读)。

我们有一个小程序,它在视图中列出了用户的"操作"。在修改数据库中的数据之前,排序工作正常。你可以输入一条记录,然后它变成只读的。我访问了数据库并修改了测试日期,令我惊讶的是,Siebel不再对列表进行正确排序。数据库(SQL Server)按日期排序很好,但Siebel会执行以下操作。

日期排序(显示在Siebel中)

  • 2014年10月20日
  • 2014年10月25日
  • 2014年10月18日
  • 2014年10月17日
  • 2014年10月16日
  • 2014年10月15日

日期排序(显示在数据库中)

  • 2014年10月25日
  • 2014年10月20日
  • 2014年10月18日
  • 2014年10月17日
  • 2014年10月16日
  • 2014年10月15日

这不仅限于小程序本身,还限于Business Services检索的内容。我们签入了小程序和BC,但找不到任何排序规范或任何可能导致这种情况的代码。这就像Siebel中缓存了取决于日期字段的排序顺序。

有什么想法吗?

这个顺序没有任何意义。在这种情况下,我不会责怪缓存,我宁愿说Siebel是根据另一个字段/列对数据进行排序的,而不是您在小程序中更新和看到的字段/列。

通过启用SQL后台处理,您可以看到实际发生了什么,它将为执行的每一条SQL语句生成一个大日志。最简单的方法是使用专用的/开发人员/厚web客户端。您只需要在shorcut的命令行中添加/s参数。例如:

"D:SiebelClientbinsiebel.exe /c D:Siebelpublicsector.cfg /s D:sql_trace.log"

如果您没有访问专用客户端的权限,您也可以在服务器上启用后台处理。或者,如果SQL Server提供了类似于Oracle管理控制台的功能,则可以监视数据库。

使用这些方法中的任何一种,您都应该能够在访问业务组件时确定Siebel正在运行的确切SELECT。我的猜测是ORDER BY列不会是您更新的那个列。

这是哪个业务组件?是Action吗?请检查此BC的BC用户属性"所有模式排序"。如果它设置为TRUE,它将忽略您提供的任何搜索规范,按U1索引进行排序。S_EVT_ACT表(Action)的U1索引是ACTIVITY_UID,因此它将按此排序,而不是按日期排序。

相关内容

  • 没有找到相关文章

最新更新