CiAgICA8IS0tIExpbmtlZEluIC0tPgogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAgIF9saW5rZWRpbl9wYXJ0bmVyX2lkID0gIjEyMzUwNzMiOwogICAgICAgIHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyA9IHdpbmRvdy5fbGlua2VkaW5fZGF0YV9wYXJ0bmVyX2lkcyB8fCBbXTsKICAgICAgICB3aW5kb3cuX2xpbmtlZGluX2RhdGFfcGFydG5lcl9pZHMucHVzaChfbGlua2VkaW5fcGFydG5lcl9pZCk7CiAgICA8L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgKGZ1bmN0aW9uKCl7dmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07CiAgICAgICAgICAgIHZhciBiID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgICAgIGIudHlwZSA9ICJ0ZXh0L2phdmFzY3JpcHQiO2IuYXN5bmMgPSB0cnVlOwogICAgICAgICAgICBiLnNyYyA9ICJodHRwczovL3NuYXAubGljZG4uY29tL2xpLmxtcy1hbmFseXRpY3MvaW5zaWdodC5taW4uanMiOwogICAgICAgICAgICBzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsIHMpO30pKCk7CiAgICA8L3NjcmlwdD4KICAgIDxub3NjcmlwdD4KICAgICAgICA8aW1nIGhlaWdodD0iMSIgd2lkdGg9IjEiIHN0eWxlPSJkaXNwbGF5Om5vbmU7IiBhbHQ9IiIgc3JjPSJodHRwczovL3B4LmFkcy5saW5rZWRpbi5jb20vY29sbGVjdC8/cGlkPTEyMzUwNzMmZm10PWdpZiIgLz4KICAgIDwvbm9zY3JpcHQ+CiAgICA8IS0tIEVuZCBMaW5rZWRJbiAtLT4KICAgIA==
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

Einbindung eines benutzerdefinierten Menüs in den DeltaMaster Teil 2

Im Blogbeitrag Einbindung eines benutzerdefinierten Menüs in den DeltaMaster Teil 1 wurde beschrieben, wie man durch Nutzung einer DLL und einiger weniger Parametertabellen ein Menü in DeltaMaster integriert, über das die Anwender die verschiedensten Aktionen ausführen können.

Aufbauend darauf wird in diesem Artikel eine genaue Beschreibung der einzelnen Menüpunkte aus der Beispielanwendung vorgenommen.

Bewegungsdaten importieren

Bei der Ausführung des Menüpunktes „Bewegungsdaten importieren“ öffnet sich ein neues Cockpit, in dem über den am oberen rechten Rand des Cockpits befindlichen Menüpunkt „Datei auswählen“ eine Importdatei gewählt werden kann.

Der Inhalt der gewählten Datei wird anschließend im Cockpit als Vorschau angezeigt. Standardmäßig werden die ersten 100 Zeilen angezeigt, die Anzahl der angezeigten Zeilen kann geändert werden.

Stimmt der Inhalt der Datei nicht mit der erwarteten Spezifikation überein, wird in der Statusleiste des Cockpits die Meldung „Dateiformat entspricht nicht der Spezifikation“ angezeigt. Ein anschließendes Starten des Imports wäre nicht möglich.

Beim Einlesen der ausgewählten Datei wird geprüft, ob die Spaltenköpfe der Datei den Namen der Übergabeparameter der zugrunde liegenden Prozedur entsprechen. Die Datei muss mindestens so viele Spalten enthalten, wie es Parameter in der Prozedur gibt. In unserem Beispiel wird beim Aufruf des Menüpunktes „Bewegungsdaten importieren“ die Prozedur P_Import_Transaction_Data aufgerufen. Diese Prozedur erwartet beim Aufruf 12 Übergabeparameter.

