From 5cf35016417cbd4c315bdf7c220b6f5df24eb5bf Mon Sep 17 00:00:00 2001 From: Alex Zaw Date: Wed, 25 Feb 2026 23:06:53 +0000 Subject: [PATCH] Update Function ES_REMOVE_MAPICS_USER --- SAILPOINT/Functions/ES_REMOVE_MAPICS_USER.sql | 83 ++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) diff --git a/SAILPOINT/Functions/ES_REMOVE_MAPICS_USER.sql b/SAILPOINT/Functions/ES_REMOVE_MAPICS_USER.sql index f533cb4..b854d39 100644 --- a/SAILPOINT/Functions/ES_REMOVE_MAPICS_USER.sql +++ b/SAILPOINT/Functions/ES_REMOVE_MAPICS_USER.sql @@ -1 +1,82 @@ -@@\@^@ % %@@@@Kmmm@M@ %@M]@k@ %@M]@]@ %@M]@@@ %@@ %@K@ %@@ %@@@ %@@@@ %@@ %@@@@~@\@k@ %@~@\@k@ %@~@\@k@ %@~@Mk@k@]@k@ %@~@\@k@ %@~@\@k@ %@~@\@@@ %@ %@@@M@@]@@}}@^@ %@m@@M@@]@@}}@^@ %@@@@@ %@ %@m@@M@@]@^@ %@mmm@@^@ %@mmm@@M@@]@^@ %@mm@@M@@]@^@ %``@Á@@@ %@@@@ %mmm@~@mm@k@ %m@~@m@k@ %mm@~@m@k@ %mmm@~@mm@^@ %@ %M@m@M@ %}}@@}}@k@}ɕ}@@m@M@ %}⣁}@@m@k@ %}Ö}@@mmm@k@ %}}@@mmm@k@ %}}@@mm@k@ %}㉔}@@m@ %]@ %]@]@^@ %@^@ %@@K@@~@@K@mm@M@@]@^@ %``@م@@@@ %@@K@mm@M@m@~n@@]@^@ %``@م@@Ӊ@ %@@K@mm@M@]@^@ %``@ą@@@ԁ@@@@ %@@@@@~@@^@ %@@@@@~@@^@ %``@晉@@@@ %@@@ %@M@@k@@k@}}@k@}}@k@}}@k@}}@k@}}@k@}}@k@ %m@k@m@k@m@k@}}@k@ %}}@k@@K@m@M@]@k@@M@m@]@k@ %}ą@@⁉@}@k@}}@k@}}@k@}}@k@}}@k@}}@]@^@ %@ %@M@ %m@M@ %}}@@}}@k@ %}}@@ %}ԁ@@@@@@}@ %]@k@m@M@ %}}@@}}@k@}ɕ}@@m@M@ %}}@@}}@k@ %}}@@}م@@@@}@k@ %}㉔}@z@m@ %]@ %]@]@^@ %@@^@ % %@@k@@@@ %@@@K@ %@@@@@^@ % %@@@@ %@@@K@ %@@^@ % % \ No newline at end of file +SET PATH *LIBL ; + +CREATE OR REPLACE FUNCTION SAILPOINT.ES_REMOVE_MAPICS_USER ( + ENVID CHAR(2) , + USERNAME CHAR(10) ) + RETURNS CLOB(2147483647) + LANGUAGE SQL + SPECIFIC SAILPOINT.ESRMVMUSR + NOT DETERMINISTIC + MODIFIES SQL DATA + CALLED ON NULL INPUT + NOT FENCED + SET OPTION ALWBLK = *ALLREAD , + ALWCPYDTA = *OPTIMIZE , + COMMIT = *NONE , + DECRESULT = (31, 31, 00) , + DYNDFTCOL = *NO , + DYNUSRPRF = *USER , + SRTSEQ = *HEX + BEGIN +DECLARE LIBL VARCHAR ( 1024 ) DEFAULT '' ; +DECLARE CUR_USR VARCHAR ( 10 ) DEFAULT '' ; +DECLARE CONTINUE HANDLER FOR SQLEXCEPTION +BEGIN +DECLARE V_SQLSTATE CHAR ( 5 ) ; +DECLARE V_DB2_RETURN_CODE INT ; +DECLARE V_DB2_MESSAGE_ID CHAR ( 7 ) ; +DECLARE V_ERROR_MESSAGE CLOB ( 2048 ) ; +-- Capture diagnostic info +GET DIAGNOSTICS CONDITION 1 +V_DB2_RETURN_CODE = DB2_RETURNED_SQLCODE , +V_SQLSTATE = RETURNED_SQLSTATE , +V_ERROR_MESSAGE = MESSAGE_TEXT , +V_DB2_MESSAGE_ID = DB2_MESSAGE_ID ; +RETURN +( JSON_OBJECT ( +'success' VALUE 'false' , 'SQLInfo' VALUE JSON_OBJECT ( +'SQLState' VALUE V_SQLSTATE , +'SQLCode' VALUE V_DB2_RETURN_CODE , +'messageID' VALUE V_DB2_MESSAGE_ID , +'message' VALUE V_ERROR_MESSAGE , +'currentTimestamp' VALUE CURRENT_TIMESTAMP +) +) ) ; +END ; +SET CISTOOLS . LIBL = CISTOOLS . SET_LIBRARY_LIST ( ENVID ) ; +-- Remove XA user record +CALL SAILPOINT . DELETE_ES_USER ( P_USER => USERNAME ) ; +-- Release XA License +CALL SAILPOINT . REVOKE_XA_LICENSE ( ) ; +-- Delete user from Mapics files if exists +DELETE FROM MZGUCPP WHERE GUBUCD = USERNAME ; +DELETE FROM MZF0REP WHERE F0BUCD = USERNAME ; +-- Write a history record +INSERT INTO ESDETAIL +VALUES ( ENVID , USERNAME , '' , '' , 'ACCMAPICS' , '' , 'R' , '10' , +CURRENT_DATE , CURRENT_TIME , CURRENT_USER , 'ESRMVMUSR' , +'SAILPOINT' , CISTOOLS . TO_CYMD ( ) , ZONED ( CURRENT_TIME ) , +'Deleted via Sailpoint API' , '' , '' , '' , '' , '' ) ; +RETURN +COALESCE ( +JSON_OBJECT ( +'success' VALUE 'true' , +'data' VALUE +'Mapics user record deleted and license revoked' +) , JSON_OBJECT ( +'success' VALUE 'false' , 'SQLInfo' VALUE JSON_OBJECT ( +'messageID' VALUE 'SQL02000' , +'message' VALUE 'Requested resource not found ' , +'currentTimestamp' : CURRENT_TIMESTAMP +) +) ) ; +END ; + +GRANT ALTER , EXECUTE +ON SPECIFIC FUNCTION SAILPOINT.ESRMVMUSR +TO AMAPICS WITH GRANT OPTION ; + +GRANT EXECUTE +ON SPECIFIC FUNCTION SAILPOINT.ESRMVMUSR +TO PUBLIC ; +