Bearbeiten von Vorlagen – Ausführen von benutzerdefinierten Skripts in der Mitte eines Projekts (Midscripts)
Nur Experten: Fahren Sie nur fort, wenn Sie mit Skripts, Programmen, Diensten und Benutzern in Windows vertraut sind. Wenn Sie nicht über diese Kenntnisse verfügen, wenden Sie sich an einen Experten, soweit möglich an einen IT-Spezialisten.
Zu verschiedenen Zeitpunkten in einem Projekt können Sie eigene Programme ausführen, mit denen Dokumente geändert oder andere Vorgänge durchgeführt werden. Dies geschieht als automatisierte Aktion – anders als das Scripting vor und nach dem Export.
Da diese Programme zwischen dem Import und dem Export ausgeführt werden, werden sie auch als Midscripts bezeichnet.
Nicht möglich ohne Vorlagen: Dies ist nur bei Projekten möglich, die über Projektvorlagen erstellt wurden.
Wenn Sie eigene Programme ausführen, um Dokumente zu ändern, werden Midscripts folgendermaßen verwendet:
- Im Projekt haben sich Änderungen ergeben. Ein Übersetzer hat beispielsweise ein Dokument geliefert. Sie möchten an diesem Dokument eine Änderung vornehmen, bevor es an den nächsten Benutzer (z. B. Überprüfer 1) weitergeleitet wird. Vielleicht möchten Sie einen Begriff ersetzen oder Segmente entsperren, jedoch nur, wenn sie einen bestimmten Begriff enthalten. Die Möglichkeiten sind endlos.
- Das Dokument wird in memoQ im MQXLIFF-Format exportiert. Dabei handelt es sich um ein zweisprachiges XML-Standarddokument.
- Das Programm wird im Dokument ausgeführt. Dieses Programm erfordert eine MQXLIFF-Datei als Eingabe und muss eine MQXLIFF-Datei ausgeben. Das Format darf nicht geändert werden – andernfalls führt dies in memoQ zu Beeinträchtigungen.
- Das Dokument im Projekt wird über die geänderte MQXLIFF-Datei aktualisiert.
Unter Umständen möchten Sie jedoch keine Änderung in einem Dokument vornehmen, sondern bestimmte Einstellungen im Projekt überprüfen oder ändern, z. B. zu einem anderen Translation Memory wechseln oder einen Liefertermin ändern, auch hier ist die Liste endlos. Auch dies ist möglich:
- Im Projekt haben sich Änderungen ergeben.
- In memoQ werden keine Dokumente exportiert.
- Stattdessen wird ein Programm ausgeführt, mit dem über die Web Service-API eine Verbindung mit dem memoQ TMS hergestellt und eine Änderung am Projekt oder den zugehörigen Ressourcen vorgenommen wird.
Sinnvoll in Online-Projekten: Sie können zwar auch lokale Projekte mit Midscripts einrichten, sinnvoll ist dies aber hauptsächlich bei Online-Projekten auf memoQ TMSn. In diesem Thema wird erläutert, wie Sie ein Midscript in einem Online-Projekt einrichten können.
Richten Sie zuerst Ihren Server ein: Wenn Sie dies für Online-Projekte durchführen möchten, müssen Sie zunächst Ihren Server einrichten. Dies wird im Abschnitt Möglichkeiten weiter unten in diesem Thema erläutert.
Sie müssen das Programm schreiben oder erwerben: memoQ enthält keine Programme, mit denen die gewünschten Änderungen an Dokumenten oder am Projekt vorgenommen werden können. Sie müssen diese Programme entweder selbst schreiben oder von einem Programmierer erwerben. Sie können sich auch an das Team von memoQ Business Services wenden und sich Programme gegen Gebühr entwickeln lassen.
Verwenden Sie zum Vorbereiten oder Nacharbeiten von Dokumenten das integrierte Tool Suchen und Ersetzen: Weitere Informationen finden Sie im Thema zum Skript "Suchen und Ersetzen".
Navigation
- Öffnen Sie die Ressourcenkonsole .
- Klicken Sie links auf Projektvorlagen .
-
Wählen Sie die zu bearbeitende Vorlage aus.
Einrichten einer Vorlage für Online-Projekte oder Ressourcen: Verwenden Sie dazu eine Online-Vorlage. Wählen Sie oben in der Ressourcenkonsole Ihren memoQ TMS aus. Klicken Sie auf die Schaltfläche Auswählen .
- Klicken Sie unterhalb der Liste auf Bearbeiten.
- Klicken Sie links auf Automatisierte Aktionen.
- Wählen Sie auf der Registerkarte Projekt-Automatisierung ein Ereignis (einen Auslöser) im Projekt aus.
- Klicken Sie rechts auf das Pluszeichen +.
- Wählen Sie im Fenster Wählen Sie Aktionen aus, die Sie automatisch ausführen möchten die Aktion Benutzerdefinierten Code ausführen aus.
- Klicken Sie auf die Schaltfläche Hinzufügen.
-
Das Fenster Details zum benutzerdefinierten Code festlegen wird angezeigt.
Ändern einer vorhandenen automatisierten Aktion: Wenn die Aktion Benutzerdefinierten Code ausführen auf der Registerkarte Projekt-Automatisierung bereits angezeigt wird, wählen Sie sie unter Dem ausgewählten Auslöser hinzugefügte Aktion aus. Klicken Sie neben der Aktion auf das Symbol Einstellungen . Das Fenster Details zum benutzerdefinierten Code festlegen wird angezeigt.
Möglichkeiten
The scripts that run in your projects are programs. On a server, not everyone is allowed to run programs. Normally, memoQ TMS isn't allowed to run programs - for security reasons.
Before you run scripts in an online project, you need to allow memoQ TMS to run them.
Must be an administrator and must be an expert: You can't follow the steps below if you're not an administrator of the memoQ TMS computer, and you're not completely aware of the things you're about to do.
You don't do this from memoQ - set aside the memoQ window until you finish these steps.
- Through Remote Desktop, sign in to the memoQ TMS computer as an administrator. (That is, you must be an administrator of the entire machine, not just the memoQ TMS program.)
- Open Control Panel. Choose Programs and Features. Select memoQ TMS. Click Change. The memoQ TMS deployment tool opens.
- In the memoQ TMS section of the Deployment program, click Advanced, and then choose Configure custom code execution. The Configure custom code execution window appears.
- As a rule, choose Virtual service account here. Click Next. Never use a built-in account, such as Administrator. You may use a specific account under the This account radio button. But you must be very careful to set it up, so that it isn't used for anything else. Use a specific account only if the account must be a domain account, or your script must access another computer on the network.
- The deployment tool checks if the settings are valid. You must be an administrator of the server computer, and the selected account must be able to log on as a service. If you see two green tick marks in the window, click Next. If there is an error, click Back, and change the settings.
- The deployment tool sets up memoQ TMS for running the scripts and programs. This may take a while. When you see the Settings have been saved successfully message, click Finish.
- A warning appears that you must restart memoQ TMS. Click OK.
- In the deployment tool, click Stop memoQ TMS. When the Start memoQ TMS link appears, click Start memoQ TMS.
- When the deployment tool reports that memoQ TMS is running again, close it.
Your programs may need files that cannot be stored in the project templates. These files can be stored in the project template - but if they are in the project template, you can't change or fix them while a project is running. In that case, you would need to create the whole project again.
Because of this, you need to place some - in fact, most - program files outside the project template.
When you set up custom code execution, the service user will get the Log on locally system permission, as well as permissions for the C:\ProgramData\memoQ Server\Scripting folder on the server. Under this folder create another folder called Custom or Scripts, and place your program files there.
With this setup, if you need to replace a program file - because of a bugfix, for example -, you can do it in this folder. Your existing project will use the updated program file immediately.
Zunächst benötigen Sie mindestens zwei Dateien:
- Eine Hauptprogrammdatei, über die der eigentliche Vorgang in Ihrem Projekt durchgeführt wird. Möglicherweise sind auch weitere Dateien erforderlich. Diese müssen Sie mit der Hauptprogrammdatei kopieren.
- Eine Batchdatei, die einen einzigen Befehl enthält, und zwar zum Starten der Hauptprogrammdatei. Diese Datei legen Sie in der Projektvorlage ab.
- Kopieren Sie die Hauptprogrammdatei auf dem Server in den Ordner Dokumente des Dienstbenutzers. (Beispiel: c:\Users\_svc_mqsinternal\Documents\Scripting.) Auf dem memoQ TMS wird die Hauptprogrammdatei unter dem Namen des Dienstbenutzers ausgeführt.
- Überprüfen Sie, ob die Batchdatei auf den richtigen Ordner auf dem Server verweist. Die Batchdatei kann beispielsweise den folgenden Befehl enthalten:
c:\Users\_svc_mqsinternal\Documents\Scripting\C_Converter.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
Diese Batchdatei startet das Programm C_Converter.exe und übergibt bis zu neun Argumente an dieses Programm. Das Programm sollte sich im Ordner C:\Users\_svc_mqsinternal\Documents\Scripting auf dem Server befinden. Dieser Ordner befindet sich nicht auf Ihrem Computer.
Sie können diesen Befehl in Ihre eigene Batchdatei kopieren. Ersetzen Sie einfach den Namen der EXE-Datei zum Aufrufen eines anderen Programms. Und überprüfen Sie auch den Ordner.
- Kehren Sie zu memoQ zurück, stellen Sie eine Verbindung mit dem gleichen Server her, und bearbeiten Sie die Projektvorlage. Die Projektvorlage muss sich auf demselben Server befinden.
Online-Projekt, Online-Vorlage: Verwenden Sie niemals ein lokales Projekt zum Erstellen von Online-Projekten. Stellen Sie sicher, dass sich die Vorlage auf dem gleichen Server befindet.
- Wählen Sie Automatisierte Aktionen aus. Wählen Sie auf der Registerkarte Project automation das Ereignis aus, bei dem das Programm ausgeführt werden soll. Klicken Sie neben der Liste Dem ausgewählten Auslöser hinzugefügte Aktion auf das Pluszeichen (+). Wählen Sie im Fenster Wählen Sie Aktionen aus, die Sie automatisch ausführen möchten die Aktion Benutzerdefinierten Code ausführen aus. Klicken Sie auf Hinzufügen. Das Fenster Details zum benutzerdefinierten Code festlegen wird angezeigt.
Wenn die Aktion Benutzerdefinierten Code ausführen bereits vorhanden ist: Wählen Sie sie unter Dem ausgewählten Auslöser hinzugefügte Aktion aus. Klicken Sie neben der Aktion auf das Symbol Einstellungen . Das Fenster Details zum benutzerdefinierten Code festlegen wird angezeigt.
- Klicken Sie unter Dateien auswählen, die für Code benötigt werden auf Dateien hinzufügen. Suchen und öffnen Sie die Batchdatei, die das Hauptprogramm startet. Fügen Sie hier nicht das Hauptprogramm ein.
Ersetzen einer Skriptdatei oder einer Batchdatei: Wählen Sie die Datei in der Liste Dateien auswählen, die für Code benötigt werden aus. Klicken Sie auf Löschen. Fügen Sie dann durch Klicken auf Dateien hinzufügen die neue Datei hinzu.
- Wählen Sie die Batchdatei in der Liste Dateien auswählen, die für Code benötigt werden aus. Klicken Sie auf Als Befehl festlegen.
- Richten Sie als Nächstes den Befehl ein. Der Befehlsname ist identisch mit dem Namen der Batchdatei. Geben Sie unter Befehlszeilenargumente die für das Hauptprogramm erforderlichen Argumente ein. Wenn Sie Projektdokumente ändern, müssen Sie Eingabedateipfad und Ausgabedateipfad hinzufügen. In diesem Fall erfordert das Programm zwingend ein MQXLIFF-Dokument als Eingabedatei und muss als Ausgabedatei ein MQXLIFF-Dokument generieren.
Die dokumentbezogenen Platzhalter sind nur sinnvoll, wenn sich das Ereignis, bei dem das Programm gestartet wird, auf ein Dokument bezieht.
Für das Programm sind möglicherweise auch andere Befehlszeilenargumente erforderlich.
Sie können auch andere Platzhalter verwenden, sodass das Programm für den Bezeichner des Projekts sowie für die Ausgangs- und Zielsprachen verwendet werden kann. Größtenteils werden diese Platzhalter zum Suchen oder Erstellen von Ordnern verwendet, sodass unterschiedliche Dateien, die unterschiedlichen Zwecken dienen, separat gespeichert werden.
So fügen Sie einen Platzhalter ein: Klicken Sie auf Platzhalter einfügen, und wählen Sie im Menü den gewünschten Platzhalter aus.
- Eingabedateipfad: Der vollständige Pfad und der Name des Projektdokuments. Sie müssen den Pfad nicht kennen, er wird in memoQ automatisch erstellt.
- Ausgabedateipfad: Der vollständige Pfad und der Name des transformierten Projektdokuments, das im Projekt aktualisiert wird. Sie müssen den Pfad nicht kennen, er wird in memoQ automatisch erstellt.
- ZugewiesenAn: Der Name des Benutzers (Übersetzer, Überprüfer 1 oder Überprüfer 2), dem das Dokument zur Bearbeitung zugewiesen wird.
- Liefertermin: Der Liefertermin des aktuellen Workflow-Schritts (Übersetzung, Überprüfung 1 oder Überprüfung 2) des Dokuments.
- FinalerLiefertermin: Der Liefertermin des letzten Workflow-Schritts des Dokuments. Dies ist der endgültige Liefertermin.
- Workflowstatus: Der Workflow-Schritt (Übersetzung, Überprüfung 1 oder Überprüfung 2) und der Status (Nicht begonnen, In Bearbeitung, Beendet) des Dokuments.
- SrcLangIso2: Aus zwei Buchstaben bestehender Code der Ausgangssprache des Projekts.
- SrcLangIso3: Aus drei Buchstaben bestehender Code der Ausgangssprache des Projekts.
- TrgLangListIso2: Liste der aus zwei Buchstaben bestehenden Codes der Zielsprachen des Projekts.
- TrgLangListIso3: Liste der aus drei Buchstaben bestehenden Codes der Zielsprachen des Projekts.
- ProjectGuid: Der globale eindeutige Bezeichner des Projekts. Dabei handelt es sich um eine lange Zahlenfolge, die sich niemals wiederholt.
- DocumentGuid: Der globale eindeutige Bezeichner des aktuellen Dokuments.
- Wählen Sie aus, wie lange die Ausführung des Programms maximal dauern soll. Da es Teil eines aktiven Projekts ist, darf die Ausführung nicht zu lange dauern. Legen Sie die Sekunden fest, nach denen das Programm auf dem memoQ TMS beendet wird (wenn es nicht von selbst beendet wird).
- Wenn Sie fortfahren und Dokumente im Programm ändern möchten, aktivieren Sie das Kontrollkästchen Export documents as MQXLIFF for script to process. Dadurch werden die Dokumente vor dem Ausführen des Programms gespeichert.
- Wenn Sie das exportierte Dokument ändern und das Projekt über dieses Dokument aktualisieren möchten, aktivieren Sie das Kontrollkästchen Update documents in project from script's output. Nach dem Ausführen des Programms wird das Projekt über die geänderte MQXLIFF-Datei aktualisiert.
Mit dem Programm dürfen nur kleinere Änderungen vorgenommen werden: Das Programm muss das Format des MQXLIFF-Dokuments strikt beibehalten. Zudem sollten Inhalte nicht übermäßig hinzugefügt oder gelöscht werden, da dann das Dokument in memoQ möglicherweise nicht aktualisiert wird.
- Schließlich können Sie das Skript testen. Klicken Sie auf Meinen Befehl testen. Das Fenster Benutzerdefinierte Codeausführung - Test ausführen wird angezeigt.
- Wenn das Programm für ein Dokument ausgeführt wird: Exportieren Sie ein Dokument im MQXLIFF-Format. Geben oder fügen Sie dann den Pfad und Namen des Dokuments im entsprechenden Textfeld ein, oder klicken Sie auf Durchsuchen, um das Dokument auf dem Computer zu suchen. Klicken Sie auf OK.
Das Skript und das Beispieldokument werden auf den Server hochgeladen, Ihr externes Programm dagegen nicht. Es wird versucht, das Skript auf dem Server auszuführen.
- Nach Beendigung des Tests wird das Meldungsfeld Ergebnis testen geöffnet und darin ein Exitcode angezeigt. Wenn das Programm erfolgreich ausgeführt wurde, lautet der Exitcode 0. Bei einem Fehler wird als Code normalerweise -1 (oder auch eine andere Zahl) angezeigt.
- Klicken Sie abschließend auf OK.
Ein Midscript wird in memoQ automatisch ausgeführt, wenn das entsprechende Ereignis eintritt.
Wenn beispielsweise der Liefertermin für die Überprüfung geändert werden muss, wenn der Übersetzer zu spät liefert, wird das Programm ausgeführt, wenn ein Übersetzer ein Dokument liefert.
Um ein Skript zu verwenden, erstellen Sie ein Projekt über die Projektvorlage, und führen Sie den Workflow bis zu dem Punkt aus, für den die Ausführung des Skripts festgelegt ist. Überprüfen Sie dann, ob die erwartete Änderung tatsächlich erfolgt.
Sie können beispielsweise das Skript (das gesamte Programm) in die Projektvorlage einfügen. Es wird dann in memoQ in einen Ordner extrahiert und ausgeführt. Das funktioniert gut, bis Sie feststellen, dass ein Problem mit dem Skript vorliegt.
Dies können Sie in der Projektvorlage beheben. Wenn Sie jedoch eine Änderung in der Vorlage vornehmen, z. B. das Skript ersetzen, wirkt sich das nur auf neue Projekte aus. Wenn ein Problem in einem vorhandenen Projekt aufgetreten ist, lässt sich dies nicht durch Ersetzen des Skripts in der Vorlage beheben. Wenn die Vorlage das gesamte Programm enthält, müssen Sie das Projekt neu erstellen, wenn Änderungen am Skript vorgenommen werden müssen.
Es empfiehlt sich daher, die Hauptprogrammlogik niemals in der Projektvorlage abzulegen. Kopieren Sie das Programm stattdessen in einen Ordner auf dem Computer, auf dem sich auch das Projekt befindet. Bei einem lokalen Projekt handelt es sich dabei um Ihren Computer und bei einem Online-Projekt um Ihren memoQ TMS.
Fügen Sie der Projektvorlage dann eine einfache Batchdatei hinzu. Die Batchdatei dient nur einem Zweck, und zwar dem Ausführen des Hauptprogramms und dem Übergeben der Argumente (z. B. der Dateinamen) aus dem memoQ-Projekt. Ein Beispiel finden Sie weiter oben in diesem Thema unter "Einrichten eines Skripts für ein Online-Projekt".
Wenn in einem aktiven Projekt ein Problem mit dem Skript auftritt, gehen Sie wie folgt vor:
- Beheben Sie den Fehler im Hauptprogramm, oder lassen Sie ihn von dem Entwickler beheben, der es für Sie programmiert hat.
- Ersetzen Sie das Programm im separaten Ordner.
- Kehren Sie im Projekt an den Punkt zurück, an dem das Skript noch ausgeführt wird.
- Gehen Sie zu dem Ereignis, bei dem das Midscript ausgelöst wird. In memoQ wird die gleiche Batchdatei ausgeführt und das Hauptprogramm aufgerufen, das sich in der Zwischenzeit geändert hat, sodass das Programm nun anders ausgeführt wird.
Sie müssen die Projektvorlage nicht ändern. Wichtiger ist, dass Sie das Projekt nicht neu erstellen müssen: Sie kehren lediglich zu der Workflow-Phase zurück, in der das Skript ausgeführt werden sollte.
Abschließende Schritte
So speichern Sie die Projektvorlage und kehren zur Ressourcenkonsole zurück: Klicken Sie auf OK.
Möglicher nächster Schritt: Schließen Sie nach der Bearbeitung der Vorlage die Ressourcenkonsole, und erstellen Sie über die Vorlage ein Projekt.
So bearbeiten Sie die Projektvorlage weiter: Wählen Sie eine andere Kategorie aus, und passen Sie andere Einstellungen an.
So kehren Sie zur Ressourcenkonsole zurück, ohne die Projektvorlage zu speichern: Klicken Sie auf Abbrechen.