Mise au menu procédures client

Cegid Orli - Documentation fonctionnelle - 2025

(Custom Job Launcher)

Contenu dans cette page

Procédures (Unix / SQL / Shell)

Référencement de votre procédure

Critères de votre procédure

Shell scripts

Contexte international

Procédure SQL pour export dans Excel

Cas des éditions via CBR

 

 

Procédures Unix SQL et Shell

Le module Custom Job launcher (Mise au menu des spécifiques clients) vous permet de piloter et référencer dans le portail Cegid Orli des procédures SQL ou Shell script, implantées sur votre serveur Unix de bases de données.

Ce document résume les étapes du paramétrage à accomplir ainsi que quelques exemples ‘type’ de procédures.


‎ 

JP590 : Référencement de votre procédure

JP590W01
Cette fonction permet de créer vos fonctions spécifiques Z% ‎(le "pendant" du JP003 standard)

 

Image 17

 

Code fonction
Sa structure est obligatoirement ZxxxxWxx

 

Libellé Cegid Orli
Intitulé qui apparaîtra dans le portail et sera repris dans le fichier PDF de résultat.

 

Type Fonction
Choisir ‘Procédure MENCLI’

 

Outil et Accès Unix

  • L’outil est obligatoirement ‘Lanceur’
  • ‘3’ est proposé dans ‘Accès Unix’ et doit être conservé.

 

Lien Menu

  • Permet de paramétrer la ‘barrette’ du Menu qui comportera votre procédure.
  • Utiliser la liste de valeurs pour choisir le lien vous convenant.

 

No Ordre

  • Permet de positionner votre procédure à l’intérieur de la ‘barrette’

 

 

Utilisation complémentaire

Personnalisation Lien Menu

  • Cette fonction permet également de créer des ‘Liens Menu’ personnalisés
  • Ils peuvent être utilisés dans JP004 pour la présentation de vos procédures mais également toute autre fonction Cegid Orli.

 

Mise au Menu de votre procédure

  • S’effectue par JP004 qui propose vos procédures en plus des fonctions Cegid Orli.


‎ 

Exemple procédure SQL n’utilisant aucun critère

 

Taille et place disponible de la base de données

 

@$SQL/SQ000_MENCLI

 

COL "NOM TABLESPACE" FORMAT A16 JUSTIFY CENTER

COL "TAILLE" FORMAT 999999 JUSTIFY CENTER

COL "DISPO" FORMAT 99999.9 JUSTIFY CENTER

COL "% DISPO" FORMAT 999.9 JUSTIFY CENTER

COL "NB SEGMENTS" FORMAT 9999999999 JUSTIFY CENTER

COL "SEGMENT MAX" FORMAT 99999999.9 JUSTIFY CENTER

COL "NB SEG>=1 M" FORMAT 9999999999 JUSTIFY CENTER

 

select d.tablespace_name "NOM TABLESPACE",d.taille "TAILLE",

f.dispo "DISPO",(f.dispo/d.taille)*100. "% DISPO",

f.nb "NB SEGMENTS",f.dispo_max "SEGMENT MAX",

f.nb_1 "NB SEG>=1 M"

from view_tbs_free f,view_tbs_tail d

where f.tablespace_name=d.tablespace_name

order by d.tablespace_name;

 

Remarques

@$SQL/SQ000_MENCLI
à positionner obligatoirement en 1ère ligne pour obtenir un résultat correct dans le PDF du résultat
(exemple : valeur de SET LINE).

 

  • Le résultat du SQL peut comporter 131 caractères au maximum sur une même ligne.

     

  • Ne pas spécifier d’instruction TTITLE pour le titre, celui-ci étant inclus dans le PDF.

     

  • Ne pas utiliser d’instruction SPOOL
    (C’est le ‘pilote’ MEN-CLI qui assure la collecte du résultat de votre procédure ainsi que ses éventuelles erreurs).

 

 

Implantation de vos procédures

Vos procédures doivent se situer, sur le serveur Unix de bases de données :

  • Soit directement dans le répertoire

$ORLI_HOME/$ORLI_CLIENT

  • Ou (pour les SQL) dans 

$ORLI_HOME/$ORLI_CLIENT/sql

 

  • Ou (pour les ‘Shell script’) dans

$ORLI_HOME/$ORLI_CLIENT/x

 

