Point de terminaison de la station pour le streaming de données

Utilisez un point de terminaison de station API pour diffuser directement les données d’observation des mesures de processus et de sortie dans les tables de données de la station.

Configuration du point d’arrivée

Cette ligne se connecte à la ressource de la station pour le flux de données.

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

L’organisme demandeur accepte les propriétés suivantes :
  • apikey – la clé API pour l’authentification et l’autorisation
  • action – « streamData » – le nom de l’action API
  • args – tableau JSON contenant le corps de requête sérialisé. Pour cette API, il s’agit d’un modèle sérialisé DataStreamingRequestDTO.
Chaque requête de flux de données peut contenir jusqu’à 50 sous-groupes avec 1000 observations.

Propriétés de demande

Propriétés pour [DataStreamingRequestDTO]:

Fournir soit le external_station_id soit le sys_id de la station.

  • external_station_id de la chaîne  

    Identifiant externe de station, généralement nom de station, ou poste de travail dans SAP Digital Manufacturing.

  • int  station_id

    Sys_id pour la station.

  • int   sampling_plan_id 

    Sys_id pour le plan d’échantillonnage. Optionnel pour un seul plan d’échantillonnage ; Obligatoire si plusieurs plans d’échantillonnage sont associés à la station.

  • array[SubgroupWithObservationsRequestDTO]    

    Liste des sous-groupes avec leurs propriétés et observations à créer.

Propriétés pour [SubgroupWithObservationsRequestDTO] :
  • horodatagedatetime  

    Horodatage pour les observations. Optionnel, l’heure de date dans ISO 8601, par défaut est la date et l’heure actuelles pour le serveur si elle n’est pas fournie. Pour plus d'informations, reportez-vous à la rubrique Exigences en matière de données temporelles.

  • Descripteursarray[Descriptor_valueRequestDTO]  

    Descripteurs et leurs valeurs pour le sous-groupe. Optionnel.

  • observationsarray[ObservationRequestDTO]  

    Pour ce sous-groupe, au moins une observation est requise.

Propriétés pour [DescriptorValueRequestDTO] :

Fournissez soit le external_descriptor_id, soit le sys_id pour le descripteur.

  • descriptor_value de cordes  

    Une valeur descripteur est requise.

  • external_descriptor_id  

    Identifiant descripteur externe.

  • int descriptor_id

    sys_id pour le descripteur.

Propriétés pour [ObservationRequestDTO] :

Fournir soit le external_measure_id, soit le sys_id pour la mesure.

  • external_measure_id  

    Identifiant externe de mesure pour l’observation.

  • int measure_id

    sys_id pour la mesure.

  • Observationdes flotteurs    

    La valeur de l’observation est requise.

  • Descripteurs array[Descriptor_valueRequestDTO]  

    Descripteurs et leurs valeurs pour l’observation. Optionnel.

Remarque

Seules les mesures continues, processus et sorties, peuvent être diffusées directement dans les tables de stations.

Exemples de tableaux JSON

Le corps de requête suivant contient les champs minimum requis utilisant les identifiants :
[
  {
    "station_id": 14,
    "subgroups": [
      {
        "observations": [
          {
            "observation": 3.5,
            "measure_id": 7
          }
        ]
      }
    ]
  }
]
Le corps de requête suivant contient les champs minimum requis utilisant des identifiants externes :
[
  {
    "external_station_id": "Ribbon Manufacturing Station",
    "subgroups": [
      {
        "observations": [
          {
            "observation": 3.5,
            "external_measure_id": "Roll Width"
          }
        ]
      }
    ]
  }
]
Le corps de requête suivant contient tous les champs disponibles utilisant des identifiants externes :
[
  {
    "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" 
              }
            ]
          }
        ]
      }
    ]
  }
]

Résultats des demandes

Pour le flux de données, Real-Time SPC il retourne le nombre d’enregistrements réussis et d’échecs.
{
  "success_count": 40,
  "failure_count": 2        
}

Schéma de validation

Pour gagner du temps et réduire les erreurs, utilisez le schéma JSON suivant avec un validateur externe pour valider vos requêtes de flux de données vers les points de terminaison de la station.
{
  "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"]
    }
  }
}