我遇到了BusinessObject Universum的问题以及它生成查询的方式,从而产生了结果。 以下是背景:正在运行的机制已经实施。我试图复制SAME机制只是为了提供一个不同的领域。 以下是数据模型:http://tinypic.com/r/ng524g/8 功能的机制标有蓝色。我尝试实现但运行不正常的机制标有RED颜色。
在业务层,我已经定义了一个具有聚合感知功能的维度。此函数采用第一个 VWF_Party_Collection_A.Collectionstatus_CD 列(在更高级别)。如果用户从合约级别选择属性,则函数将 VWF_Contract_Collection_A.Collectionstatus_CD 列。
问题是当我从VWD_Kunde_A表中获取所有属性并且使用所提到的聚合感知函数(即Collectionstatus_CD)添加维度时,来自BO方的构造查询没有任何意义。这是:
SELECT
D_ATA_MV_FinanceTreasury.VWF_Party_Collection_A.Collectionstatus_CD,
D_ATA_MV_FinanceTreasury.VWD_Kunde_A.Namespace_TXT,
D_ATA_MV_FinanceTreasury.VWD_Kunde_A.Party_KEY,
D_ATA_MV_FinanceTreasury.VWD_Kunde_A.Legacy_ID
FROM
D_ATA_MV_FinanceTreasury.VWD_Party_A
LEFT JOIN D_ATA_MV_FinanceTreasury.VWF_Party_Collection_A
ON D_ATA_MV_FinanceTreasury.VWD_Party_A.Party_KEY=D_ATA_MV_FinanceTreasury.VWF_Party_Collection_A.Party_KEY,
D_ATA_MV_FinanceTreasury.VWD_Kunde_A
WHERE
(
D_ATA_MV_FinanceTreasury.VWD_Party_A.Party_KEY=D_ATA_MV_FinanceTreasury.VWD_Kunde_A.Party_KEY )
AND
D_ATA_MV_FinanceTreasury.VWD_Kunde_A.Legacy_ID = 102241978
请注意'FROM'部分中的奇怪结构(已添加逗号)。另一个奇怪和意想不到的结构是'WHERE'部分:
( D_ATA_MV_FinanceTreasury.VWD_Party_A.Party_KEY=D_ATA_MV_FinanceTreasury.VWD_Kunde_A.Party_KEY )
正在运行的机制是将VWD_Kunde_A与VWF_Contract_Collection_A表连接起来,并产生正确的结果。
现在,我尝试在没有提到的仅包含VWF_Contract_Collection_A.Collectionstatus_CD属性的聚合感知函数的情况下定义维度。当我运行相同的查询时,BO产生CORRECT结果,并生成CORRECT(预期)查询。
这是我期待的查询:
SELECT
D_ATA_MV_FinanceTreasury.VWF_Contract_Collection_A.Collectionstatus_CD,
D_ATA_MV_FinanceTreasury.VWD_Kunde_A.Namespace_TXT,
D_ATA_MV_FinanceTreasury.VWD_Kunde_A.Party_KEY,
D_ATA_MV_FinanceTreasury.VWD_Kunde_A.Legacy_ID
FROM
D_ATA_MV_FinanceTreasury.VWD_Kunde_A LEFT JOIN D_ATA_MV_FinanceTreasury.VWF_Contract_Collection_A ON D_ATA_MV_FinanceTreasury.VWD_Kunde_A.Namespace_TXT = D_ATA_MV_FinanceTreasury.VWF_Contract_Collection_A.Namespace_TXT AND D_ATA_MV_FinanceTreasury.VWD_Kunde_A.Party_KEY = D_ATA_MV_FinanceTreasury.VWF_Contract_Collection_A.Party_KEY AND D_ATA_MV_FinanceTreasury.VWD_Kunde_A.Legacy_ID = D_ATA_MV_FinanceTreasury.VWF_Contract_Collection_A.Legacy_ID
WHERE
D_ATA_MV_FinanceTreasury.VWD_Kunde_A.Legacy_ID = 102241978
此外,我怀疑它可能与上下文有关。但是,我没有找到任何已经运行的机制和我试图复制的机制的上下文。因此,我没有为我要实施的机制实现任何上下文。
此时我无能为力,因为我尝试了所有我知道的事情。我很感激帮助。
谢谢! 甲
更新:似乎aggragate意识功能不起作用......这是如何定义的:
@Aggregate_Aware(D_ATA_MV_FinanceTreasury.VWF_Party_Collection_A.Collectionstatus_CD,D_ATA_MV_FinanceTreasury.VWF_Contract_Collection_A.Collectionstatus_CD)
(我刚刚复制了Kreditklasse的代码并对其进行了调整......这让我更加困惑......)
UPDATE_2:看起来好像aggragate意识不起我的情况,因为我选择了contract_context的所有属性,它仍然跳转到派对上下文。很困惑,因为当我选择Kreditklasse时,相同的机制正在按预期运作......
答案 0 :(得分:0)
检查聚合导航。
设置聚合意识需要两个步骤(当然,除了正确定义表之间的连接外):
听起来第二部分没有正确配置:确保任何需要第二个表的对象都标记为与第一部分不兼容。