Store pyID with a different value than the one generated by Pega
We have a requirement for our application wherein we need to show a specific calculated identifier for a case in the format of XX.2019.00015.001 (where XX is name of application, 2019 is year , 00015 is the 5 digit parent case ID and 001 is the 3 digit child case ID).
This ID should be displayed as the dossier ID throughout the case (even on the tab ID).
Is it ok to store a different format in pyID than the one generated by pega? Will changing the format of usual pyID have any impact on the application?
1. You can't really replace pyID with some other attribute, as it is one of key attribute that OOTB PRPC code has dependency on.
2. Even with custom code, you won't be achieve to format pyID value in the required format as getDataUniqueID java function can't be modified.
3. OOTB pyID support this format <Org>-<CasePrefix>-<Seq No>-<CaseSuffix>. Although, OOTB PRPC code (GenerateID rule, step 3) doesn't consider the 'Org' part (not sure why), but you can at least suggest your client to follow the following format: <CasePrefix>-<ChildCaseID/Seq ID>-<App>.<Year>.<ParentCaseID> (e.g XYZ-1-XX.2019.00015). The suffix part has to be automatically set in pyDefaults of your child work class.
An alternative approach would be to keep both identifier on case (pyID and your app specific identifier).
On every place on UI that references pyID property, override that UI setup to show your app specific identifier value in it's place (see the attached image). But, this will require a way lot more work just to develop and maintenance as well.