2015-02-08 90 views
0

交集表的Siebel数据我的Siebel结构看起来像这样:检索基于使用SiebelDataBean

BusObj:基本
--BusComp:分类列表
---- BusComp:产品列表

“产品列表“是子分量到”分类列表“,它们通过交集表'S_CAT_PROD'具有链接类别列表/产品列表,其具有用于产品的CAT_ID和用于产品的PROD_ID。这允许将类别与产品进行N对N链接。

现在的问题是我已经从Java代码中检索到两个SiebelBusComp,但不知道如何利用此交集表来检索某个类别的所有产品。

有几个SiebelBusComp方法返回另一个SiebelBusComp,但我没有运气让他们工作。这些是:

getAssocBusComp() 
getMVGBusComp(java.lang.String fieldName) 
getPicklistBusComp(java.lang.String fieldName) 
parentBusComp() 

有没有人在Java中使用这种逻辑的经验?任何帮助将不胜感激,谢谢。

回答

1

我无法在Siebel中找到表S_CAT_PROD,假设它是自定义的。同样,假设您有从目录到使用此交集表正确配置的产品的M:M链接,链接本身将负责根据父类别筛选子记录。

//make variable instances 
var BO = TheApplication().GetBusObject("Base"); 
var bcCat = BO.GetBusComp("Category list"); 
var bcProd = BO.GetBusComp("Product list"); 

//search for category 

bcCat.ClearToQuery(); 
bcCat.SetSearchSpec("Id", "1-234"); 
bcCat.ExecuteQuery(True); 

// When using the ExecuteQuery method with Java Data Bean, use True for //ForwardOnly and False for ForwardBackward. 

if (bcCat.FirstRecord()) 
{ 
//the link will automatically filter and bring only those products for this //category 

    bcProd.ClearToQuery(); 
    bcProd.ExecuteQuery(True); 
} 
+0

这实际上很有用,谢谢你,我一直在为此挣扎,至少是一个弱者。 – Mordavolt 2015-02-09 16:19:02