2016-11-21 88 views
0

我正在嘗試使用SAP Business One(B1或BO)數據接口API(DI API)爲.NET獲取所有公司帳戶的列表。
一個帳戶被表示爲ChartOfAccounts SDK的類型。
我無法弄清楚,如果有一種方法可以做這樣的事情(這是我應得的項目列表):如何獲取所有公司帳戶的列表?

var oItem = (Items) Company.GetBusinessObject(BoObjectTypes.oItems); 
    var oSBObob = (SBObob)Company.GetBusinessObject(BoObjectTypes.BoBridge); 
    var oRecordSet = oSBObob.GetItemList(); 

但似乎有類似的都沒法GetItemList()爲賬戶爲SBObob類型。

有誰知道如何獲取公司帳戶列表?

+0

SDK中提到的GL帳戶沒有明顯的並行GetItemList()。您可以通過直接查詢OACT表獲得記錄集。 – Daz

+0

@Daz:謝謝,我確實按照您的建議實施了它 - 請參閱下面的答案。在我看來,就像是一個經常使用SDK類的例子,我希望它的類可以包含一個方便的方法來執行它,而不需要研究數據庫模式並依賴SQL查詢。 –

回答

2

我實現此使用Recordset方法通過直接查詢OACT DB表帳戶鍵(AcctCode DB字段)的列表,然後使用ChartOfAccountsGetByKey()方法來填充其他ChartOfAccounts的字段是這樣的:

  var sapAccount = (ChartOfAccounts)Company.GetBusinessObject(BoObjectTypes.oChartOfAccounts); 
      var oRecordSet = (Recordset)company.GetBusinessObject(BoObjectTypes.BoRecordset); 
      oRecordSet.DoQuery("SELECT AcctCode FROM OACT"); 

      while (!oRecordSet.EoF) 
      { 
       var key = oRecordSet.Fields.Item(0).Value.ToString(); 
       sapAccount.GetByKey(key) 

       // Now sapAccount is filled with current account data - do something with its fields 

       oRecordSet.MoveNext(); 
      } 
相關問題