You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于ActiveBatch约束与触发器信息获取的技术咨询

ActiveBatch导出数据扩展问题解决方案

背景

我正在创建ActiveBatch导出,目前已获取如下示例数据:

isEnabled, JobName, JobPath, ConstraintName
Yes, Job1, /Dir1, JobConstraint1 
Yes, Job1, /Dir1, FileConstraint1 

问题1:获取约束的Type/Description及作业约束关联Job

问题描述

希望获取约束的类型、描述,以及作业约束关联的Job,但当前脚本中$dependency.Type、$dependency.Description、$dependency.Job等属性无效:

foreach ($dependency in $fullObject.GetDependencies())
{   
    ..$dependency.Label.. #working
    ..$dependency.Type..
    ..$dependency.Description..
    ..$dependency.Job..
}

解决方法

GetDependencies()返回的是通用依赖对象,不同类型的约束(作业、文件、时间等)属于不同子类,需先判断类型并转换后才能访问专属属性:

  1. 通过$dependency.GetType().Name获取约束的具体类型
  2. 转换为对应子类后访问属性:
    • 作业约束:转换为[ActiveBatch.JobDependency],可访问Description、Job等属性
    • 文件约束:转换为[ActiveBatch.FileDependency],可访问Description等属性

修改后的脚本示例:

foreach ($dependency in $fullObject.GetDependencies())
{   
    # 已正常工作的约束名称
    Write-Host "约束名称: $($dependency.Label)"

    # 获取约束类型
    $constraintType = $dependency.GetType().Name
    Write-Host "约束类型: $constraintType"

    # 根据类型处理不同约束
    switch ($constraintType) {
        "JobDependency" {
            $jobConstraint = [ActiveBatch.JobDependency]$dependency
            Write-Host "描述: $($jobConstraint.Description)"
            Write-Host "关联作业: $($jobConstraint.Job.Name) (路径: $($jobConstraint.Job.Path))"
        }
        "FileDependency" {
            $fileConstraint = [ActiveBatch.FileDependency]$dependency
            Write-Host "描述: $($fileConstraint.Description)"
            # 可添加文件约束的其他属性,如文件路径等
        }
        # 其他约束类型(如TimeDependency)可按需扩展
    }
}

问题2:获取Completion > Trigger详情(Condition、Job/Plan、Path)

解决方法

使用GetCompletionTriggers()方法获取完成触发器集合,每个触发器对象为ActiveBatch.CompletionTrigger,可直接访问以下属性:

  • Condition:触发条件(如成功、失败、完成等枚举值)
  • Job/Plan:关联的作业或计划对象,通过其Name和Path属性获取名称与路径

脚本示例:

foreach ($completionTrigger in $fullObject.GetCompletionTriggers())
{
    Write-Host "完成触发条件: $($completionTrigger.Condition)"

    # 判断关联的是作业还是计划
    if ($completionTrigger.Job) {
        Write-Host "关联作业: $($completionTrigger.Job.Name)"
        Write-Host "作业路径: $($completionTrigger.Job.Path)"
    }
    elseif ($completionTrigger.Plan) {
        Write-Host "关联计划: $($completionTrigger.Plan.Name)"
        Write-Host "计划路径: $($completionTrigger.Plan.Path)"
    }
}

内容的提问来源于stack exchange,提问作者dcd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.10 04:12:33