使用API站点端点将过程和输出测量的观测数据直接流向站点数据表。

端点配置

该路由连接站点资源进行数据流传输。

https: //spc.minitab.com/api/app/spc/Station/?apikey={APIKEY}&action=streamData&args=[{JSON}]

请求体接受以下属性:
  • APIKEY – 用于认证和授权的 API 密钥
  • 操作——“streamData”——API 动作的名称
  • args – 包含序列化请求体的 JSON 数组。对于该 API,它是一个序列化的 DataStreamingRequestDTO 模型类型。
每个数据流请求最多可包含50个子组的数据,包含1000个观测值。

请求属性

[ DataStreamingRequestDTO]属性:

提供该站点的external_station_id或sys_id。

  • 弦   external_station_id

    外部站点标识符,通常是站点名称,或在SAP数字制造中称为工作站。

  • 智station_id  

    Sys_id去站里。

  • 智力   sampling_plan_id 

    采样计划Sys_id。单一采样计划可选;如果与该站关联多个采样计划,则必须如此。

  • array[SubgroupWithObservationsRequestDTO]   子组 

    列出子群及其属性和待创建的观测值。

[SubgroupWithObservationsRequestDTO] 的属性:
  • 日期时间  戳

    观察时间戳。可选,ISO 8601中的日期时间,如果未提供,默认为当前服务器日期和时间。有关更多信息,请转到 时间戳数据要求。

  • array[Descriptor_valueRequestDTO]  描述符

    描述符及其子群的值。可选。

  • array[ObservationRequestDTO]   观测

    该子组至少需进行一次观察。

[ DescriptorValueRequestDTO] 的属性:

提供描述符的 external_descriptor_id 或sys_id。

  • 弦  descriptor_value

    描述符值是必需的。

  • 弦   external_descriptor_id

    外部描述符标识符。

  • 内descriptor_id

    sys_id这个描述。

[ ObservationRequestDTO] 的属性:

提供该措施的具体内容external_measure_id或sys_id。

  • 弦   external_measure_id

    观测的外部测量标识符。

  • 内measure_id

    sys_id计量。

  • 浮标   观察 

    需要观察值。

  • array[Descriptor_valueRequestDTO]  描述符 

    描述符及其观测值。可选。

注意

只有连续的测量量,包括过程和输出,才能直接流入站点表。

示例 JSON 数组

以下请求体包含使用id的最小要求字段:
[
  {
    "station_id": 14,
    "subgroups": [
      {
        "observations": [
          {
            "observation": 3.5,
            "measure_id": 7
          }
        ]
      }
    ]
  }
]
以下请求体包含使用外部ID的最小要求字段:
[
  {
    "external_station_id": "Ribbon Manufacturing Station",
    "subgroups": [
      {
        "observations": [
          {
            "observation": 3.5,
            "external_measure_id": "Roll Width"
          }
        ]
      }
    ]
  }
]
以下请求体包含所有使用外部ID的可用字段:
[
  {
    "external_station_id": "Ribbon Manufacturing Station",
    "sampling_plan_id": 11,
    "subgroups": [
      {
        "timestamp": "2024-12-11 19:55:18Z",
        "descriptors": [
          { 
            "external_descriptor_id": "Batch Number",
            "descriptor_value": "4973" 
          }
        ],
        "observations": [
          {
            "observation": 3.5,
            "external_measure_id": "Roll Width",
            "descriptors": [
              { 
                "external_descriptor_id": "Roll Color",
                "descriptor_value": "Blue" 
              }
            ]
          }
        ]
      }
    ]
  }
]

请求结果

对于数据流,返回 Real-Time SPC 成功和失败记录的数量。
{
  "success_count": 40,
  "failure_count": 2        
}

验证模式

为了节省时间和减少错误,使用以下JSON模式配合外部验证器来验证数据流到站点端点的请求。
{
  "title": "DataStreamingRequestDto",
  "description": "",
  "type": "object",
  "properties": {
    "sampling_plan_id": {
      "type": ["integer","null"],
      "minimum": 1
    },
    "external_station_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "station_id": {
      "type": "integer",
      "minimum": 1
    },
    "subgroups": {
      "type": "array",
      "maxItems": 50,
      "minItems": 1,
      "items": {
        "$ref": "#/$defs/SubgroupWithObservationsRequestDto"
      }
    }
  },
  "required": ["subgroups"],
  "oneOf": [
    {
      "required": ["external_station_id"]
    },
    {
      "required": ["station_id"]
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$defs": {
    "DescriptorValueRequestDto": {
      "title": "DescriptorValueRequestDto",
      "description": "",
      "type": "object",
      "properties": {
        "descriptor_value": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255,
          "pattern": "^(?!\\s*$).+"
        },
        "external_descriptor_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255
        },
        "descriptor_id": {
          "type": "integer",
          "minimum": 1
        }
      },
      "required": ["descriptor_value"],
      "oneOf": [
        {
          "required": ["external_descriptor_id"]
        },
        {
          "required": ["descriptor_id"]
        }
      ]
    },
    "ObservationRequestDto": {
      "title": "ObservationRequestDto",
      "description": "",
      "type": "object",
      "properties": {
        "external_measure_id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 255
        },
        "measure_id": {
          "type": "integer",
          "minimum": 1
        },
        "observation": {
          "type": ["number", "null"],
          "minimum": -10000000000,
          "maximum": 10000000000
        },
        "descriptors": {
          "type": ["array", "null"],
          "maxItems": 100,
          "items": {
            "$ref": "#/$defs/DescriptorValueRequestDto"
          }
        }
      },
      "required": ["observation"],
      "oneOf": [
        {
          "required": ["external_measure_id"]
        },
        {
          "required": ["measure_id"]
        }
      ]
    },
    "SubgroupWithObservationsRequestDto": {
      "title": "SubgroupWithObservationsRequestDto",
      "description": "",
      "type": "object",
      "properties": {
        "timestamp": {
          "type": ["string", "null"],
           "pattern": "^(\\d{4}-\\d{2}-\\d{2}[T ]\\d{2}:\\d{2}:\\d{2}(?:Z|(?:[+-]\\d{2}:\\d{2})|)?)$",
          "$comment": "Value must be a valid date-time with optional timezone.",
          "examples": [
            "\"2025-01-01T01:23:45\"",
            "\"2025-01-01 01:23:45\"",
            "\"2025-01-01T01:23:45Z\"",
            "\"2025-01-01 01:23:45Z\"",
            "\"2025-01-01T01:23:45-05:00\"",
            "\"2025-01-01 01:23:45-05:00\""
          ]
        },
        "descriptors": {
          "type": ["array", "null"],
          "maxItems": 100,
          "items": {
            "$ref": "#/$defs/DescriptorValueRequestDto"
          }
        },
        "observations": {
          "type": "array",
          "maxItems": 1000,
          "minItems": 1,
          "items": {
            "$ref": "#/$defs/ObservationRequestDto"
          }
        }
      },
      "required": ["observations"]
    }
  }
}