API Spendint : POST /sn_spend_intg/spendint/price
Met à jour toute tarification pour les enregistrements de produits du fournisseur.
Lorsque la tarification est disponible pour les enregistrements de produits du fournisseur, l’API utilise l’UGS du produit pour trouver un produit de fournisseur existant. Si un produit fournisseur correspondant existe, le prix du contrat 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 tarification n’existe pas.
Tables d’état
Pour connaître l’état de la demande d’importation de prix, 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 d’importation du prix a échoué. Pour obtenir une réponse d’importation de prix, interrogez la table Erreur de prix avec le paramètre suivant :
sysparm_query=outbound_error.supplier_id=<supplier_id>^outbound_error.state=20
Vous pouvez trouver les détails sur l’ID client, l’ID fournisseur, le type d’erreur, l’ID unique de jeu d’importation et la boîte d’état dans la table État sortant, qui est la table d’erreurs parente.
Format d’URL
/api/sn_spend_intg/spendint/prix
Paramètres de demande pris en charge
| Nom | Description |
|---|---|
| Aucune |
| Nom | Description |
|---|---|
| Mode | Prise en charge des modes asynchrone et synchrone pour l’intégration tierce. Type de données : chaîne Valeurs valides :
Valeur par défaut : asynchrone |
| 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 à créer ou à mettre à jour. Chaque transaction a une limite de 1000 produits. Type de données : tableau |
| products.contract_agreement | Détails du contrat pour un produit. Type de données : objet |
| products.contract_agreement. date_de_fin_contrat | Date à laquelle la durée du contrat prend fin. Type de données : chaîne Longueur maximale : 40 Format : JJ-MM-AAAA |
| products.contract_agreement.numéro_contrat | Requis. Numéro du contrat actif associé au produit. Type de données : chaîne Longueur maximale : 100 |
| products.contract_agreement.date_début_contrat | Date à laquelle la durée du contrat commence. Type de données : chaîne Longueur maximale : 40 Format : JJ-MM-AAAA |
| products.contract_agreement.devise_négociée | Requis. Devise du prix négocié. Type de données : chaîne Longueur maximale : 40 |
| products.contract_agreement.prix_négocié | Requis. Prix unitaire d’un produit tel que négocié dans le cadre d’un contrat avec le fournisseur ou le revendeur. 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 |
| 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.
| 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 |
| En-tête | Description |
|---|---|
| Aucune |
Codes d'état
Les codes d’état suivants s’appliquent à cette action HTTP.
| 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.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”
}
]
}
]
}
}