J'ai été obligé de modifier le framework pour mon appli, et évidemment, cela pose pas mal de pbs lors de release XMLRAD. Je voudrais vous les soumettre afin de me dire si une solution e-delos existe (et je modifierai mon code) ou si mon code pourrait être implémenté dans la version de base :
- HTTP/HTTPS (concerne le XSLC.XSL) : ce code a été ajouté au xslc:page, ce qui pose évidemment des pb en https ... je l'ai supprimé et cela fonctionne bien :
<base href="http://{/document/XMLC_Params/XMLC_Host}{/document/XMLC_Params/XMLC_ScriptName}/"/>
- Header HTTP : dans un environnement https, j'ai besoin de récupérer la balise CERT_SUBJECT pour m'identifier sur un annuaire LDAP, j'ai du effectuer une modif dans xmlapp.pas fonction (InternalDispatchRequest/Initxmlrequest) :
Context.SetValue('Request.User',Request.GetFieldByName('CERT_SUBJECT'));
- Gestion du séparateur de décimales : afin de gérer le . ou la , à tous les coups (cette fonctionnalité n'est pas opérationnelle à 100% dans la base), j'ai dû ajouter dans xmlgram.pas (fillparams) :
if (ParamType = 'FLOAT') or (ParamType = 'INTEGER') then
begin
{$IFDEF NATIVE}
if SysUtils.DecimalSeparator = '.' then
ParamValue := StringReplace(ParamValue,',','.',[rfReplaceAll])
else
ParamValue := StringReplace(ParamValue,'.',',',[rfReplaceAll]);
if ParamValue = '' then ParamValue := '0';
ParamValue := FloatToStr(StrToFloat(ParamValue));
{$ENDIF}
{$IFDEF CLR}
{$ENDIF}
end;
La même chose a été ajoutée dans dac.pas (Batch) car dans le cas d'éxécution d'une requête stockée dans les Queries, aucun test de type de paramètre n'est fait.
- Et la dernière qui est certainement + spécifique. Lors d'une exception (date invalide, erreur BDD, ..) je dois remonter à l'utilisateur un message 'humain', et pas le message brut de la base. J'ai donc modifié le xmlapp.pas afin de rajouter dans le contexte un type d'erreur perso en fonction du message reçu. Un peu comme E-delos, mais j'ai besoin de conserver le message d'origine afin de l'afficher en dessous et surtout de le conserver dans les logs.
Si quelqu'un pouvait m'enlever quelques codes à conserver au coffre, cela me simplifierait bien la vie.
Partager