Created
January 23, 2026 21:31
-
-
Save buzzia2001/0068b954471a37dc2af1d5575d704bf8 to your computer and use it in GitHub Desktop.
Restore files without members using BRMS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -- Purpose: Getting information about a saved object (e.g. QGPL/QAPZCOVER) | |
| -- Version: 1.0 | |
| -- Date 23/01/2026 | |
| -- Author: Andrea Buzzi | |
| -- LPP Requirements: 577BR2 | |
| -- PTF Requirements: SJ06117 V7R6M0, SJ06116 V7R5M0, SJ06115 V7R4M0 | |
| -- Docs: https://fortradocs.atlassian.net/wiki/spaces/IWT/pages/3327361025/QUSRBRM.BACKUP_HISTORY_OBJECT+View | |
| SELECT VOLUME_SERIAL, | |
| DEVICE_NAMES, | |
| FILE_SEQUENCE_NUMBER | |
| FROM QUSRBRM.BACKUP_HISTORY_OBJECT | |
| WHERE SAVED_ITEM = 'QGPL' | |
| AND SAVED_OBJECT = 'QAPZCOVER' | |
| ORDER BY SAVE_TIMESTAMP DESC; | |
| stop; | |
| -- Purpose: Getting information about a saved object (e.g. QGPL/QAPZCOVER) if you don't have 5770BR2 | |
| -- Version: 1.0 | |
| -- Date 23/01/2026 | |
| -- Author: Andrea Buzzi | |
| SELECT OBVOL AS VOLUME_SERIAL, | |
| OBHDEV AS DEVICE_NAMES, | |
| OBHSEQ AS FILE_SEQUENCE_NUMBER | |
| FROM QUSRBRM.QA1AOD | |
| WHERE OBHLIB = 'QGPL' | |
| AND OBHNAM = 'QAPZCOVER' | |
| ORDER BY OBHDAT DESC; | |
| stop; | |
| -- Purpose: Restore objects without members using BRMS | |
| -- Version: 1.0 | |
| -- Date 23/01/2026 | |
| -- Author: Andrea Buzzi | |
| CREATE OR REPLACE PROCEDURE SQLTOOLS.RSTNOMBR ( | |
| IN OBJLIST VARCHAR(1000), --Object list | |
| IN LIB VARCHAR(10), --Library | |
| IN RSTLIB VARCHAR(10) DEFAULT '*SAVLIB' --Library in which I have to restore | |
| ) | |
| LANGUAGE SQL | |
| SPECIFIC SQLTOOLS.RSTNOMBR | |
| NOT DETERMINISTIC | |
| MODIFIES SQL DATA | |
| CALLED ON NULL INPUT | |
| SET OPTION ALWBLK = *ALLREAD, | |
| ALWCPYDTA = *OPTIMIZE, | |
| COMMIT = *NONE, | |
| DECRESULT = (31, | |
| 31, | |
| 00), | |
| DYNDFTCOL = *NO, | |
| DYNUSRPRF = *USER, | |
| SRTSEQ = *HEX | |
| BEGIN | |
| DECLARE CMD VARCHAR(10000); | |
| --Creating command to be executed for the restore | |
| SELECT 'RSTOBJ OBJ(' CONCAT TRIM(OBJLIST) CONCAT ') SAVLIB(' CONCAT TRIM(LIB) CONCAT ') DEV(' CONCAT TRIM(OBHDEV) CONCAT | |
| ') SEQNBR(' CONCAT OBHSEQ CONCAT ') VOL(' CONCAT TRIM(OBVOL) CONCAT | |
| ') ENDOPT(*UNLOAD) OBJTYPE(*ALL) OPTION(*ALL) MBROPT(*ALL) ALWOBJDIF(*COMPATIBLE) RSTLIB(' CONCAT TRIM(RSTLIB) CONCAT | |
| ') DFRID(Q1ARSTID) FILEMBR((*ALL *NONE))' | |
| INTO CMD | |
| FROM QUSRBRM.QA1AOD | |
| WHERE OBHLIB = TRIM(LIB) | |
| ORDER BY OBHDAT DESC | |
| LIMIT 1; | |
| CALL SYSTOOLS.LPRINTF( | |
| TRIM(CMD) | |
| ); | |
| CALL QSYS2.QCMDEXC( | |
| TRIM(CMD) | |
| ); | |
| END; | |
| stop; | |
| -- Purpose: This procedure allow you to restore objects without members using BRMS from another system in the same BRMS network | |
| -- Version: 1.0 | |
| -- Date 23/01/2026 | |
| -- Author: Andrea Buzzi | |
| CREATE PROCEDURE SQLTOOLS.RSTNOMBR2 ( | |
| IN OBJLIST VARCHAR(1000), --Object list | |
| IN LIB VARCHAR(10), --Library | |
| IN SYSTEM VARCHAR(10), --System name | |
| IN RSTLIB VARCHAR(10) DEFAULT '*SAVLIB', --Library in which I have to restore | |
| IN RSTASP VARCHAR(10) DEFAULT '*SAVASP', --ASP in which I have to restore | |
| IN RSTASPDEV VARCHAR(10) DEFAULT '*SAVASPDEV' --ASPDEV in which I have to restore | |
| ) | |
| LANGUAGE SQL | |
| SPECIFIC SQLTOOLS.RSTNOMBR | |
| NOT DETERMINISTIC | |
| MODIFIES SQL DATA | |
| CALLED ON NULL INPUT | |
| SET OPTION ALWBLK = *ALLREAD, | |
| ALWCPYDTA = *OPTIMIZE, | |
| COMMIT = *NONE, | |
| DECRESULT = (31, | |
| 31, | |
| 00), | |
| DYNDFTCOL = *NO, | |
| DYNUSRPRF = *USER, | |
| SRTSEQ = *HEX | |
| BEGIN | |
| DECLARE CMD VARCHAR(10000); | |
| --Creating command to be executed for the restore | |
| SELECT 'RSTOBJ OBJ(' CONCAT TRIM(OBJLIST) CONCAT ') SAVLIB(' CONCAT TRIM(LIB) CONCAT ') DEV(' CONCAT TRIM(BKHDEV) CONCAT | |
| ') SEQNBR(' CONCAT BKHSEQ CONCAT ') VOL(' CONCAT TRIM(BKVOL) CONCAT | |
| ') ENDOPT(*UNLOAD) OBJTYPE(*ALL) OPTION(*ALL) MBROPT(*ALL) ALWOBJDIF(*COMPATIBLE) RSTLIB(' CONCAT TRIM(RSTLIB) CONCAT | |
| ') RSTASP(' CONCAT TRIM(RSTASP) CONCAT ') RSTASPDEV(' CONCAT TRIM(RSTASPDEV) CONCAT | |
| ') DFRID(Q1ARSTID) FILEMBR((*ALL *NONE))' | |
| INTO CMD | |
| FROM QUSRBRM.QA1AHS | |
| WHERE BKHSYS = TRIM(SYSTEM) | |
| AND BKHLIB = TRIM(LIB) | |
| ORDER BY BKHSVT DESC | |
| LIMIT 1; | |
| CALL SYSTOOLS.LPRINTF( | |
| TRIM(CMD) | |
| ); | |
| CALL QSYS2.QCMDEXC( | |
| TRIM(CMD) | |
| ); | |
| END; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment