Hello Everyone,
I am building an IPA process in Landmark where I need to update custom identity fields on the Actor business class (person module). Specifically, UserString1 stores Workforce ID, UserString2 should store the domain value mapped from the employee’s cost center, and UserString3 should contain the same value as UserString1. The requirement is to populate UserString2 only for employees where it is blank and only if their cost center exists in an XReference table, and to populate UserString3 with the value from UserString1. The challenge I am facing is that the data is spread across different modules: Actor and the UserString fields live in the person module, cost center information lives in the hr module (Employee → PrimaryOrganizationUnitNumber), and the cost center-to-domain mapping lives in the pfi module (PfiXRefValue with SourceValue1 = cost center and DestinationValue1 = domain value). I am able to fetch Actor records and their UserString values, fetch Employee records and their cost centers, and fetch the XRef table entries. However, I am struggling with designing the IPA flow so that I can efficiently process only those employees whose cost center matches a cost center present in the XRef table, without repeatedly calling the XRef node inside loops and without running into composite key filtering issues (especially when trying to use WorkAssignment). In short, I need guidance on the best IPA design pattern to:
Filter employees based on a list of cost centers stored in an XRef table
Bridge Employee (hr module) to Actor (person module) cleanly
Update Actor identity fields conditionally
Keep the process efficient and avoid unnecessary repeated database calls
Any recommendations on the correct architectural approach in Landmark Transaction Builder would be greatly appreciated.