

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 Control-M 规划中创建作业和计划
<a name="jobs-schedules-control-m"></a>

现在，您已经部署了任务类型和 AWS Connectivity 的连接配置文件，就可以开始创建和运行任务了。

每个 AWS Mainframe Modernization 服务作业都由一组属性组成，分为四个部分。每个部分可以有许多属性。以下列表显示了一些比较常用的属性。
+ 常规：
  + 作业名称
  + 作业所属的应用程序和子应用程序
  + 要提交的 JCL
  + 文档链接
+ 调度：
  + 该作业符合运行资格的月份和天数
  + 日历，例如企业会计期、节假日或其他无法通过算法定义的特殊日期
  + 时间窗口
  + 循环行为
+ 先决条件：
  + 上游依赖项（通常是作业，必须成功完成此作业后才能运行）
  + 可能需要的资源
  + 可能需要的用户操作
+ Control-M 在作业完成后执行的操作：
  + 确定作业成功还是失败（通常基于作业的完成代码，但您可以覆盖该设置以使用输出文本或检查特定状态）
  + 失败或成功通知，如电子邮件
  + 下游依赖项的发布状态

与连接配置文件一样，可以在 [GUI](https://documents.bmc.com/supportu/9.0.21/en-US/Documentation/Creating_a_Job.htm) 或 [JSON](https://docs.bmc.com/docs/automation-api/monthly/code-reference-1116950299.html) 中创建和部署作业，并使用 Control-M Automation API 进行部署。

以下部分介绍了一些常见的工作流场景：
+ [根据先前作业的状态代码启动作业](status-code.md)
+ [按计划频率自动运行作业](scheduled.md)
+ [基础作业根据事件运行](event-based.md)

# 根据先前作业的状态启动作业
<a name="status-code"></a>

创建名为工作流的作业流。工作流中的作业与成功完成先前作业的依赖项相互关联。

## 使用 Control-M Web GUI
<a name="using-gui"></a>

要从 Control-M 用户界面启动作业，请执行以下操作：

1. 在 “**规划**” 域中，添加一个新的**工作空间**。这将打开一个包含空文件夹对象的画布。

1. 选择 AWS Mainframe Modernization 作业类型（如果您使用的是提供的作业类型模板，则该模板称为 [M2JOB](https://github.com/aws-samples/aws-mainframe-modernization-controlm-integration/blob/main/assets/AWS-jobs.json)），然后将其拖到该文件夹中。

1. 任务类型的颜色变为绿色后，将其丢掉。右侧的窗格包含 “**常规**”、“**计划**”、“**先决条件**” 和 **“操作**” 部分。要创建作业，请参阅 [Control-M](https://documents.bmc.com/supportu/9.0.21/en-US/Documentation/Creating_a_Job.htm) 文档中的标准说明。

1. 接下来，您需要使用 **Job Name** 值来配置作业类型。您可以在 AWS Mainframe Modernization 控制台的**应用程序**定义屏幕上或通过运行 [ListBatchJobDefinitions API](https://docs.aws.amazon.com/m2/latest/APIReference/API_ListBatchJobDefinitions.html) 来找到 **Job Nam** e 值。在本试点中，对多个作业重复步骤 2—4，使用您选择的任何名称命名每个作业。示例名称有`CBANK`、`CURRENCY`、I `NVFUNDS` `BROKERAGE`、`RISKMGMT`、和`BANK-SERVICE-Managed-M2`。

1. 要将这些作业连接到所需的流程中，请选择作业对象下方的条件三角形，然后将其拖动到下一个作业上。例如，选择下面的条件三角形`CBANK`，然后将其拖动到上`CURRENCY`。此操作使`CBANK`之成为的前身`CURRENCY`。默认情况下，现在`CBANK`必须成功完成，CURRENCY 才有资格运行。

以下屏幕截图显示了基本任务流程的 Control-M 计划视图。



![\[左边是 Job 流程，右边是属性。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/control-m-batch-scheduler/images/workflow-control-m-web-1.png)


*图片由 BMC Software, Inc.©2022 提供*

## 使用 JSON
<a name="using-json"></a>

同样的流程可以用 JSON 编码：

```
{
  "Defaults": {
    "Application": "AWSM2",
    "SubApplication": "Replatform-Managed",
    "Job": {
      "Host": "ctm-worker",
      "Output": {}
    }
  },
  "jog-managed-m2": {
    "Type": "Folder",
    "ControlmServer": "psctm",
    "OrderMethod": "Manual",
    "SiteStandard": "_z_DemoBusinessFlows",
    "CBANK": {
      "Type": "Job:AWS Mainframe Modernization",
      "ConnectionProfile": "MANAGED-M2-REPLATFORM",
      "JCL Name": "iefbr14",
      "Retrieve CloudWatch Logs": "checked",
      "Action": "Start Batch Job",
      "Application Version": "1"
    },
    "CURRENCY": {
      "Type": "Job:AWS Mainframe Modernization",
      "ConnectionProfile": "MANAGED-M2-REPLATFORM",
      "JCL Name": "iefbr14",
      "Retrieve CloudWatch Logs": "checked",
      "Action": "Start Batch Job",
      "Application Version": "1"
    },
    "BROKERAGE": {
      "Type": "Job:AWS Mainframe Modernization",
      "ConnectionProfile": "MANAGED-M2-REPLATFORM",
      "JCL Name": "iefbr14",
      "Retrieve CloudWatch Logs": "checked",
      "Action": "Start Batch Job",
      "Application Version": "1"
    },
    "INVFUNDS": {
      "Type": "Job:AWS Mainframe Modernization",
      "ConnectionProfile": "MANAGED-M2-REPLATFORM",
      "JCL Name": "iefbr14",
      "Retrieve CloudWatch Logs": "checked",
      "Action": "Start Batch Job",
      "Application Version": "1"
    },
    "RISKMGMT": {
      "Type": "Job:AWS Mainframe Modernization",
      "ConnectionProfile": "MANAGED-M2-REPLATFORM",
      "JCL Name": "iefbr14",
      "Retrieve CloudWatch Logs": "checked",
      "Action": "Start Batch Job",
      "Application Version": "1"
    },
    "BANK-SERVICE-Managed-M2": {
      "Type": "Job:SLAManagement",
      "ServiceName": "Bank Service - Managed M2",
      "RunAs": "ctmagent",
      "CompleteBy": {
        "Time": "12:00",
        "Days": "0"
      }
    },
    "leftbranch": {
      "Type": "Flow",
      "Sequence": [
        "CURRENCY",
        "RISKMGMT",
        "BANK-SERVICE-Managed-M2"
      ]
    },
    "middlebranch": {
      "Type": "Flow",
      "Sequence": [
        "CBANK",
        "CURRENCY",
        "INVFUNDS",
        "BANK-SERVICE-Managed-M2"
      ]
    },
    "rightbranch": {
      "Type": "Flow",
      "Sequence": [
        "CURRENCY",
        "BROKERAGE",
        "BANK-SERVICE-Managed-M2"
      ]
    }
  }
}
```

要部署此流程，请使用部署服务：

```
ctm deploy folder-MANAGED-M2-REPLATFORM.json
```

# 按计划频率自动运行作业
<a name="scheduled"></a>

使用您在前面步骤中创建的流，可以添加基本调度和运行时调度。
+ 基本调度定义了作业可以运行的天数（例如，每个工作日、仅工作日、月末或季度末）。
+ 运行时间调度决定了作业在符合运行条件的当天何时运行（例如，每小时、在指定的资源可用之后，或者仅在手动确认之后）。

您可以在**调度**选项卡上设置基本调度和运行时调度。

# 基础作业根据事件运行
<a name="event-based"></a>

Control-M 托管文件传输 (MFT) 是一个 FTP/SFTP 客户端和服务器，可用于在本地主机和远程主机之间监视和传输文件。有关定义文件传输作业的更多信息，请参阅 [Control-M documentation](https://documents.bmc.com/supportu/9.0.21/en-US/Documentation/File_Transfer_Job.htm)。

本次试验使用文件传输作业来监视 S3 存储桶（名为 `bmc-poc-bucket`）中 `/bmcfile` 文件夹中文件（扩展名为 .poc）的文件创建事件。当该事件发生时，将启动 Control-M 作业以运行下一个作业。您可以选择传递完整路径，包括存储桶名称。