Bestandsverkenner voor OneDrive

0000003288     -      05-09-2025

Mercator biedt al lange tijd verschillende functionaliteiten voor het weergeven van bestanden in diverse schermen en in MercatorPenguin. Deze bestanden kunnen worden opgeslagen op schijf / een gedeeld volume (FileView) of in de SQL-database (SqlFileView). Mercator 12.0 of later bevat nu ook de component OneDriveFileView. Deze werkt identiek aan de SqlFileView, maar de bestanden worden opgeslagen op een OneDrive-schijf. De interacties tussen Mercator en deze schijf verlopen via de Graph API.

Om deze functionaliteit te activeren, moet eerst de Graph API van Office 365 geconfigureerd worden zoals beschreven op deze pagina. Specifieke rechten voor bestandsbeheer moeten echter worden toegekend:

  • Sites.Read.All
  • Files.ReadWrite
  • Files.ReadWrite.All

Aangezien de inloggegevens voor de Graph API op verschillende manieren kunnen worden opgeslagen, is het nodig om aangepaste code te voorzien die MercatorOutlook.OutlookStatic.Office365GraphParams vult. Als het voorbeeld onderaan deze pagina is geïmplementeerd, dan kan deze code worden geplaatst in de Main customizer.

Zoom
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;
using MercatorUi;
using MercatorExtensions;
using System.Linq;

// <CompileWithRoslyn />

namespace Main
{
    public class Customizer : MercatorUi.ICustomizers.IExec, MercatorUi.ICustomizers.IPenginServerInstanceInitialized
    {
        public void Main(MercatorUi.ICustomizers.ExecAction action)
        {
            if (action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
                MercatorOutlook.OutlookStatic.Office365GraphParams = SendMailOffice365GraphParameters;
        }

        public void PenginServerInstanceInitialized()
        {
            MercatorOutlook.OutlookStatic.Office365GraphParams = SendMailOffice365GraphParameters;
        }

        private IneoSmtp.Smtp.SendMailOffice365GraphParameters SendMailOffice365GraphParameters
        {
            get //!\ niet opslaan in een statische variabele want de clientSecret zal wijzigen
            {
                var l = Api.Zselect<(string id, string secret)>(Globals.RepData, "select id,secret from FREE_TABLE_SECRETS where id like 'Off365%'");
                if (l == null)
                    throw new ApplicationException("SendMailOffice365GraphParameters SQL error : " + Api.LastError);
                foreach (string key in new string[4] { "Off365ClId", "Off365ClSe", "Off365Tena", "Off365UId" })
                    if (!l.Any(p => p.id == key))
                        throw new ApplicationException($"SendMailOffice365GraphParameters key \"{key}\" is missing !");
                return new IneoSmtp.Smtp.SendMailOffice365GraphParameters(
                                            l.First(p => p.id == "Off365ClId").secret,
                                            l.First(p => p.id == "Off365ClSe").secret,
                                            l.First(p => p.id == "Off365Tena").secret,
                                            l.First(p => p.id == "Off365UId").secret);
            }
        }
    }
}

 Door MercatorOutlook.OutlookStatic.Office365GraphParams in te vullen, wordt ook het verzenden van e-mails naar de Nieuwe Outlook (project Monarch). Als dit niet gewenst is, moet de eigenschap NotUsedForMails van SendMailOffice365GraphParameters op false worden gezet.


Vervolgens moet je naar het menu "Tools / Setup / OneDrive" in Mercator gaan. Daar kunnen de volgende parameters worden ingevoerd:

  • Site : site in de betekenis van OneDrive. Indien nodig, maak in het beheerdersportaal een nieuwe site aan zodat de bestanden van Mercator gescheiden blijven. Deze site moet minstens één drive bevatten.
  • Drive : de te gebruiken OneDrive-schijf.
  • Map : een vrije naam die als rootmap zal dienen voor de bestanden van deze Mercator. Indien meerdere Mercator-installaties dezelfde site en drive gebruiken, moet deze map verschillend zijn voor elk van hen.

 Als deze parameters achteraf gewijzigd worden, zullen eerder opgeladen bestanden niet meer zichtbaar zijn. Deze instellingen moeten dus slechts één keer vastgelegd worden en daarna niet meer worden gewijzigd.

Gebruik in Mercator desktop

In de parametrering volstaat het om een Object van het type OneDriveFileView toe te voegen. Het gedrag is vergelijkbaar met dat van de SqlFileView, met deze beperkingen:

  • Er is geen audit op een OneDriveFileView.
  • Het concept van aliassen bestaat niet.
  • De werking is trager dan SqlFileView omdat de gegevens op afstand staan en de Graph API geen batchbewerkingen toelaat (geen bulkbestanden, bijvoorbeeld alle toegevoegde/gewijzigde bestanden worden afzonderlijk geüpload).

 

Gebruik in MercatorPenguin

MercatorPenguin beschikt ook over een EditOneDriveFileView die exact werkt zoals de EditFileView.

<m:EditOneDriveFileView Margin="25,10,25,10" />


Functionele cookies: Cookies die nodig zijn voor het gebruik van de website en voorkeurscookies. Ze bevatten geen persoonsgegevens. (Meer informatie)

Analytische cookies: Verzamelen van statistieken met betrekking tot het gedrag van internetgebruikers. (Meer informatie)

Marketingcookies: Om bezoekers op verschillende websites te volgen voor advertentiedoeleinden. (Meer informatie)