| Annexes / Liste des paramètres – ACE | |
|
(Paramètre actif depuis la version ACE202) |
Standard |
Ce paramètre permet de définir le type de donnée et la fonction oracle permettant de lister les traces.
L’écran est accessible depuis le menu « Historique des modifications » dans la fiche de l’élément consulté/
Fonctions concernées: toutes dans le module Easy Fit
| A1 |
Type de donnée gérée :
|
||
| L1 | Code de la fonction Oracle listant les traces pour la fiche consultée |
||
| M1 | Valeur envoyée à la fonction permettant d’utiliser la même fonction dans différents contextes |
Paramètres en entrée de la fonction
-- Contexte
p_codsoc IN NUMBER, -- Code société du contexte
p_codpev IN VARCHAR2, -- Cible (codpev)
p_uticod IN VARCHAR2, -- Utilisateur courant
p_codlan IN VARCHAR2, -- Code langue de lutilisateur courant
p_datsys IN VARCHAR2, -- Date du serveur (format AAAAMMJJ)
p_heusys IN NUMBER, -- Heure du serveur (format HH.MMSS)
-- Référence de l’élément
(voir çi-dessous)
-- Options
p_lsttrc_parm1 IN VARCHAR2 -- Valeur donnée par le M1 du ppe CTRBLC
Références de l’élément pour PRO
p_socpro PRO.CODSOC%TYPE,
p_codpro PRO.CODPRO%TYPE,
Références de l’élément pour TIE
p_soctie TIE.CODSOC%TYPE,
p_typtie TIE.TYPTIE%TYPE,
p_sigtie TIE.SIGTIE%TYPE,
Références de l’élément pour ASS
p_socass ASS_ENT.CODSOC%TYPE,
p_code_assort ASS_ENT.CODE_ASSORT%TYPE,
Références de l’élément pour EVE
p_soceve EVE.CODSOC%TYPE,
p_achvte EVE.ACHVTE%TYPE,
p_typeve EVE.TYPEVE%TYPE,
p_numeve EVE.NUMEVE%TYPE,
Références de l’élément pour LOT
p_soclot OST.CODSOC%TYPE,
p_codpro OST.CODPRO%TYPE,
p_numlot OST.NUMLOT%TYPE,
Références de l’élément pour INV
p_socinv ISK.CODSOC%TYPE,
p_numinv ISK.NUMINV%TYPE,
Références de l’élément pour CNT
p_soccnt CNT.CODSOC%TYPE,
p_achvte CNT.ACHVTE%TYPE,
p_numcnt CNT.NUMCNT%TYPE,
Références de l’élément pour FIL
p_socfil FIL_E.CODSOC%TYPE,
p_codfil FIL_E.CODFIL%TYPE,
Références de l’élément pour TAL
p_soctal TAL.CODSOC%TYPE,
p_achvte TAL.ACHVTE%TYPE,
p_numelabo TAL.NUMELABO%TYPE,
Références de l’élément pour CTS
p_soccts CTS.CODSOC%TYPE,
p_achvte CTS.ACHVTE%TYPE,
p_typcot CTS.TYPCOT%TYPE,
p_numcot CTS.NUMCOT%TYPE,
Références de l’élément pour CAT
p_soccat CAT.CODSOC%TYPE,
p_achvte CAT.ACHVTE%TYPE,
p_codcat CAT.CODCAT%TYPE,
Références de l’élément pour DOS
p_socfap FAP_E.CODSOC%TYPE,
p_typfap FAP_E.TYPFAP%TYPE,
p_numfap FAP_E.NUMFAP%TYPE,
Références de l’élément pour COT
p_soccot COT.CODSOC%TYPE,
p_codcou COT.CODCOU%TYPE,
p_achvte COT.ACHVTE%TYPE,
Paramètres en sortie
En sortie, la function retourne 0 à n lignes de structure GNX_FCT_LSTTRC_RECORD constituée ainsi :
create or replace
type GNX_FCT_LSTTRC_RECORD AS OBJECT
(
TABLE_NAME VARCHAR2(256 CHAR),
CHP_NAME VARCHAR2(256 CHAR),
TYPACT VARCHAR2(1 BYTE),
DATTRC VARCHAR2(10 BYTE),
HEUTRC NUMBER,
UTIMOD VARCHAR2(12 BYTE),
VALPREC VARCHAR2(256 CHAR),
VALNEW VARCHAR2(256 CHAR),
VALZN1 VARCHAR2( 40 CHAR),
VALZN2 VARCHAR2( 40 CHAR),
VALZN3 VARCHAR2( 40 CHAR),
VALZN4 VARCHAR2( 40 CHAR),
VALZN5 VARCHAR2( 40 CHAR),
LIB256 VARCHAR2( 256 CHAR)
);
Structure de la fonction Oracle (ici, avec pour les produits)
create or replace FUNCTION FCT_TRACE_PRO(
-- Contexte
p_codsoc IN NUMBER,
p_codpev IN VARCHAR2,
p_uticod IN VARCHAR2,
p_codlan IN VARCHAR2,
p_datsys IN VARCHAR2,
p_heusys IN NUMBER,
-- Reference pro
p_socpro PRO.CODSOC%TYPE,
p_codpro PRO.CODPRO%TYPE,
-- Options
p_LSTTRC_parm1 IN VARCHAR2 )
RETURN GNX_FCT_LSTTRC_RECORD_LIST pipelined
AS
p_v_table VARCHAR2(256);
p_v_chp VARCHAR2(256);
p_v_DATTRC VARCHAR2(10);
p_n_HEUTRC NUMBER;
p_v_UTIMOD VARCHAR2(12);
p_v_VALPREC VARCHAR2(256);
p_v_VALNEW VARCHAR2(256);
p_v_typact VARCHAR2(1);
p_v_lannat VARCHAR2(3);
p_v_segment_zon VARCHAR2(3);
p_v_ppe_return gnx_commun.PPE_RET_LIRE;
p_v_codzn VARCHAR2(40);
p_v_lib256 VARCHAR2(256);
BEGIN
BEGIN
-- initialisation des variables globales
-- rcupration de la langue par dfaut dans le ppe LANNAT, si pas de langue alors FRA
p_v_ppe_return := gnx_commun.lire_ppe (p_socpro, p_codpev, 'LANNAT');
IF p_v_ppe_return.codret=1 THEN
p_v_lannat := p_v_ppe_return.a1;
ELSE
p_v_lannat := 'FRA';
END IF;
END;
-- lecture des traces sur la table pro
DECLARE
CURSOR TRACE_PRO
IS
SELECT *
FROM ut_trace_data
WHERE pk_valchp1 = p_socpro
AND pk_valchp2 = p_codpro
AND codent IN ('PRO','PRL', 'PRC', 'PRU', 'PRB', 'PRD', 'PRM', 'PRO_DANGER', 'PRO_STRATE', 'PRO_TAX', 'PRP', 'DSK', 'PRO_CMP', 'ASS_PRO') ;
BEGIN
FOR C IN trace_pro
LOOP
-- initialisation des valeurs avant et après
p_v_valprec := c.valprec;
p_v_valnew := c.valnew;
p_v_table := fct_trd_codent(c.codent, c.numpartrcd, p_codlan, p_v_lannat);
p_v_chp := fct_trd_chp(c.codent, c.numpartrcd, c.nomchp, p_codlan, p_v_lannat);
-- si le champ trac est CODZN alors lecture du libell des valeurs dans le paramtrage
-- recherche du segment de codzn avec le ppe PZNPRO
BEGIN
IF (C.CODENT = 'PRO' and c.nomchp LIKE 'CODZN%') THEN
BEGIN
p_v_ppe_return := gnx_commun.lire_ppe (p_socpro, p_codpev, 'PZNPRO');
IF p_v_ppe_return.codret=1 THEN
p_v_segment_zon := p_v_ppe_return.a1;
ELSE
p_v_segment_zon := 'PRO';
END IF;
EXCEPTION
WHEN OTHERS THEN
p_v_segment_zon := 'PRO';
END;
-- appel de la fonction lire_valeur_zn pour la valeur codzn
BEGIN
p_v_codzn := p_v_segment_zon||lpad(trim(SUBSTR(c.nomchp,6,3)),3,'0');
p_v_valprec := gnx_commun.lire_valeur_zn(p_codsoc, p_v_codzn, c.valprec);
p_v_valnew := gnx_commun.lire_valeur_zn(p_codsoc, p_v_codzn, c.valnew);
END;
END IF;
END;
pipe row (GNX_FCT_LSTTRC_RECORD (p_v_table, p_v_chp, c.typact, c.datmaj, c.heumaj, c.utimod, p_v_valprec, p_v_valnew, '','','','','',p_v_lib256 ));
END LOOP;
END;
-- lecture des traces sur la table TSC
DECLARE
CURSOR TRACE_TSC
IS
SELECT *
FROM ut_trace_data
WHERE pk_valchp1 = p_socpro
AND pk_valchp4 = p_codpro
AND codent = 'TSC';
BEGIN
FOR C IN trace_tsc
LOOP
-- initialisation des valeurs avant et aprés
p_v_valprec := c.valprec;
p_v_valnew := c.valnew;
p_v_table := fct_trd_codent(c.codent, c.numpartrcd, p_codlan, p_v_lannat);
p_v_chp := fct_trd_chp(c.codent, c.numpartrcd, c.nomchp, p_codlan, p_v_lannat);
pipe row (GNX_FCT_LSTTRC_RECORD (p_v_table, p_v_chp, c.typact, c.datmaj, c.heumaj, c.utimod, p_v_valprec, p_v_valnew, '','','','','', 'Date dbut : '||TO_CHAR(to_date(c.pk_valchp10,'YYYYMMDD'), 'DD/MM/YYYY')||', Devise : '||c.pk_valchp7 ));
END LOOP;
END;
-- lecture des traces sur la table PRR et ASS_PRO
DECLARE
CURSOR TRACE_PRR
IS
SELECT *
FROM ut_trace_data
WHERE pk_valchp1 = p_socpro
AND pk_valchp3 = p_codpro
AND codent IN ('PRR', 'ASS_PRO');
BEGIN
FOR C IN trace_prr
LOOP
-- initialisation des valeurs avant et aprés
p_v_valprec := c.valprec;
p_v_valnew := c.valnew;
p_v_table := fct_trd_codent(c.codent, c.numpartrcd, p_codlan, p_v_lannat);
p_v_chp := fct_trd_chp(c.codent, c.numpartrcd, c.nomchp, p_codlan, p_v_lannat);
pipe row (GNX_FCT_LSTTRC_RECORD (p_v_table, p_v_chp, c.typact, c.datmaj, c.heumaj, c.utimod, p_v_valprec, p_v_valnew, '','','','','',p_v_lib256 ));
END LOOP;
END;
-- lecture des traces sur la table MEDIA_BLOB
DECLARE
CURSOR TRACE_MEDIA
IS
SELECT *
FROM ut_trace_data
WHERE pk_valchp1 = p_socpro
AND pk_valchp2 = 'PRO'
AND pk_valchp3 = p_codpro
AND codent = ('MEDIA_BLOB');
BEGIN
FOR C IN trace_media
LOOP
-- initialisation des valeurs avant et aprés
p_v_valprec := c.valprec;
p_v_valnew := c.valnew;
p_v_table := fct_trd_codent(c.codent, c.numpartrcd, p_codlan, p_v_lannat);
p_v_chp := fct_trd_chp(c.codent, c.numpartrcd, c.nomchp, p_codlan, p_v_lannat);
pipe row (GNX_FCT_LSTTRC_RECORD (p_v_table, p_v_chp, c.typact, c.datmaj, c.heumaj, c.utimod, p_v_valprec, p_v_valnew, '','','','','',p_v_lib256 ));
END LOOP;
END;
-- lecture des traces sur la table ZOD
DECLARE
CURSOR TRACE_ZOD
IS
SELECT *
FROM ut_trace_data
WHERE pk_valchp1 = p_socpro
AND pk_valchp2 IN
(SELECT DISTINCT cletbl
FROM tbl
WHERE codsoc=f_codsoc(p_socpro, 'TBL', 'RZO')
AND codtbl = 'rzo'
AND lib2 = 'PRO'
)
AND pk_valchp3 = p_codpro
AND codent = 'ZOD';
BEGIN
FOR C IN trace_zod
LOOP
-- initialisation des valeurs avant et aprés
p_v_valprec := c.valprec;
p_v_valnew := c.valnew;
p_v_table := fct_trd_codent(c.codent, c.numpartrcd, p_codlan, p_v_lannat);
p_v_chp := fct_trd_chp(c.codent, c.numpartrcd, c.nomchp, p_codlan, p_v_lannat);
-- si le champ trac est VALZOD alors lecture du libell des valeurs dans le paramtrage
BEGIN
IF c.nomchp = 'VALZOD' THEN
-- appel de la fonction lire_valeur_zn pour la valeur codzn
BEGIN
p_v_codzn := c.pk_valchp2||lpad(trim(c.pk_valchp4),3,'0');
p_v_valprec := gnx_commun.lire_valeur_zn(p_codsoc, p_v_codzn, c.valprec);
p_v_valnew := gnx_commun.lire_valeur_zn(p_codsoc, p_v_codzn, c.valnew);
END;
END IF;
END;
pipe row (GNX_FCT_LSTTRC_RECORD (p_v_table, p_v_chp, c.typact, c.datmaj, c.heumaj, c.utimod, p_v_valprec, p_v_valnew, '','','','','',p_v_lib256 ));
END LOOP;
END;
-- lecture des traces sur la table TXT
DECLARE
CURSOR TRACE_TXT
IS
SELECT *
FROM ut_trace_data
WHERE pk_valchp1 = p_socpro
AND pk_valchp2 = 'PRO'
AND pk_valchp3 = p_codpro
AND codent = 'TXT';
BEGIN
FOR C IN trace_txt
LOOP
-- initialisation des valeurs avant et après
p_v_valprec := c.valprec;
p_v_valnew := c.valnew;
p_v_table := fct_trd_codent(c.codent, c.numpartrcd, p_codlan, p_v_lannat);
p_v_chp := fct_trd_chp(c.codent, c.numpartrcd, c.nomchp, p_codlan, p_v_lannat);
pipe row (GNX_FCT_LSTTRC_RECORD (p_v_table, p_v_chp, c.typact, c.datmaj, c.heumaj, c.utimod, p_v_valprec, p_v_valnew, '','','','','',p_v_lib256 ));
END LOOP;
END;
RETURN;
EXCEPTION
WHEN OTHERS THEN
pipe row (GNX_FCT_LSTTRC_RECORD('ERREUR','','','',-1,'','','','','','','','','' ));
END;