API Spendint - POST /sn_spend_intg/spendint/price
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
| Nom | Description |
|---|---|
| Aucun |
| Nom | Description |
|---|---|
| mode | Prise en charge des modes asynchrones et synchrones pour les intégrations tierces. Type de données : chaîne Valeurs valides :
Valeur par défaut : async |
| 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 | Détails du contrat d'un produit. Type de données : objet |
| 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.
| 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 |
| En-tête | Description |
|---|---|
| Aucun |
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é 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”
}
]
}
]
}
}