PANTHEON™ Help

 Toc
 PANTHEON Hilfe - Willkommen
[Reduzieren]PANTHEON
 [Reduzieren]Leitfäden für PANTHEON
  [Vergrößern]Leitfaden für PANTHEON
  [Vergrößern]Leitfaden für PANTHEON Einzelhandel
  [Vergrößern]Leitfaden für PANTHEON Vet
  [Vergrößern]Leitfaden für PANTHEON Farming
 [Reduzieren]Benutzerhandbücher für PANTHEON
  [Reduzieren]Benutzerhandbuch für PANTHEON
   [Reduzieren]Erste Schritte
     Erste Schritte mit PANTHEON
    [Vergrößern]PANTHEON Installation
    [Vergrößern]PANTHEON Grundlagen
    [Reduzieren]PANTHEON-Systemdaten
     [Vergrößern]PANTHEON Systemdaten
     [Reduzieren]MS SQL-Server
       Herunterladen und installieren Sie MS SQL Server
       Aktualisierung des SQL Servers auf die neuere Version
       MS Management Studio - Herunterladen und installieren
       Datenbank auf SQL-Server wiederherstellen
       Benutzer auf Serverebene hinzufügen (AddUser_PAX)
       SQL für den externen Zugriff installieren
       Installation von PANTHEON-Clients
      [Vergrößern]MS SQL Server Sicherheit
      [Vergrößern]Nützliche SQL-Abfragen
       SQLAusführen
      [Reduzieren]SQL-Server-Arbeitsstellen
       [Vergrößern]Bestand aktual.
        E-Mail-Erinnerungen für überfällige Forderungen
        DB-Wartungsplan
     [Vergrößern]Microsoft Windows-Dienstprogramme
     [Vergrößern]Sicherheitspolitik
     [Vergrößern]Datenbankverwaltung
    [Vergrößern]PANTHEON Sicherheit
    [Vergrößern]Verwendung von PANTHEON bei Tecta, einem fiktiven Unternehmen
    [Vergrößern]Häufig gestellte Fragen zu Pantheon (F.A.Q.)
   [Vergrößern]Benutzerhandbuch für ePoslovanje
   [Vergrößern]Einstellungen
   [Vergrößern]Bestellungen
   [Vergrößern]Waren
   [Vergrößern]Herstellung
   [Vergrößern]Service
   [Vergrößern]Hilfe
   [Vergrößern]Personal
   [Vergrößern]Finanzen
   [Vergrößern]Analytik
  [Vergrößern]Benutzerhandbuch für PANTHEON Einzelhandel
  [Vergrößern]Benutzerhandbuch für PANTHEON Vet
  [Vergrößern]Benutzerhandbuch für PANTHEON Farming
[Reduzieren]PANTHEON Web
 [Reduzieren]Leitfäden für PANTHEON Web
  [Vergrößern]Leitfaden für PANTHEON Web Light
  [Vergrößern]Leitfaden für PANTHEON Web Terminal
  [Vergrößern]Leitfaden für PANTHEON-Web Recht
 [Reduzieren]Benutzerhandbücher für PANTHEON Web
  [Vergrößern]Erste Schritte PANTHEON Web
  [Vergrößern]Benutzerhandbuch für PANTHEON Web Light
  [Vergrößern]Benutzerhandbuch für das PANTHEON Web-Terminal
  [Vergrößern]Benutzerhandbuch für PANTHEON Web Legal
