API Spendint - POST /sn_spend_intg/spendint/price

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 3 minutes de lecture
  • Met à jour la tarification d'enregistrements de produits du fournisseur.

    Lorsqu'une tarification est disponible pour des enregistrements de produits du fournisseur, l'API utilise la UGS des produits pour rechercher un produit du fournisseur existant. Si un produit du fournisseur correspondant existe, le prix du contrat correspondant est mis à jour. Si la recherche de produit du fournisseur correspondant échoue, un message d'erreur est généré et indique que le produit pour lequel vous essayez de mettre à jour la tarification n'existe pas.

    Tables d'états

    Pour connaitre l'état de la demande d'importation de prix, 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 d'importation de prix a échoué. Pour obtenir la réponse d'importation de prix, interrogez la table d'erreurs de facture à l'aide du paramètre suivant :

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

    Vous trouverez les informations sur l'ID client, l'ID du fournisseur, le type d'erreur, l'ID de jeu d'importation unique et l'état dans la table État sortant, qui est la table d'erreurs parente.

    Format d'URL

    /api/sn_spend_intg/spendint/price

    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
    catalog_id Requis. Identificateur du contenu de catalogue qu'un client peut acheter.

    Type de données : chaîne

    Longueur maximale : 100

    customer_id Requis. Identificateur du client.

    Type de données : chaîne

    Longueur maximale : 100

    products Liste d'objets qui définissent les produits à créer ou à mettre à jour. Chaque transaction a une limite de 1 000 produits.

    Type de données : tableau

    "products": [
      {
        "contract_agreement": {Array},
        "sku": "String"
      }
    ]
    products.contract_agreement Détails du contrat d'un produit.

    Type de données : objet

    "contract_agreement": {
      "contract_end_date": "String",
      "contract_number": "String",
      "contract_start_date": "String",
      "negotiated_currency ": "String",
      "negotiated_price": "String"
    }
    products.contract_agreement.contract_end_date Date de fin du contrat.

    Type de données : chaîne

    Longueur maximale : 40

    Format : AAAA-MM-JJ

    products.contract_agreement.contract_number Requis. Numéro du contrat actif associé au produit.

    Type de données : chaîne

    Longueur maximale : 100

    products.contract_agreement.contract_start_date Date de début du contrat.

    Type de données : chaîne

    Longueur maximale : 40

    Format : AAAA-MM-JJ

    products.contract_agreement.negotiated_currency Requis. Devise du prix négocié.

    Type de données : chaîne

    Longueur maximale : 40

    products.contract_agreement.négocier_price Requis. Prix unitaire d'un produit négocié via un contrat avec le fournisseur ou le revendeur.

    Type de données : chaîne

    Longueur maximale : 40

    products.sku Requis. Nombre généré par un fournisseur qui identifie de manière unique un produit qu'il vend.

    Type de données : chaîne

    Longueur maximale : 100

    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 référence UGS 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/price" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'
    {"root": [{
      "customer_id": "ACME CORP",
      "catalog_id": "AB-1234323",
      "supplier_id": "SUP-123456",
      “third_party_import_id”: “DEL789876",
      "products": [
        {
          "sku": "5578874",
          "contract_agreement": {
            "contract_number": "34567892",
            "contract_start_date": "YYYY-MM-DD",
            "contract_end_date": "YYYY-MM-DD",
            "negotiated_price": "456",
            "negotiated_currency ": "USD"
          }
        }
      ]
    }
    ]}
    

    Réponses possibles :

    // Success response:
    {
        “result”: {
            “response”: “success”
        }
    }
    
    // Error response:
    {
        “result”: {
            “response”: [
                {
                    “customer_id”: “ACME CORP”,
                    “supplier_id”: “SUP-123456”,
                    “third_party_import_id”: “DEL789876",
                    “status_code”: “failure”,
                    “error_response_body”: [
                        {
                            “sku”: “5578874”,
                            “error_message”: “The product for which you are trying to update pricing does not exist\nField Value empty/Formatting issue Negotiated currency\nField Value empty/Formatting issue Contract start date\nField Value empty/Formatting issue Contract end date\n”
                        }
                    ]
                }
            ]
        }
    }