code: def CallState(self, next_state="", start_time=None):
      
      if not getattr(self, next_state):
        raise ValueError("Next state %s is invalid." % next_state)
  
      flow_request = rdf_flow_objects.FlowRequest(
          client_id=self.rdf_flow.client_id,
          flow_id=self.rdf_flow.flow_id,
          request_id=self.GetNextOutboundId(),
          next_state=next_state,
          start_time=start_time,
          needs_processing=True)
  
      self.flow_requests.append(flow_request)
docs: This method is used to schedule a new state on a different worker.
  
      This is basically the same as CallFlow() except we are calling
      ourselves. The state will be invoked at a later time.
  
      Args:
         next_state: The state in this flow to be invoked.
         start_time: Start the flow at this time. This delays notification for
           flow processing into the future. Note that the flow may still be
           processed earlier if there are client responses waiting.
  
      Raises:
        ValueError: The next state specified does not exist.