[Reduzieren]PANTHEON Granulate
 [Reduzieren]Leitfäden für PANTHEON Granulate
  [Vergrößern]Granula Kadri
  [Vergrößern]Granula Reiseaufträge
  [Vergrößern]Granula Dokumente und Aufgaben
  [Vergrößern]Dashboard Granule
  [Vergrößern]B2B-Bestellungen Granulat
  [Vergrößern]Feldservice-Granulat
  [Vergrößern]Granula Inventura osnovnih sredstev
  [Vergrößern]Granula Inventura des Warenlagers
 [Reduzieren]Benutzerhandbücher für PANTHEON Granulate
  [Vergrößern]Erste Schritte
  [Vergrößern]Personalgranulat
  [Vergrößern]Reiseaufträge Granulat
  [Vergrößern]Granula Dokumenti
  [Vergrößern]B2B-Bestellungen Granulat
  [Vergrößern]Dashboard Granule
  [Vergrößern]Feldservice-Granulat
  [Vergrößern]Bestandsgranulat für Anlagevermögen
  [Vergrößern]Lagereinlagerung Granulat
[Vergrößern]Benutzerseite

Load Time: 1484,3933 ms
"
  2657 | 3054 | 488151 | AI translated
Label

E-Mail-Erinnerungen für überfällige Forderungen

Dieses Thema enthält Anweisungen zum Erstellen eines Jobs, der überfällige Forderungen identifiziert und E-Mail-Erinnerungen an die Finanzverantwortlichen der Schuldner sendet.

Globale Variablen deklarieren

Deklarieren Sie zunächst die globalen Variablen:

declare
  @cSubjekt char(40),          -- Betreff-ID
  @cImePriimek varchar(255),   -- vollständiger Name des Finanzverantwortlichen
  @cEmail varchar(255),        -- E-Mail-Adresse
  @cVezniDok varchar(20),      -- verknüpftes Dokument (Rechnungsnummer)
  @dDatumVal datetime,         -- Fälligkeitsdatum
  @dDatumDok datetime,         -- Dokumentdatum
  @mDebet money,               -- Sollbetrag
  @mKredit money,              -- Habenbetrag
  @mSaldo money,               -- Saldo
  @mGrandTotal money,          -- Gesamtsaldo des Betreffs
  @cNaslovEmaila varchar(255), -- E-Mail-Betreff
  @cSeznam varchar(8000)       -- Liste der überfälligen Rechnungen

Finanzverantwortliche abrufen

Der folgende Code öffnet ein Recordset mit den Namen, Betreff-IDs und E-Mail-Adressen der Finanzverantwortlichen.

Da E-Mails nur an Kontakte mit gültiger E-Mail-Adresse gesendet werden, ist ein Standard JOIN ausreichend, und es ist nicht notwendig, einen LEFT JOIN oder RIGHT JOINzu verwenden.

-- Recordset mit allen Finanzverantwortlichen vorbereiten
declare crDolzniki cursor local fast_forward for
  select RTrim(C.IME)+' '+RTrim(C.PRIIMEK) as IMEPRIIMEK,C.SUBJEKT, A.TEL
    from CONTACTS C
    join CONTADDRESS A on C.SUBJEKT = A.SUBJEKT and C.POZ = A.POZ and TIP = 'E'
    where C.VLOGA like 'Financial manager'

open crDolzniki
fetch next from crDolzniki into @cImePriimek, @cSubjekt, @cEmail
while @@fetch_status = 0
  begin  -- Schleife durch alle Finanzverantwortlichen
    -- !!! HIER ETWAS NÜTZLICHES EINFÜGEN !!! --
    fetch next from crDolzniki into @cImePriimek, @cSubjekt, @cEmail
  end

close crDolzniki
deallocate crDolzniki

Überfällige Rechnungen abrufen

Die folgende Abfrage ruft alle überfälligen Rechnungen für einen bestimmten Betreff ab und speichert sie in einem Recordset.

