RESPONSEMSG qui contient un - lors d'une 400

RPG (3 et 4, free), CL, SQL, etc...
raphael1980
Messages : 12
Enregistré le : ven. 02 avr. 2021, 10:12:41

RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

Hello,

J’essaie d’utiliser le HTTPPOSTCLOBVERBOSE de SYSTOOLS mais je ne reçois pas le body d’API attaquée quand le code retour est 400 ou 500 mais un simple -.

Aucun problème quand le code retour est 200.

select *
FROM TABLE (systools.httpPostClobVERBOSE ( CAST ( 'URL' as varchar(200) CCSID 1208),
cast('<httpHeader> <header name="Content-Type" value="application/json;charset=utf-8"/><header name="Authorization" value=" TOKKEN" /> </httpHeader>' as clob(10k) ccsid 1208),
cast('{ "Key1":699, "Key2":51 }' as clob(10k) ccsid 1208)) )as tabtes ;

Avez-vous une idée*?

D'avance, merci.
Raphaël.
Fichiers joints
HTTPPOSTCLOBVERBOSE.PNG
HTTPPOSTCLOBVERBOSE.PNG (13.04 Kio) Vu 773 fois

nbonnet
Messages : 95
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par nbonnet »

Bonjour,

Ici le code retour est HTTP 400 => Bad request
Dans ce cas, rien n'oblige à retourner un message en réponse.
Cela me semble cohérent. En cas de doute, vérifiez avec un outil du type curl, wget, SOAP UI, POSTMAN ou autre ...

Cordialement,
Nathanaël

raphael1980
Messages : 12
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

J’aurais du le préciser. J’ai évidement testé via postman.

L’API répond bien un message de retour du genre.

[
{
"message": "RC: bad value for restricted picklist field: 35",
"errorCode": "INVALID_OR_NULL_FOR_RESTRICTED_PICKLIST",
"fields": [
"FW_Commerciale__c"
]
}
]

nbonnet
Messages : 95
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par nbonnet »

Bonjour,

je n'ai pas refait de tests, mais en cas d'erreur (statut HTTP différent de 2*), les fonctions *VERBOSE renvoient les informations d'erreurs dans RESPONSEMSG : cf https://www.ibm.com/docs/en/i/7.4?topic ... n-overview

J'essaie de retrouver mes tests la dessus !
Nathanaël

raphael1980
Messages : 12
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

Effectivement, j'avais espérer l'avoir dans RESPONSEMSG mais j'ai un joli -

Le header aide un peu mais ne donne pas non plus l'erreur exact retournée dans le JSON en body de l'API.

<?xml version="1.0" encoding="UTF-8" ?>
<httpHeader responseCode="400">
<responseMessage>Bad Request</responseMessage>

<header name="Transfer-Encoding" value="chunked"/>
<header name="HTTP_RESPONSE_CODE" value="HTTP/1.1 400 Bad Request"/>
<header name="X-Robots-Tag" value="none"/>
<header name="Strict-Transport-Security" value="max-age=31536002; includeSubDomains"/>
<header name="Cache-Control" value="no-cache,must-revalidate,max-age=0,no-store,private"/>

<header name="Date" value="Fri, 02 Apr 2021 11:16:45 GMT"/><header name="Content-Type" value="application/json;charset=UTF-8"/><header name="XXX-Limit-Info" value="api-usage=192/5000000"/></httpHeader>

raphael1980
Messages : 12
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

je ne t'avais pas compris !

C'est ok , je devais simplement mettre includeErrorMsg="true" dans le httpHeader !

Merci pour ton aide.

raphael1980
Messages : 12
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

J’ai malgré tout un autre souci.

On souhaite utiliser l’API de SalesForce qui n’accepte pas les méthodes PUT mais juste des PATCH.

Hors, je ne vois pas de fonction qui permet de faire un HTTPPATCH.

Une idée ? Une piste ?

raphael1980
Messages : 12
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

Bon, j'ai triché.... :twisted:

J'ai envoyé un post et j'ai redéfini la méthode dans l'URL.

url + "?_HttpMethod=PATCH"

Du bricolage mais je ne voyais pas comment faire autrement.

nbonnet
Messages : 95
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par nbonnet »

Bonjour,

la méthode PATCH n'est pas actuellement supportée.
Il est possible d'ouvrir une demande à IBM dans ce sens : https://www.ibm.com/developerworks/rfe/
Nathanaël

raphael1980
Messages : 12
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

Hello,

À votre avis, la fonction HTTPPOSTCLOBVERBOSE pourrait être responsable d’un nombre de diagnostics trop élevé ?

Erreur = The maximum number of stacked diagnostics areas has been exceeded.

Et d’un gonflement temporaire d’espace disque que le système libère par la suite ?

On fait par moment plusieurs centaines d’attaques sur l’API externe pour mettre à jour une série d’objets ou d’indicateurs sur ces objets.

Merci pour votre retour.
Raphaël.

nbonnet
Messages : 95
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par nbonnet »

Bonjour,

les diagnostics sont généralement dûs à des erreurs de conversion, division par zéro etc ...
Est-ce dans l'exploitation du résultat de l'appel plutôt que l'appel lui-même ?
Nathanaël

raphael1980
Messages : 12
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

Lundi, on fera une révision de la PS. Peut-être qu'un point m'échappe qui génère une erreur dans le post traitement API.

Ici je l'ai fait tourner, +- 400 appels à l'API, j'ai grillé 2% d'utilisation du disque qui sera nettoyé cette nuit par le système.

Est-ce que tu crois que cela peut venir du fait qu'on exploite : <httpHeader includeErrorMsg="true">

On a besoin de la réponse de l'API pour savoir quand on doit faire un POST ou PATCH ou quand le token d'autorisation est expiré.

Merci pour tes retours.

nbonnet
Messages : 95
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par nbonnet »

Bonjour,

non aucun rapport pour moi.
Pas de rapport entre l'appel de l'API et la consommation de disque, sauf éventuellement des exceptions Java qui provoquent des dumps de la JVM ?
Nathanaël

raphael1980
Messages : 12
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

C’est peut-être une piste.

Si on n’active pas le verbose, on reçoit effectivement un message java quand les api retournent autre chose qu’un joli 200.

On est passé en verbose et includeErrorMsg pour traiter les réponses qui ne sont pas des 200 et éviter d’avoir un message java qui arrête le traitement.

Mais en fait, on l’a peut-être toujours en arrière plan.

Cependant, je ne sais pas encore comment vérifier ça.

raphael1980
Messages : 12
Enregistré le : ven. 02 avr. 2021, 10:12:41

Re: RESPONSEMSG qui contient un - lors d'une 400

Message par raphael1980 »

je pense que c'est effectivement les messages d'erreur java.

Si on le fait sans le verbose et on a ce genre de message :

CRM/TRTCLITMPTEST sur le serveur XXX Erreur = Java stored procedure or user-defined function SYSTOOLS.HTTPGETCLOB, specific name HTTPG00005 aborted with an exception "java.io.FileNotFoundException:https://gld--dev.my.salesforce.com/serv ... XX/XXX/XXX". SQLCODE = -4302 SQLSTATE = 38000 Job = 640429/QUSER/QZDASOINIT

Quand on le fait en verbose avec le includeErrorMsg , on a le joli message de retour de l'API mais sans doute que derrière, il continue à faire ce genre de message ce qui provoque le dépassement du diagnostic et le fait d'utiliser de l'espace disque.

Répondre