Functie van de SqlFileView-component

0000002112     -      03-07-2013

Dankzij de component SqlFileView van Mercator 8.1 kunnen in de SQL-database bestanden worden opgeslagen die doorgaans op een gedeeld volume staan en aangeboden worden via de component FileView, bv. in de voettekst van een document, in het tabblad "Bestanden" van een informatiebestandfiche of in de bestanden die bij een actie zijn gevoegd.

sqlfileview_1_nl

De voordelen van deze component tegenover de klassieke opslag op schijf zijn:

  • Betere centralisatie van gegevens: alles bevindt zich in de SQL-database, die praktisch het enige op te slaan element wordt.
  • In geval van toegang tot een Mercator-versie waarvan de gegevens zich op een "externe" locatie bevinden, is de weergave van een gedeeld volume sterk nadelig voor de prestaties.
  • Toegang tot een extern gedeeld volume kan erg moeilijk te implementeren zijn met het oog op de veiligheid, en kan zelfs geweigerd worden door een leverancier die gegevensopslag "in the cloud" aanbiedt.
  • De component SqlFileView beantwoordt aan dezelfde logica inzake het beheer van de toegangsrechten als de andere objecten van Mercator. Bijgevolg zal het mogelijk zijn om deze component in "read-only"-modus te zetten.
  • De wijzigingen aangebracht aan de SqlFileView worden opgeslagen tijdens dezelfde SQL-transactie waarbij ook de andere gegevens worden opgeslagen. De bestanden maken dus integraal deel uit van de beheerde gegevens.
    Bijvoorbeeld: in een klantenfiche worden de klantenvelden en de bestanden die bij deze klant horen, gewijzigd tijdens éénzelfde en unieke SQL-transactie.
  • Deze component laat toe meerdere bestanden met dezelfde naam op te slaan in hetzelfde dossier.
Dit systeem is slechts toegankelijk als Mercator over een SQL-server versie 2005 of hoger beschikt. Ook de database mag niet in de compatibiliteitsmodus SQL 2000 zijn.

De maximale grootte van de bestanden is 2 Gb (maximumcapaciteit van een varbinary(max)).


Werking

De component SqlFileView laat altijd standaard een "root"-dossier zijn. Dat is het basisdossier. Het is mogelijk om een nieuw dossier toe te voegen, hetzij via "klik rechts / Nieuw dossier", hetzij door een dossier via "drag&drop" uit de Bestandsbrowser te verslepen.

Men kan eveneens een bestand aan een dossier toevoegen door het te verslepen vanuit Bestandsbrowser.

Opmerkingen

  • De "drag&drop"-verrichtingen naar SqlFileView kunnen meerdere bestanden en/of dossiers betreffen.
  • Wanneer u een dossier naar SqlFileView sleept, worden wel de bestanden van dat dossier ingevoegd, maar niet de eventuele subdossiers.
Wanneer een SqlFileView bestanden bevat, zullen deze 1 van de 2 volgende statussen hebben:
  • sqlfileview_5: het bestand staat in de database en er is geen lokale kopie gedownload;
  • sqlfileview_6: er bestaat een lokale kopie van het bestand, hetzij omdat dit bestand nog niet werd geladen naar de SQL-server, hetzij omdat het werd gedownload zoals vereist door een van de mogelijke verrichtingen voor dit bestand (Openen, Eigenschappen …).
Bij het opslaan gaat Mercator na of de eventuele lokale kopie werd gewijzigd. Als dat zo is, stelt het programma voor om de versie van dit bestand op de SQL-server automatisch te updaten.

De bestanden kunnen worden opgehaald vanuit SqlFileView:

  • hetzij door een bestand naar de Windows Bestandsbrowser te verslepen;
  • hetzij via "klik rechts / Opslaan als …";
  • hetzij via "klik rechts / Kopiëren";
  • hetzij via "klik rechts / Downloaden" op een dossier.

Aanpassing van de API van Mercator

De klasse MercatorApi.Api in MercatorTunnel.dll is aangepast om het bewerken van alle bestandstypes mogelijk te maken, ongeacht of ze op schijf staan, dan wel in de SQL-database zijn opgeslagen.