ALTER proc [dbo].[P_Import_Transaction_Data]
@ValueType_ID   varchar(20) = NULL,
@Customer_ID    varchar(20) = NULL,
@Color_ID       varchar(20) = NULL,
@Sales_ID       varchar(20) = NULL,
@Product_ID     varchar(20) = NULL,
@Month_ID       varchar(20) = NULL,
@Discount       varchar(20) = NULL,
@Labour         varchar(20) = NULL,
@Material       varchar(20) = NULL,
@Revenues       varchar(20) = NULL,
@SD             varchar(20) = NULL,
@Volume         varchar(20) = NULL
As

Die Spaltenköpfe der ausgewählten Datei müssen mit dem Namen der Übergabeparameter der Prozedur ohne @-Symbol übereinstimmen. Die Reihenfolge der Spalten spielt dabei keine Rolle.

Stimmt das Format mit der erwarteten Spezifikation überein, kann der Import gestartet werden. Dabei ruft der DeltaMaster für jeden einzelnen Datensatz der Importdatei die entsprechende Prozedur auf und übergibt an die Parameter die Inhalte der Spalten aus der Importdatei.

[Chair_DM_Menü].[dbo].[P_Import_Transaction_Data]
@Discount = '10,47',
@Volume = '27,3',
@SD = '9,56',
@Color_ID = 'C2',
@Material = '6,65',
@Month_ID = '200603',
@Revenues = '670,97',
@Sales_ID = 'V1',
@Product_ID = 'P11',
@Customer_ID = 'Geo1',
@ValueType_ID = 'I',
@Labour = '0'

Nach Abschluss des Importes werden in der Statusleiste die Anzahl der verarbeiteten Datensätze und die Anzahl der Fehler angezeigt. Zusätzlich werden unter dem Vorschaufenster die fehlerhaften Datensätze mit den entsprechenden Fehlermeldungen aufgeführt.

Fehlerkontrollen müssen in der aufgerufenen Prozedur vorgenommen werden. Fehlermeldungen werden von der Prozedur an DeltaMaster über den TSQL-Befehl RAISERROR übergeben.

Über den TSQL-Befehl RETURN kann die Verarbeitung des Datensatzes im Bedarfsfall abgebrochen werden.

-- ValueType
set @Count = NULL
select @Count = COUNT(*) from dbo.V_S_ValueType where ValueType_ID = @ValueType_ID
if @Count = 0
    Begin
        RAISERROR ('Wertart nicht bekannt.' ,16 ,1 )
        RETURN
End

Um den Import abzuschließen und die Daten in der Datenbank zu speichern, muss am oberen Rand des Cockpits „Daten übernehmen“ gewählt werden. Sollen die Daten nicht in der Datenbank gespeichert werden, kann „Abbrechen“ gewählt werden. Die Auswahlknöpfe stehen nur bei der Ausführung von Menüpunkten vom Subtype 1 (Dateiimport mit Transaktionssteuerung) zur Verfügung. Bei der Nutzung des Subtype 4 (Dateiimport ohne Transaktionssteuerung) werden die erfolgreich verarbeiteten Daten automatisch in der Datenbank gespeichert.

Bewegungsdaten exportieren

Bei der Ausführung des Menüpunktes „Bewegungsdaten exportieren“ werden dem Anwender im neu geöffneten Cockpit zwei Auswahlmenüs angeboten, aus denen er jeweils einen Eintrag für die Kunden- und einen Eintrag für die Monatseinschränkung wählen kann.

Welche Auswahlmenüs dem Anwender angezeigt werden, wird über die Tabelle T_SYS_DataEntryMenue_ProcParameters gesteuert. Die Befüllung der Auswahlmenüs wird über die Prozeduren P_Select_Month_Export und P_Select_Customer_Export bewerkstelligt.

ALTER proc [dbo].[P_Select_Month_Export] as
begin
select
0 as Month_ID,
'All' as Month_Name
union
select
Month_ID,
Month_Name
from
V_S_Month
End

 

