OBERON API
OBERON API (Application Programming Interface) je súbor objektov, funkcií, štruktúr OBERON-u. Umožňuje prístup k všetkým účtovným údajom, ktoré sa navonok javia ako objekty. Je určené pre programátorov (aj pre úplných začiatočníkov) a servisných technikov. Pomocou OBERON API je možné pristupovať k dokladom, vykonávať rôzne úkony, ktoré nie sú priamo implementované do OBERON-u. Tým je možné rozšíriť možnosti systému podľa svojich predstáv, pričom celá databázová integrita údajov zostane zachovaná. Najčastejšie to môžu byť rôzne exporty a importy údajov, export údajov na štatistické výpočty, napojenie na ďalšie externé systémy a pod.
Bloková schéma fungovania rozhrania OBERON API
V sekcii Na stiahnutie, Pre vývojárov, OBERON API sa nachádzajú ukážky a príklady využitia OBERON API, ktoré umožňujú jednoduché oboznámenie sa s danou problematikou.
Príklad OBERON API
Imports Exa.OBERON.ApplicationEnvironment
Imports Exa.OBERON.Stock
Imports Exa.Database
Private Sub btn_Exportovat_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Exportovat.Click
'--- Oddeľovač polí v súbore
Const CONST_OddelovacPoli = "|"
'--- Deklarácia objektov
Dim tmp_AppOBERON As Exa.OBERON.Application.API.AppEngine = Nothing
Dim myEx As Exa.Basic.Exceptions.ExaException = Nothing
'--- Zakázať tlačidlo
btn_Exportovat.Enabled = False
'--- Vymazanie statusu --
txt_Status.Clear()
txt_Status.Text = "Export skladových kariet ..."
'--------------------------------------------
'--- Úvodná inicializácia aplikácie ---
'--------------------------------------------
'--- Vytvorenie objektu aplikácie OBERON
tmp_AppOBERON = New Exa.OBERON.Application.API.AppEngine()
myEx = tmp_AppOBERON.App_Initialize()
If myEx.Result = False Then
'--- Chyba spustenia
txt_Status.Text = myEx.Description
GoTo ExitSub
End If
'--------------------------------------------
'--- Nastavenie firmy ktorá sa má otvoriť ---
'--------------------------------------------
Dim tmp_CompanySettings As New CompanyOpenSettings
'--- Mód spustenia - pri tomto nastavení sa napr. neinicializujú pripojené zariadenia ako snímač čiarových kódov
tmp_CompanySettings.Application_Mode = CompanyOpenSettings.enum_Application_Mode.OBERON_Center
'--- Prihlasovacie meno do OBERON-u
tmp_CompanySettings.Application_UserName = txt_UzivatelMeno.Text
'--- Prihlasovacie heslo do OBERON-u
tmp_CompanySettings.Application_Password = txt_UzivatelHeslo.Text
'--- Typ databázy MDB, v budúcnosti aj podpora SQL serverov
tmp_CompanySettings._ConnectionSettings.DataSourceType = enm_DataSourceTypes.MicrosoftAccessOleDB_1997
'--- Databáza MDB ktorá sa má otvoriť
tmp_CompanySettings._ConnectionSettings.ConnectionString.Database = txt_Databaza.Text
'--- Otvorenie firmy
myEx = tmp_AppOBERON.Company_Open(tmp_CompanySettings)
If myEx.Result = False Then
'--- Chyba otvorenia firmy
txt_Status.Text = txt_Status.Text & vbCrLf & myEx.Description
GoTo ExitSub
End If
'-------------------------------------------------------------
'--- Firma bola úspešne otvorená - je možné začať pracovať ---
'-------------------------------------------------------------
'--- Vytvoriť objekt skladu z ktorého chceme exportovať údaje
Dim tmp_Sklad As New Exa.OBERON.Shared.Stock.Stocks.Stock(tmp_AppOBERON._AppConfiguration)
myEx = tmp_Sklad._Load(txt_Sklad.Text)
If myEx.Result = False Then
'--- Chyba otvorenia skladu /pravdepodobne chybný názov skladu/
txt_Status.Text = txt_Status.Text & vbCrLf & myEx.Description
GoTo ExitSub
End If
'--- Načítanie zoznamu skladových kariet ---
Dim tmp_SkladoveKarty_Zoznam As New StockCards.StockCard_List(tmp_AppOBERON._AppConfiguration,
----------------------------------------------------------------------------------------- StockCards.StockCard_List.enm_ListType.BaseList)
myEx = tmp_SkladoveKarty_Zoznam._LoadData(tmp_Sklad, String.Empty)
'--- String.Empty - Bolo možné vložiť aj ďalšiu podmienku, napr. "
'--- Skupina = 'nejaká skladová skupina', alebo MnozstvoZostatok <> 0"
If myEx.Result = False Then
'--- Chyba načítania skladových kariet
txt_Status.Text = txt_Status.Text & vbCrLf & myEx.Description
GoTo ExitSub
End If
'--- Skladové karty boli načítané, je možné exportovať ----
'--- Vytvoriť textovú premennú do ktorej sa budú napĺňať údaje so skladových kariet
Dim tmp_ExportovaneUdaje As New System.Text.StringBuilder
'---- Objekt jednej skladovej karty
Dim tmp_SkladovaKarta As StockCards.StockCard = Nothing
For Each e_Karta As DataRow In tmp_SkladoveKarty_Zoznam.Object_Table.DatabaseTable_Data.Rows
tmp_SkladovaKarta = Nothing
tmp_SkladovaKarta = tmp_SkladoveKarty_Zoznam.DataRecord(e_Karta)
If tmp_SkladovaKarta Is Nothing Then
'--- Chyba pri načítaní jednej skladovej karty
txt_Status.Text = txt_Status.Text &vbCrLf & myEx.Description
'--- Pokračovať v cykle - načítavať ďalšiu kartu
Continue For
End If
'------------------------------------
'--- Skladová karta bola načítaná ---
'------------------------------------
'--- Je možné pracovať s údajmi na skladovej karte
'--- Uložiť údaje do textovej premennej, ktorá sa potom zapíše do súboru
Dim tmp_Riadok As New System.Text.StringBuilder
'--- Číslo karty
tmp_Riadok.Append(tmp_SkladovaKarta.Number)
tmp_Riadok.Append(CONST_OddelovacPoli)
'--- Čiarový kód
tmp_Riadok.Append(tmp_SkladovaKarta.BarCode)
tmp_Riadok.Append(CONST_OddelovacPoli)
'--- Názov
tmp_Riadok.Append(tmp_SkladovaKarta.Name)
tmp_Riadok.Append(CONST_OddelovacPoli)
'--- Doplňujúci text
tmp_Riadok.Append(tmp_SkladovaKarta.Description_Additional)
tmp_Riadok.Append(CONST_OddelovacPoli)
'--- predajná cena 1 bez DPH
tmp_Riadok.Append(tmp_SkladovaKarta.Price1_WithoutVAT)
tmp_Riadok.Append(CONST_OddelovacPoli)
'--- predajná cena 1 s DPH
tmp_Riadok.Append(tmp_SkladovaKarta.Price1_WithVAT)
tmp_Riadok.Append(CONST_OddelovacPoli)
'--- Množstvo zostatok
tmp_Riadok.Append(tmp_SkladovaKarta.Amount)
tmp_Riadok.Append(CONST_OddelovacPoli)
'--- Merná jednotka
tmp_Riadok.Append(tmp_SkladovaKarta.Unit)
tmp_Riadok.Append(CONST_OddelovacPoli)
'--- názov pre internetový obchod
tmp_Riadok.Append(tmp_SkladovaKarta.Ishop_Name)
tmp_Riadok.Append(CONST_OddelovacPoli)
'--- popis
tmp_Riadok.Append(tmp_SkladovaKarta.Ishop_Description)
tmp_Riadok.Append(CONST_OddelovacPoli)
'--- názov súboru - malý obrázok
tmp_Riadok.Append(tmp_SkladovaKarta.Ishop_Picture_Small)
tmp_Riadok.Append(CONST_OddelovacPoli)
'--- názov súboru - veľký obrázok
tmp_Riadok.Append(tmp_SkladovaKarta.Ishop_Picture_Big)
tmp_Riadok.Append(CONST_OddelovacPoli)
'--- Je možné doplniť ďalšie polia ..........
'...
'--- Jeden riadok polí skladovej karty bol vytvorený, vložiť celý riadok do celkovej textovej premennej ---
tmp_ExportovaneUdaje.AppendLine(tmp_Riadok.ToString)
Next
'--- Všetky údaje boli načítané a vložené do textovej premennej tmp_ExportovaneUdaje
'--- Uloženie hodnôt do súboru
Dim tmp_Subor As IO.FileStream
tmp_Subor = New IO.FileStream(txt_Subor.Text, IO.FileMode.Create)
'--- Objekt pre zápis do súboru - umožňuje nastaviť aj kódovú stránku daných údajov
Dim tmp_SuborZapisovac As New IO.StreamWriter(tmp_Subor, System.Text.Encoding.Default)
'--- Zapísanie do súboru
tmp_SuborZapisovac.WriteLine(tmp_ExportovaneUdaje.ToString)
'--- Zapísanie do súboru
tmp_SuborZapisovac.Close()
tmp_Subor.Close()
ExitSub:
'--- Zatvorenie firmy ---
If tmp_AppOBERON.IsCompanyOpen = True Then
tmp_AppOBERON.Company_Close()
End If
txt_Status.Text = txt_Status.Text & vbCrLf & "Export bol ukončený ..."
'--- Povoliť tlačidlo
btn_Exportovat.Enabled = True
End Sub
Komentár k zdrojovému textu príkladu
Ak je firma otvorená, je možné vytvoriť objekt skladu (Exa.OBERON.Shared.Common.Stock.Stock), z ktorého sa majú exportovať skladové karty. Po vytvorení objektu skladu je možné vytvoriť objekt zoznamu skladových položiek (Exa.OBERON.Stock.StockCard_List), ktorý obsahuje skladové karty vybraného skladu.
Po vytvorení objektu zoznamu skladových kariet je možné v slučke prechádzať jeho zoznamom, pričom sa pri každej položke vytvára objekt jednej skladovej karty (Exa.OBERON.Stock.StockCard). V jednotlivých vlastnostiach objektu sa nachádzajú údaje danej skladovej karty, vlastnosti sú uvedené v anglickom jazyku. Angličtina môže sťažiť orientáciu medzi týmito vlastnosťami, je to však jazyk, v ktorom sme sa rozhodli realizovať API a aj celý programový kód (okrem istých výnimiek). Na lepšiu orientáciu v týchto vlastnostiach je možné využiť Debugger, v ktorom sa dajú za behu programu zobraziť už načítané údaje, a tým presne identifikovať danú vlastnosť.
Po vytvorení objektu skladovej karty sa vybrané údaje uložia do textovej premennej, ktorá po skončení cyklu obsahuje zoznam skladových kariet v textovom formáte. Na konci sa pomocou objektu .NET Framework (IO.FileStream) uloží obsah textovej premennej do súboru.
Všetky dostupné príklady k OBERON API je možné nájsť v sekcii Na stiahnutie.