Definindo as Transições do Workflow
Transições são as setas em um diagrama de estados. Geralmente, para cada seta que você desenha no seu diagrama de estados, cria uma transição. Alguns diagramas de estados, de qualquer forma, tem um monte de setas apontando para um estado simples. Neste caso talvez seja melhor criar somente uma transição que você possa reusar na modelagem da maioria das transições que conduzem a este estado. Cada transição requer um estado de destino. Selecione o estado de destino na caixa que abre para baixo. (Veja a Ilustração 5 abaixo.)

Ilustração 5: Configurando uma Transição
Transições são geralmente protegidas por uma condição de guarda. Se você desenhar as raias de natação como sugerido na Ilustração 2, repare que várias das setas cruzam as raias de natação. Toda a vez que você cruzar uma raia de natação você precisa uma condição de guarda. Uma condição de guarda pode ser uma permissão, um cargo, ou uma expressão do workflow (descrita anteriormente). Uma condição de guarda assegura que somente usuários com a permissão requerida, cargo, ou outro critério possam mover o objeto para o novo estado.
A maioria das transições são iniciadas por uma ação de usuário. Para cada transição iniciada por uma ação de usuário, insira a informação para o link correspondente que será mostrado para o usuário na caixa de ações. O link somente será mostrado quando o usuário for executar a transição.
Às vezes você precisa estados e transições especiais no seu diagrama do workflow que modelam ações executadas em segundo plano, e não por algum usuário. Neste caso você precisa montar transições que são inicializadas automaticamente. O Zope procederá através de transições automáticas sempre que a condição de guarda permití-lo.
Após você ter definido todas as transições, volte aos seus estados do workflow e defina quais transições são permitidas para permitir aqueles estados.