Recently we had an issue when payroll wasn't creating segments for a new country for which we were implementing GP. We spend nearly two days trying to figure out what exactly was causing this.
These are possible reasons:
DELETE FROM PS_GP_RTO_TRGR WHERE COUNTRY = <payee's country> AND EMPLID = <emplid> AND TRGR_STATUS = 'U' AND CAL_RUN_ID <> <Current Calendar Group>;
There might also be unprocessed iterative triggers created for the country other than payee's country which will cause this hence delete those triggers too.
DELETE FROM PS_GP_ITER_TRGR WHERE COUNTRY <> <payee's country> AND EMPLID = <emplid> AND ITER_TRGR_STATUS = 'U';
DELETE FROM PS_GP_SEG_TRGR WHERE COUNTRY <> <payee's country> AND EMPLID = <emplid> AND SEG_TRGR_STATUS = 'A';
In our case, all above where the reasons so we basically deleted all those unwanted triggers (Iterative, Retro and Segment) using SQL script and it resolved the issue. The segmentation was processed.
These are possible reasons:
Unprocessed Iterative Triggers
If one or more iterative triggers of previous period are in unprocessed state then segmentation for those employees will not be processed. If so then delete those triggers using below SQLDELETE FROM PS_GP_RTO_TRGR WHERE COUNTRY = <payee's country> AND EMPLID = <emplid> AND TRGR_STATUS = 'U' AND CAL_RUN_ID <> <Current Calendar Group>;
There might also be unprocessed iterative triggers created for the country other than payee's country which will cause this hence delete those triggers too.
Unprocessed Retro Triggers
If one or more retro triggers for other countries are in unprocessed state then segmentation for those employees will not be processed. If so then delete those triggers using below SQLDELETE FROM PS_GP_ITER_TRGR WHERE COUNTRY <> <payee's country> AND EMPLID = <emplid> AND ITER_TRGR_STATUS = 'U';
Segmentation Triggers
If one or more segmentation triggers for other countries exist and are active for those employees then segmentation will not be processed.DELETE FROM PS_GP_SEG_TRGR WHERE COUNTRY <> <payee's country> AND EMPLID = <emplid> AND SEG_TRGR_STATUS = 'A';
In our case, all above where the reasons so we basically deleted all those unwanted triggers (Iterative, Retro and Segment) using SQL script and it resolved the issue. The segmentation was processed.