Leur nom est obligatoirement ZxxxxWxx (Shell script) ou ZxxxxWxx.sql (SQL)

 

 

Exécution des procédures

Celle-ci s’effectue par la fonction classique de pilotage des éditions (CHOPE).

Le paramétrage de vos procédures est totalement calqué sur celui de Cegid Orli.

Vous bénéficiez donc de :

  • Paramétrage environnement édition via JP017.
  • Paramétrage GDA des critères de vos procédures via JP517.

     

  • Gestion des filtres pour vos procédures possédant des critères.
  • Paramétrage GDA de ces filtres via JP017.

     

  • Routage Écran, imprimante ou mail. Exécution en différé.
  • Suivi via JP530 des traitements effectués.

     

    Vous bénéficierez également de :

  • Toute évolution à venir du paramétrage et pilotage des fonctions Cegid Orli.

 

 

Recherche des procédures à exécuter

La recherche se fait en priorité sur la présence d’un ‘Shell script’, sinon sur celle d’un SQL.

Votre ‘Shell script’ peut tout à fait appeler d’autres objets, y compris un SQL de même nom.

 

Restitution du résultat

  • Le résultat est retourné dans un PDF avec les possibilités standard :
    • Page de critères
    • Résultat du traitement
    • Log et traces des erreurs éventuelles d’exécution

N.B. :
l’édition sort uniquement en mode portrait, et en caractères compressés.


‎ 

JP591 : Critères de votre procédure

JP591W01
Cette fonction permet de créer vos critères dynamiques Z% ‎(le "pendant" du JP550 standard)

 

Généralement les procédures utilisent des valeurs de critères afin de les rendre plus dynamiques, sachant que ces arguments sont dans un ordre fixe.

 

Cette fonction vous permet d’effectuer deux étapes :

 

Définir des critères utilisables par vos procédures

Image 16

 

Famille / Numéro

  • Ces deux champs constituent le code d’un critère.
  • La structure de vos familles est obligatoirement Zx

 

Nom

  • Intitulé qui apparaîtra lors de la saisie du critère.

 

Type

  • Choisir obligatoirement le type ‘présentation’.
  • Le type ‘présentation’ vous assure que l’utilisateur ne pourra pas perturber l’ordre fonctionnel de vos arguments (suppression / duplication de critère impossible)

 

Type de zone

  • Caractère, date ou nombre (contrôle en conséquence sur les deux derniers types)

 

Taille

  • Nombre de caractères maximum pouvant être saisis.

 

Jokers autorisés

  • À cocher si l’utilisateur peut saisir des ‘%’ et ‘_’ (Type de zone caractère)

 

Critère obligatoire

  • À cocher si l’utilisateur doit obligatoirement saisir une valeur pour ce critère.

 

Valeur par défaut

  • Valeur proposée par défaut pour le critère (facultatif)

 

Aide

  • Ligne d’aide visualisée en bas de l’écran lors de la saisie du critère.

 

Nom Table / Champ

  • Permet de déclencher un contrôle d’existence de la valeur saisie.

 

Libellé associé

  • Permet, en plus, de visualiser le libellé associé au code saisi.

 

Liste de valeurs utilisées

  • Si Cegid Orli possède une liste de valeurs sur ces éléments, le contenu de ce champ est automatiquement positionné.

 

exemple :
Cas d’un critère basé sur une liste fonctionnelle de valeurs fixes

Dans l’exemple précédent, le critère correspondait à une donnée contenue dans une table.

Ici, il s’agit d’un critère auquel vous associez des valeurs fixes (choix) utilisées par votre traitement.

 

L’onglet ‘Liste de valeur’ vous permet de :

  • Définir les différentes valeurs gérées par votre traitement.
  • Associer à chacune d’elles un libellé.

 

Image 15

 

Associer à vos procédures les critères qu’elles utilisent

Cette 2ème étape vous permet de :

  • Paramétrer les différents critères utilisés par votre procédure.
  • Indiquer le numéro d’ordre de présentation du critère.

 

Ce numéro d’ordre sera également celui dans lequel les arguments seront transmis ‎à votre procédure SQL (‘&&1’ …) ou Shell script ($1 …) :

Image 14

