| (Paramètre actif depuis la version ACE 1.6.2) |
|
Standard |
Ce paramètre permet, lors du changement du code blocage d’un produit, 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_PRO_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 pro
p_soceve PRO.CODSOC%TYPE, -- Code société du produit
p_codpro PRO.CODPRO%TYPE, -- Code produit
p_codblc_demande PRO.CODBLOCAGE%TYPE -- Code blocage demandé
p_codblc_actuel PRO.CODBLOCAGE%TYPE -- Code blocage actuel
-- Options
p_ctrblc_parm1 IN VARCHAR2 -- Valeur donnée par le M1 du ppe CTRBLC
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_CTRBLC_RECORD constituées ainsi :
create or replace
type GNX_FCT_CTRBLC_RECORD AS OBJECT
(
INDCTRBLC NUMBER, -- 0 : validation impossible, 1 : information
INDAFFMES NUMBER,
CODCTRBLC 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 code blocage du produit. 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 produit. Il y a arrêt de la mise à jour si on rencontre au moins une fois l’indicateur indctrblc à 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 JProViewRow) 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
drop type GNX_FCT_CTRBLC_RECORD_LIST;
drop type GNX_FCT_CTRBLC_RECORD;
drop function FCT_CTRBLC;
create or replace
type GNX_FCT_CTRBLC_RECORD AS OBJECT
(
INDCTRBLC NUMBER,
INDAFFMES NUMBER,
CODCTRBLC VARCHAR2(6 BYTE),
CODUT_MES VARCHAR2(10 BYTE),
NATTXT VARCHAR2(6 BYTE),
TXTRAW VARCHAR2(4000 CHAR)
);
create or replace
type GNX_FCT_CTRBLC_RECORD_LIST is table of GNX_FCT_CTRBLC_RECORD;
create or replace
function FCT_CTRBLC(
-- 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 pro
p_soceve PRO.CODSOC%TYPE,
p_codpro PRO.CODPRO%TYPE,
p_codblc_demande PRO.CODBLOCAGE%TYPE,
p_codblc_actuel PRO.CODBLOCAGE%TYPE,
-- Options
p_ctrblc_parm1 IN VARCHAR2
) return GNX_FCT_CTRBLC_RECORD_LIST pipelined as
v_txtraw VARCHAR2(4000 CHAR);
begin
pipe row (GNX_FCT_CTRBLC_RECORD(
0,
0,
'CTRV01',
' ',
' ',
'***** Vérification des informations produit *****'
));
return;
end FCT_CTRBLC;
"CTRBLC_BLO" Contrôle bloquant @1 : @2
"CTRBLC_ERR" ppe CTRBLC : problème sur la fonction Oracle @1
"CTRBLC_INF" Contrôle @1 : @2
"CTRBLC_LIB" @1
"CTRBLC_NVA" Changement de code blocage @1 non valide