我正在使用 Documentum 开发人员版 6.6。我运行了以下 DQL:从“dm_document”中选择“r_object_id”、“r_modify_date”、“r_version_label”、“i_position”、“object_name”,其中 FOLDER (ID('0bde75d18000cfa4')) 和“r_object_type”='dm_document' 顺序by "r_modify_date" asc, "i_position" desc
我预计:DQL 将为每个 dm_documentum 对象返回一行。我记得——我之前对这个 DQL 的请求做到了——每个文档一个鱼子。但是今天我看到:对于某些 dm_document 对象,只返回了一行;而对于其他 dm_document 对象,每个对象返回几行!如下所示:
09de75d18000d514 7/28/2011 3:41 PM 1.0,CURRENT -1,-2 Doc1 09de75d18000d515 7/28/2011 3:41 PM 1.0 -1 Doc2 ... 09de75d18000d515 7/28/2011 3:41 PM 当前 -2
换句话说,对于 09de75d18000d514,返回了一行(具有可重复的“r_version_label”和“i_position”作为数组);而对于另一个文档 09de75d18000d515,可重复属性作为单独的行返回。为什么会这样?对我来说,这看起来像一个错误——因为文档 09de75d18000d514 和 09de75d18000d515 没有本质区别;它们只是通常的 dm_document 实例,仅此而已。
而更重要的问题是:我能做什么?如果我从 DQL 中删除“"i_position" desc”,我发现问题就消失了——然后每个 dm_object 作为单行返回。但我需要这种“i_position” desc 排序来让“r_version_label”根据“i_position”的相应值排序(“r_version_label”数组的每个项目对应于“i_position”数组中包含其“位置”的项目数字”)。也许这是我的假设——Documentum 应该根据“i_position”对“r_version_label”进行排序,因为我指定了““i_position” desc”——是错误的?如果是这样,现在我看到了解决这个问题的唯一方法:
- 我使用不带“"i_position" desc”的 DQL</li>
- 我的软件(它使用 DFS)将对“r_version_label”项目本身进行排序——在 DQL 带来结果之后——使用它们来自“i_position”的索引
也许有更好的解决方案?