<
Multisite Management, 2024.13
Dokumentation

Rücktransport


Was ist die Rücktransport-Funktionalität?

Multisite Management (MSM) ermöglicht die Verteilung von Inhalten aus einem Quellprojekt in eines oder mehrere Zielprojekte. Die MSM Rücktransport-Funktionalität hingegen ermöglicht es Ihnen, Inhalte aus einem solchen Zielprojekt zurück in das Quellprojekt zu übertragen.

MSM Rücktransport deckt Anwendungsfälle ab, in denen Redakteure im Zielprojekt Inhalte verändern, die zuerst aus dem Quellprojekt in das Zielprojekt transportiert wurden. Diese Änderungen sollen zurück in das Quellprojekt übertragen werden. Dafür muss ein Change Request im Zielprojekt erstellt werden.

Change Requests können nur für Inhalte erstellt werden, die ursprünglich als Teil eines aktiven und ausgerollten Bundles vom Quellprojekt in ein Zielprojekt übertragen wurden.

Im Zielprojekt erfolgt die Change Request-Anfrage über ein benutzerdefiniertes ContentCreator-Skript oder mithilfe eines benutzerdefinierten Workflows. Im Quellprojekt steht Ihnen eine Benutzeroberfläche zur Verfügung, um eingehende Change Requests aus Zielprojekten zu verwalten.


Vorraussetzungen im Zielprojekt

Sie können Change Requests entweder über ein benutzerdefiniertes ContentCreator-Skript oder einen benutzerdefinierten Workflow erstellen. Sie müssen sowohl das Skript für den ContentCreator als auch den Workflow projektspezifisch anpassen.

In beiden Fällen muss im Skript geprüft werden ob eines oder mehrere Elemente geändert wurden.

Die MSM-Rücktransport-Funktionalität ist revisionsbasiert. Das bedeutet, dass bei der Erstellung eines Change Requests kein inhaltlicher Abgleich durchgeführt wird.

Bei der Erstellung des Change Request-Skripts können Sie sich an folgendem Beispiel-Skript orientieren:

Das folgende Beispiel-Skript basiert auf der Multisite Management API ( ) .
import java.util.*;
import de.espirit.firstspirit.agency.*;
import de.espirit.firstspirit.ui.operations.*;
import de.espirit.firstspirit.access.store.pagestore.*;
import de.espirit.firstspirit.modules.multisite.agency.MultisiteAgents;
import de.espirit.firstspirit.modules.multisite.agency.operation.*;

// Helper method that checks if an element has been modified and creates a new TransportRequest for it in that case.
createRequestIfModified(sourceProject, targetProject, language, element) {
    modified = itemAgent.isModified(element, targetProject, language);
    if (!modified) {    
        return;
    }  
    // call operation
    transportOperation = itemAgent.getTransportOperation(element);
    transportOperation.source(language, element.getRevision()).target(targetProject);
    transportOperation.perform();
}

// initialize variables
operationAgent = context.requireSpecialist(OperationAgent.TYPE);
requestOperation = operationAgent.getOperation(RequestOperation.TYPE);
element = context.getElement();
sourceProject = element.getProject();

// get target project
targetProjectName = "Mithras 1";
targetProject = context.getConnection().getProjectByName(targetProjectName);
if (targetProject == null) {
    throw new RuntimeException("Project '" + targetProjectName + "' not found. Request cancelled.");
}

// get language to transport
languageAbbreviation = "EN";
language = sourceProject.getLanguage(languageAbbreviation);
if (language == null) {
    throw new RuntimeException("Language '" + languageAbbreviation + "' not found. Request cancelled.");
}

// get ItemAgent
itemAgent = MultisiteAgents.create(context).getItemAgent();

// create request for the current element
createRequestIfModified(sourceProject, targetProject, language, element);

// special handling for pages: iterate over sections and create a request for each modified section
if (element instanceof Page) {
    page = element;  
    for (section: page.getChildren(Section.class, true).toList()) {
        createRequestIfModified(sourceProject, targetProject, language, section); 
    }
}

// log info
context.logInfo("Script executed without any errors.");

Verwaltung im Quellprojekt

