E' stata creata una ReusablePart per la determinazione della libreria da utilizzare in caso di Lock_Object.
La RP si chiama EDRP0006.
Va utilizzata nelle Wam e nelle funzioni Full-rdmlx che hanno la lock_object interna che non sia quella della routine EDSYS17 (nel caso fosse stata portata dentro al programma).
Deve ricevere come parametri di ingresso il nome del file e il codice ditta (NON obbligatorio), restituisce la libreria.
DEFINE_MAP FOR(*input) CLASS(£LOCKPF) NAME(£p_File)
DEFINE_MAP FOR(*input) CLASS(£R_IDCDAZ) NAME(£p_Ditta) MANDATORY('')
DEFINE_MAP FOR(*output) CLASS(£locklib) NAME(£p_Lib)
*** ATTENZIONE ***
Vi ricordo che EDWAMHAND ha senso di esistere SOLO nelle WAM del FrameWork quindi
va utilizzata solo in questi contesti.
Se la WAM lancia in BATCH un programma DEVE impostare R_IDCDAZ con £DMWAMHND.up_DatiSessione.up_Azienda
e passarlo alla funzione.
Esempio:
*
* Determinazione libreria per Lock manuale
*
£DeterminaLib.um_determinalib P_FILE(PLCFMP) P_DITTA(£DMWAMHND.up_DatiSessione.up_Azienda) P_LIB(£LOCKLIB)
*
* Controllo se la distinta è ancora in esecuzione come lancio
*
£LOCKPF := PLCFMP
£LOCKRRN := 1
£LOCKRRNA := *NULL
SUBSTRING FIELD(£RGNDTR 1 7) INTO_FIELD(£LOCKRRNA 1 7)
USE BUILTIN(LOCK_OBJECT) WITH_ARGS(£LOCKRRNA £LOCKPF £LOCKLIB *BLANK *BLANK PERM) TO_GET(£LOCKRIS £LOCKJOB £LOCKUSER £LOCKNUM)
IF COND(£LOCKRIS = ER)
SET_ERROR FOR_FIELD(£CAKBO) MSGID(ED01210) MSGF(ED§M01) MSGDTA(£CAKBO £RGNDTR)
ELSE
USE BUILTIN(UNLOCK_OBJECT) WITH_ARGS(£LOCKRRNA £LOCKPF £LOCKLIB *BLANK *BLANK PERM) TO_GET(£LOCKRIS)
ENDIF