À ce niveau vous pouvez personnaliser pour la procédure certains paramètres hérités de la définition du critère :

  • Nom du critère
  • Jokers autorisés
  • Critère obligatoire
  • Valeur par défaut
  • Aide critère

N.B. :
votre procédure peut utiliser des critères livrés avec Cegid Orli.

 

Exemple procédure SQL utilisant des critères

 

Étude occupation table / index

@$SQL/SQ000_MENCLI

 

COL "TABLESPACE" FORMAT A15 JUSTIFY CENTER

COL "NOM TABLE / INDEX" FORMAT A20 JUSTIFY CENTER

COL "NB Ko" FORMAT 99999999 JUSTIFY CENTER

COL "Nb Ext" FORMAT 999 JUSTIFY CENTER

 

BREAK ON "TABLESPACE" NODUP SKIP 1

 

select SUBSTR(tablespace_name,1,15) "TABLESPACE",

SUBSTR(segment_name,1,20) "NOM TABLE / INDEX",

SUM(bytes) / 1024 "NB Ko",

COUNT(*) "Nb Ext"

from sys.dba_extents

where owner IN ('CREATOR','ORLI')

and ('&&1' = '0' OR ('&&1' = '1' AND segment_type = 'TABLE') OR

('&&1' = '2' AND segment_type = 'INDEX'))

and tablespace_name LIKE '&&3'

and segment_name LIKE '&&4'

group by tablespace_name,segment_name

having count(*) >= &&2

order by DECODE(tablespace_name,'PRINCIPAL',1,'ANNEXE',2,'ENVIRON',3,

'EDITION',4,'IDXTAB',5,ASCII(tablespace_name)),segment_name;

 

Remarques :

  • Les valeurs des 4 critères vous sont adressées en arguments dans l’ordre défini.
  • Vous les utilisez via les variables &&1 à &&4 de votre SQL.
  • Les arguments 9 à 13 sont systématiquement mis à votre disposition et contiennent :
    • &&9 
      Numéro de la demande de traitement
    • ‘&&10’
      Nom utilisateur Oracle (OPS$xxx)
    • ‘&&11’
      Nom utilisateur Cegid Orli
    • ‘&&12’
      Code format export
    • ‘&&13’
      Type format export


‎ 

Cas des ‘Shell scripts’

 

Pas de contrainte particulière, sinon :

  • Utiliser ‘echo’ sans re-direction dans un fichier pour obtenir la trace de votre traitement dans le PDF
  • Utiliser ‘exit 1’ pour provoquer la détection d’une erreur fatale, sinon terminer votre traitement par ‘exit 0’
  • Comme pour les SQL, $9 à $13 comportent les 5 arguments complémentaires.

 

 

Critères Limités / Illimités

Le nombre de critères, donc d’arguments adressés à vos procédures est limité à 8.

Il est possible d’avoir un nombre de critères illimités, sachant que l’écriture de la procédure devient plus complexe :

  • Dans JP590, cocher le champ ‘Illimité’ présent en bas à droite.
  • Votre procédure ne recevra plus que 5 arguments :
    • Numéro de la demande de traitement
    • Nom utilisateur Oracle (OPS$xxx)
    • Nom utilisateur Cegid Orli
    • Code format export
    • Type format export
  • C’est votre procédure qui doit lire via le numéro de demande les différents critères et leurs valeurs dans la table CRIT_DYN_TRT

 

 

Contexte international

  • Bien que de structure complexe, JP044 permet de traduire le libellé et l’aide de vos Critères d’édition.
  • La gestion internationale à l’intérieur des procédures SQL et Shell script demeure à ce jour sans réponse sous Cegid Orli.


‎ 

Procédure SQL pour export dans Excel

Il est possible, sous condition d’une écriture particulière, de formater un résultat destiné à un export dans Excel au lieu d’une liste dans un PDF.

 

Exemple procédure SQL pour export dans Excel

Liste du reste à traduire

@$SQL/SQ000_MENCLI_xls

 

select 'FORMAT:#C#006#D#;FORMAT:#C#080#G#'

from sys.dual;

 

select ORLPK0.F_MSG_TRAD('NO')||';'||ORLPK0.F_MSG_TRAD('TEXTE')

from sys.dual;

 

select SUBSTR(i.num_msg,1,6)||';'||SUBSTR(REPLACE(i.msg,';',','),1,80)

from intern_msg i

where …

 


‎ 

 

