If you want to completely uninstall InterFormNG2 on the IBM i platform, then you should consider the procedure below:
Please note: You should make sure, that you have not placed any objects, that you want to keep in the IFORMNG2 library or in the IFORMNG2 directory (including any sub-directory within the IFORMNG2 directory).

Disclaimer: InterForm A/S cannot be held responsible for any loss of data caused following this procedure below. You should use this as a suggestion and only delete any objects after making sure, that you really are not deleting too much. You should consider of course to perform a backup before deleting anything.
Normally the data queues and output queues take up so little space, that you can consider to skip this part and go directly to step 5 below, if you have only monitored very few output queues.
1.List all the output queues, that are (or have been) monitored by InterFormNG2.
2.Remove references to data queues on output queues, that are monitored by InterFormNG2 - unless another application will need them.
3.Delete the data queues (that has been added by InterFormNG2) for monitoring the output queues - unless another application will need them.
4.Consider if the monitored output queues should also be deleted.
5.Consider if you should delete any converted Spool2XML printer files.
6.Stop the IFORMNG2 subsystem.
7.Delete the IFORMNG2 library.
8.Delete the IFORMNG2 directory
9.Delete the user profile, IFORMNG2 and consider if all objects owned by this user profile should also be deleted.
Output queues can in InterFormNG2 be monitored in two ways:
You can view the list of monitored output queues by running the following command:
Then, select:
Option 1: Work with monitored output queues
At a minimum, you should expect to see the output queue IFORMNG2 in the QUSRSYS
library.
Here you need to have the IFORMNG2 subsystem running and then go into the Workflows. All workflows, that have the input type, From IBM i output queue should be opened and here you can find the name and library of the output queue, that has been monitored by the current workflow. From both of these you will now have a combined list of all output queues, that are (or can be) monitored by InterFormNG2.
Remove references to data queues on output queues
For each of the output queues listed above, you can now remove the reference to the data queue with the same name in the same library. If you intend to delete the output queue, you can skip this step.
To verify if a data queue is currently referenced for each output queue, run the following command:
CHGOUTQ OUTQ(QUSRSYS/IFORMNG2)
You can prompt the command with F4 and then press F9 to view all the current values. If a data queue is attached, you will see this at the bottom:
Data queue . . . . . . . . . . . <dtaq> Name, *SAME, *NONE
Library . . . . . . . . . . . <library> Name, *LIBL, *CURLIB
(Where <dtaq>
is the name of the data queue and <library>
is the library that contains the data queue.)
If no data queue is attached, you will see:
Data queue . . . . . . . . . . . *NONE Name, *NONE
Library . . . . . . . . . . . Name, *LIBL, *CURLIB
Important:
InterFormNG2 will add a data queue in the same library as the output queue and with the same name as the output queue. If the data queue is named differently or placed in another library, then this output queue is NOT used by InterFormNG2. In this case, you should not remove the reference to the data queue, and neither the output queue nor the data queue should be deleted.To remove the reference to a data queue, run the following command:
CHGOUTQ OUTQ(<outq>/<library>) DTAQ(*NONE)
(Where <outq>
is the name of the output queue and <library>
is the library where the output queue is placed.)
Delete data queues
The data queues used by InterFormNG2 can be deleted with the following command:
DLTDTAQ DTAQ(<library>/<dtaq>)
(Where <library> is the library of the data queue and <dtaq> is the name of the data queue.)
InterFormNG2 has created the data queue QUSRSYS/IFORMNG2, so you should consider deleting it with the command:
DLTDTAQ DTAQ(QUSRSYS/IFORMNG2)
Delete monitored output queues
If you want to completely remove all traces of InterFormNG2, you may consider deleting some or all of the output queues that have been monitored by InterFormNG2.
The output queue must be empty before it can be deleted. If needed, you can clear the output queue first (this deletes all spooled files on the selected output queue). Before proceeding, verify the contents to ensure that no important spooled files are being deleted.
To clear an output queue, use the following command:
CLROUTQ OUTQ(<library>/<outq>)
(Where <library> is the library in which the output queue is placed, and <outq> is the name of the output queue.)
Once the output queue is empty, you can delete it with this command:
DLTOUTQ OUTQ(<library>/<outq>)
One output queue created by IFORMNG2 is QUSRSYS/IFORMNG2. You can clear this output queue with the command:
CLROUTQ OUTQ(QUSRSYS/IFORMNG2)
And you can delete the output queue with the command:
DLTOUTQ OUTQ(QUSRSYS/IFORMNG2)
Delete any converted printer files
If you have been converting any printer files using the following command:
IFORMNG2/CVTPRTFXML
you can find a link to these converted printer files by running:
Then, select:
Option 2: Work with XML definitions
This screen will display a list of all the converted (XML) printer files and the library in which they are stored.
To delete these printer files, use the following command:
DLTF FILE(<library>/<printer file>)
(Where <library> is the library where the converted (XML) printer file is stored, and <printer file> is the name of the XML printer file.)
You can stop the IFORMNG2 subsystem by running the following command:
IFORMNG2/IFORMNG2
Then, select:
Option 11: End IFORMNG2 subsystem
To verify that the subsystem has completely stopped, use the following option from the same menu:
Option 12: Work with IFORMNG2 subsystem
The IFORMNG2 library can be deleted with the following command:
DLTLIB IFORMNG2

Important:
Before deleting the library, ensure that you have not added any additional objects to it. If necessary, create a backup before deletion to avoid losing important data.
The IFORMNG2 directory and any subdirectories inside it can be deleted with the following command:
RMVDIR DIR('/IFormNG2') SUBTREE(*ALL)

Important:
Before deleting the directory, ensure that you have not added any additional objects to it or its subdirectories. If necessary, create a backup before deletion to avoid losing important data.
The final object to consider is the IFORMNG2 user profile. This user profile owns all objects generated by InterFormNG2, so you need to decide whether you want to delete all objects owned by this profile or transfer ownership to another user.
To list all objects owned by this user profile, run the following command:
WRKOBJOWN USRPRF(IFORMNG2)
To delete the user profile, use the following command:
DLTUSRPRF USRPRF(IFORMNG2) OWNOBJOPT(<option> <new owner>)
(Where <option> determines what to do with the objects owned by IFORMNG2:
- If set to *DLT and <new owner> is excluded, all objects owned by IFORMNG2 will be deleted.
- If set to *CHGOWN and <new owner> is specified, ownership of the objects will be transferred to another user profile before deleting IFORMNG2.)