ALTER proc [dbo].[P_Select_Customer_Export] as
begin
select
Customer_ID,
Customer_Name_DE
from
(select
'0' as Customer_ID,
'_All' as Customer_Name_DE
union
select
Customer_ID,
Customer_Name_DE
from
V_S_Customer) a
order by
Customer_Name_DE
end

Die Auswahl, die der Anwender getroffen hat, wird beim Ausführen an die Prozedur P_Export_Transaction_Data übergeben. In unserem Beispiel befüllt die Prozedur, unter Berücksichtigung der Monats- und Kundeneinschränkung, die Tabelle T_D_Export_Fact mit Daten.

[Chair_DM_Menü].[dbo].[P_Export_Transaction_Data]
@Customer_ID = 'Geo1',
@Month_ID = '0'

Nach erfolgreichem Export wird die Ausführung mit Ok bestätigt.

Das Cockit kann über Schließen am oberen Cockpitrand geschlossen werden. Das Ergebnis der Ausführung kann im Bericht Exporttabelle in der beigefügten Analysesitzung kontrolliert werden.

Bewegungsdaten löschen

Bei der Auswahl des Menüpunktes „Bewegungsdaten löschen“ werden dem Anwender im neu geöffneten Cockpit ebenfalls zwei Auswahlmenüs angeboten, aus denen er jeweils einen Eintrag für die Kunden- und einen Eintrag für die Monatseinschränkung wählen kann. Die Auswahl wird an die Prozedur P_Delete_Transaction_Data übergeben. Diese Prozedur löscht anschließend die Daten aus der Tabelle T_D_Fact unter Berücksichtigung der getroffenen Einschränkungen.

[Chair_DM_Menü].[dbo].[P_Delete_Transaction_Data]
@Customer_ID = 'Geo1',
@Month_ID = '0'

Die erfolgreiche Ausführung wird mit Ok bestätigt. Das Cockit kann über den Knopf Schließen am oberen Cockpitrand geschlossen werden.

Transformation starten (asynchrone Ausführung)

Bei der Auswahl des Menüpunktes „Transf. starten (asynchron)” kann anschließend im angezeigten Cockpit eine fest hinterlegte Prozedur, im gezeigten Beispiel die Prozedur P_Start_Transformation, ausgeführt werden. Die Prozedur erwartet keine Übergabeparameter und wird durch Betätigen des Knopfes Starten am oberen Rand des Cockpits gestartet. Danach erscheint ein weiteres Fenster, welches den aktuellen Status der Ausführung der Prozedur anzeigt.

Da es sich hier um eine asynchrone Ausführung handelt, ist es möglich, während der Ausführung mit DeltaMaster weiterzuarbeiten. Nach Abschluss der Ausführung der gestarteten Prozedur wird das Ergebnis im Statusfenster angezeigt.

Transformation starten (synchrone Ausführung)

Bei der Auswahl des Menüpunktes „Transf. starten (synchron)” kann anschließend im angezeigten Cockpit ebenfalls eine fest hinterlegte Prozedur gestartet werden.

Die Ausführung wird synchron durchgeführt, d.h. es sollte während der Ausführung keine weitere Aktion in DeltaMaster durchgeführt werden, da das Statuscockpit sonst geschlossen wird und keine Kontrolle über das Ergebnis stattfinden kann.

Taschenrechner starten

Bei der Auswahl des Menüpunktes „Taschenrechner starten” kann anschließend im angezeigten Cockpit der mit Windows ausgelieferte Taschenrechner über den Knopf Starten aufgerufen werden.

Die gestartete Anwendung kann entweder direkt oder über den Knopf Abbrechen am oberen Rand des angezeigten Cockpits beendet werden.

Die gezeigte Anwendung demonstriert nur exemplarisch den Einsatz benutzerdefinierter Menüs in DeltaMaster. Sicher gibt es sinnvollere Einsatzmöglichkeiten, als den Start eines Taschenrechners, denkbar wäre z.B. der Aufruf eines CRM– oder ERP-Systems.