API Spendint - POST /sn_spend_intg/spendint/orderack

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 4 minutes de lecture
  • Met à jour les informations de commande lorsqu'un utilisateur achète un produit à partir d'un catalogue tiers. Lorsque l'utilisateur valide son achat, une ligne d'achat est créée pour lui permettre d'effectuer les approbations ou d'autres tâches pour l'achat.

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

    Les fournisseurs doivent interroger ces tables et récupérer les commandes en attente qui leur sont adressées. Les fournisseurs doivent créer une application incluse dans le périmètre pour les actions Studio de workflow pour l'intégration à la base de données ServiceNow.

    Interrogez les tables à l'aide des paramètres suivants :
    • sysparm_query=supplier_id=<supplier_id>^purchase_order.status=20 for header
    • sysparm_query=purchase_order.supplier_id=<supplier_id>^purchase_order.status=20 for header
    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 à la planification des ressources de l'entreprise (ERP), le cas échéant.
    2. Le bon de commande et la ligne de bon de commande sont transférés via l'intégration au tiers avec l'ID client, l'ID du fournisseur, le numéro de bon de commande, la date de la 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 l'intégration du catalogue tiers et l'ERP reçoivent les messages de confirmation. 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 par l'intégration tierce.

    Tables d'états

    Pour connaitre l'état de la confirmation de la commande, effectuez un appel REST dans la base de données ServiceNow à l'aide de l'API REST Table. La réponse de l'API répertorie les enregistrements dans lesquels la demande de confirmation de la commande a échoué. Pour obtenir une réponse d'authentification de commande, interrogez la table d'erreurs de confirmation de commande à l'aide du paramètre suivant :

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

    Les informations sur l'ID client, l'ID du fournisseur, le type d'erreur, l'ID de jeu d'importation unique 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
    Aucun
    Tableau 2. Paramètres de requête
    Nom Description
    mode Prise en charge des modes asynchrones et synchrones pour les intégrations tierces.

    Type de données : chaîne

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

    Valeur par défaut : async

    Tableau 3. Paramètres de corps de 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 d'objets qui définissent les lignes de commande client avec des mises à jour uniques pour les achats dans 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.estimated_arrival_date Date d'arrivée prévue de la commande.

    Type de données : chaîne

    Longueur maximale : 40

    Format : AAAA-MM-JJ

    sales_order_lines.line_number Requis. Numéro de 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.sales_order_line_number Numéro de ligne de commande client généré par le fournisseur. Ce numéro n'est requis que pour les révisions apportées à cet achat.

    Type de données : chaîne

    Longueur maximale : 40

    sales_order_number Numéro 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 différée.

    Type de données : chaîne

    Longueur maximale : 1 000

    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 permettant à 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 à cette action HTTP uniquement ou s'appliquent à cette action d'une manière distincte.

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

    Valeur par défaut : application/json

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

    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é correctement traitée.
    échec En échec. La demande présente des erreurs de traitement.

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

    Les paramètres de corps de réponse suivants sont reçus lors d'une interrogation en mode synchrone.
    Nom Description
    error_response_body Description des erreurs, répertoriées par numéro de commande client, numéro de ligne de commande client et message d'erreur.

    Type de données : tableau

    error_response_body.error_message 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"
                        }
                    ]
                }
            ]
        }
    }