【问题标题】:Retrieve Siebel data based on intersection table using SiebelDataBean使用 SiebelDataBean 根据交集表检索 Siebel 数据
【发布时间】:2015-04-08 09:40:07
【问题描述】:

我的 Siebel 结构如下所示:

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 中使用过这种逻辑?任何帮助将不胜感激,谢谢。

【问题讨论】:

    标签: java siebel


    【解决方案1】:

    我在 Siebel 中找不到表 S_CAT_PROD,假设它是定制的。同样,假设您使用此交叉表正确配置了从 Catalog 到 Products 的 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);
    }
    

    【讨论】:

    • 这确实有效,非常感谢你,我一直在努力解决这个问题,至少是一个弱者。
    猜你喜欢
    • 2018-07-20
    • 2011-04-08
    • 2015-04-04
    • 2016-03-26
    • 2020-04-22
    • 2015-01-27
    • 2017-05-07
    • 1970-01-01
    • 2014-01-02
    相关资源
    最近更新 更多