2017-06-21 41 views
1

Ich möchte benutzerdefinierten Code schreiben, um das folgende Verhalten zu unterstützen: Eltern A hat ein Feld namens "ABC" Jede untergeordnete Aufgabe von Eltern A hat dieses Feld "ABC" als schreibgeschützt "ABC" bearbeitet im Elternteil sollte bei jedem Update auf jedes Kind gefiltert werden. Natürlich wäre dies keine echte Live-Synchronisierung, sondern sollte den gleichen Wert aufrufen, sobald der Endbenutzer die Seite aktualisiert, um den aktualisierten Wert zu sehen.Parent & Child Feld Synchronisierung

Ich möchte wirklich, eine Skript-Funktion, die benutzerdefinierte Felder auf einem Eltern-Task für die Änderung liest, und wenn geändert, überträgt diesen Wert auf den Kind-Task. Ich benutze "Script Runner", aber ich kann nicht herausfinden, wie das geht. Könnten Sie bitte das Skript, das in Skript-Runner verwendet werden kann, und auch ich möchte den Job für alle & Unteraufgabe in unseren Instanzen zu automatisieren.

Ich weiß, dass dies durch benutzerdefinierte Skript-Listener erfolgen kann, aber ich brauche ein Skript, das diese Aufgabe erfüllen kann.

Antwort

0

Sie können dies leicht mit einem Skriptfeld tun. Die documentation ist ziemlich gut.

Grundsätzlich müssen Sie zuerst Ihr Elternproblem bekommen. Das Problem Objekt hat eine Methode getParentObject(), das dies tut:

Ausgabe getParentObject()

Wenn dieses Problem eine Teilaufgabe ist, seine Eltern zurück.

Returns:

Die Mutter Ausgabe oder null, wenn das Problem nicht eine Teilaufgabe ist.

Und dann können Sie den Wert des benutzerdefinierten Felds des übergeordneten Problems abrufen. Angenommen, dies ist ein einfaches Textfeld, würde es in etwa so aussehen:

String customFieldName = "My fancy custom field" 

CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager() 
Collection<CustomField> customFields = customFieldManager.getCustomFieldObjectsByName(customFieldName) 

parentIssue.getCustomFieldValue(customFields.first()) as String 
+0

Hallo Glenn, ich bin ganz neu in dieser so leicht verwechseln, was soll ich tun. Ich habe ein benutzerdefiniertes Feld mit dem Skriptfeldtyp erstellt und bin zum Skriptfeld gegangen, konnte jedoch die nächste Aktion nicht finden. Könnten Sie mir das Skript besorgen, das ausgeführt werden soll? –

+0

Was meinst du mit "konnte die nächste Aktion nicht finden?". Gehen Sie zu "Add-Ons verwalten" -> Skriptfelder. Ihr benutzerdefiniertes Feld wird dort aufgeführt. Klicken Sie einfach auf Bearbeiten und fügen Sie entweder den Pfad zu Ihrem Skript hinzu oder geben Sie Ihr Skript inline ein. Die Script-Runner-Dokumentation erklärt das auch sehr deutlich, inkl. Screenshots. – GlennV

Verwandte Themen