2015-02-08 87 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