code: def AfterTransitionEventHandler(instance, event):
      
      if call_workflow_event(instance, event, after=True):
          return
  
      # Try with old AfterTransitionHandler dance...
      # TODO CODE TO BE REMOVED AFTER PORTING workflow_script_*/*_transition_event
      if not event.transition:
          return
      # Set the request variable preventing cascade's from re-transitioning.
      if skip(instance, event.transition.id):
          return
      # Because at this point, the object has been transitioned already, but
      # further actions are probably needed still, so be sure is reindexed
      # before going forward.
      instance.reindexObject()
      key = 'after_{0}_transition_event'.format(event.transition.id)
      after_event = getattr(instance, key, False)
      if not after_event:
          # TODO Workflow. this conditional is only for backwards compatibility,
          # to be removed when all workflow_script_* methods in contents are
          # replaced by the more explicity signature 'after_*_transition_event'
          key = 'workflow_script_' + event.transition.id
          after_event = getattr(instance, key, False)
      if not after_event:
          return
      after_event()
docs: This event is executed after each transition and delegates further
      actions to 'workflow.<portal_type>.events.after_<transition_id> function
      if exists for the instance passed in.
      :param instance: the instance that has been transitioned
      :type instance: ATContentType
      :param event: event that holds the transition performed
      :type event: IObjectEvent