Erweiterungen von Datenquellen und UI-Elementen

Navigationselement des Artikelstamms erweitern

Im Navigationselement des Artikelstamms sollen Lieferanten bezogene Daten (Lieferant und Bestellnummer) angezeigt werden.

Diese Daten stehen in KHKArtikelLieferant zur Verfügung. Da nicht zwingend in dieser Tabelle für jeden Artikel ein Eintrag vorhanden sein muss, wird diese Tabelle mit LEFT JOIN verknüpft.

Ob eine Datenquelle erweitert werden kann, ist im Vorlauf zu prüfen. Die Eingaben in den Eigenschaften der angehängten Datenquelle werden an die Standard-Eingaben angehängt. Die Standardabfrage kann also nicht geändert werden. An Datenquellen, die die Daten in einem Geschäftsprozess ermitteln, kann sich generell nicht angehängt werden.

Die Vorarbeit wäre für dieses Beispiel, die SQL-Abfrage des Navigationselementes zu prüfen. Das kann man als Mitschnitt auf dem SQL-Server, oder, wenn die SQL-Abfrage überschaubar ist, auch in den Metadaten (das gilt für die Sage-Datenquellen) selber.

Das Navigationselement des Artikelstamms besteht aus der Datenquelle "dtsArtikelstamm.Sage.Wawi" und "lstArtikelstammArtikelstamm.Sage.Wawi". An diese Datenquelle kann sich angehängt werden. Es sind folgende Metadaten anzulegen:

  • Anlage der Datenquelle "dtsArtikelstamm" mit den "Anhängen an..."-Assistenten und Auswahl "dstArtikelstamm.Sage.Wawi".
    • "SQL-Tabellen" = "LEFT JOIN KHKArtikelLieferant ON (KHKArtikelVarianten.Artikelnummer = KHKArtikelLieferant.Artikelnummer AND KHKArtikelVarianten.AuspraegungID = KHKArtikelLieferant.AuspraegungID AND KHKArtikelVarianten.Mandant = KHKArtikelLieferant.Mandant)"
    • Anlage des Datenquellenfeldes "Lieferant"
      • "SQL-Abfrage" = "KHKArtikelLieferant.Lieferant"
    • Anlage des Datenquellenfeldes "Bestellnummer"
      • "SQL-Abfrage" = "KHKArtikelLieferant.Bestellnummer"
  • Anlage des Listen-Elementes "lstArtikelstammArtikelstamm" mit den "Anhängen an..."-Assistenten und Auswahl "lstArtikelstammArtikelstamm.Sage.Wawi".
    • Anlage des Listen-Element-Feldes "Lieferant"
    • Anlage des Listen-Element-Feldes "Bestellnummer"

In der Applikation stehen die beiden neuen Felder zur Verfügung. Aufgrund der 1:N-Beziehung zwischen Artikelvariante und Lieferant bezogenen Daten werden nun eventuell mehr Datensätze im Navigationselement angezeigt.

Zusätzliches Navigationselement im Artikelstamm

Soll die Suche nach Lieferant bezogene Daten nur an einzelne Arbeitsplätze erfolgen, ansonsten aber weiterhin der Standard verwendet werden, kann man ein Navigationselement anhängen. Sollen wie im obigen Beispiel die Metadatenobjekte des Standards erhalten bleiben, dann kopiert man man sinnvollerweise die Metadatenobjekte des Standards und ergänzt sie entsprechend dem obigen Beispiel.

Legen Sie folgende Metadaten an:

  • Kopieren Sie "dtsArtikelstamm" aus Sage.Wawi in Ihre Lösung.
    • Ergänzen Sie "SQL-Tabellen" um " LEFT JOIN KHKArtikelLieferant ON (KHKArtikelVarianten.Artikelnummer = KHKArtikelLieferant.Artikelnummer AND KHKArtikelVarianten.AuspraegungID = KHKArtikelLieferant.AuspraegungID AND KHKArtikelVarianten.Mandant = KHKArtikelLieferant.Mandant)"
    • Anlage des Datenquellenfeldes "Lieferant"
      • "SQL-Abfrage" = "KHKArtikelLieferant.Lieferant"
    • Anlage des Datenquellenfeldes "Bestellnummer"
      • "SQL-Abfrage" = "KHKArtikelLieferant.Bestellnummer"
  • Kopieren Sie "lstArtikelstammArtikelstamm" aus Sage.Wawi in Ihrer Lösung.
    • "Titel" = "Artikel mit Lieferantendaten"
    • Ordnen Sie in "Datenquelle" die Datenquelle Ihrer Lösung zu, ohne die Felder neu zu importieren.
    • Über "Felder importieren" die beiden neuen Datenbankfelder importieren
  • Anlage des Daten-Edit-Elementes "ediArtikelstamm"
    • "Anhängen an Daten-Edit-Element der Partner-Kennung" = "Sage.Wawi"
    • "Navigations-Elemente" = "lstArtikelstammArtikelstamm.<partnerid>.<loesungsid>"

