使用SiebelDataBean基于交集表检索Siebel数据

时间:2015-02-08 16:31:06

标签: java siebel

我的Siebel结构看起来像这样:

BusObj:Base
--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 个答案:

答案 0 :(得分: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);
}