Epigraph
"Wenn ich Nikanor Ivanovichs Lippen an Ivan Kuzmichs Nase legen würde, eine Prahlerei wie die von Baltazar Baltazarych nehmen und vielleicht Ivan Pavlovichs weitere Widrigkeiten hinzufügen würde, würde ich sofort entscheiden." N.V. Gogol. Heiraten.

Es gibt zwei bekannte und sehr unterschiedliche Projektmanagement-Tools: MS Project und Redmine. Jeder von ihnen hat seine eigenen Vorzüge, und diese Vorzüge könnten sich perfekt ergänzen.
Ich möchte Sie auf ein kleines Dienstprogramm namens P2R aufmerksam machen, das es ohne Installation und mit einem Minimum an Einstellungen ermöglicht, die Online-Synchronisierung von Projekten in MS Project und Redmine sicherzustellen. Es ist verfügbar bei .
Was nützt Project:
- Es ist praktisch, das gesamte Projekt im Dokumentmodus zu bearbeiten - eine Tabelle. Es ist auch ein Plus, dass mehrere Projekte schnell zu einem konsolidierten Projekt zusammengefasst und als Ganzes betrachtet werden können. (In Redmine werden Projektaufgaben jeweils nur einzeln über das Aufgabenformular bearbeitet.)
- Alle Arten von Vielfalt und Flexibilität der Verbindungen zwischen Aufgaben (in Redmine wird die Kommunikation minimalistisch implementiert).
- Überwachen des Ladens von Ressourcen und der Möglichkeit, Aufgaben automatisch in einem Kalender zu verteilen, unter Berücksichtigung von Beziehungen und Laden von Ressourcen. Einschließlich "unmenschlicher" Ressourcen wie Ausrüstung, Einrichtungen usw. (In Redmine gibt es nichts davon. Das Tool wurde für ein anderes erstellt.)
Was ist gut an Redmine:
- Ein kostenloses Produkt auf Ruby On Rails, recht einfach, gut anpassbar und erweiterbar, mit einer aktiven Community, einer großen Auswahl an Plugins, die aktiv entwickelt wurden
- Web und Teamwork. Daher ist es sehr praktisch, den Fortschritt jeder Aufgabe aufzuzeichnen, einschließlich des Änderungsprotokolls, der Korrespondenz und der Diskussionen über die Aufgabe, der Dateien, der einzelnen Berichte über die aufgewendeten Stunden usw. (In Project gibt es nichts davon.)
Es wäre bequem, Projekte in MS Project vorzubereiten, zur Ausführung an Redmine zu senden, die tatsächlichen Aufgabenbedingungen und die geschätzten / verbrachten Stunden von dort abzurufen, sie mit zuvor gespeicherten Basiswerten zu vergleichen und gegebenenfalls Anpassungen vorzunehmen. (Dies ist beispielsweise in einer Situation wie der unseren bei der Arbeit besonders praktisch: Es gibt eine Reihe von Projekten mit einer regelmäßigen Struktur, die nach Vorlagen erstellt, leicht spezifiziert und der Arbeit übergeben werden müssen.)
Es gibt Rredmine-Plugins für diese Integration. Aber sie integrieren sich durch Hochladen und Herunterladen von XML-Dateien, aber ich möchte es ohne Dateien und einfacher.
Das vorgeschlagene P2R-Skript ist in Ruby geschrieben und funktioniert mit MS Project über OLE und mit Redfmine über API. Wenn Ruby nicht installiert ist, können Sie dasselbe Skript verwenden, das in .exe kompiliert wurde (es befindet sich im Download-Ordner, der vom Dienstprogramm ocra generiert wurde).
Das Vorbereiten eines MSP-Projekts für die Veröffentlichung und Synchronisierung erfordert ein Minimum an Maßnahmen.
- P2R speichert Redmine-Task-IDs im Hyperlink-Attribut der MSP-Tasks. Um eine Aufgabe zur Veröffentlichung zu markieren, müssen Sie in dieses Attribut 0 setzen. Nach der Veröffentlichung ändert P2R dieses Feld automatisch in die tatsächliche Aufgaben-ID und generiert gleichzeitig die richtige URL im HyperlinkAddress-Attribut, sodass auf den Link geklickt werden kann. (Dann sollten Sie natürlich nicht vergessen, das MSP-Projekt zu speichern, es wird nicht automatisch gespeichert.)
- P2R speichert Redmine-Benutzer-IDs auch im Attribut "Hyperlink" von MSP-Ressourcen. Um diese Ressource einem Redmine-Benutzer zuzuordnen, müssen Sie die Benutzer-ID vom Redmine-Administrator abrufen. (Der Administrator hat Zugriff auf die Liste der Benutzer und kann deren ID beispielsweise in den Links in der Liste sehen.)
- P2R übernimmt Zugriffsparameter in Redmine aus einer speziellen Aufgabe namens "Redmine Synchronization". Sie müssen eine solche Aufgabe erstellen und die Zugriffsparameter entsprechend dem Beispiel im Feld „Notizen“ im YAML-Format einfügen (die Parameterwerte müssen natürlich durch Ihre eigenen ersetzt werden):
redmine_host: 192.168.10.10 redmine_port: 3000 redmine_api_key: a21e583e7670b1fc79378441d485b9608e4c2dc4c redmine_project_uuid: test task_default_redmine_tracker_id: 4 resource_default_redmine_role_id: 4
Danach ist das Projekt für die Synchronisation bereit. Der Zweck der Parameter ergibt sich aus ihren Namen.
Der Parameter redmine_project_uuid
enthält einen eindeutigen Projektcode, der gemäß den Redmine-Regeln erfunden werden muss. redmine_project_uuid
finden Sie auf der Einstellungsseite eines Projekts. Wenn beim Erstellen eines Projekts der Fehler "Nicht verarbeitbarer Eintrag" auftritt, haben Sie höchstwahrscheinlich die falsche Projekt-UUID ausgewählt.
Der Parameter task_default_redmine_tracker_id
optional. Wenn Sie es weglassen, wird die Standardspur aus den Redmine-Einstellungen hinzugefügt.
Wenn Sie in Redmine kein neues Projekt erstellen, sondern ein vorhandenes verbinden möchten, gehen Sie wie folgt vor:
- Fügen Sie den Parameter
redmine_project_id
zu den Redmine-Synchronisierungseinstellungen hinzu und geben Sie dort die Redmine-Projekt-ID ein. Dies ist keine UUID! Diese Ganzzahl ist die ID des Eintrags in der Redmine-Datenbank. Sie finden diese ID beispielsweise auf der Projektkarte im XML- oder JSON-Format (für das obige Beispiel erhalten Sie sie unter http://192.168.10.10/10000000/projects/test.json ). - Wenn Aufgaben mit vorhandenen Aufgaben in Redmine synchronisiert werden sollen, geben Sie im Feld Hyperlink nicht deren Nullen, sondern ihre tatsächlichen Redmine-IDs ein.
Die Zuweisung von Ressourcen zu einer Aufgabe unterliegt einer geringfügigen Einschränkung:
- Da einer Aufgabe in Redmine nur ein Executor zugewiesen werden kann, schwört das Skript und stoppt, wenn es mehr als eine Ressource in der zur Synchronisierung markierten MSP-Aufgabe findet. (1) Es ist möglich, dass dieses Verhalten in zukünftigen Versionen durch ein sanfteres ersetzt wird, z. B. durch das Ausgeben einer Warnung und das zufällige Auswählen einer davon. (2) Ressourcen, die nicht synchronisiert sind, können beliebig viele zugewiesen werden, P2R ignoriert sie.
Der folgende Synchronisationsalgorithmus ist implementiert:
- Der Name der Aufgabe, die Unterordnungsstruktur und die verantwortliche Person haben auf der MSP-Seite Vorrang, d. H. Sie müssen in MS Project bearbeitet werden, und die Änderungen werden während der Synchronisierung an Redmine übergeben.
- Der Beginn der Aufgabe, das Ende, die Arbeitskosten (Bewertung und tatsächliche) haben auf der Redmine-Seite Vorrang und gehen während der Synchronisation zu MSP.
Es gibt auch ein Problem mit den Arbeitskosten: In MSP sind die Schätzung der Arbeitskosten, die tatsächlichen Arbeitskosten und der Fertigstellungsgrad durch die Formel eng miteinander verbunden, während sie in Redmine unabhängig voneinander festgelegt werden. Das heißt, sie bewerteten es mit 10 Stunden, verbrachten 40 Stunden und erledigten die Aufgabe gleichzeitig um 30%. Es passiert im Leben und Redmine hat nichts dagegen. Die gewählte Lösung ist:
- Die tatsächlichen Kosten werden immer so geschrieben, wie sie sind
- Wenn die tatsächlichen Kosten höher als die Schätzung sind und der Fertigstellungsgrad 0 beträgt, ignorieren Sie die Schätzung
- Wenn die tatsächlichen Kosten höher als die Schätzung sind und der Fertigstellungsgrad nicht 0 ist, berechnen wir eine neue Schätzung basierend auf der Tatsache und dem Fertigstellungsgrad.
Insgesamt sieht der Synchronisationsprozess folgendermaßen aus:
- Wir öffnen unser Projekt in MS Project und lassen es aktiv.
- Wenn wir wollen, starten wir den Leerlauf von P2R und schauen, welche Änderungen vorgenommen werden.
- Wir starten die eigentliche Synchronisation: mit dem Schalter –e.
Das Arbeitsverzeichnis, aus dem das Skript gestartet wird, spielt keine Rolle.
Sie können das Skript per Timer starten und die Synchronisierung erfolgt vollautomatisch.
Danke für die Aufmerksamkeit.