CTRETT : Appel d’une fonction Oracle de contrôle lors du changement du statut d’un tiers

(Paramètre actif depuis la version ACE 1.6.2)

Standard

Ce paramètre permet, lors du changement du statut d’un tiers, d’effectuer un ensemble de contrôles via une fonction Oracle (donnée en L1), avec possibilité d’abandonner la mise à jour en cours.

Fonctions concernées : I_TIESOC_F , I_TIEFOU_F , I_TIECLI_F , I_TIEPDV_F , I_TIETRA_F , I_TIEDEP_F , I_TIEVHC_F , I_TIERTA_F , I_TIELAB_F , I_TIECOU_F , I_TIEGRM_F , I_TIERET_F ,I_TIETRS_F , I_TIELIE_F , I_TIEPER_F

L1     Nom de la fonction Oracle de contrôle.
M1     Valeur envoyée à la fonction Oracle, permettant d’utiliser la même fonction dans différent contexte.

Utilisation en mode N1= 1

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 l’utilisateur courant
     p_datsys IN VARCHAR2, -- Date du serveur de traitement (format AAAAMMJJ) 
     p_heusys IN NUMBER, -- Heure du serveur de traitement (format HH.MMSS)
     p_socspl IN NUMBER, -- Code société du spool
     p_numspl IN NUMBER, -- Numéro du spool
     -- Référence tie
     p_soceve TIE.CODSOC%TYPE, -- Société du tiers
     p_typtie TIE.TYPTIE%TYPE, -- Type de tiers
     p_sigtie TIE.SIGTIE%TYPE, -- Sigle tiers
     p_codett_demande TIE.CODETT%TYPE, -- Statut demandé
     p_codett_actuel TIE.CODETT%TYPE, -- Statut actuel
     -- Options
     p_ctrett_parm1 IN VARCHAR2 -- Valeur donnée par le M1 du ppe CTRETT
    

En eGx, les paramètres p_socspl et p_numspl seront vides

Paramètres en sortie

En sortie, la fonction retourne 0 à n lignes de structure GNX_FCT_CTRETT_RECORD constituées ainsi :

    create or replace
    type GNX_FCT_CTRETT_RECORD AS OBJECT
    (
    INDCTRETT NUMBER, -- 0 : validation impossible, 1 : information
    INDAFFMES NUMBER,
    CODCTRETT VARCHAR2(6 BYTE),
    CODUT_MES VARCHAR2(10 BYTE),
    NATTXT VARCHAR2(6 BYTE),
    TXTRAW VARCHAR2(4000 CHAR)
    );
    

Traitement d’un row en retour de la fonction Oracle

La fonction Oracle permet d’effectuer des contrôles « spécifique » avant le changement du statut du tiers. Suite à ces contrôles, on peut ramener de l’information sur ces contrôles, avec ou pas arrêt de la mise à jour de la fiche tiers. Il y a arrêt de la mise à jour si on rencontre au moins une fois l’indicateur indctrett à 0 sur les lignes retournées par la fonction Oracle). Pas d’arrêt de la mise à jour si aucune ligne retournée (c’est que tous les contrôles sont OK, et qu’il n’y a pas d’information particulière à afficher).

Traitement de l’information retournée :

Si le code message (codut_mes) est renseigné,

l’information correspond au libellé associé à ce code (suivant la langue de l’utilisateur), avec substitution des @x par la liste de valeurs, séparées par « ; », fournies dans le champ txtraw,

sinon

l’information correspond au texte retournée dans le champ txtraw

En eGX (par l’objet métier JTieViewRow)

Les informations sont chargées dans l’attribut Information de GnxService

En Batch, pas encore mis en œuvre.

indaffmes non utilisé.

nattxt non utilisé.

On considère la mise à jour possible si aucune ligne n’est retournée par la fctOracle

Structure de la fonction Oracle (ici, avec des sorties pour test)

      drop type GNX_FCT_CTRETT_RECORD_LIST;
    drop type GNX_FCT_CTRETT_RECORD;
    drop function FCT_CTRETT;
     
    create or replace
    type GNX_FCT_CTRETT_RECORD AS OBJECT
    (
    INDCTRETT NUMBER,
    INDAFFMES NUMBER,
    CODCTRETT VARCHAR2(6 BYTE),
    CODUT_MES VARCHAR2(10 BYTE),
    NATTXT VARCHAR2(6 BYTE),
    TXTRAW VARCHAR2(4000 CHAR)
    );
     
    create or replace
    type GNX_FCT_CTRETT_RECORD_LIST is table of GNX_FCT_CTRETT_RECORD;
     
    create or replace
    function FCT_CTRETT(
     -- 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,
     p_socspl IN NUMBER,
     p_numspl IN NUMBER,
     -- Référence tie
     p_soceve TIE.CODSOC%TYPE, 
     p_typtie TIE.TYPTIE%TYPE, 
     p_sigtie TIE.SIGTIE%TYPE, 
     p_codett_demande TIE.CODETT%TYPE, 
     p_codett_actuel TIE.CODETT%TYPE,
     -- Options
     p_ctrett_parm1 IN VARCHAR2 
     ) return GNX_FCT_CTRETT_RECORD_LIST pipelined as
     
    v_txtraw VARCHAR2(4000 CHAR);
     
    begin
     
     pipe row (GNX_FCT_CTRETT_RECORD(
     0,
     0,
     'CTRV01',
     ' ',
     ' ',
     '***** Vérification des informations tiers *****'
     ));
     
     return;
     
    end FCT_CTRETT;

Messages d’erreur associés

"CTRETT_BLO" Contrôle bloquant @1 : @2

"CTRETT_ERR" ppe CTRETT : problème sur la fonction Oracle @1

"CTRETT_INF" Contrôle @1 : @2

"CTRETT_LIB" @1

"CTRETT_NVA" Changement du statut du tiers @1 non valide