2016-11-21 7 views
0

Ich versuche, eine Liste aller Firmenkonten mit SAP Business One (B1 oder BO) Datenschnittstelle API (DI API) für .NET zu bekommen.
Ein Konto wird als ChartOfAccounts SDK-Typ dargestellt.
Ich kann nicht heraus, ob es einen Weg gibt, um so etwas zu tun (es ist, wie ich die Liste der Elemente bin immer):Wie bekomme ich eine Liste aller Firmenkonten?

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

Aber es scheint, dass es zu ähnlichen keine Methode zu GetItemList() ist für Konten in SBObob Art.

Weiß jemand, wie man Liste der Unternehmenskonten erhält?

+0

Es gibt keine offensichtliche Parallele zu GetItemList() für GL-Konten, die im SDK erwähnt werden. Sie könnten ein Recordset erhalten, indem Sie direkt die OACT-Tabelle abfragen. – Daz

+0

@Daz: Danke, ich habe es genau so implementiert, wie du es vorgeschlagen hast - siehe meine Antwort unten. Es schien mir nur ein häufiger Anwendungsfall von SDK-Klassen zu sein, und ich hoffte, dass seine Klassen eine bequeme Methode enthalten könnten, um es auszuführen, ohne DB-Schema zu recherchieren und sich auf die SQL-Abfragen zu verlassen. –

Antwort

2

ich realisierte dies durch Abfragen OACT DB-Tabelle direkt für die Liste der Kontoschlüssel (AcctCode DB-Feld) einen Recordset Ansatz und dann ChartOfAccounts mit s Felder wie folgt aus ‚s GetByKey() Methode anderen ChartOfAccounts füllen‘:

  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(); 
      } 
Verwandte Themen