Technik:Abo-System: Unterschied zwischen den Versionen
Admin (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (27 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
==Voraussetzungen== | ==Voraussetzungen== | ||
Das ''xp_cmdshell''-Feature für den SQL Server muss aktiviert werden, damit die [[Allgemeine Module:Abonnement Manager|Abonnements]] ausgeführt werden können (Weitere Informationen dazu finden Sie [[Technik:Microsoft_SQL_Server#Wichtige_URLs|hier]]). | |||
: | |||
Sofern Sie Abos von SQL Server Reporting Services Berichten erstellen wollen, muss der Benutzer des von xp_cmdshell erzeugten Prozesses am Berichtsserver der Berichts-Generator- und Browser- oder der Inhaltsmanager-Rolle angehören. | |||
Des Weiteren muss der | Des Weiteren muss der SQL Server-Agent Dienst gestartet sein. | ||
Der Benutzer, unter dem der SQL Server Agent ausgeführt wird benötigt die folgenden Rechte: | |||
:* Er muss die AboExecutor.exe ausführen können | |||
:* Bei Emailversand braucht der Benutzer die Rechte auf das angegebene Konto am SMTP, dass er Emails versenden darf | |||
Für den Abo-Executor müssen die [[Technik:Konfigurationsdateien|Konfigurationsdateien]] ''„[[Technik:CoPlanner_Win-Client#ClientConfig.xml|ClientConfig.xml]]''„ und ''„ClientSettings.dat“'' (z.B. aus dem Clientverzeichnis kopieren) zur Verfügung gestellt werden. | |||
In der AboExecutor.exe.config muss zumindest das PowerUser Passwort ergänzt werden. | |||
{ | |||
{{Hinweis|Text=Das Abo-System für Sql Server Reporting Services ist nur für Berichte geeignet, die mit der CoPlanner Reporting Services Integration auf reine CoPlanner-Daten zugreifen. Der Zugriff über [[Framework:Eingabemaske,_Analysesicht|Analysesichten]] auf Olap-Würfel wird aus technischen Gründen nicht unterstützt, da das Abo-System üblicherweise mit einem Serviceaccount ausgeführt wird und der Olap-Zugriff nur mit SSPI möglich ist.}} | |||
| | |||
{ | {{Hinweis|Text=Bei der Verwendung des Abo-Systems mit Berichten der Sql Server Reporting Services ist auf die Anmeldeinformationen für die Datenquelle zu achten. Die volle Funktionalität (Berechtigungen für die Benutzer) ist nur dann gegeben, wenn für die Anmeldeinformationen der Modus zur Eingabe der ''Anmeldeinformationen auffordern'' eingestellt ist. Bei ''Windows Authentifizierung'' wird das [[Allgemeine Module:Abonnement_Manager|Abonnement]] immer im Kontext von ''xp_cmdshell'' ausgeführt.}} | ||
| | |||
==AboExecutor.exe.config== | ==AboExecutor.exe.config== | ||
In der Datei "AboExecutor.exe.config" im Verzeichnis "\server\AboExecutor" wird der E-Mail Versand konfiguriert. | In der Datei "AboExecutor.exe.config" im Verzeichnis "\server\AboExecutor" wird der E-Mail Versand konfiguriert. Folgende Einträge sind zu beachten: | ||
Folgende Einträge sind zu beachten: | |||
<font color="#0000ff"><?</font><font color="#3a3aff">xml </font><font color="#ff0000">version</font><font color="black">=</font><font color="#000000">"</font><font color="#803aff">1.0</font><font color="#000000">"</font> <font color="#ff0000">encoding</font><font color="#0000ff">=</font><font color="#000000">"</font><font color="#803aff">utf-16</font><font color="#000000">"</font> <font color="#ff0000">standalone</font><font color="#0000ff">=</font><font color="#000000">"</font><font color="#803aff">yes</font><font color="#000000">"</font><font color="#0000ff">?></font> | |||
<font color="#0000ff"><</font><font color="#3a3aff">configuration</font><font color="#0000ff">></font> | |||
<font color="#0000ff"> <</font><font color="#3a3aff">appSettings</font><font color="#0000ff">></font> | |||
<font color="#0000ff"> <</font><font color="#3a3aff">add </font><font color="#ff0000">key</font><font color="#0000ff">=</font><font color="803aff">"abo" </font><font color="ff0000">value</font><font color="black">=</font><font color="803aff">"633964077278817699"</font><font color="#0000ff">/></font> | |||
<font color="#0000ff"> <</font><font color="#3a3aff">add </font><font color="#ff0000">key</font><font color="#0000ff">=</font><font color="803aff">"user" </font><font color="ff0000">value</font><font color="black">=</font><font color="803aff">"PowerUser"</font><font color="#0000ff">/></font> | |||
<font color="#0000ff"> <</font><font color="#3a3aff">add </font><font color="#ff0000">key</font><font color="#0000ff">=</font><font color="803aff">"pass" </font><font color="ff0000">value</font><font color="black">=</font><font color="803aff">"UserPasswort"</font><font color="#0000ff">/></font> | |||
<font color="#0000ff"> <</font><font color="#3a3aff">add </font><font color="#ff0000">key</font><font color="#0000ff">=</font><font color="803aff">"maxAttachmentSizeInKB"</font><font color="ff0000">value</font><font color="black">=</font><font color="803aff">"1000"</font><font color="#0000ff">/></font> | |||
<font color="#0000ff"><</font><font color="#3a3aff">/appSettings</font><font color="#0000ff">></font> | |||
<font color="#0000ff"> <</font><font color="#3a3aff">system.net</font><font color="#0000ff">></font> | |||
<font color="#0000ff"> <</font><font color="#3a3aff">mailSettings</font><font color="#0000ff">></font> | |||
<font color="#0000ff"> <</font><font color="#3a3aff">smtp </font><font color="#ff0000">deliveryMethod</font><font color="#0000ff">=</font><font color="#000000">"</font><font color="#803aff">Network</font><font color="#000000">"</font> <font color="#ff0000">from</font><font color="#0000ff">=</font><font color="#000000">"</font><font color="#803aff">aboexecutor@coplanner.com</font><font color="#000000">"</font><font color="#0000ff">></font> | |||
<font color="#0000ff"> <</font><font color="#3a3aff">network</font> | |||
<font color="#ff0000"> host</font><font color="#0000ff">=</font><font color="#000000">"</font><font color="#803aff">psad001.graz.coplanner.com</font><font color="#000000">"</font> | |||
<font color="#ff0000"> port</font><font color="#0000ff">=</font><font color="#000000">"</font><font color="#803aff">25</font><font color="#000000">"</font> | |||
<font color="#ff0000"> defaultCredentials</font><font color="#0000ff">=</font><font color="#000000">"</font><font color="#803aff">true</font><font color="#000000">"</font> | |||
<font color="#0000ff"> /></font> | |||
<font color="#0000ff"> </</font><font color="#3a3aff">smtp</font><font color="#0000ff">></font> | |||
<font color="#0000ff"> </</font><font color="#3a3aff">mailSettings</font><font color="#0000ff">></font> | |||
<font color="#0000ff"> </</font><font color="#3a3aff">system.net</font><font color="#0000ff">></font> | |||
<font color="#0000ff"></</font><font color="#3a3aff">configuration</font><font color="#0000ff">></font> | |||
Das '''abo'''-Attribut kann vernachlässigt werden, da das durch den Job für das Abo entsprechend gesetzt wird. | |||
Gültige Einträge für das '''user'''-Attribut sind der PowerUser, Partner oder Hersteller. | |||
Bei dem pass-Attribut muss das entsprechende Passwort für den User eingetragen werden. | |||
'''maxAttachmentSizeInKB''': Die maximale Attachment-Größe bei E-Mail Versand in kB, wenn "0" oder nicht vorhanden, dann unlimitiert. | |||
Das '''deliveryMethod'''-Attribut gibt die Übermittlungsmethode für E-Mails an. Zulässige Werte sind "network", "pickupDirectoryFromIis" und "specifiedPickupDirectory". | |||
Das '''from'''-Attribut gibt die Absenderadresse für E-Mails an. | |||
Das '''specifiedPickupDirectory'''-Attribut legt das Verzeichnis fest, in dem Anwendungen E-Mail-Nachrichten zur späteren Verarbeitung mit dem SMTP-Server speichern. Im Beispiel ist "c:\temp\pickup" als E-Mail-Pickup-Verzeichnis angegeben. | |||
Das '''network'''-Attribut konfiguriert die Netzwerkoptionen für einen externen SMTP-Server. | |||
{{Hinweis|Text=Sofern bei der Aufsetzung des Database-Mails ein User eingetragen und somit nicht das Häkchen "anonymous authentication" gesetzt wurde, muss in der AboManager-config der selbe Benutzer hinterlegt werden. Die zu verwendende Syntax kann diesem Link entnommen werden: [https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/network/network-element-network-settings network-settings]|Kategorie=Wichtig!}} | |||
==Architektur (Customizing)== | ==Architektur (Customizing)== | ||
Für jedes im CoPlanner-Client angelegte Abonnement wird vom CoPlanner-Server ein Auftrag im SQL Server Agent erzeugt. Der Auftrag besteht aus einem einzigen T-SQL-Schritt, der die gespeicherte Prozeder ''dbo.ExecReportAbo'' mit der ''COPSYS_ID'' des Abonnements aufruft. | Für jedes im CoPlanner-Client angelegte [[Allgemeine Module:Abonnement Manager|Abonnement]] wird vom [[Technik:CoPlanner-Server|CoPlanner Server]] ein Auftrag im SQL Server Agent erzeugt. Der Auftrag besteht aus einem einzigen T-SQL-Schritt, der die gespeicherte Prozeder ''dbo.ExecReportAbo'' mit der ''COPSYS_ID'' des [[Allgemeine Module:Abonnement_Manager|Abonnements]] aufruft. | ||
Der Auftrag wird laut Zeitplan ausgeführt, kann aber auch manuell im CoPlanner-Client angestoßen werden. | Der Auftrag wird laut Zeitplan ausgeführt, kann aber auch manuell im CoPlanner-Client angestoßen werden. | ||
| Zeile 44: | Zeile 75: | ||
:*Ermitteln des Pfades zum Abo-Executor | :*Ermitteln des Pfades zum Abo-Executor | ||
In einer Standardkonfiguration befindet sich der Abo-Executor AboExecutor.exe im Unterverzeichnis AboExecutor im CoPlanner-Server-Verzeichnis. | In einer Standardkonfiguration befindet sich der Abo-Executor AboExecutor.exe im Unterverzeichnis AboExecutor im [[Technik:CoPlanner-Server|CoPlanner Server]]-Verzeichnis. | ||
:*Ermitteln des Pfades zur Konfigurationsdatei ''„[[Technik:CoPlanner_Win-Client#ClientConfig.xml|ClientConfig.xml]]“'' | :*Ermitteln des Pfades zur [[Technik:Konfigurationsdateien|Konfigurationsdatei]] ''„[[Technik:CoPlanner_Win-Client#ClientConfig.xml|ClientConfig.xml]]“'' | ||
In einer Standardkonfiguration befindet sich diese im Abo-Executor-Verzeichnis. | In einer Standardkonfiguration befindet sich diese im Abo-Executor-Verzeichnis. | ||
:*Festlegen des Benutzernamens und Passworts für den CoPlanner-Benutzer, mit dem sich der Abo-Executor zum CoPlanner-Server verbindet | :*Festlegen des Benutzernamens und Passworts für den CoPlanner-Benutzer, mit dem sich der Abo-Executor zum [[Technik:CoPlanner-Server|CoPlanner Server]] verbindet | ||
In einer Standardkonfiguration wird der [[Framework:Entwicklermodus#PowerUser|PowerUser]] mit einem leeren Passwort verwendet. Der Abo-Executor funktioniert nur mit den Benutzern [[Framework:Entwicklermodus#PowerUser|PowerUser]], [[Framework:Entwicklermodus#Partner|Partner]] und [[Framework:Entwicklermodus#Hersteller|Hersteller]]. | In einer Standardkonfiguration wird der [[Framework:Entwicklermodus#PowerUser|PowerUser]] mit einem leeren Passwort verwendet. Der Abo-Executor funktioniert nur mit den Benutzern [[Framework:Entwicklermodus#PowerUser|PowerUser]], [[Framework:Entwicklermodus#Partner|Partner]] und [[Framework:Entwicklermodus#Hersteller|Hersteller]]. | ||
| Zeile 56: | Zeile 87: | ||
In einer Standardkonfiguration werden keine sonstigen Parameter übergeben. | In einer Standardkonfiguration werden keine sonstigen Parameter übergeben. | ||
Mit der ID des Abonnements und diesen Parametern wird die gespeicherte Prozedur ''dbo.ExecReportAboInternal'' aufgerufen. | Mit der ID des [[Allgemeine Module:Abonnement_Manager|Abonnements]] und diesen Parametern wird die gespeicherte Prozedur ''dbo.ExecReportAboInternal'' aufgerufen. | ||
{{Hinweis|Text=Diese Prozedur muss angepasst werden, wenn Applikations- und SQL-Server auf unterschiedlichen Servern laufen.|Kategorie=Wichtig!}} | |||
===dbo.ExecReportAboInternal=== | ===dbo.ExecReportAboInternal=== | ||
| Zeile 62: | Zeile 95: | ||
===Logging=== | ===Logging=== | ||
Jede Abonnement-Ausführung (automatisch und manuell) wird in den Tabellen | Jede [[Allgemeine Module:Abonnement Manager|Abonnement]]-Ausführung (automatisch und manuell) wird in den Tabellen | ||
:*''dbo.tb_ExecReportAboLog'' | :*''dbo.tb_ExecReportAboLog'' | ||
| Zeile 69: | Zeile 102: | ||
mit protokolliert. Die Tabellen enthalten für jedes Abonnement das Ergebnis der letzten Ausführung. | mit protokolliert. Die Tabellen enthalten für jedes Abonnement das Ergebnis der letzten Ausführung. | ||
{| | {| class="wikitable" width={{{breite|100%}}} | ||
|- | |- | ||
!width="200pt" |Spalte | |||
!Beschreibung | |||
|- | |- | ||
|AboId | |AboId | ||
|ID des Abonnements | |ID des [[Allgemeine Module:Abonnement Manager|Abonnements]] | ||
|- | |- | ||
|AboName | |AboName | ||
|Name des Abonnements | |Name des [[Allgemeine Module:Abonnement Manager|Abonnements]] | ||
|- | |- | ||
|ExecTime | |ExecTime | ||
| Zeile 85: | Zeile 118: | ||
{| | {| class="wikitable" width={{{breite|100%}}} | ||
|- | |- | ||
!width="200pt" |Spalte | |||
!Beschreibung | |||
|- | |- | ||
|AboId | |AboId | ||
|ID des Abonnements | |ID des [[Allgemeine Module:Abonnement Manager|Abonnements]] | ||
|- | |- | ||
|LineNr | |LineNr | ||
| Zeile 100: | Zeile 133: | ||
{| | {| class="wikitable" width={{{breite|100%}}} | ||
|- | |- | ||
! MsgTyp | |||
! Beschreibung | |||
|- | |- | ||
| Kein Typ | | Kein Typ | ||
| Zeile 125: | Zeile 158: | ||
''Variable'':=''Wert'' | ''Variable'':=''Wert'' | ||
Derzeit ist nur die Variable AboName definiert, die den Namen des Abonnements liefert. | Derzeit ist nur die Variable AboName definiert, die den Namen des [[Allgemeine Module:Abonnement Manager|Abonnements]] liefert. | ||
|} | |} | ||
Aktuelle Version vom 6. August 2024, 13:08 Uhr
Voraussetzungen
Das xp_cmdshell-Feature für den SQL Server muss aktiviert werden, damit die Abonnements ausgeführt werden können (Weitere Informationen dazu finden Sie hier).
Sofern Sie Abos von SQL Server Reporting Services Berichten erstellen wollen, muss der Benutzer des von xp_cmdshell erzeugten Prozesses am Berichtsserver der Berichts-Generator- und Browser- oder der Inhaltsmanager-Rolle angehören.
Des Weiteren muss der SQL Server-Agent Dienst gestartet sein.
Der Benutzer, unter dem der SQL Server Agent ausgeführt wird benötigt die folgenden Rechte:
- Er muss die AboExecutor.exe ausführen können
- Bei Emailversand braucht der Benutzer die Rechte auf das angegebene Konto am SMTP, dass er Emails versenden darf
Für den Abo-Executor müssen die Konfigurationsdateien „ClientConfig.xml„ und „ClientSettings.dat“ (z.B. aus dem Clientverzeichnis kopieren) zur Verfügung gestellt werden.
In der AboExecutor.exe.config muss zumindest das PowerUser Passwort ergänzt werden.
| Hinweis Das Abo-System für Sql Server Reporting Services ist nur für Berichte geeignet, die mit der CoPlanner Reporting Services Integration auf reine CoPlanner-Daten zugreifen. Der Zugriff über Analysesichten auf Olap-Würfel wird aus technischen Gründen nicht unterstützt, da das Abo-System üblicherweise mit einem Serviceaccount ausgeführt wird und der Olap-Zugriff nur mit SSPI möglich ist. |
| Hinweis Bei der Verwendung des Abo-Systems mit Berichten der Sql Server Reporting Services ist auf die Anmeldeinformationen für die Datenquelle zu achten. Die volle Funktionalität (Berechtigungen für die Benutzer) ist nur dann gegeben, wenn für die Anmeldeinformationen der Modus zur Eingabe der Anmeldeinformationen auffordern eingestellt ist. Bei Windows Authentifizierung wird das Abonnement immer im Kontext von xp_cmdshell ausgeführt. |
AboExecutor.exe.config
In der Datei "AboExecutor.exe.config" im Verzeichnis "\server\AboExecutor" wird der E-Mail Versand konfiguriert. Folgende Einträge sind zu beachten:
<?xml version="1.0" encoding="utf-16" standalone="yes"?>
<configuration>
<appSettings>
<add key="abo" value="633964077278817699"/>
<add key="user" value="PowerUser"/>
<add key="pass" value="UserPasswort"/>
<add key="maxAttachmentSizeInKB"value="1000"/>
</appSettings>
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="aboexecutor@coplanner.com">
<network
host="psad001.graz.coplanner.com"
port="25"
defaultCredentials="true"
/>
</smtp>
</mailSettings>
</system.net>
</configuration>
Das abo-Attribut kann vernachlässigt werden, da das durch den Job für das Abo entsprechend gesetzt wird.
Gültige Einträge für das user-Attribut sind der PowerUser, Partner oder Hersteller.
Bei dem pass-Attribut muss das entsprechende Passwort für den User eingetragen werden.
maxAttachmentSizeInKB: Die maximale Attachment-Größe bei E-Mail Versand in kB, wenn "0" oder nicht vorhanden, dann unlimitiert.
Das deliveryMethod-Attribut gibt die Übermittlungsmethode für E-Mails an. Zulässige Werte sind "network", "pickupDirectoryFromIis" und "specifiedPickupDirectory".
Das from-Attribut gibt die Absenderadresse für E-Mails an.
Das specifiedPickupDirectory-Attribut legt das Verzeichnis fest, in dem Anwendungen E-Mail-Nachrichten zur späteren Verarbeitung mit dem SMTP-Server speichern. Im Beispiel ist "c:\temp\pickup" als E-Mail-Pickup-Verzeichnis angegeben.
Das network-Attribut konfiguriert die Netzwerkoptionen für einen externen SMTP-Server.
| Wichtig! Sofern bei der Aufsetzung des Database-Mails ein User eingetragen und somit nicht das Häkchen "anonymous authentication" gesetzt wurde, muss in der AboManager-config der selbe Benutzer hinterlegt werden. Die zu verwendende Syntax kann diesem Link entnommen werden: network-settings |
Architektur (Customizing)
Für jedes im CoPlanner-Client angelegte Abonnement wird vom CoPlanner Server ein Auftrag im SQL Server Agent erzeugt. Der Auftrag besteht aus einem einzigen T-SQL-Schritt, der die gespeicherte Prozeder dbo.ExecReportAbo mit der COPSYS_ID des Abonnements aufruft.
Der Auftrag wird laut Zeitplan ausgeführt, kann aber auch manuell im CoPlanner-Client angestoßen werden.
dbo.ExecReportAbo
Diese gespeicherte Prozedur wird aus dem SQL Server Agent-Auftrag aufgerufen. Diese – und nur diese – Prozedur darf bei Bedarf angepasst werden. Die Aufgaben von dbo.ExecReportAbo sind:
- Ermitteln des Pfades zum Abo-Executor
In einer Standardkonfiguration befindet sich der Abo-Executor AboExecutor.exe im Unterverzeichnis AboExecutor im CoPlanner Server-Verzeichnis.
- Ermitteln des Pfades zur Konfigurationsdatei „ClientConfig.xml“
In einer Standardkonfiguration befindet sich diese im Abo-Executor-Verzeichnis.
- Festlegen des Benutzernamens und Passworts für den CoPlanner-Benutzer, mit dem sich der Abo-Executor zum CoPlanner Server verbindet
In einer Standardkonfiguration wird der PowerUser mit einem leeren Passwort verwendet. Der Abo-Executor funktioniert nur mit den Benutzern PowerUser, Partner und Hersteller.
- Festlegen weiterer Parameter für den Abo-Executor
In einer Standardkonfiguration werden keine sonstigen Parameter übergeben.
Mit der ID des Abonnements und diesen Parametern wird die gespeicherte Prozedur dbo.ExecReportAboInternal aufgerufen.
| Wichtig! Diese Prozedur muss angepasst werden, wenn Applikations- und SQL-Server auf unterschiedlichen Servern laufen. |
dbo.ExecReportAboInternal
Diese gespeicherte Prozedur darf nicht angepasst werden bzw. kann durch ein CopVersion überschrieben werden. Sie erstellt die Kommandozeile für den Abo-Executor, ruft diesen per xp_cmdshell auf und schreibt die Log-Tabellen.
Logging
Jede Abonnement-Ausführung (automatisch und manuell) wird in den Tabellen
- dbo.tb_ExecReportAboLog
- dbo.tb_ExecReportAboLogMsg
mit protokolliert. Die Tabellen enthalten für jedes Abonnement das Ergebnis der letzten Ausführung.
| Spalte | Beschreibung |
|---|---|
| AboId | ID des Abonnements |
| AboName | Name des Abonnements |
| ExecTime | Zeitpunkt der Ausführung (bzw. wann wurde der Log-Datensatz erstellt) |
| Spalte | Beschreibung | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| AboId | ID des Abonnements | ||||||||||
| LineNr | Zeilennummer der Ausgabe | ||||||||||
| MsgTyp | Typ der Zeile
| ||||||||||
| MsgLine | Text der Zeile
Die Spalte MsgLine hat in diesen Zeilen immer den Aufbau Variable:=Wert Derzeit ist nur die Variable AboName definiert, die den Namen des Abonnements liefert. |