API Spendint : POST /sn_spend_intg/spendint/availability

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 3 minutes de lecture
  • Met à jour la disponibilité des enregistrements de produits du fournisseur.

    Lorsque des enregistrements de produit de fournisseur sont disponibles, l’API utilise l’UGS du produit pour trouver un produit de fournisseur existant. Si un produit fournisseur correspondant existe, le champ available_units correspondant est mis à jour. Si aucun produit fournisseur correspondant n’est trouvé, un message d’erreur est généré indiquant que le produit pour lequel vous essayez de mettre à jour la disponibilité n’existe pas.

    Tables d’état

    Pour connaître l’état de la demande de disponibilité de la mise à jour, effectuez un appel REST dans la base de données à l’aide ServiceNow de l’API REST de la table . La réponse de l’API répertorie les enregistrements pour lesquels la demande de disponibilité de mise à jour a échoué. Pour mettre à jour la réponse de disponibilité, interrogez la table d’erreurs de disponibilité avec le paramètre suivant :

    sysparm_query=outbound_error.supplier_id=<supplier_id>^outbound_error.state=20

    Les détails sur l’ID client, l’ID du fournisseur, le type d’erreur, l’ID unique de l’ensemble de données à importer et l’état se trouvent dans la table État sortant, qui est la table d’erreurs parente.

    Format d’URL

    /api/sn_spend_intg/spendint/availability

    Paramètres de demande pris en charge

    Tableau 1. Paramètres de chemin d’accès
    Nom Description
    Aucune
    Tableau 2. Paramètres de requête
    Nom Description
    Mode Prise en charge des modes asynchrone et synchrone pour l’intégration tierce.

    Type de données : chaîne

    Valeurs valides :
    • async : mode asynchrone.
    • sync : mode synchrone.

    Valeur par défaut : asynchrone

    Tableau 3. Paramètres du corps de la demande (XML ou JSON)
    Nom Description
    catalog_id Requis. Identificateur du contenu de catalogue qui peut être acheté par un client.

    Type de données : chaîne

    Longueur maximale : 100

    customer_id Requis. Identificateur du client.

    Type de données : chaîne

    Longueur maximale : 100

    produits Liste des objets qui définissent les produits à mettre à jour. Chaque transaction a une limite de 1000 produits.

    Type de données : tableau

    "products": [
      {
        "available_units": "String",
        "sku": "String",
        "unit": "String"
      }
    ]
    products.available_units Requis pour les produits qui sont en stock. Nombre d’unités disponibles pour ce produit.

    Type de données : chaîne

    Longueur maximale : 40

    produits.sku Requis. Numéro généré par un fournisseur qui identifie de manière unique un produit vendu par ce fournisseur.

    Type de données : chaîne

    Longueur maximale : 100

    produits.unité Requis. Unité ou taux auquel le produit est vendu par le fournisseur. Par exemple, les pièces, les heures, etc.

    Type de données : chaîne

    Longueur maximale : 100

    supplier_id Identificateur du revendeur ou du fournisseur auprès duquel le client peut passer des commandes.

    Type de données : chaîne

    Longueur maximale : 100

    third_party_import_id Permet à un tiers de transmettre une valeur de chaîne pour identifier de manière unique un ensemble de données importées.

    Type de données : chaîne

    Longueur maximale : 100

    En-têtes

    Les en-têtes de demande et de réponse suivants s’appliquent uniquement à cette action HTTP ou s’appliquent à cette action d’une manière distincte.

    Tableau 4. En-têtes de demandes
    En-tête Description
    Accepter Format des données du corps de la réponse. Types pris en charge : application/json ou application/xml.

    Par défaut : application/json

    Remarque :
    Seul le format de données est pris en charge pour Procurement application/json Integration Framework.
    Tableau 5. En-têtes de réponses
    En-tête Description
    Aucune

    Codes d'état

    Les codes d’état suivants s’appliquent à cette action HTTP.

    Tableau 6. Codes d'état
    Code d'état Description
    réussite Réussi. La demande a été traitée avec succès.
    échec En échec. La demande a été traitée avec des erreurs.

    Paramètres du corps de réponse (JSON)

    Ces paramètres de corps de réponse sont reçus lorsqu’ils sont interrogés en mode synchrone.
    Nom Description
    error_response_body Description des erreurs, répertoriées par numéro de référence et message d’erreur.

    Type de données : tableau

    error_response_body.message_erreur Message d’erreur détaillé.

    Type de données : chaîne

    status_code État de la réponse tel que « réussite » ou « échec ».

    Type de données : chaîne

    Demande cURL

    curl "https://instance.servicenow.com/api/sn_spend_intg/spendint/availability" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'
    {"root": [{
      "customer_id": "AB-1234323",
      "catalog_id": "ACME CORP",
      "supplier_id": "SUP-123456",
      "third_party_import_id": "DEL6789876",
      "products": [
        {
          "sku": "5578874",
          "unit": "Each",
          "available_units": "20"
        }
      ]
    }
    ]}
    

    Réponses possibles :

    // Success response:
    {
        "result": {
            "response": "success"
        }
    }
    
    Error response: 
    {
        "result": {
            "response": [
                {
                    "customer_id": "AB-1234323",
                    "supplier_id": "SUP-123456",
                    "third_party_import_id": "DEL6789876",
                    "status_code": "failure",
                    "error_response_body": [
                        {
                            "sku": "5578874",
                            "error_message": "The product for which you are trying to update availability does not exist\nField Value empty/Formatting issue Unit\n"
                        }
                    ]
                }
            ]
        }
    }