使用 SiebelDataBean 根据交集 table 检索 Siebel 数据

Retrieve Siebel data based on intersection table using SiebelDataBean

我的 Siebel 结构如下所示:

BusObj:基础
--BusComp: 类别列表
----BusComp:产品列表

"Product list" 是 "Category list" 的子组件,它们通过交集 table 'S_CAT_PROD' 有一个 link 类别 list/Product 列表,类别为 CAT_ID,产品为 PROD_ID。这允许 N 对 N link 类别到产品。

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

有几个 SiebelBusComp 方法 return 另一个 SiebelBusComp,但我没有运气让它们工作。它们是:

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

有没有人在Java中使用过这种逻辑?如有任何帮助,我们将不胜感激。

我在 Siebel 中找不到 table S_CAT_PROD,假设它是定制的。同样,假设您使用此交集 table 正确配置了从目录到产品的 M:M link , link 本身将负责根据父类别过滤子记录.

//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);
}