API Spendint : POST /sn_spend_intg/spendint/orderack

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 5 minutes de lecture
  • Met à jour les informations de commande lorsqu’un utilisateur achète un produit d’un catalogue tiers. Lorsque l’utilisateur passe à la caisse, une ligne d’achat est créée afin que les approbations ou d’autres tâches relatives à l’achat puissent être effectuées.

    Lorsqu’un bon de commande est généré dans la ServiceNow base de données, il est transmis par push dans les tables suivantes :
    • Commande sortante : contient l’en-tête de la commande.
    • Ligne de commande sortante : contient les lignes de commande.

    Les fournisseurs doivent interroger ces tables et extraire les commandes en attente par rapport à eux. Les fournisseurs doivent créer une application incluse dans le périmètre pour Studio de workflow les actions d’intégration à la base de ServiceNow données.

    Interrogez les tables avec les paramètres suivants :
    • sysparm_query=supplier_id=<supplier_id>^purchase_order.status=20 pour l’en-tête
    • sysparm_query=purchase_order.supplier_id=<supplier_id>^purchase_order.status=20 pour l’en-tête
    Lorsqu’une ligne d’achat est convertie en ligne de bon de commande, les processus suivants sont exécutés :
    1. Le bon de commande et la ligne de bon de commande sont soumis au progiciel de gestion intégré (ERP), le cas échéant.
    2. Le bon de commande et la ligne de bon de commande sont transférés via intégration au tiers avec l’ID client, l’ID du fournisseur, le numéro de bon de commande, la date de commande, le montant du bon de commande, la devise du montant du bon de commande et les lignes de bon de commande.
    3. Le bon de commande et la ligne de bon de commande restent à l’état Soumission en attente jusqu’à ce que les messages de confirmation soient reçus par l’intégration de catalogue tierce et l’ERP. Une fois la confirmation reçue, l’état est mis à jour sur Commandé. Si aucune intégration ERP n’est impliquée, un message de confirmation est requis uniquement auprès de l’intégration tierce.

    Tables d’état

    Pour connaître l’état de la demande de confirmation de commande, effectuez un appel REST dans la base de données à l’aide ServiceNow de l’API REST de table. La réponse de l’API répertorie les enregistrements dans lesquels la demande de confirmation de commande a échoué. Pour obtenir une réponse de confirmation de commande, interrogez la table d’erreurs de confirmation de commande 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/orderack

    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
    customer_id Requis. Identificateur du client.

    Type de données : chaîne

    Longueur maximale : 100

    order_number Requis. Numéro de bon de commande fourni par le client pour cette commande.

    Type de données : chaîne

    Longueur maximale : 40

    sales_order_lines Liste des objets qui définissent les lignes de commande client avec des mises à jour uniques pour les achats de cette commande.

    Type de données : tableau

    "sales_order_lines":[
      {
        "estimated_arrival_date": "String",
        "line_number": "String",
        "sales_order_line_number": "String"
      }
    ]
    sales_order_lines.date_arrivée_estimée Date d’arrivée estimée de la commande.

    Type de données : chaîne

    Longueur maximale : 40

    Format : JJ-MM-AAAA

    sales_order_lines.numéro_ligne Requis. Numéro de la ligne de bon de commande généré par le client pour un achat particulier.

    Type de données : chaîne

    Longueur maximale : 40

    sales_order_lines. numéro_ligne_commande_ventes Numéro de ligne de commande client généré par le fournisseur. Ce numéro est requis uniquement pour les révisions de cet achat.

    Type de données : chaîne

    Longueur maximale : 40

    sales_order_number Nombre ou valeur générée par le fournisseur pour cette commande.

    Type de données : chaîne

    Longueur maximale : 40

    status_code Requis. État de la commande soumise qui confirme si la commande a été passée avec succès.

    Type de données : chaîne

    Valeurs valides :
    • confirmé : commande passée avec succès.
    • rejeté : commande non passée.
    status_message Message joint à un code d’état. Par exemple, le message peut indiquer que la commande a été passée avec succès et qu’elle est en rupture de stock.

    Type de données : chaîne

    Longueur maximale : 1000

    supplier_id Requis. 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 Identificateur qui 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 commande, numéro de ligne de commande 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.service-now.com/api/sn_spend_intg/spendint/orderack" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'
    {"root":[{
      "customer_id": "ACME CORP",
      "supplier_id": "SUP-123456",
      "third_party_import_id": "undefined",
      "order_number": "PO08903323",
      "sales_order_number": "SO03323212",
      "status_code": "CONFIRMED",
      "status_message": "BACKORDERED",
      "sales_order_lines":[
        {
          "line_number": "POL6789876",
          "sales_order_line_number": "SOL5678909",
          "estimated_arrival_date": "YYYY-MM-DD"
        }
      ]
    }
    ]}
    

    Réponses possibles :

    // Success response:
    {
        "result": {
            "response": "success"
        }
    }
    
    // Error response:
    {
        "result": {
            "response": [
                {
                    "customer_id": "ACME CORP",
                    "supplier_id": "SUP-123456",
                    "third_party_import_id": "undefined",
                    "status_code": "failure",
                    "error_response_body": [
                        {
                            "sales_order_number": "SO03323212",
                            "sales_order_line_number": "SOL5678909",
                            "error_message": "Field Value empty/Formatting issue Purchase order number\nField Value empty/Formatting issue Purchase order line number\n"
                        }
                    ]
                }
            ]
        }
    }