Ampelfunktion auf Liefertermin in der Verkaufsbelegauskunft

Die Spalte Liefertermin soll nach folgenden Kriterien farblich (also Ampel) hervorgehoben werden.

  • Rot: der Liefertermin ist gleich dem aktuellen Datum, oder liegt in der Vergangenheit
  • Gelb: der Liefertermin liegt 1-3 Tage in der Zukunft
  • Grün: der Liefertermin liegt mehr als 3 Tage in der Zukunft

Bei Standardfeldern können nur Sichtbarkeit und Position (wenn Position = 0 ist) überschrieben werden. Bei benutzerdefinierten Feldern ist man hingegen nicht eingeschränkt (siehe Anhängen an…). Daher lösen wir die Anforderung mit einem benutzerdefinierten Feld, einem DCM-Aufruf und durch Erweiterungen von Datenquelle und Listen-Element der Belegauskunft des Verkaufs.

Vorarbeiten

  • Anlage des benutzerdefinierten Feldes LieferterminAmpel für den Verkaufsbeleg.
    • "Beschreibung" = "Liefertermin"
    • "Typ" = "Datum"
  • Update der Altdaten (USER_LieferterminAmpel = Liefertermin)

Datenherkunft

Legen Sie die Daten (in Metadaten oder OL.DCM) für die DCM "VKBelegBeforeSave" an.

Hinweis für Developer Partner

Die Codierung beschränkt sich auf die Zuweisung Beleg.UserProperty("USER_LieferterminAmpel") = Beleg.Liefertermin. Daher wird für dieses Beispiel kein Code bereit gestellt.

Implementierung der Ampelfunktion

Folgende Metadaten müssen angelegt werden:

  • Anlage der Datenquelle "dtsVKBelegPos" in Ihrer Lösung
    • Anhängen an Datenquellen der Partner-Kennung" = "Sage.Wawi"
    • Anlage des Feldes "KHKVKBelege_USER_LieferterminAmpel"
      • "Feld-Attribute anhängen?" aktivieren
      • "SQL-Abfrage" = "KHKVKBelege.USER_LieferterminAmpel"
      • "Datentyp" = "Date"
      • "SQL-Ampelermittlung" = "CASE WHEN GETDATE() >= KHKVKBelege.USER_LieferterminAmpel THEN 1 WHEN KHKVKBelege.USER_LieferterminAmpel > GETDATE() AND KHKVKBelege.USER_LieferterminAmpel <= DATEADD(d,3,GETDATE()) THEN 0 ELSE -1 END"
  • Anlage des Listen-Elementes "lstVKBelegPos" in Ihrer Lösung
    • Anhängen an Listen-Element der Partner-Kennung" = "Sage.Wawi"
    • Anlage des Feldes "KHKVKBelege_USER_LieferterminAmpel"
      • "Feld-Attribute anhängen?" aktivieren
      • "Ampeltyp" = "Einfärbung des Wertes"
      • "Tendenz Ampel" = "Ermittlung über SQL-Abfrage"
    • Anlage des Feldes "Liefertermin"
      • "Feld-Attribute anhängen?" aktivieren
      • "Sichtbarkeit" = "Versteckt"
  • Anlage des Daten-Edit-Elementes "ediVKBelegerfassung" in Ihrer Lösung
    • Anhängen an Daten-Edit-Element der Partner-Kennung" = "Sage.Wawi"
    • Anlage des Daten-Edit-Element-Register "Belegkopf"
      • "Feld-Attribute anhängen?" aktivieren
      • Anlage der Daten-Edit-Element-Feldgruppe "Kunde"
        • "Feld-Attribute anhängen?" aktivieren
        • Anlage des Feldes "KHKVKBelege_USER_LieferterminAmpel"
          • "Feld-Attribute anhängen?" aktivieren
          • "Sichtbarkeit" = "Versteckt"

Damit hat man in der Bildschirmauskunft "Verkauf/ Belegauskunft" die Spalte "Liefertermin" mit einer Ampelfunktion. Die Spalte des Standards und das benutzerdefinierte Feld ist versteckt und kann somit nicht doppelt angezeigt (Bildschirmauskunft) bzw. editiert werden (Belegerfassung).