Codeblock Onlinehilfe

TbePortalMetadata

TbePortalMetadata

Klasse, mit der dynamisch MemTables von den entsprechenden be-portal Backend-Entities erzeugt und befüllt werden.

Eigenschaften

Eigenschaft

Beschreibung

Name:C


Tag:N


Methoden

Methode

Beschreibung

CbDownloadEntityData(aEntityName:C, aBackend:C, aEntityAmountLimit: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: TbeCbAnything Object der Entity Parameter: - cEntityName: Name der Entity - cBackend: Name des be-portal Backend - nEntityAmountLimit: Obergrenze der abgerufenen Entities.

CbGetEntityMetadata(aMemTable:O):O

Liefert die zugrunde liegende Metadaten-Definition (Entity-Struktur) der mit MemTable verknüpften OData-Entity. Rückgabe: Metadaten TbeCbAnything Object Parameter: - oMemTable: MemTable aus der die Metadaten exportiert werden sollen

CbCreateMemTable(aEntityName:C, aBackend: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(aMemTable:O, aEntitySet:O)

Überträgt einen zuvor geladenen Entity-Datencontainer (z.B. Ergebnis von CbDownloadEntityData) in die Tabelle. (Ersetzt komplett die Daten der MemTable) Parameter: - oMemTable: MemTable mit passender Felddefinition - oEntitySet: TbeCbAnything Object einer Entity

CbGetProductiveScenario(aLocation:N):N

Liefert die szenario_id des Produktivszenarios (MRP) für den angegebenen Standort aus einem intern gepflegten Cache zurück. Der Cache wird beim be-Start sowie beim periodischen Verbindungstest zum be-Portal automatisch (re-)befüllt. Rückgabe: szenario_id des Produktivszenarios, oder -1 falls (noch) nicht ermittelbar (z.B. keine Verbindung zum be-Portal) Parameter: - nLocation: Standort-Nummer, für den das Produktivszenario ermittelt werden soll

Beispiel

| oForm, oPanel, oGrid, oMemTable, oDataSource, oEntityData, oEntityName, oEntity  |

oEntityName := 'ThirdPartySyncLogs',

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

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

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

      bePortalMetadata.CbWriteDataIntoMemTable(oMemTable, oEntityData),

      oEntity := bePortalMetadata.CbGetEntityMetadata(oMemTable),
      writeln(oEntity.ToString()),

      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,