2012-12-10 16 views
5

Mamy również Tridion 2011 i proces pracy na stronie. Mamy obsługę zdarzeń na stronie przed zapisaniem. Gdy użytkownik zapisuje stronę, wywoływana jest procedura obsługi zdarzenia w celu modyfikacji metadanych strony i zainicjowania przepływu pracy. Więc mniejsza wersja strony idzie do 0.3 na każdym edytorze zapisać kliknięcie. Zasadniczo: 0.1 - Wersja Tridion dla strony Zapisz 0.2 - Kod obsługi zdarzenia wykonany dla zapisywania metadanych strony i z powodu Save() wywołanie tego kodu zostaje ponownie wywołane, aby doprowadzić do kolejnej mniejszej wersji 0.3 - Ten sam kod obsługi zdarzenia zostanie wykonany .Tridion 2011 workflow, mniejszy przyrost wersji przy użyciu programu obsługi klienta, kod niestandardowy

Co staram się osiągnąć, to zachować mniejszą wersję na 0.1 dla każdego użytkownika Zapisz kliknij.

Próbowałem wcześniej zapisać Zapisz Zapisz, Wstępna kontrola i Post Check i zmienił kolejność wykonywania, tj. Ostatni param systemu subskrypcji systemu zdarzeń, ale nic nie pomogło. Więc pl. help :)

+2

Ładne pytanie, czy moglibyśmy zainteresować się zobowiązaniem do złożenia wniosku dotyczącego [obszaru 51 Tridion] (http://area51.stackexchange.com/proposals/38335/tridion?referrer=gPujQMxthNCNn9xqeeO2NA2). Zarejestruj się za pomocą tego samego konta SO, jeśli masz chwilę. –

Odpowiedz

6

Dlaczego dzwonisz Save() w swoim wydarzeniu? Jeśli dokonasz zmian PRZED zapisaniem strony, to wszystko powinno się przechowywać za jednym razem, bez konieczności dzwonienia do Save.

public PageEvent() 
{ 
    EventSystem.Subscribe<Page, SaveEventArgs>(ChangePageTitle, EventPhases.Initiated); 
} 
private void ChangePageTitle(Page page, SaveEventArgs args, EventPhases phases) 
{ 
    page.Title = "Nuno was here " + page.Title; 
} 

To będzie zmienić tytuł strony, a jak widać I nie nazywaj Zapisz, ponieważ redaktor zrobił już.

+0

Dzięki tonie Nuno działa teraz jak urok. –

+0

Po usunięciu strony. Zapisz(), widzę, że historia strony zawiera wpis kontroli z ustawionym przez użytkownika jako Tridion Content Manager System NT ... Kiedy miałem stronę. Zapisz() - miała ona nazwę użytkownika, który zapisał strona. Kiedy próbowałem page.Session.User.Id .. jego identyfikator użytkownika osoby, która zapisała stronę. –

+0

Zapis jest wykonywany w kontekście agenta przepływu pracy, a nie użytkownika ... –

Powiązane problemy