Onlinedateien Offline bearbeiten

Moderator: ModerationP

Onlinedateien Offline bearbeiten

Beitragvon Xyrion » 04. Mär 2019, 09:56

Hallo zusammen,

mir schwirrt seit ein paar Tagen ein Problem im Kopf herum, für das ich keine vernünftige Lösung finde:

Ich habe Online Exceldateien die über eine gewisse URL erreichbar ist. Nun möchte ich auf diese Datei verschiedenen Leuten Zugriff geben. Das soll folgendermaßen ablaufen:

1. Nutzer gibt URL in Browser ein
2. Es komt das Fenster "Datei öffnen mit..."
3. der Nutzer wählt hier Excel aus
4. Datei wird mit einem lokal installierten Excel geöffnet
5. Der Nutzer ändert die Datei und klickt auf "speichern" (nicht "speichern unter...")
6. Die Datei online wird aktualisiert

1 + 2 + 3 + 4 ist gelöst: ms-excel:ote|u|https://www.example.com/pfad/zur/excel.xlsx

Was mir nun Kopfzerbrechen bereitet ist das Zurückspeichern... hat hier vielleicht jemand eine Lösung?

Vielen Dank für Antworten.
Xyrion
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4
Registriert: 04. Mär 2019, 09:43

Re: Onlinedateien Offline bearbeiten

Beitragvon RPP63 » 04. Mär 2019, 10:15

Moin!
Warum speicherst Du nicht einfach auf OneDrive und rufst einen Bearbeitungslink ab?
Die Bearbeitung kann dann wahlweise im Browser oder im lokalen Excel erfolgen.
Mittlerweile klappt auch das gleichzeitige Bearbeiten in der Cloud hervorragend.

Gruß Ralf
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 10240
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: Onlinedateien Offline bearbeiten

Beitragvon Xyrion » 04. Mär 2019, 10:19

Hallo Ralf,

vielen Dank für die Antwort.

Das "Problem" ist hierbei die (gewachsene) Struktur. Die Dateien liegen in einer eigenen Umgebung, die nicht so einfach auf OneDrive migrierbar ist und es firmenphilosophische Einschränkungen gibt, die eine OneDrive Migration nur schwerlich erlauben werden...
Xyrion
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4
Registriert: 04. Mär 2019, 09:43

Re: Onlinedateien Offline bearbeiten

Beitragvon losgehts » 04. Mär 2019, 10:36

Hallo,

grundsätzlich sehe ich bei deiner Vorgehensweise das Problem, dass sich jeder Nutzer eine lokale Kopie macht und diese verändert. Machen das mehrere gleichzeitig, werden nur die Änderungen eines Nutzers gespeichert. => ich halte die Vorgehensweise für bedenklich!

Falls dir das egal ist: ist es zutreffend, wenn ich das Problem wie folgt beschreibe:
Ich habe eine Datei geöffnet, deren Namen mir unbekannt ist, die im %temp%-Verzeichnis liegt. Diese möchte ich gerne auf einem Webserver speichern, sodass sie unter der URL https://www.example.com/pfad/zur/excel.xlsx erreichbar ist und die dortige Datei überschreibt.


Wenn der Webserver als Laufwerk eingebunden ist, dann müsstest du ja nur das richtige Lauwerk und den richtigen Pfad herausfinden und die bestehende Datei überschreiben.

Ansonsten könntest du sie vielleicht per FTP hochladen (setzt aber einen FTP-Zugang voraus und das FTP-Passwort wird im Code veröffentlicht).

Mehr Ideen habe ich gerade nicht. Ich würde aber ganz dringend an einem Konzept arbeiten, das es nur einem Nutzer erlaubt Änderungen zu vorzunehmen (so nach dem Motto: während der eine Nutzer die Datei ändert, ist sie für andere gesperrt/nicht erreichbar etc).

Grüße, Ulrich
Ich freue mich über jede Art von Feedback
Die Forensoftware sendet mir aktuell keine Benachrichtigungen mehr zu, daher kann es gut sein, dass ich deine Antwort auf meinen Post nicht mitbekomme.
losgehts
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4629
Registriert: 03. Okt 2006, 14:08

Re: Onlinedateien Offline bearbeiten

