docs: async def run(self, data_id, script):
          """Execute the script and save results."""
          logger.debug("Executor for Data with id {} has started.".format(data_id))
          try:
              finish_fields = await self._run(data_id, script)
          except SystemExit as ex:
              raise ex
          except Exception as error:  # pylint: disable=broad-except
              logger.exception("Unhandled exception in executor")
  
              # Send error report.
              await self.update_data_status(process_error=[str(error)], status=DATA_META['STATUS_ERROR'])
  
              finish_fields = {
                  ExecutorProtocol.FINISH_PROCESS_RC: 1,
              }
  
          if finish_fields is not None:
              await self._send_manager_command(ExecutorProtocol.FINISH, extra_fields=finish_fields)