Skip to main content
Skip table of contents

TbengMetadata

bengMetadata

Initiale Implementierung einer Klasse, mit der dynamisch MemTables von den entsprechenden be-portal Backend-Entities erzeugt werden können.

Funktionen und Methoden

Funktionen und Methoden

Beschreibung

CbDownloadEntityData(cEntityName:C, cBackend:C, nEntityAmountLimit:N):O

Lädt die Datensätze der Entity (max. Limit) vom Backend, erweitert Navigationsreferenzen auf Schlüssel-Ebene und liefert den JSON/Anything-Container zurück.

Rückgabe: TbeAnything Object der Entity

Parameter:

  • cEntityName: Name der Entity

  • cBackend: Name des be-portal Backend

  • nEntityAmountLimit: Obergrenze der abgerufenen Entities.

CbGetEntities(oMemTable:O):O

Liefert die zugrunde liegende Metadaten-Definition (Entity-Struktur) der mit MemTable verknüpften OData-Entity.

Rückgabe: TbeAnything Object der Entity

Parameter:

  • oMemTable: MemTable aus der die Entities exportiert werden sollen

CbCreateMemTable(cEntityName:C, cBackend:C):O

Erzeugt zur angegebenen OData-Entity eine leere, geöffnete TBeMemTable mit passenden Felddefinitionen (inkl. Auflösung einfacher Referenzen/Enums).

Rückgabe: TBeMemTable Object

Parameter:

  • cEntityName: Name der Entity

  • cBackend: Name des be-portal Backend

CbWriteDataIntoMemTable(oMemTable:O, oEntitySet:O)

Überträgt einen zuvor geladenen Entity-Datencontainer (z.B. Ergebnis von CbDownloadEntityData) in die Tabelle.

Parameter:

  • oMemTable: MemTable mit passender Felddefinition

  • oEntitySet: TbeAnything Object einer Entity

Konstanten

Konstanten

Beschreibung

bengMetadata

Globale instanz der TbengMetadata Klasse

backend_beng

'OData.Beng'

backend_mrp

'OData.MRP'

Beispiel

CODE
| oForm, oPanel, oGrid, oMemTable, oDataSource, oEntityData:O, oEntityName  |

oEntityName := 'ThirdPartySyncLogs',

startseq
   startseq
      oForm          := CreateObject('TFormEx'),
      oForm.OrigCapt := 'Test Tabelle für bengMetadata',
      oForm.Position := POSCREENCENTER,
      oForm.Width    := 2000,
      oForm.Height   := 600,

      oPanel            := CreateObject('TPanel', 'PanelLeft', oForm, oForm),
      oPanel.Align      := alRight,
      oPanel.Caption    := '',
      oPanel.BevelOuter := bvNone,

      oMemTable   := bengMetadata.CbCreateMemTable(oEntityName, backend_beng),
      oEntityData := bengMetadata.CbDownloadEntityData(oEntityName, backend_beng, 100),
      writeln(oEntityData.ToString()),

      bengMetadata.CbWriteDataIntoMemTable(oMemTable, oEntityData),

      oDataSource := CreateObject('TDataSourceEx', 'DataSource', oForm, oForm),
      oDataSource.DataSet := oMemTable,

      oGrid := CreateObject('TbeCbGrid', 'grd', oForm, oForm),
      oGrid.Align := alClient,
      oGrid.CbInitForDatasource(oDataSource),

      ShowModal(oForm),
   onerror,
      writeln(GetErrorText()),
   stopseq,
always,
   DestroyObject(oMemTable),
   DestroyObject(oEntityData),
   DestroyObject(oForm),
stopseq,
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.