-- Recordset mit überfälligen Posten für jeden Betreff erstellen
declare crOdprte cursor local fast_forward for
  select
      P.VEZNIDOK,
      (select top 1 X.DATUMVAL
         from TEMEPOZ X
         where X.SUBJEKT = P.SUBJEKT
           and X.KONTO = P.KONTO
           and X.VEZNIDOK = P.VEZNIDOK
           and X.DEBET <> 0
         order by X.DATUMVAL) as DATUMVAL,
      (select top 1 X.DATUMDOK
         from TEMEPOZ X
         where X.SUBJEKT = P.SUBJEKT
           and X.KONTO = P.KONTO
           and X.VEZNIDOK = P.VEZNIDOK
           and X.DEBET <> 0
         order by X.DATUMVAL) as DATUMDOK,
      Sum(P.DEBET) as DEBET,
      Sum(P.KREDIT) as KREDIT,
      Sum(P.DEBET - P.KREDIT) as Saldo
    from TEME G
      join TEMEPOZ P on P.KLJUC = G.KLJUC
        and P.KONTO = '1200'
        and (P.DATUMVAL <= GetDate())
    where P.SUBJEKT = @cSubjekt
    group by P.VEZNIDOK, P.SUBJEKT, P.KONTO
    having (Sum(P.DEBET - P.KREDIT) <> 0)
    order by P.VEZNIDOK

E-Mail-Nachricht erstellen

Verwenden Sie den folgenden Code, um Daten aus dem Recordset in den E-Mail-Nachrichtentext (@cSeznam) zu übertragen.

set @cSeznam = ''
set @mGrandTotal = 0

open crOdprte
fetch next from crOdprte into @cVezniDok,@dDatumVal,@dDatumDok,@mDebet,@mKredit,@mSaldo

while @@fetch_status = 0
  begin
    set @cSeznam = @cSeznam + @cVezniDok + Convert(char(12),@dDatumVal,104) + Convert(char(12),@dDatumDok,104)
                   + Convert(char(17),@mDebet,1) + Convert(char(17),@mKredit,1) + Convert(char(17),@mSaldo,1)
                   + Char(13) + Char(10)

    set @mGrandTotal = @mGrandTotal + @mSaldo

    fetch next from crOdprte into @cVezniDok,@dDatumVal,@dDatumDok,@mDebet,@mKredit,@mSaldo
  end

close crOdprte
deallocate crOdprte

E-Mail senden

Prüfen Sie, ob die Liste überfällige Posten enthält, und senden Sie die E-Mail-Nachricht.

if @cSeznam <> ''
  begin
    set @cNaslovEmaila = 'Liste der überfälligen Posten für ' + @cSubjekt + ' zum: ' + Convert(varchar(12),GetDate(),104)

    set @cSeznam = '-----------------------------------------------------------------------------------------------' + Char(13) + Char(10) + @cSeznam
    set @cSeznam = 'Verknüpftes Dokument  Fälligkeitsdatum  Dokumentdatum          Soll            Haben            Saldo' + Char(13) + Char(10) + @cSeznam
    set @cSeznam = @cNaslovEmaila + Char(13) + Char(10) + @cSeznam
    set @cSeznam = @cSeznam + Char(13) + Char(10) + 'Gesamt:.....................................................................' + Convert(char(19),@mGrandTotal,1)

    -- E-Mail senden
    exec master.dbo.xp_sendmail
      @recipients = @cEmail,
      @message = @cSeznam,
      @subject = @cNaslovEmaila
  end

Job planen

Fügen Sie die vollständige Abfrage einem SQL Server-Job hinzu, definieren Sie einen Ausführungsplan, und der Prozess ist bereit für die automatische Ausführung.

Hinweis: Ein SQL Server-Jobschritt kann maximal 7.800 Zeichen enthalten.

Die untenstehende Abfrage wird ohne Kommentare und unnötige Leerzeichen bereitgestellt, um diese Einschränkung einzuhalten.

declare
  @cSubjekt char(40),
  @cImePriimek varchar(255),
  @cEmail varchar(255),
  @cVezniDok varchar(20),
  @dDatumVal datetime,
  @dDatumDok datetime,
  @mDebet money,
  @mKredit money,
  @mSaldo money,
  @mGrandTotal money,
  @cNaslovEmaila varchar(255),
  @cSeznam varchar(8000)