Remarques :

  • @$SQL/SQ000_MENCLI_xls

‎spécialisé pour l’export Excel, à positionner obligatoirement en 1ère ligne. (Ex : set line 4000)

  • select 'FORMAT:  …
    1er Select pour générer la ligne décrivant le format des colonnes, utilisée par la macro de chargement dans Excel.

Une instruction ‘Format’ par colonne séparée par un ;

  • #C (Caractère ou date) ou #N (Numérique)
  • #006 = Nombre de caractères dans la colonne pour auto-dimensionnement
  • #D (cadré DROITE) ou #G (cadré GAUCHE) ou #C (CENTRÉ)

 

  • select ORLPK0.F_MSG_TRAD('XXX')||';'|| 

2ème Select pour générer la ligne de titre des colonnes.

N.B. :
l’utilisation de la fonction internationale pour obtenir la traduction, si celle-ci est prévue dans le dictionnaire.

 

  • Ensuite le Select fonctionnel avec séparateur ‘ ;’

N.B. :
l’utilisation préventive du REPLACE de ';' par ',' dans le champ texte ‘msg’

 

Format des dates dans les exports Excel depuis un SQL au menu

 

Dans les exports Excel Cegid Orli (MUL et éditions) les dates contenues sont formatées dans un format particulier, et unique, et ce quel que soit le format défini pour l'utilisateur Cegid Orli ‎(prise en compte par nos macros Excel).

Les SQL au menu destinés à générer des exports Excel doivent être vérifiés, et il faut désormais formater les dates extraites de la manière suivante:

TO_CHAR(date, ORLPK0.F_FMT('EXPORT_D'))

Cette syntaxe garantit la pérennité et la compatibilité des SQL lancés du menu avec exports Excel qui ont des dates, avec les futures versions Cegid Orli.

 

 

Référencement export dans Excel

Ce paramétrage est nécessaire afin que lors de la demande, l’export soit proposé.

Image 1

 

Utiliser JP561

  • Saisir votre fonction
  • Saisir un code et libellé format
    (exemple : XLS Export dans Excel)
  • Saisir comme type _0
  • Cliquer sur le bouton ‘Générer AVEC Numérotation’
  • Sortir de la fonction

 

Comment générer un export de type ‘fichier plat’ ?

Ceci est très simple :

  • Dans le SQL, ne pas générer Format et Titre et adapter le Select fonctionnel.
  • Faire une demande avec routage ‘Mail’ ou à l’écran en utilisant ensuite le lien sur le fichier ‘.txt’ résultat.

 

Comment générer un PDF et/ou un export dans Excel ?

Ceci est tout à fait possible mais nécessite :

  • Un ‘Shell script’ pilote
  • Deux procédures SQL. Une pour l’état PDF, l’autre pour l’export dans Excel

 

Vous pouvez vous inspirer de l’exemple type représenté par $X/OR258W01.


 

Cas des éditions via CBR

Cette possibilité est liée à un module complémentaire nécessitant une formation technique particulière. Toutefois, la mise au menu de la fonction réalisée, suit les prérogatives précédentes avec quelques nuances.

 

Codification et Implantation de l’édition

Code fonction édition CBR

  • Sa structure est obligatoirement zzxxxexx.hrp
  • L’élément essentiel est que le code commence par zz

 

Elle doit être implantée, sur le serveur d’application Cegid Orli, dans :

  • D:\orli\custom\zz000

 

Référencement de l’édition

Image 12

 

Les différences vis à vis d’une procédure sont :

 

Type Fonction

  • Choisir ‘Edition’

Outil et Accès Unix

  • L’outil est obligatoirement ‘Lanceur’
  • ‘Accès Unix’ ne doit rien comporter.


‎ 

Fonctions annexes

 

JP598 : Définition circularités (CLIENT)

JP598W01
Cette fonction permet de définir vos circularités avec vos fonctions spécifiques Z% (le "pendant" du JP570 standard)

 

Cette fonction permet de définir les liens appelants/appelables.

Il contient deux parties synchronisées. Vous utilisez la partie du haut pour renseigner les liens appelants/appelables, et la partie du bas pour indiquer les valeurs des arguments à passer à la fonction appelable.

