28 novembre 2017

HRaSpace 7.30 - Un "rectangle blanc" devant le Client Riche


Dans certains cas le Client Riche est perturbé sous Internet Explorer par un "rectangle blanc" qui s'affiche devant le formulaire HR Access. En général ce dysfonctionnement est lié à la JVM du poste.

Si vous rencontrez ce problème, contactez le support. La proposition est de modifier la taille de l'objet concerné dans le fichier "webapps/hr-rich-client/appletbeasun.html" pour le rendre invisible :

      if (topWindow.isIE) {
      document.write('<OBJECT WIDTH="0" HEIGHT="0" ID="DataAccess" NAME="DataAccess" 
      ...
      document.write('<PARAM name="code" value="com.hraccess.webclient.applets.AppletHRAccess">');
      document.write('<PARAM NAME="archive" VALUE="hrapplet.jar">');
      }
En complément, faire supprimer le cache des navigateurs.

22 novembre 2017

Le format des logs des webapps de HRaSpace

Les fichiers log4j.properties des webapps de HRaSpace donne la possibilité de personnaliser le format des messages affichés. Ce fichier est stocké dans le répertoire WEB-INF/conf de chaque webapp.

Si vous complétez ainsi le paramètre "fileappender.layout.conversionPattern" vous obtiendrez en plus de l'adresse IP le code de l'utilisateur. Ex :
log4j.appender.fileappender.layout.conversionPattern = %d [%15X{ip.address}][%25X{user.id}] %-5p %c{1} - %m%n

En ajoutant [%64X{virtual.session.id}] vous afficherez l'identifiant de session HRAccess - que l'on peut retrouver dans la table MX10 et dans le fichier stop_watch.log de openhr... Pour avoir l'équivalent sous Apache, ajoutez %{com.hraccess.portal.connection.id}C au LogFormat.

Avec ce paramètre le fichier log est réinitialisé à chaque démarrage de l'application :
log4j.appender.fileappender.append = false

En le modifiant comme ceci il n'est plus écrasé mais daté (pensez a purger les fichiers les plus anciens) :
log4j.appender.fileappender.append = true
log4j.appender.fileappender.datePattern = '.' yyyy-MM-dd

En modifiant le "consoleappender.layout.consoleappender" ce sont les messages renvoyés dans le log général "catalina.out" qui seront concernés :
log4j.appender.consoleappender.layout.conversionPattern=...

Y ajouter  ${com.hraccess.webapp.basename} permet d'afficher le nom de l'application source.

En supprimant la sortie "console" les messages de la webapp ne seront plus envoyés dans le catalina.out :
log4j.logger.com.hraccess = info, consoleappender, fileappender


Attention : en cas de mise à jour de la politique de journalisation via la console d'administration, le fichier est écrasé et vos mises à jour sont perdues ...

2 novembre 2017

Executer une commande système dans un traitement Cobol

Le site MicroFocus donne un exemple de Cobol exécutant une commande système et récupérant le code retour :
https://community.microfocus.com/microfocus/cobol/net_express__server_express/w/knowledge_base/6537/invoke-a-unix-command-from-within-cobol-using-call-system-and-retrieve-the-return-code

Dans le principe, on utilise la commande Cobol
CALL "SYSTEM" USING null-terminated-command  RETURNING return-code-ws.

La commande est terminée par un caractère NULL :

000014 01 null-terminated-command.
000015     05 command      pic x(2048).
000016     05 filler          pic x value x"00".


Le code retour est placé dans un numérique :
000002 01 return-code-ws     pic s9(8) comp-5.
L'article explique que pour AIX, Solaris, HP/UX PARISC and HP/UX Itanium (big-endian) il faut la redéfinir ainsi :
000005     05 filler          pic x.
000006     05 high-order-byte pic s9 comp-5.
000007     05 filler          pic x.
000008     05 low-order-byte pic s9 comp-5.

Et pour Linux x86, HP/Tru64, SCO, UnixWare - et certainement Windows - (little-endian) ainsi :
000010     05 filler          pic xx.
000011     05 high-order-byte pic s9 comp-5.
000012     05 low-order-byte pic s9 comp-5.


Pour le contrôler :
000024      if low-order-byte = 0
000025          display "return code from shell is: ",
000026               high-order-byte
000027      end-if


J'ai testé l'exemple fourni sur un AIX (donc un "big-endian") avec succès :

cob -vx callsys.cbl -o callsys
 

callsys

Enter command to be executed by shell
 (enter 'done' to quit)
ls -l  /tmp/dummy
-rw-r--r--    1 hraref   hraref          0 Aug 28 11:58 /tmp/dummy
return code from shell is: +000

Enter command to be executed by shell
 (enter 'done' to quit)
rm /tmp/dummy
rm: /tmp/dummy not removed.
Not owner
return code from shell is: +002


Merci à l'auteur de l'article ...