re-Bonjour,
Il faut supprimer les espaces du nom du travail qualifié comme suit:
/ --------------------------------------------------
// Procedure name: RetrieveFirstProgramNotRegexp
// Purpose: Generated by Extract Procedure Wizard
// Returns: Récupération dun nom du 1er programme qui ne vérifie pas l...
// e REGEXP
// Parameter: pQualifiedJobName => Le travail dont nous souhaitons récup...
// érer les informations de la pile d'appels
// Parameter: threadId => Thread id
// --------------------------------------------------
DCL-PROC RetrieveFirstProgramNotRegexp Export;
DCL-PI *N LIKE(r_NomObj);
pQualifiedJobName CHAR(28) CONST;
pNotVerifiedString Char(10) CONST;
pthreadId INT(20) CONST OPTIONS(*NOPASS);
END-PI;
// Local fields
DCL-S StackInfo LIKE(r_NomObj);
DCL-S lcallerProgram LIKE(r_NomObj);
DCL-S lcallerProgramLevel Int(10);
Dcl-s Regex varchar(100);
// Calculation specifications
Regex='(' + %Trim(pNotVerifiedString) + ')';
lcallerProgram=stk_rtvCaller();
Exec sql
SELECT ordinal_position
Into :lcallerProgramLevel
FROM TABLE (qsys2.stack_info( trim(:pQualifiedJobName))) a
WHERE Program_name = :lcallerProgram
ORDER BY ordinal_position DESC
LIMIT 1;
Exec sql
SELECT program_name
Into :StackInfo
FROM TABLE (qsys2.stack_info( trim(:pQualifiedJobName))) a
WHERE Not REGEXP_LIKE( program_name, :Regex,'i')
And ordinal_position < :lcallerProgramLevel
ORDER BY ordinal_position DESC
LIMIT 1;
return StackInfo;
END-PROC;
Je pense qu'il doit être possible de déclarer le paramètre pQualifiedJobName en type Varchar au lieu d'utiliser la fonction Trim.
Cordialement,