Votre saisie doit respecter les règles suivantes :

  • La fonction appelante est obligatoire
    ‎(Elle existe dans JP003/JP590 et n'est pas un lien menu)
  • Le bloc appelant est obligatoire
    ‎(Si le paramétrage est valable pour tous les blocs de la fonction appelante, taper '.')
  • La fonction appelable est obligatoire (Elle existe dans JP003/JP590,
    ‎elle n'est pas un lien menu et sous-prog vaut obligatoirement 'S' ou 'P')
  • Le type d'accès est obligatoire. JP598 impose un accès en consultation seulement (valeur 1) pour les consultations (cf JP003/JP590 ).
    ‎Inversement, JP598 impose en accès en gestion seulement (valeur 2) pour les fonctions de gestion qui ne fonctionnent pas en mode consultation.
    ‎Enfin, JP598 propose un accès libre, gestion ou consultation (valeur 3) pour les fonctions de gestion accessibles en mode consultation. Dans ce cas, vous avez deux possibilités:
    • Soit vous laissez cette valeur, l'utilisateur choisira le type d'accès qu'il souhaite par groupe/utilisateur dans JP571
    • Soit vous forcez un accès en mode consultation, l'utilisateur ne pourra pas choisir.

       

  • Vous pouvez préciser qu'une fonction appelant "multi-sélection" doit lancer la fonction appelable en mode multi-sélection, en renseignant 1 dans la zone "Type de sélection".
    ‎Par défaut, JP598 propose un accès "mono-sélection", valeur 0.
  • Si la fonction appelable est une édition ou un MUL, les arguments d'entrées proviennent de JP550, sinon ils proviennent de JP003/JP590 .
  • Les arguments définis obligatoires dans JP003/JP590 ou dans JP550 sont générés automatiquement par le programme lorsque vous rentrez dans la deuxième partie de l'écran (en bas).
  • Vous pouvez modifier cette caractéristique en rendant obligatoire un argument facultatif ou inversement. Seuls les arguments facultatifs peuvent être supprimés.
  • Les arguments non renseignés ne sont pas passés à l'appelant, les arguments sans valeur sont passés à l'appelant avec la valeur NULL.
  • Si la fonction appelée est un MUL, vous pouvez utiliser un opérateur différent de "Égal"
    (exemple : pour accéder à la liste des bons expédiés) :

WHERE NUM_BE<>'.'

 

  • Vous devez renseigner la valeur des arguments sous les formes :
    BLOC.CHAMP ou CONSTANTE ou FAMILLE.NUMERO pour les MULs.
  • Si la valeur passée en argument à l'appelable est issue d'un MUL (donc notée FAMILLE.NUMERO), vous devez préciser la provenance de cette valeur:
    • 0
      la valeur provient d'un critère de présentation MUL
    • 1 (valeur par défaut)
      la valeur provient d'une colonne MUL.

 

 

JP596 : Type sortie pour édition (CLIENT)

JP596W01
Cette fonction permet de créer vos types de sortie spécifiques Z% ‎
(correspondant au JP555 standard)

 

JP595 : Description des tables (CLIENT)

JP595W01
Cette fonction permet de créer vos tables spécifiques Z% ‎
(correspondant au JP006 standard)

 

Leur codification doit obligatoirement être :

  • ZXIMP%
    pour les tables temporaires d'éditions 
  • Z(Votre code client chez Cegid)_%
    pour les tables de données

 

 

onglet GENERALITES

Il faut impérativement indiquer les valeurs suivantes :

  • Type : Table client
  • Gestion : ne rien renseigner
  • Validée : coché

 

Image 7

 

Si vous souhaitez créer ou ajouter un index, vous devez compléter l’onglet INDEX,
‎puis cliquer sur le bouton GENERER de l’onglet COLONNES. L’index sera automatiquement créé.

JP594 : Options Cegid Orli (CLIENT)

JP594W01
Cette fonction permet de créer les options de vos fonctions spécifiques Z%
(correspondant au JP011 standard)

 

JP593 : Dictionnaire fond éditions (CLIENT)

JP593W01
Cette fonction permet de créer les libellés édités par vos fonctions spécifiques Z%
(correspondant au JP024 standard)

 

JP592 : Paramétrage tables ZXIMP (CLIENT)

JP592W01
Cette fonction permet de définir les colonnes et les tables de vos fonctions spécifiques Z%
(correspondant au JP560 standard)