Beitragvon Xyrion » 04. Mär 2019, 10:52

Hallo Ullrich,

auch dir ein Dankeschön für die Antwort.

Die Schwierigkeit an einer (z.b.) WebDav-Lösung ist, dass die Bearbeiter damit nicht klar kommen, sprich sie sind überfordert mit der Ordnerstruktur.

Der Use Case ist im Regelfall folgender: Person A (die hier affiner ist) muss ein Dokument ausfüllen, dazu sind aber viele Informationen von Person B von Nöten. Person B bekommt also diesen Link von Person A und öffnet die Datei in Excel. Nun ändert die Person B die Inhalte und drückt auf das Diskettensymbol. Nun soll die Magie passieren.

losgehts hat geschrieben:Falls dir das egal ist: ist es zutreffend, wenn ich das Problem wie folgt beschreibe:
Ich habe eine Datei geöffnet, deren Namen mir unbekannt ist, die im %temp%-Verzeichnis liegt. Diese möchte ich gerne auf einem Webserver speichern, sodass sie unter der URL https://www.example.com/pfad/zur/excel.xlsx erreichbar ist und die dortige Datei überschreibt.


Das trifft es. ja. Idealerweise weiß Excel durch den Öffnungsprozess, wo die Datei herkommt.

Ich habe schon mit Lösungen wie Dropbox und WebDav herumgespielt, aber hier scheitert es jedesmal an Person B, die nicht versteht, wo sich diese Datei befindet.

Der Hinweis mit dem "nicht gleichzeitig bearbeiten" ist bei mir im Hinterkopf, aber das ist aktuell ein untergeordnetes Problem (das kann ich auf Serverebene lösen, da die Dateien nur augenscheinlich direkt aufrufbar sind aber intern über eine PHP Routine laufen, für den Beobachter sieht es nur so aus, wie wenn er die Datei direkt läd)
Xyrion
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4
Registriert: 04. Mär 2019, 09:43

Re: Onlinedateien Offline bearbeiten

Beitragvon losgehts » 04. Mär 2019, 14:13

Hallo,

Idealerweise weiß Excel durch den Öffnungsprozess, wo die Datei herkommt.

ich vermute, dass dem nicht so ist. Meiner Vermutung nach übergibt der Browser dem Betriebssystem die Datei, das Betriebssystem legt sie im %temp%-Verzeichnis ab und startet Excel mit der Aufforderung, die Datei zu öffnen (vorher evtl. noch Virenscanner etc....). Auch wenn der Weg nicht ganz genau so ist, wie ich es vermute, so kommt die Info des Ursprungs bei Excel IMHO nicht an.

Wenn du
msgbox thisworkbook.fullname
ausführst, dann wirst du nur das %temp%-Verzeichnis sehen und nicht den http:/.... - Link.

Die Info, wo die Datei wieder hin soll, müsste schon in die Excel-Datei.

Alles nur ein Zwischending aus Vermutungen und Erfahrung meinerseits - nichts stichhaltiges. Ich lasse mich gerne von etwas anderem überzeugen!


Zur Magie: mann könnte den ursprünglichen Autor auslesen. Auf dem Server könnte zB. eine ini-Datei liegen, in der steht, in welchem Verzeichnis Dateien für den Autor abgelegt werden sollen. Mit der Info "Autor" könnte man dann also aus der ini den Verzeichnispfad auslesen...
Solch ein Konstrukt kann ich aber nicht empfehlen.

=> ich bin leider nicht der richtige Magier für deine Sache, würde mich aber freuen, wenn du hier mitteilst, falls du eine Lösung gefunden hast.

Vielleicht haben ja andere noch Ideen?

Grüße, Ulrich
Ich freue mich über jede Art von Feedback
Die Forensoftware sendet mir aktuell keine Benachrichtigungen mehr zu, daher kann es gut sein, dass ich deine Antwort auf meinen Post nicht mitbekomme.
losgehts
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4629
Registriert: 03. Okt 2006, 14:08

Re: Onlinedateien Offline bearbeiten

Beitragvon Xyrion » 04. Mär 2019, 14:38

Hallo,

danke für deine Gedankengänge.

