Stationsendpunkt für Datenstrom

Verwenden Sie einen API-Stations-Endpunkt, um Beobachtungsdaten für den Prozess zu streamen und Messgrößen direkt in Stationsdatentabellen auszugeben.

Endpunktkonfiguration

Diese Route verbindet sich mit der Stationsressource für den Datenstrom.

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

Der Anfragekörper akzeptiert folgende Eigenschaften:
  • apikey – der API-Schlüssel für Authentifizierung und Autorisierung
  • Aktion – "streamData" – der Name der API-Aktion
  • args – JSON-Array, das den serialisierten Anforderungskörper enthält. Für diese API handelt es sich um einen serialisierten DataStreamingRequestDTO-Modelltyp.
Jede Datenstreaming-Anfrage kann Daten für bis zu 50 Untergruppen mit 1000 Beobachtungen enthalten.

Angeforderte Eigenschaften

Eigenschaften für [DataStreamingRequestDTO]:

Geben Sie entweder die external_station_id oder die sys_id für die Station an.

  • String   external_station_id

    Externe Stationskennung, meist Stationsname, oder Arbeitsstation in SAP Digital Manufacturing.

  • int  station_id

    Sys_id für die Station.

  • Int   sampling_plan_id 

    Sys_id für den Probeplan. Optional für einen Einzelstichprobenplan; erforderlich, wenn mehrere Probenahmepläne mit der Station verbunden sind.

  • array[SubgroupWithObservationsRequestDTO]-   Untergruppen 

    Liste der Untergruppen mit ihren Eigenschaften und zu erstellenden Beobachtungen.

Eigenschaften für [SubgroupWithObservationsRequestDTO] :
  • Datum-Zeit-Zeitstempel datetime

    Zeitstempel für die Beobachtungen. Optional, Datumszeit in ISO 8601, standardmäßig gilt das aktuelle Datum und die Uhrzeit für den Server, sofern nicht angegeben. Weitere Informationen finden Sie unter Anforderungen an Zeitstempeldaten.

  • Array[Descriptor_valueRequestDTO]-  Deskriptoren

    Deskriptoren und ihre Werte für die Untergruppe. Optional.

  • array[ObservationRequestDTO]   Beobachtungen

    Für diese Untergruppe ist mindestens eine Beobachtung erforderlich.

Eigenschaften für [DescriptorValueRequestDTO]: 

Geben Sie entweder die external_descriptor_id oder die sys_id für die Beschreibung an.

  • String  descriptor_value

    Deskriptorwert ist erforderlich.

  • String   external_descriptor_id

    Externe Deskriptor-Kennung.

  • Int descriptor_id

    sys_id für die Beschreibung.

Eigenschaften für [ObservationRequestDTO]: 

Geben Sie entweder die external_measure_id oder die sys_id für die Maßung an.

  • String   external_measure_id

    Externe Messkennung für die Beobachtung.

  • int measure_id

    sys_id für die Maßung.

  • Schwimmerbeobachtung    

    Wert für die Beobachtung ist erforderlich.

  • array[Descriptor_valueRequestDTO]  Deskriptoren 

    Beschreibungen und ihre Werte für die Beobachtung. Optional.

Hinweis

Nur kontinuierliche Maße, Prozess und Ausgabe können direkt in Stationstabellen übertragen werden.

Beispiel-JSON-Arrays

Der folgende Anforderungskörper enthält mindestens erforderliche Felder unter Verwendung von ids:
[
  {
    "station_id": 14,
    "subgroups": [
      {
        "observations": [
          {
            "observation": 3.5,
            "measure_id": 7
          }
        ]
      }
    ]
  }
]
Der folgende Anforderungskörper enthält minimal benötigte Felder mit externen IDs:
[
  {
    "external_station_id": "Ribbon Manufacturing Station",
    "subgroups": [
      {
        "observations": [
          {
            "observation": 3.5,
            "external_measure_id": "Roll Width"
          }
        ]
      }
    ]
  }
]
Der folgende Anforderungskörper enthält alle verfügbaren Felder mit externen IDs:
[
  {
    "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" 
              }
            ]
          }
        ]
      }
    ]
  }
]

Ergebnisse anfordern

Für das Datenstreaming wird Real-Time SPC die Anzahl der erfolgreichen und misslungenen Datensätze zurückgegeben.
{
  "success_count": 40,
  "failure_count": 2        
}

Validierungsschema

Um Zeit zu sparen und Fehler zu reduzieren, verwenden Sie das folgende JSON-Schema mit einem externen Validator, um Ihre Datenübertragung zu den Endpunktanfragen zu validieren.
{
  "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"]
    }
  }
}