declare crDolzniki cursor local fast_forward for
  select RTrim(C.IME)+' '+RTrim(C.PRIIMEK) as IMEPRIIMEK,C.SUBJEKT, A.TEL
  from CONTACTS C
  join CONTADDRESS A on C.SUBJEKT = A.SUBJEKT and C.POZ = A.POZ and TIP = 'E'
  where C.VLOGA like 'Finančni direktor'

open crDolzniki
fetch next from crDolzniki into @cImePriimek, @cSubjekt, @cEmail

while @@fetch_status = 0
begin
  declare crOdprte cursor local fast_forward for

  select
    P.VEZNIDOK,
    (select top 1 X.DATUMVAL
       from TEMEPOZ X
      where X.SUBJEKT = P.SUBJEKT
        and X.KONTO = P.KONTO
        and X.VEZNIDOK = P.VEZNIDOK
        and X.DEBET <> 0
      order by X.DATUMVAL) as DATUMVAL,
    (select top 1 X.DATUMDOK
       from TEMEPOZ X
      where X.SUBJEKT = P.SUBJEKT
        and X.KONTO = P.KONTO
        and X.VEZNIDOK = P.VEZNIDOK
        and X.DEBET <> 0
      order by X.DATUMVAL) as DATUMDOK,
    Sum(P.DEBET) as DEBET,
    Sum(P.KREDIT) as KREDIT,
    Sum(P.DEBET - P.KREDIT) as Saldo
  from TEME G
  join TEMEPOZ P on P.KLJUC = G.KLJUC
    and P.KONTO = '1200'
    and (P.DATUMVAL <= GetDate())
  where P.SUBJEKT = @cSubjekt
  group by P.VEZNIDOK, P.SUBJEKT, P.KONTO
  having (Sum(P.DEBET - P.KREDIT) <> 0)
  order by P.VEZNIDOK

  set @cSeznam = ''
  set @mGrandTotal = 0

  open crOdprte
  fetch next from crOdprte into @cVezniDok,@dDatumVal,@dDatumDok,@mDebet,@mKredit,@mSaldo

  while @@fetch_status = 0
  begin
    set @cSeznam = @cSeznam + @cVezniDok + Convert(char(12),@dDatumVal,104) + Convert(char(12),@dDatumDok,104)
      + Convert(char(17),@mDebet,1) + Convert(char(17),@mKredit,1) + Convert(char(17),@mSaldo,1) + Char(13) + Char(10)

    set @mGrandTotal = @mGrandTotal + @mSaldo

    fetch next from crOdprte into @cVezniDok,@dDatumVal,@dDatumDok,@mDebet,@mKredit,@mSaldo
  end

  close crOdprte
  deallocate crOdprte

  if @cSeznam <> ''
  begin
    set @cNaslovEmaila = 'Liste der überfälligen Posten für ' + @cSubjekt + ' zum: ' + Convert(varchar(12),GetDate(),104)
    set @cSeznam = '-----------------------------------------------------------------------------------------------' + Char(13) + Char(10) + @cSeznam
    set @cSeznam = 'Verknüpftes Dokument  Fälligkeitsdatum  Dokumentdatum          Soll            Haben            Saldo' + Char(13) + Char(10) + @cSeznam
    set @cSeznam = @cNaslovEmaila + Char(13) + Char(10) + @cSeznam
    set @cSeznam = @cSeznam + Char(13) + Char(10) + 'Gesamt:.....................................................................' + Convert(char(19),@mGrandTotal,1)

    exec master.dbo.xp_sendmail
      @recipients = @cEmail,
      @message = @cSeznam,
      @subject = @cNaslovEmaila
  end

  fetch next from crDolzniki into @cImePriimek, @cSubjekt, @cEmail
end

close crDolzniki
deallocate crDolzniki

 

 

Rate this topic
Was this topic usefull?
Comments
Comment will also bo visible in forum!