Ich habe natürlich weiter herumprobiert und bin über https://github.com/vgrem/phpSPO gestolpert, was sich als sehr vielversprechend herausstellt. Man geht den Weg über (eigenes) Sharepoint (Euer OneDrive-Einwurf hat mich darauf gebracht), aber ohne dass der User direkt etwas mitbekommt.

Ich mehrere Herausforderungen zu lösen, die ich hier mal aufschlüssel und (wenn umgesetzt) entsprechend hier vervollständige:

Schritt 1 - das Öffnen der Datei
Code: Alles auswählen
Hier liegt die größte Herausforderung darin, dass die Datei irgendwo "bei uns" liegt und Excel aber wissen muss, wo es denn hinspeichern soll. Wir haben nun in Sharepoint einen Unterordner angelegt, der sozusagen als "temporäre Ablage" dient. Wenn nun in unserem System jemand auf "Edit file" klickt, ruft er ein PHP Script auf.
Dieses Script nutzt nun die API um die Datei in Sharepoint zu übertragen, Dateiinformationen zu erhalten (besonders den Pfad der Datei) und dann auf[i]ms-excel:ofe|ofc|u|https://youraccount.sharepoint.com/Freigegebene%20Dokumente/Unser%20Ordner/Dateiname.xlsx[/i] weiterzuleiten. Gleichzeitig gibt es einen Eintrag in der Mappingtabelle für das zurückspielen...

Der Nutzer bekommt davon nichts mit sondern erhält nur den "In App öffnen"-Dialog, kann ganz normal in Excel mit der Datei arbeiten und diese wie gewohnt speichern.


Schritt 2 - das Sperren der Datei
Code: Alles auswählen
Kurzfristig sind wir da recht unorthodox vorgegangen und haben einfach bei unserer Datei einen Flag gesetzt, den man dann entweder wieder freigeben kann und/oder der per Cronjob nach Zeitraum X automatisch freigegeben wird.

=> Nicht optimal, kurzfristig sollte es reichen, langfristig sollte ein Check über Sharepoint etc. stattfinden und ein bisschen "smarter" das umgesetzt werden.


Schritt 3 - das Bearbeiten
Code: Alles auswählen
Tatsächlich funktioniert die komplette Magic in Excel selbst relativ unkompliziert => Ist der User nicht eingeloggt, gibts ein Username/PW Dialog, ansonsten kann er normal arbeiten.


Schritt 4 - das Aktualisieren
Code: Alles auswählen
Nach dem Speichern der Datei auf Sharepoint muss die Datei natürlich auch auf unserem System zurückgespielt werden. Hierzu gibt es, [url=https://docs.microsoft.com/de-de/sharepoint/dev/apis/webhooks/overview-sharepoint-webhooks]wie ich in der Doku gelesen habe[/url], Webhooks. War mir ehrlich gesagt für eine erste Lösung zu aufwändig. Wir haben hierzu einfach einen Cronjob, der regelmäßig Sharepoint antriggert, schaut, ob es geänderte Dateien gibt und dann diese (anhand der Mappingtabelle) zurückspielt.


Das ist nun die Theorie, Schritt 1 + 3 habe funktioniert im ersten Versuch in einem Freihand-Test (schnell zusammengestöpselt), Rest muss noch implementiert/getestet werden.

Offene Herausforderungen
  • Sharepoint wird ziemlich vollgemüllt
  • Der Cronjob, der auf Änderungen in Sharepoint achtet wird sich über kurz oder lang verschlucken (siehe Punkt davor)
  • Wenn der User die Datei unter neuem Namen abspeichert, gibt es keine Verbindung zurück (wäre schön, wenn sich die Datei dann irgendwie passend einordnet, aber da habe ich noch keine Idee)
  • Berechtigungskonzepte fehlen noch (zumindest muss Sharepoint mit unserem System irgendwie gesynct werden)
  • Active Directory hat einiges an schönen Helferlein, die das ganze wahrscheinlich robuster machen würde...leider ist die Doku relativ besch...eiden.

Soweit mein Stand.
Xyrion
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4
Registriert: 04. Mär 2019, 09:43


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: GMG-CC, Hajo_Zi, knobbi38, TommyDerWalker und 18 Gäste