De volgende methodes werken perfect met de 2 bestandstypes en passen hun gedrag automatisch aan, rekening houdend met de aard van het pad naar het verzonden bestand. SQL-paden herkennen elkaar, want ze beginnen met het teken < en worden gevolgd door MainDir, RepData, Files of Other (cf. Api. SqlFilePathRoots).

  • FileExists
  • FileDelete
  • DirectoryExists
  • DirectoryCreate
  • FileToStr
  • StrToFile (met uitzondering van de implementatie die een append aan een bestand mogelijk maakt)
  • GetFiles
  • GetDirectories
  • DataTableToXmlFile
  • DataSetToXmlFile
  • DataRowToXmlFile
  • DataSetFromXmlFile
  • DataTableFromDbf
  • FileMove
  • FileCopy
  • CopyFolder
  • MoveFolder
De laatste 4 methodes laten bovendien ook bestandsuitwisselingen toe tussen schijf en SQL-database.
Voorbeelden:
  • Een bestand uploaden naar de SQL-database:
    Api.FileMove(@"C:\Test\test.xml", @"<Other\TestSqlFileView\Coda\text.xml");
  • Een bestand downloaden met behoud van het bestand in de SQL-database:
    Api.FileCopy(@"<Other\TestSqlFileView\Coda\text3.xml", @"C:\Test\test21.xml")
  • Virtuele verplaatsing van een directory van de database naar een schijf:
    Api.MoveFolder(@"<Other\TestSqlFileView\SqlFiles3", @"C:\Test\SqlFiles3");
Ook de commando's voor creatie of uitvoering van Aruba-rapporten (repx) maken een transparant beheer van de opslagactiviteiten op de SQL-database mogelijk. Daarenboven zorgen de tools in MercatorTunnel waarmee bestanden kunnen worden gezipt, voor het correct zippen naar een bestand opgeslagen in de SQL-database.


Weergave van de SQL-bestanden vanuit Mercator

sqlfileview_2_nl
Het menu "Beheer / SQL-bestanden" biedt de mogelijkheid om de bestanden opgeslagen in de SQL-database te doorlopen, en dat voor 3 verschillende roots:
  1. Hoofd: root bestemd voor bestanden die doorgaans opgeslagen zijn in de hoofddirectory van Mercator (bijvoorbeeld: standaardrapporten die door de gebruiker gewijzigd kunnen worden).
  2. Gegevens: root bestemd voor bestanden die doorgaans opgeslagen zijn in de gegevensdirectory van Mercator (bijvoorbeeld: btw-bestanden).
  3. Overige: vrije root
attention Mercator beheert intern een 4e root die overeenstemt met de bestanden van de "SQL-bestandsbrowser"-objecten. Deze bestanden mogen niet in een dossier "Files" van de root "Gegevens" worden geplaatst. Het aantal dergelijke bestanden kan immers erg groot zijn en Mercator beheert dat afzonderlijk in ieder "SQL-bestandsbrowser"-object.

Deze 3 roots zijn beveiligd via gebruikstoegangsrechten die de toegang tot deze 3 SQL-bestandsbrowsers standaard verhinderen.

sqlfileview_3_nl


Verandering van het standaardgedrag van Mercator

In "Tools / Opties" biedt Mercator 6 nieuwe opties die gegroepeerd zijn in één nieuwe knoop "Bestanden".

sqlfileview_4_NL

Via deze opties kunt u bepalen of Mercator op bepaalde plaatsen in het programma de klassieke schijfopslag moet gebruiken of de opslag in de SQL-database. Deze opties zijn standaard ingesteld op DISK.

  • Opslag van rapportbestanden: hiermee kunt u bepalen waar Mercator de door de gebruiker wijzigbare standaardrapporten opslaat (bv. HistoryV.repx). Dit wijzigt dus met name het gedrag van "Tools / Modellen documenten".
  • Opslag van informatiebestanden: wordt enkel gebruikt bij het opslaan van de aanmaningsarchieven (debiteurenbeheer).
  • Opslag van btw-bestanden: wordt gebruikt bij de creatie van Intervat-bestanden, eTVA-bestanden en bestanden voor de Luxemburgse jaarlijkse aangifte.
  • Opslag van jaarrekeningbestanden: wordt enkel gebruikt bij het opslaan van eCDF-bestanden (Luxemburgse wetgeving).

Diverse

De SQL-bestanden worden ook in aanmerking genomen bij de overdracht van informatiebestandfiches (bijvoorbeeld: creatie van een klant op basis van een prospect), alsook bij de automatische aanmaak van acties die bestanden bevatten.

Voorbeeld