Vi Projekt Modul 5.9.8.37
WICHTIGER HINWEIS - WICHTIGER HINWEIS - WICHTIGER HINWEIS - WICHTIGER HINWEIS
•Dieses Modul setzt eine Installation der R4 von DOCUframe voraus
WICHTIGER HINWEIS - WICHTIGER HINWEIS - WICHTIGER HINWEIS - WICHTIGER HINWEIS
Mindestversion DOCUframe: 5.9.8.334
Mindestversion DOCU-Warenwirtschaft: aktuelle Version
Wartung:
•keine
Datenaustauschmakro:
•keines
Lizenzeinträge
•Keine
Sonstiges:
•Nichts
Weitere Module:
•Keine
Hinweise:
•Für Pkt. 12: das Register „Artikel“ muss über den Bearbeitungsmodus in den Standard-Lieferantendialog eingebaut werden!
Vi Projekt Modul 5.9.8.xx - Neuerungen
1.) Kundenservice – Anpassung Mangelformular
Beschreibungsfelder für Mängel, Protokolleinträge und Bautätigkeiten sind jetzt mit automatischem Umbruch versehen.
2.) Kundenservice - Formularanpassung
Das Standard-Formular wurde dahingehend angepasst, dass eine in der Adresse separat erfasste Hausnummer jetzt auch ausgegeben wird.
3.) Funktionsberechtigungen
Die Berechtigungen zur Ausführung aller folgenden Funktionen ist jetzt erfordern jetzt Benutzern mit Administratorenberechtigung:
4.) Vergabe – Anhangdokumente an Standard- und Lieferantenverzeichnissen
Anhangdokumente an Standard- und Lieferantenverzeichnissen werden jetzt aktualisiert, wenn z.B. eines der Vergaberegister gewechselt wird. Damit ist die Anzeige auch bei nachträglichem Ändern der Ordnerinhalte von den zugeordneten Dokumentenordnern aktualisierbar.
5.) Erweiterung der Hintergrund-Erzeugung von Excel-Ausgaben aus Listenkonfigurationen
Das Datenaustauschmakro für die Hintergrund-Erstellung von Excel-Dateien aus Listenkonfigurationen hat einen weiteren Parameter bekommen, mit dem gesteuert werden kann, ob bereits bestehende, namensgleiche Dateien überschrieben werden sollen.
VIframeExportListenkonfiguration( "001", "C:\\Temp\\", TRUE );
Der letzte Parameter steuert das Überschreiben bestehender Dateien:
-TRUE: bestehende Dateien werden überschrieben
-FALSE: bestehende Dateien werden nicht überschrieben
6.) Erweiterung der Funktion zum Aktivieren von (zuvor deaktivierten Vorgängen)
Die Funktion zum Aktivieren von Workflows ab einem Vorgang wurde dahingehend erweitert, dass jetzt auch bereits erledigte Workflows wieder reaktiviert werden können.
Dies Funktionalität zum Aktivieren von Workflows ab einem Vorgang ist vor allem in der Einführungsphase für bestehende Projekte gedacht, um je nach Stand eines Bauprojektes nur noch die Workflows aktivieren zu können, die für den weiteren Ablauf relevant sind. Z.B.: Haus ist bereits im Rohbau fertiggestellt, es werden nur noch die Workflows im Bereich „Ausbau“ aktiviert.
Die bestehende Funktionalität aktiviert natürlich nur Workflows, die NICHT erledigt sind. In Spezialfällen ist aber auch das Aktivieren bereits erledigter Workflows erforderlich. Dafür wurde die Funktion in diesem Modul um eine spezielle Aufrufvariante erweitert. Alle Funktionen dazu finden sich auf dem Register „Import“ des Projektes.
Voraussetzung für das Aktivieren von Workflows ab einen bestimmten Vorgang ist, dass alle Workflows im Projekt deaktiviert wurden.
Dann erst kann man wieder ab einem Vorgang aktivieren:
Dieser Funktionsaufruf gilt für beide Varianten – mit/ohne erledigte Workflows. Ergebnis ist eine Liste der Vorgänge zur Auswahl desjenigen Vorganges, ab dem die Workflows wieder aktiviert werden sollen:
Wird hier ein Vorgang gewählt, erfolgt die Anzeige der Workflows:
Hier gibt es jetzt zwei Funktionen, von denen eine bewusst versteckt ist:
-„Workflows aktivieren“ -> aktiviert die Workflows ab dem gewählten Vorgang OHNE
erledigte Workflows
-STRG + „Workflows aktivieren“ -> aktiviert die Workflows ab dem gewählten Vorgang
INKLUSIVE der erledigten Workflows
Diese neue Funktion STRG + „Workflows aktivieren“ ermöglicht dann eben auch das (Re-)Aktivieren erledigter Workflows.
Es erfolgt noch eine Sicherheitsabfrage:
Danach erfolgt nur noch die Standard-Abfrage:
Wird dies bestätigt, gibt es kein zurück, auch erledigte Workflows werden wieder reaktiviert!
Hinweis: In der Folge werden die reaktivierten Workflows wieder ausgeführt, wenn die Bedingungen erfüllt sind! Es kann also sein, dass Sie nach der Reaktivierung Workflows sehen, die bereits wieder erledigt sind!
7.) Zeitgesteuerter Listenversand
Es gibt eine Vielzahl von Workflows mit Informationscharakter, also nur zur Info, ohne ein direktes ToDo. Da Workflows immer Einzelnachrichten zu einem Event generieren („Info über den Eingang der Baugenehmigung an den Fachberater“), kann das zu einer Flut von workflowbasierten Meldungen führen. Dazu wurde jetzt mit der Funktion zum zeitgesteuerten Versenden von Listen aus der Listenkonfiguration gegengesteuert (z.B. „Liste der Baugenehmigungseingänge…“) gegengesteuert.
Dazu wurde in den Stammdaten der Listenkonfigurationen eine Benutzerliste ergänzt, in der der interne Benutzerkreis für den automatisierten Versand einer Listenkonfiguration definiert werden kann:
Dazu gibt es dann ein Datenaustauschmakro, dass diese Liste zum eingestellten Zeitpunkt anschließend als Dokument versendet.
Es wird mit diesem Modul ein Muster-Datenaustauschmakro „VIframe -> Listenkonfiguration versenden“ ausgeliefert. Das Muster-Datenaustauschmakro ist auf die Endanwenderebenen zu kopieren und dann anzupassen.
Dieses ist der Quelltext:
----------------------------------------------------------------------------------------------------------------------------------------
INT ImportExport( BOOL Manual )
VIframeSendListenkonfiguration( "01" );
RETURN( 0 );
----------------------------------------------------------------------------------------------------------------------------------------
In diesem Quelltext ist der Wert „01“ durch die Nummer der Listenkonfiguration zu ersetzen.
8.) Vergabe – Aktualisierung der Lieferantenanzeige
In der Liste der Vergaben (Standard-Leistungsverzeichnisse) wird eine Anzahl möglicher Lieferanten angezeigt. Diese „möglichen Lieferanten“ werden bei der Anlage der Standard-Leistungsverzeichnisse ermittelt und gespeichert.
Um Änderungen im Lieferantenstamm (neue oder deaktivierte Lieferanten etc.) in die bestehenden Vergaben zu übernehmen, gibt es eine neue Funktion im rechten Seitenmenü neben der Liste der Standard-Leistungsverzeichnisse:
Achtung, für die Ausführung der Aktion müssen die zu aktualisierenden Standard-Leistungsverzeichnisse markiert sein. Alle Standard-Leistungsverzeichnisse lassen sich in der Liste mit STRG+A markieren.
9.) Listenkonfiguration – Zahlungsplandaten
Fehlerkorrektur: Bei der Auswertung der Spalten „Zahlbetrag“ und „offener Posten“ wurde der Datenzugriff optimiert, die Spalten liefern jetzt Werte.
10.) Neues Druckmakro: Standard-Bankverbindung einer Rolle –
VIframeProjekt_Rolle_Bankverbindung
Dieses Druckmakro gibt die Bankverbindung zu einer Adresse in einer Rolle an. Die Rolle muss im Druckmakro als Parameter eingestellt werden. Folglich muss das ausgelieferte Standard-Druckmakro auf die Endanwenderebene kopiert und dort bearbeitet werden.
Dieses ist der Quelltext:
----------------------------------------------------------------------------------------------------------------------------------------
STRING Print( Druckdaten Daten )
STRING RoleNumber = "0100";
BOOL IBAN = TRUE;
BOOL BIC = TRUE;
BOOL Kreditinstitut = TRUE;
BOOL Kontonummer = TRUE;
BOOL BLZ = TRUE;
BOOL Kontoinhaber = TRUE;
BOOL Typ = TRUE;
BOOL Beschreibung = TRUE;
Ansprechpartner ASP;
Adresse Adr;
AdresseNr AdrNr;
FunktionelleRolle Role;
STRING Ret;
Projekt P;
Vorgang V;
VIframeGetProjektFromDruckdaten( Daten, P, V );
Role = P.Vorgang.VIframeGetRole( RoleNumber );
Adr = Role.VIframeGetAdress();
IF( Adr.IsKindOf( "Ansprechpartner" ) )
ASP = Adr;
AdrNr = ASP.Adresse;
ELSE
AdrNr = Adr;
ENDIF
Ret = VIframeGetBankverbindungStr( AdrNr.Bankverbindungen, IBAN, BIC, Kreditinstitut, Kontonummer, BLZ, Kontoinhaber, Typ, Beschreibung );
RETURN( Ret );
----------------------------------------------------------------------------------------------------------------------------------------
In diesem Quelltext ist zunächst der Wert „0100“ im Parameter RoleNumber durch die Nummer der auszuwertenden Rolle zu ersetzen.
Das Standard-Druckmakro liefert im Standard eine Ausgabe der Bankverbindung, die zeilenweise die folgenden Daten der Kontoverbindung ausgibt:
-IBAN
-BIC
-Kreditinstitut
-Kontonummer
-BLZ
-Kontoinhaber
-Typ
-Beschreibung
Wer nur einzelne Daten daraus braucht, muss den Ausgabecode anpassen, kann die einzelnen Ausgabeparameter von „TRUE“ auf „FALSE“ ändern.
Um z.B. nur die IBAN auszugeben, sähe der Makro-Code so aus:
----------------------------------------------------------------------------------------------------------------------------------------
STRING Print( Druckdaten Daten )
STRING RoleNumber = "0100";
BOOL IBAN = TRUE;
BOOL BIC = FALSE;
BOOL Kreditinstitut = FALSE;
BOOL Kontonummer = FALSE;
BOOL BLZ = FALSE;
BOOL Kontoinhaber = FALSE;
BOOL Typ = FALSE;
BOOL Beschreibung = FALSE;
Ansprechpartner ASP;
Adresse Adr;
AdresseNr AdrNr;
FunktionelleRolle Role;
STRING Ret;
Projekt P;
Vorgang V;
VIframeGetProjektFromDruckdaten( Daten, P, V );
Role = P.Vorgang.VIframeGetRole( RoleNumber );
Adr = Role.VIframeGetAdress();
IF( Adr.IsKindOf( "Ansprechpartner" ) )
ASP = Adr;
AdrNr = ASP.Adresse;
ELSE
AdrNr = Adr;
ENDIF
Ret = VIframeGetBankverbindungStr( AdrNr.Bankverbindungen, IBAN, BIC, Kreditinstitut, Kontonummer, BLZ, Kontoinhaber, Typ, Beschreibung );
RETURN( Ret );
----------------------------------------------------------------------------------------------------------------------------------------
Achtung, die Basis für die Ausgabe der Bankverbindungsdaten sind die Bankverbindungen auf Adress-Ebene. Es sollte IMMER genau eine Bankverbindung als Standard markiert sein, die dann auch ausgegeben wird. Ist dies nicht der Fall, erfolgt als Ausgabe nur „k.A.“.
So wäre es korrekt:
11.) Neues Druckmakro: Standard-Bankverbindung zum Projekt-Mandanten/Mandanten
VIframeProjektBankverbindung
Dieses Druckmakro gibt die Standard-Bankverbindung zum Mandanten eines Projektes zurück.
Dies ist der Standard-Makro-Text:
----------------------------------------------------------------------------------------------------------------------------------------
STRING Print( Druckdaten Daten )
// Einzelne Felder der Bankverbindung anzeigen (TRUE) oder nicht (FALSE)
BOOL IBAN = TRUE;
BOOL BIC = TRUE;
BOOL Kreditinstitut = TRUE;
BOOL Kontonummer = TRUE;
BOOL BLZ = TRUE;
BOOL Kontoinhaber = TRUE;
BOOL Typ = TRUE;
BOOL Beschreibung = TRUE;
// Hier kann die Nummer eines Mandanten vorbelegt werden
STRING MandantNummer = "";
STRING Ret;
Projekt P;
Vorgang V;
DBOBJECT Mandant;
BankverbindungSet Bankverbindungen;
#MODUL_START( GSD-Fakt )
xGSDFaktMandanteneinstellung FaktMandant;
VIframeGetProjektFromDruckdaten( Daten, P, V );
IF( MandantNummer != "" )
FaktMandant.xGSDFaktGetFromNumber( MandantNummer );
Mandant = FaktMandant;
ELSE
VIframeGetMandant( P, Mandant );
ENDIF
Bankverbindungen.Construct();
Mandant.GetObjectSet( "xGSDFaktBankverbindungen", Bankverbindungen );
Ret = VIframeGetBankverbindungStr( Bankverbindungen, IBAN, BIC, Kreditinstitut, Kontonummer, BLZ, Kontoinhaber, Typ, Beschreibung );
#MODUL_END( GSD-Fakt )
RETURN( Ret );
----------------------------------------------------------------------------------------------------------------------------------------
Wenn in diesem Makro im Parameter „MandantNummer“ eine Mandantennumeer vorgegeben wird, so wird diese ermittelt, um die bakverbindungsdaten zu ermitteln. Wird diese nicht vorgegeben, wird die Mandantennummer aus dem Projekt ermittelt.
Das Standard-Druckmakro liefert mit den Standard-Einstellungen eine Ausgabe der Bankverbindung, die zeilenweise die folgenden Daten der Kontoverbindung ausgibt:
-IBAN
-BIC
-Kreditinstitut
-Kontonummer
-BLZ
-Kontoinhaber
-Typ
-Beschreibung
Wer nur einzelne Daten daraus braucht, muss das Standard-makro auf Endanwender-Ebene kopieren und den Ausgabecode anpassen, dazu kann man die einzelnen Ausgabeparameter von „TRUE“ auf „FALSE“ ändern.
Um z.B. nur die IBAN auszugeben, sähe der Makro-Code so aus:
----------------------------------------------------------------------------------------------------------------------------------------
STRING Print( Druckdaten Daten )
// Einzelne Felder der Bankverbindung anzeigen (TRUE) oder nicht (FALSE)
BOOL IBAN = TRUE;
BOOL BIC = FALSE;
BOOL Kreditinstitut = FALSE;
BOOL Kontonummer = FALSE;
BOOL BLZ = FALSE;
BOOL Kontoinhaber = FALSE;
BOOL Typ = FALSE;
BOOL Beschreibung = FALSE;
// Hier kann die Nummer eines Mandanten vorbelegt werden
STRING MandantNummer = "";
STRING Ret;
Projekt P;
Vorgang V;
DBOBJECT Mandant;
BankverbindungSet Bankverbindungen;
#MODUL_START( GSD-Fakt )
xGSDFaktMandanteneinstellung FaktMandant;
VIframeGetProjektFromDruckdaten( Daten, P, V );
IF( MandantNummer != "" )
FaktMandant.xGSDFaktGetFromNumber( MandantNummer );
Mandant = FaktMandant;
ELSE
VIframeGetMandant( P, Mandant );
ENDIF
Bankverbindungen.Construct();
Mandant.GetObjectSet( "xGSDFaktBankverbindungen", Bankverbindungen );
Ret = VIframeGetBankverbindungStr( Bankverbindungen, IBAN, BIC, Kreditinstitut, Kontonummer, BLZ, Kontoinhaber, Typ, Beschreibung );
#MODUL_END( GSD-Fakt )
RETURN( Ret );
----------------------------------------------------------------------------------------------------------------------------------------
12.) Warenwirtschaft – Preispflegefunktion für Artikel
Für die Warenwirtschaft gibt es jetzt eine Artikel-Preispflegefunktion.
Voraussetzung ist, dass für die Artikel Lieferantenzuordnungen und lieferantebezogene Preis hinterlegt sind, unabhängig davon, ob als Haupt- oder Zusatzlieferanten.
Die Preispflegefunktion zu den Artikeldaten geht vom Lieferanten aus und findet sich daher bei den Lieferanten auf einem Register „Artikel“.
Hinweis: dieses Register muss in den Standard-Lieferantendialog eingebaut werden.
Der Dialog sieht dann so aus:
Im Dialog finden sich dann folgende Elemente:
-links: Baum der Warengruppen aller Artikel des Lieferanten
-rechts: Liste der Artikel des Lieferanten, ggfs. eingeschränkt auf eine Warengruppe
im Warengruppenbaum
-darunter: Filter „Anzeigen“ für die Anzeigebeschränkung auf aktive/nicht aktive Artikel
-daneben: Einstellungen für das Preisupdate
oArt der Preisänderung: prozentual (Erweiterungsmöglichkeit auf „absolut“)
oIn Höhe von: +/- Wert für den Prozentsatz der Anpassung
oÜbernahme für: gewählte Positionen/Artikelgruppe/alle Artikel für die
eingestellte Preisanpassung
Buttons:
-Neu berechnen: Neuberechnung der Preise, nur Anzeige im Dialog (alle Artikel des Lieferanten)
-Speichern: Übernehmen der Preise in die Lieferantenpreise und schreiben eines Preisänderungslogs im Artikel: Benutzer/Datum/alter Preis/neuer Preis. Diese Funktion berücksichtigt die Einstellungen in „Übernahme für“
Doppelklick in der Liste der Artikel:
-Auf Spalte „Artikelnummer“: Artikelstamm
-Auf Spalte „Artikelbezeichnung“: Artikelstamm
Hinweis: Auf dem Artikel kann dann im Änderungsprotokoll auch die Preisentwicklung eingesehen werden.