Im Quellprojekt können Sie über die Benutzeroberfläche Change Requests einsehen und, falls notwendig, editieren, annehmen oder ablehnen.

Offene Change Requests anzeigen

Sie können eingegangene und noch nicht angenommene Change Requests aus Zielprojekten im Quellprojekt in der MSM-Benutzeroberfläche verwalten:

  • Öffnen Sie das Quellprojekt im ContentCreator.
  • Navigieren Sie zur MSM-Benutzeroberfläche.
  • Öffnen Sie den Tab Pull.

    → Der Tab Change requests wird standardmäßig geöffnet. Hier können Sie alle eingegangenen und noch nicht angenommenen Change Requests verwalten.

Sie können nur Change Requests für jene Elemente einsehen, für die Sie Editierrechte im Quellprojekt und Anzeigerechte im Zielprojekt besitzen.

Für jeden in der Liste angeführten Change Request steht die folgende Information zur Verfügung:

  • Element: Typ sowie Name des betroffenen Elements

Die MSM Rücktransport-Funktionalität unterstützt die folgenden Element-Typen: Seite (), Absatz () und Datensatz ().

  • Source Project: Name des Projekts, in dem der Change Request erstellt wurde.
  • Languages: Sprache, die der Change Request betrifft.
  • Date/Time: Datum sowie Uhrzeit, zu der der Change Request erstellt wurde.
  • Conflicts: Zeigt an, ob das Element sprachunabhängige Formular-Elemente enthält, die bei Annahme des Change Requests überschrieben werden könnten.

Offene Change Requests filtern

Um die Verwaltung von Change Requests zu vereinfachen, können Sie die Liste der Change Requests filtern.

Es stehen Ihnen folgende Filter-Optionen zur Verfügung:

  • Projects: Filtern Sie die Liste nach Zielprojekten, um nur Change Requests aus gewünschten Zielprojekten anzuzeigen.
  • Languages: Filtern Sie die Liste nach Sprachen, um nur Change Requests für eine oder mehrere gewünschte Sprachen anzuzeigen.
  • Conflicts: Filtern Sie die Liste nach Change Requests mit oder ohne Konflikte, um entweder nur Change Requests ohne Konflikte oder nur Change Requests mit Konflikten anzuzeigen.

Konflikte anzeigen

Wurde ein Change Request für ein Element, das sprachunabhängige Formular-Elemente enthält, erstellt, führt dies zu potenziellen Konflikten.

Wenn ein Change Request anzeigt, dass es Konflikte gibt, bedeutet das nicht, dass dieser nicht angenommen werden kann. Sie sollten Change Requests mit Konflikten jedoch im Editier-Modus genau überprüfen, um mögliche Probleme zu vermeiden.

Sie können Konflikte für Change Requests in der Benutzeroberfläche einsehen:

  • Navigieren Sie zum Tab Pull in der MSM Benutzeroberfläche.
  • Klicken Sie auf im Listeneintrag des gewünschten Change Requests.
    → Eine Liste aller potenziellen Konflikte wird angezeigt.

Beispiel:

Sie erstellen einen Change Request für ein Element, das einen sprachabhängigen Text und ein sprachunabhängiges Bild enthält. Das sprachunabhängige Bild aus dem Zielprojekt ist nicht identisch mit dem Bild im Quellprojekt. Wenn Sie den Change Request ohne Bearbeitung annehmen, werden sowohl der sprachabhängige Text als auch das sprachunabhängige Bild in das Quellprojekt übertragen.

Offenen Change Request einsehen

Für jeden Change Request steht Ihnen ein Log zur Verfügung. Im Log finden Sie weitere Details zum gewählten Change Request, z.B. ob dieser editiert wurde.

  • Navigieren Sie zum Tab Pull in der MSM-Benutzeroberfläche.
  • Bewegen Sie die Maus über den Change Request, den Sie einsehen möchten.
    → Eine Toolbar wird angezeigt.
  • Klicken Sie auf das Symbol Show Log.

    → Die History für den offenen Change Request wird angezeigt.

Change Request editieren

