code: def resolve_global_executable(path, is_version_required=False):
      
      if not is_hashid(path) and is_version_required and "/" not in path:
          raise ResolutionError('Version is required, e.g. "myexec/1.0.0"'.format())
  
      # First, check if the prefix is provided, then we don't have to resolve the name
      if path.startswith('app-'):
          return resolve_app(path)
      elif path.startswith('globalworkflow-'):
          return resolve_global_workflow(path)
  
      # If the path doesn't include a prefix, we must try describing
      # as an app and, if that fails, as a global workflow
      desc = get_app_from_path(path)
      if not desc:
          desc = get_global_workflow_from_path(path)
      if desc is None:
          raise ResolutionError(
              'The given path "' + path + '" could not be resolved to an accessible global executable (app or workflow)')
      return desc
docs: :param path: A string which is supposed to identify a global executable (app or workflow)
      :type path: string
      :param is_version_required: If set to True, the path has to specify a specific version/alias, e.g. "myapp/1.0.0"
      :type is_version_required: boolean
      :returns: The describe hash of the global executable object (app or workflow)
      :raises: :exc:`ResolutionError` if it cannot be found
  
      *path* is expected to have one of the following forms:
  
      - hash ID, e.g. "globalworkflow-F85Z6bQ0xku1PKY6FjGQ011J", "app-FBZ3f200yfzkKYyp9JkFVQ97"
      - named ID, e.g. "app-myapp", "globalworkflow-myworkflow"
      - named ID with alias (version or tag), e.g. "myapp/1.2.0", "myworkflow/1.2.0"
      - named ID with prefix and with alias (version or tag), e.g. "app-myapp/1.2.0", "globalworkflow-myworkflow/1.2.0"