我的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中使用这种逻辑的经验?任何帮助将不胜感激,谢谢。
答案 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);
}