InformationTitleBest Practices for Maintaining a Healthy PSA SolutionURL NameBest-Practices-for-Maintaining-a-Healthy-PSA-SolutionDetailsProduct AreaHelp Product AreaProfessional ServicesRelease VersionHelp Release VersionEnvironmentHelp EnvironmentAll VersionsAdditional NotesHelp Additional NotesPS Cloud: How to Correct Changed or Duplicate Time Period DatesHow to Correct Timecards in PS CloudHow to Identify PS Cloud Data IssuesProcedureHelp ProcedureAdmin Checklist for Monitoring PS Cloud Health See Admin Checklist for Monitoring PS Cloud Health for more information on Certinia's recommended admin review cadence. PSA Processes How do Actuals Work in PS? NOTE: The following section refers to pre-Spring 24. There is an option with Spring 24 to use a continuous mode which removes the need for the schedule jobs as Transaction Deltas are processed continually Actuals - e.g. Bookings, Billings, Revenue, Costs & Margin - are the result of calculations that are run on transactions, which stem from each of the 5 business record types: Actuals Process SetupBusiness Record IIF TriggerTransaction/Delta RecordActuals UpdateRoll Ups Read the table below for more information on each: Actuals Process SetupBusiness Record IIF TriggerTransaction/Delta RecordActuals UpdateRoll Ups PSA actuals roll ups can be in one of two modes, based on the CalculationMode org wide configuration: Scheduled (default)*Immediate (real-time, not recommended due to Salesforce limits) *Most customers use scheduled mode with an Apex script to update actuals on the hour, or often, 4 hourly jobs so that actuals are updated every 15 minutes. Work Queue Manager can also be used. Like billing, the primary criterion for amounts and hours of different types rolling up to relevant project, resource, and RPG actuals for configured time periods is whether the business record: Has its Include in Financials (IIF) checkbox checked/unchecked, orIf its amounts or hours are updated while IIF is checked In most PSA implementations, IIF being checked is coordinated to happen with records being approved. Different fields on each business record type affect roll-ups in conjunction. IIF initially drives eligibility to roll-up. When one of these two action types happens on a business record, a transaction is created/updated. Each transaction contains one or more categories and selects a checkbox indicator field based on the transaction category. In immediate mode, real-time PSA triggers attempt to update all the actuals fields instantly. In scheduled mode, a transaction delta is created which stores the old/new values and is queued for processing. The batch job updates actuals and deletes the deltas (but not the transactions) when finished. Even in scheduled mode, transactions can be reprocessed using the Actuals Verifier -- but note that it does not run transaction deltas as a standard process, it only allows users to run actuals verification if all transaction deltas are already processed. Therefore, if it detects there are some which are not processed, it forces users to process them first. Transaction amounts (and time in the relevant cases) roll up to actuals. Actuals are tracked using incrementing values by specified amounts in each time period at the RPG, resource and project level (intended to be prior to billing). Admins can change the roll up process using the actuals configuration options. A PSA batch job handled by the apex class ActualsCalculateDeltaBatch (ACDB) is responsible for the processing (and if successful, deletion) of Transaction Delta (TD) records and the associated creation and update of all types of Actuals records in PSA. As detailed, in scheduled mode, a transaction delta is created which stores the old/new values and is queued for processing. The batch job ActualsCalculateDeltaBatch [ACDB] updates actuals and deletes the deltas (but not the transactions) when finished. The Actuals are normally scheduled to run every 15 or 60 minutes when PSA is implemented. Transaction Deltas will build up over time between these schedules, but once the job runs, they should all be processed, leaving 0 [zero] in the queue, to start building up again. Transaction Deltas and Error Handling Transaction Deltas should be regularly monitored. A build up of these, including older TDs indicate a problem with the process, resulting in inaccurate numbers on the record [eg project]. This could be through adding a component on a workspace to count the number of TDs and also the date of earliest created. If there is a problem, then read the PS Cloud Process Troubleshooting Guide for additional help. Permissions Permission Controls Permission Controls should govern *actions*. E.g. everyone should be able to enter Time or Expenses for themselves or assign themselves to shared Projects that allow it, but only Resource Managers assign *others* and only Services Operations should be able to enter Time or Expenses for *others* (subject to boundaries of Region, Practice, Group). Permission Sets [Functional] From [release] Certinia have provided Functional permission sets based on key roles that PSA is designed around. These are intended to provide all the required permissions [combined with the corresponding Permission Controls] to perform each role, and where possible, these should be used. Although these can be modified, through cloning, the issue this causes is that, with each release, it is only the OOTB Permission set groups that are updated. What this means is that, if, to access a new component, as a Project manager, and new Permissions have been created, then these will be added to the OOTB permission set. Customers with Custom permissions, or who have cloned the Permission sets, will have to manually add in these new permissions before they can use the new features. If you want to utilize the OOTB permission sets to ensure that users have the required permissions on upgrade[s], but users require additional permissions, then Assign these OOTB permission sets to usersInclude any additional permissions needed in a separate permission set Remove any permissions via a muting permission set Best Practices for Project Data Maintenance Global Projects Set up global project(s) for tracking pre-sales so that logging pre-sales time does not require an assignment.Set up global project(s) for PTO, sickness, etc. as time excluded so hours are reduced from available time for Utilization calculation. To reduce any SF volume impact, these should be created for each year, and if still any volume implications, then create further projects per R/P/G. Project Tasks Create or update project tasks on projects and project templates via the Gantt interface and not via direct record edit so as to maintain visibility of task hierarchy and preserve integrity of task dependencies. Project Closure Soft close the Project before fully closing it.Close for time entry immediately after the last week of time being logged to the project. Close for expense entry shortly thereafter once all expenses have been submitted and approved. Even after soft-closing for time and expense, the project may remain active until any final adjustments and billing are complete. Update Project Stage, Status and End Date when the Project is fully closed. Mark Project as Inactive. [Active = ‘false’] Milestones Issues with milestones can arise when the target date is years into the future - this may typically be on internal/non-customer projects, where time is logged against a milestone but the project runs for many years. This may cause, for example, an issue with the PSA backlog calculation timing out if there are many of these milestones on a project as values are created per time period per milestone. Guidance is to limit the target date to 2/3 years into the future and then extend if needed [or create a new project]. Contacts Set up a process for managing Resource profiles and on/offboarding so that Resource data is accurate and sensitive data such as cost rate or personal information is secure, while data used for filtering such as Role is accessible and accurate. Assignments Make use of the different assignment types available (credited, excluded, billable and non-billable) and understand how they impact utilization. Credited Assignments: used for either internal projects that bring value to the services organization, or customer projects where the time is not billable but should still be credited towards the resource’s utilization.Non-Billable Assignments: used for either internal projects that do not bring direct value to the services organization such as admin or bench time, and customer projects where the time is not billable and should not be credited towards the resource’s utilization (such as rework or unplanned goodwill work).Excluded Assignments: used for Annual Leave, PTO, and similar time if the intention is to reduce calendar or target hours for utilization metrics accordingly. Promote data quality by establishing a process and culture of accurate assignment and resource request dates, schedules, and hours so that services leaders can make informed decisions based on metrics such as utilization, capacity and backlog. PSA can experience issues when either a project has many assignments, or more typically, when there are assignments that are elongated (eg more than 3-5 years into the future). For multi year projects, guidance is to create a new assignment. As an example, for each calendar year. General Establish process to ensure timely and accurate Actuals data, including Timecards, Milestones and Expenses [where applicable]. System Data Maintenance Time Periods Time periods allow you to define date ranges for which your company can report its planned, actual, utilization, and forecasting information. Once set up, time periods define time dimensions for tracking and reporting your planned, actual and variance numbers for the different time period reportable entities in the organization. You must enter at least one time period called All Time Periods. You can then add years, quarters, months and weeks according to your requirements. Best Practices for Setup Week time periods can span months, quarters and years. When setting up a time period, check the start and end date for weeks with boundaries that span other time periods. Actuals for weeks that cross these boundaries might not be included in larger time period reporting. In PSA you can define weeks that are less than seven days, so that they align with year, month and quarter boundaries.Set up all the time periods that you require in advance including time periods well into the future. [3-5 years is optimum] - this should have been done for go-liveEnsure that there is a review process each year to extend these out for another year, maintaining the 5 years.. This will ensure that, when PSA processes run that roll up/create records against time periods, that the time periods exist, so the process will run without errors. Otherwise project actuals [described already here], utilization will stop updating as PSA does not know what to do with the records, if there is no ‘bucket’ to associate them with . Time Periods must be in complete weeks, months, quarters and years. Do not create partials for a week that starts in one month and end in a different month Storage Limitations PSA does not have any archive functionality at this time. Because of this, over time, storage requirements will increase with PSA usage as more records are created. At some point, it is likely that customers will run out of allocated SF storage and at this point, the decision is whether to purchase more data from Salesforce, or delete high volume/data PSA records which are contributing to the total storage. The following article explains considerations which should be reviewed before deleting high volume records in PSA: How to Delete High Volume/Data PSA Records to Reduce Total Storage in PS Cloud.ObjectiveHelp ObjectiveThis article describes recommended activities to complete within the PSA solution to ensure it is healthy and up to date. This helps give users confidence in the system and and metrics it's generating.
Was this article helpful?00Choose a general reason-- Choose a general reason --FeedbackUpload FilesUpload FilesOr drop filesSubmit