PYUGEN is based on C or Pro*C code.
But sometimes internally it would call pl/sql packages based on the type of parameters.
For GB Pensions Automatic Enrolment Process
The Process Name parameter has a value 'ARCHIVE'
So, the data is stored in PAY_ACTION_INFORMATION.
And Report Type = 'GB_ENROLL_PEN'
And you can find the code in -
select * from pay_report_format_mappings_f
where report_type = 'GB_ENROLL_PEN';
If you see the columns RANGE_CODE, ARCHIVE_CODE etc.. you will find the main package is pay_gb_enroll_pension
Each procedure in the package is called in a sequential order.
And the main logic would be in the Archive_code - pay_gb_enroll_pension.archive_code
There is execution method for each concurrent program (CP) .
If CP is of exe.method = PL/SQL Stored procedure then you can see the source code thru tool like Toad or using the table name : all_source .
If CP is of exe.method = oracle report, then review it using oracle report builder.
I would not say it is impossible, but its a tedious job to replicate it using PYUGEN.
There is so much metadata you need to seed into tables like pay_report_format_mappings_f, pay_report_format_parameters etc..
And you need to make sure the concurrent program is defined in a particular way.
So, I wouldn't go that way..
But all the logic is in the package pay_gb_enroll_pension
So you can have a custom one based on it(not be PYUGEN based)