Sie sollten alle Change Requests im Detail ansehen, bevor Sie diese annehmen. Im Editier-Modus können Sie einzelne Text-Elemente übernehmen und so den Change Request editieren. Dadurch können Sie auch sicherstellen, dass in einem Change Request mit Konflikt keine sprachunabhängigen Elemente rücktransportiert werden.

  • Navigieren Sie zum Tab Pull in der MSM-Benutzeroberfläche.
  • Bewegen Sie die Maus über den Change Request, den Sie einsehen möchten.
    → Eine Toolbar wird angezeigt.
  • Klicken Sie auf das Symbol Merge.

    → Im Editor sehen Sie links den Stand aus dem Zielprojekt, der rücktransportiert werden kann, und rechts den aktuellen Stand im Quellprojekt.
  • Um ein im Quellprojekt noch nicht enthaltenes Text-Element zu übernehmen, klicken Sie auf das Plus-Symbol . Um ein im Quellprojekt bereits enthaltenes aber im Zielprojekt geändertes Text-Element zu übernehmen, klicken Sie auf das Stift-Symbol .
    Alternativ: Klicken Sie auf in der Toolbar um ein Text-Element zu übernehmen.
  • Optional: Um ein Text-Element auf den aktuellen Stand im Quellprojekt zurückzusetzen, klicken Sie auf in der Toolbar.
  • Klicken Sie auf Speichern.
    → Die vorgenommenen Änderungen des Change Requests werden gespeichert.

Nach Speicherung Ihrer Änderungen ist der Change Request noch offen. Sie können den geänderten Change Request nun nochmals bearbeiten, ablehnen oder annehmen.

Change Request annehmen

Sie können entweder einen einzelnen Change Request oder mehrere Change Requests aus der Liste gleichzeitig annehmen.

Einzelne Change Requests annehmen

  • Navigieren Sie zum Tab Pull in der MSM-Benutzeroberfläche.
  • Bewegen Sie die Maus über den Change Request, den Sie annehmen möchten.
    → Eine Toolbar wird angezeigt.
  • Klicken Sie auf das Symbol Apply.

    → Der Change Request wurde angenommen.

Sie können Change Requests im Zielprojekt für Elemente erstellen, für die eine revisionsbasierte Differenz erkannt wurde. Bei der Annahme eines Change Requests wird allerdings der Inhalt abgeglichen. Wird bei diesem Abgleich festgestellt, dass keine inhaltlichen Änderungen vorgenommen wurden, werden Sie darauf aufmerksam gemacht, und der Change Request kann nicht angenommen werden.

Mehrere Change Requests annehmen

  • Navigieren Sie zum Tab Pull in der MSM-Benutzeroberfläche.
  • Selektieren Sie einen oder mehrere Change Requests über die Checkbox in der Übersichtsliste.
  • Klicken Sie Apply selected changes.
    → Die selektierten Change Requests wurden angenommen.

Change Request ablehnen

Sie können entweder einen einzelnen Change Request oder mehrer Change Requests in der Liste ablehnen.

Einzelnen Change Request ablehnen

  • Navigieren Sie zum Tab Pull in der MSM-Benutzeroberfläche.
  • Bewegen Sie die Maus über den Change Request, den Sie ablehnen möchten.
    → Eine Toolbar wird angezeigt.
  • Klicken Sie auf das Symbol Discard.

    → Der Change Request wurde abgelehnt.

Mehrere Change Requests ablehnen

  • Navigieren Sie zum Tab Pull in der MSM-Benutzeroberfläche.
  • Selektieren Sie einen oder mehrere Change Requests über die Checkbox in der Übersichtsliste.
  • Klicken Sie Discard selected changes.
    → Die selektierten Change Requests wurden abgelehnt.

Angenommene Change Requests nachvollziehen

Sie können Change Requests auch nach der Annahme nachvollziehen.

  • Navigieren Sie zum Tab Pull in der MSM-Benutzeroberfläche.
  • Öffnen Sie den Tab History.
    → Hier können Sie alle angenommenen Change Requests einsehen.
  • Optional: Filtern Sie die Liste.
  • Bewegen Sie die Maus über den Change Request, den Sie nachvollziehen möchten.
  • Klicken Sie auf das Symbol Show Log .
    → Die History für den angenommenen Change Request wird angezeigt.