20 décembre 2017

Faire une recherche dans les scripts intégrés aux objets

Je n'avais pas noté que depuis (au moins) la version 7.30.50 HR Studio possède une fonction de recherche dans les scripts ...



Si inspecter les pages web publiées ou décoder les données de la table SP10 peut garder un intérêt (la recherche est transverse), vous pouvez plus simplement faire un clic droit sur un groupe (d'écrans) et choisir "rechercher dans le script des objets du groupe".



Merci Wassim et Anouar de m'avoir relayé l'information.

4 commentaires:

  1. Bonjour,

    Pour ma part, je préfère passer par la table SP10 qui permet de rechercher sans devoir se limiter à un groupe de pages web.

    Voici la requête que j'utilise :

    -- Lecture des scripts des pages web :
    with sp10_max as (
    select tyenti, cdentc, nuvvar, max(nolign) as nolign_max
    from sp10
    group by tyenti, cdentc, nuvvar
    ) , dephasage as (
    select distinct case when nuvvar = '4.200' then instr(zoproc,'Content-Transfer-Encoding: base64') + length('Content-Transfer-Encoding: base64') +8
    else instr(zoproc,'Content-Description: HRWScript') + length('Content-Description: HRWScript') +8
    end as dephasage, nuvvar
    from sp10 where nolign in ( '01', '001', '0001', '00001' )
    ) , sp10_ok as (
    select a.tyenti, a.cdentc, a.nuvvar, a.nolign, b.nolign_max,
    case when nolign in ( '01', '001', '0001', '00001' ) and nolign_max = nolign then substr(a.zoproc,c.dephasage)
    when nolign in ( '01', '001', '0001', '00001' ) and nolign_max != nolign then substr(a.zoproc,c.dephasage) || substr(lead(a.zoproc,1,0) over (order by a.tyenti, a.cdentc, a.nuvvar, a.nolign) ,1,mod(c.dephasage -1 ,4)) -- pour avoir un modulo 4 dans le decode
    else substr(a.zoproc, mod(c.dephasage,4)) -- pour avoir un modulo 4 dans le decode
    end as zonxml_ok
    from sp10 a inner join sp10_max b on (a.tyenti = b.tyenti and a.cdentc = b.cdentc and a.nuvvar = b.nuvvar)
    inner join dephasage c on (b.nuvvar = c.nuvvar)
    order by 1,2,3
    ), sp10_converti as (
    select tyenti , cdentc, nuvvar, nolign,
    convert( --'banniÚre' get rid of mojiabke
    UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.BASE64_DECODE(UTL_RAW.CAST_TO_RAW(coalesce(substr(zonxml_ok,1,2000), ' ')))) || -- pas plus de 2000 caractères possibles pour UTL_ENCODE /// et coalesce car le null fait une erreur
    UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.BASE64_DECODE(UTL_RAW.CAST_TO_RAW(coalesce(substr(zonxml_ok,2001 ), ' '))))
    , 'WE8ISO8859P15' , 'AL32UTF8' ) -- adapter le convert() aux paramètres de la base de données
    as xml_converti
    from sp10_ok
    )
    select * --cdentc, substr( xml_converti, instr( xml_converti, 'hrSetValue') )
    from sp10_converti
    where xml_converti like '%hrClosePopup()%' escape '\' -- pour avoir un caractère d'échappement dans le like au-dessus
    ;

    RépondreSupprimer
  2. La recherche multi groupe est bien possible : Il suffit de sélectionner tous les groupes puis de lancer la recherche.

    RépondreSupprimer
  3. Bonjour, sur la version 9, module formation , je crée une nouvelle session à travers la pop, une confirmation de création s'affiche mais les résultats ne sont pas reportées sur la page web pour continuer l'inscription les salariés dans la session de formation qu'est-ce qui cloche ? La requête SQL fait sortir de la session a bien été créé mais ne s'affiche pas sur l' application.

    RépondreSupprimer