I guess a good place to start for most readers would be an explanation of exactly what is “HCM Processes and Forms” since it is still relatively new to most people. HCM Processes and Forms are new as of ECC6 (aka. ERP2005 and 2 or 3 other names it goes by thanks to SAP marketing…haha). Per SAP’s own documentation, the existing PCR’s (Personnel Change Requests) are being phased out and being replaced by HCM Processes and Forms. But fear not, all of you that spent countless hours configuring and developing custom PCRs! This is actually a good thing. True to form, not only does SAP build off many of the existing pieces of the PCR framework (ISR and Workflow for example), but they also have broken free from many of the limitations that PCRs suffered from over the years. You can think of the HCM P&F framework as a combination of ISR, Workflow, Adobe interactive Forms, CASE Mgmt (another new area in ECC originally for “ticket” tracking for customer cases) and BADIs exposed through standard ABAP/Java WebDynpros and the UWL of the portal.
But what are PCRs and what does this have to do with HCM Processes and Forms? (ie. Give us a real world example, Chris!). Let’s consider a typical HR process. Suppose an employee is leaving the company (ie. Termination). The employee, their manager or an HR Admin might start this process. Some paperwork would be required with things such as the effective last day of employment, any company property to return, any outstanding payments to be made or severance to pay out, and similar such things. Some approvals might be required as the paperwork gets passed around. In the end, the employee has their exit interview, packs up their things, and goes on their way. This whole process can be automated with PCRs, and automated event better still with HCM Processes and Forms. With HCM P&F, the employee, manager, or HR Admin could start the process via the portal. They would fill out an Adobe Interactive Form with which they could do “neat” things like save it as a draft to work on later or attach other documents like a resignation letter. In any event, they fill out the form, review and send their changes. At this point, two key things take place. First, this process is issued a unique reference number (using number ranges you configure and you can even configure independent ranges for different processes!) and a “process object” is created (the process object is actually part of CASE Mgmt. and is the “magic” that makes HCM P&F work as it is the “data container” for the process itself). Second, the defined Workflow for the process is kicked off. Now, that form (or some variation of it) will be passed through Workflow to the various approvers needed to either edit the forms, add information or simply review it. At some point, one of these workflow tasks will trigger HCM P&F services assigned in configuration to that “form step” that will actually make the necessary changes in ECC for the termination (ie. update the appropriate infotypes). In the end, we could send a last task back to the employee letting them know their termination has been processed, and that they need to complete their Life & Work Events for leaving the company (exit interview, turn in property, etc).
I will not go into the landscape or architectural prerequisites to support HCM P&F, but let’s just say that there is quite a little bit that has to be in place in order just to begin thinking about using this (portal, business packages, Adobe config, etc). However, the configuration for HCM Processes and Forms (HCM P&F) can be found under HR Administrative Services (HRAS), which is another new area of services from ECC6 (HRAS can be thought of as a web/portal enabled role for HR Admins much like ESS for employees or MSS for managers, and it actually ties into ESS and MSS in many areas).
Just because HCM P&F is found under HRAS, do not let that limit your thinking in what is possible with this new framework. Sure, HCM P&F allows you to model many of your HR processes through a combination of Adobe Interactive Forms, Workflow, WebDynpros and backend services (that do things such as write/read to infotypes, provide the interactive functions to forms, etc), but with a little thought, you can also do so much more. You could just as easily model some other processes as well. For example, say that an employee needed to contact BASIS to reset their password? They could start the process, complete a form about their userid and maybe which systems it is related too, save and send it off at which point a BASIS admin could retrieve the task from their UWL in the portal and take the appropriate action. No HR involved in that at all! The nice thing is this all ties back into CASE management! Not only can you track “tickets”, but you can see what each person has done at each step along the process! (lots of really cool BI related content as well for analyzing processes).
What’s this talk of Enhancement Pack 2 ?
Well, again for many of you, this might be a fairly new concept. Your BASIS people will probably become all too familiar with this very soon if they aren’t already. I will not go into too much detail, but let’s just say it is a new way SAP has come up with for us to introduce new business functions (ie. code) into our systems without the need for an upgrade or Support Stack installation. Furthermore, enhancement packs apply to specific modules, so we might install an enhancement pack for HR directly while FI, MM, SD, etc. remain untouched. Also, unlike Support Packs/Stacks, this is not an “all or none” install. Even with our enhancement pack installed, we can choose which business functions we want to use out of it based on turning “switches” on and off accordingly. To “save the users from themselves”, SAP builds in some “protection” so that the switches/functions are aware of other switches/functions they depend on in the pack. That means that if we activate a business function that actually relies on some other function as well, it will turn the other switch on for us automatically (well, it does warn us too!) Pretty cool stuff, eh?
The Cool, New Features
Although surely not the complete list, these are my personal favorite new features for HCM Processes and Forms that are part of enhancement pack 2:
- Design Time for Processes and Forms: Previously, although “under” HR Administrative Services, the configuration of HCM Processes and Forms was a tricky undertaking involving jumping around, between and back to IMG tasks, figuring out confusing UI patterns (how many times did I click to look at form steps before first selecting a form scenario version?!?!? Arggggg!!!), and just a lot of “randomness” that relied on you keeping track of where you were (or what you missed in many cases). Now, a new section under configuration has been introduced called the “Design Time for Processes and Forms”. You can think of this as a “workbench-like alterative to manual configuration”. Under this one (yes, ONE) place, you can create, edit, and organize your entire process configuration (ISR scenarios, forms scenarios, services, process definition, etc). You actually have access to more features/settings for the process through here than in many of the individual manual settings! Again, this is currently offered as an alternative to the manual configuration per step, but I could see this completely replacing the “old way” in coming releases.
- User Events: Let me just shout at the top of my lungs….Hallelujah !!!! Thank you, SAP!!! Let me explain my all to apparent joy. Previously, the Adobe Interactive Forms really responded to TWO events (not including the “submit” of the form). These were “initialize” and “user event”. The “initialize” event set up the form when first displayed or could be fired again to “reset” the form, so just having that single event made sense. But what about a “user event”? Surely they wouldn’t have just a single event for the whole form…..but yes, just one “user event” event. This “user event” can be triggered for example when say you have a “search” input box on your form, the user enters a userid, the user clicks a “search” button, and the “user event” triggers to go off to the backend, retrieve the user’s full name from the userid and display it back in the input box. You just simply coded your “search” button to trigger the “user event”. Now, the BIG problem was that there was only ONE user event. So, if I have maybe 2-3 search boxes on a form and maybe some kind of drop-downs that need to change, they ALL could only be set to the one user event. What that means is that in our original case, when I pressed the “search” button, it was actually sending the whole form back to “fire” events for all the other form components too (like all those 2-3 other search boxes and drop-downs). So you imagine the kind of kludgey code you had to write to get around this (like if another search box was empty then don’t try to search on it or making “flags” to mark other components as already in use or passing “user actions” to the one user event to then go through like a case statement to determine which component actually got “triggered” (ie. the user pressed search button 1 and not search button 2). It was all a huge nightmare!!!! But low and behold, SAP has come to the rescue!!! We can now define our OWN user events!!!! That means that search button 1 only triggers it’s event and will not affect search button 2….or his pals Mr. Complex Drop-Down and the Radio Button twins! Thanks again, SAP!!!
- Definable Processor Roles:The processor roles allow us to set up different process to display to different users. For example, an HR Admin might see a list of processes that are different than a manager. This “processor role” is included as a parameter on the WebDynpro applications and iViews. Previously, SAP did not expose the table for these processor definitions via configuration (as an IMG step). With a little poking and hacking, we were able to find the table and make our own custom entry (in our case, for a manager’s delegate). However, now, SAP has included this as an actual configuration step. Woooo whooo! Thanks for making life easier!
- ABAP WebDynpro (WD4A): The previous business package for HRAS (and parts of MSS) included services for HCM P&F that were all written as Java WebDynpros. Personally, I had problems with many of these working correctly (like the all important “Start Process” application). Now, the HRAS business package has been completely rewritten with ABAP WebDynpros….and let me just say, they are pretty darn slick! Furthermore, there are instructions (via OSS notes) for using these same new services to replace the related portions in MSS and ESS. Thinking about ABAP WebDynpros? Now might be a good time to check them out since SAP seems to be shifting everything that way (portions of ESS like Travel & Expenses have been ported to ABAP WebDynpros already).
Enhancement Pack 2 brought us many great new things to fill in some gaps as well as improve the initial release of HCM P&F. But what will enhancement pack 3, 4 or 10 bring? Here are a few things I would like to see:
- Organizational Management (OM) Services: Currently, SAP provides standard services (ie. classes/methods) to read, create, change, delete, delimit, etc. any Personal Administration (PA) infotypes (via service SAP_PA) and Time Mgmt. infotypes (via service SAP_PT). For example, you simply define some fields on your form like infotype 0001 fields, set them to the service as well as what action to take (like “read”), and service will handle the rest….no coding needed! Past that,however, they allow you to define your own “generic service” which can be thought of as the “catch all” for any other custom development you require. Luckily, they provide a few example generic (and “extended generic” services. A traditional “missing link” for PCRs was the lack of standard OM processes. Almost every PCR project I was part of began with the good old “new position” process in which we cobbled together a PCR process that would create the necessary OM objects (position, job, etc) and relationships all through a lot of custom code. This “gap” still exists with HCM P&F even with enhancement pack 2. However, there are rumors that SAP is going to provide some standard service (much like SAP_PA and SAP_PT) for org. objects. There were whispers that this was to be part of enhancement pack 3, however there is no mention of this in the available documentation. It looks like enhancement pack 4 might be more believable. In any event, I am hoping that “new position”, “mass org change”, and other OM type processes will now be supported with standard services. I would definitely be doing a little “happy dance” if SAP makes this happen! (haha)
- BlackBerry (mobile) support: More than ever, the workforce is on the go! Many people live off their mobile devices to the point of addiction almost (ie. “CrackBerry”). So why then does it appear that SAP and/or Adobe have been slow to respond to this? Currently, there is support for WebDynpros and Adobe forms on Windows devices, but that is rather limited. Many mobile users (and I am speaking more of cell phones than laptops) rely on their non-Microsoft BlackBerrys, iPhones, etc. In the past few weeks, I have exchanged many emails with both RIM and SAP’s Mobile people attempting to get information about what is possible for HCM P&F support. This is largely for selfish reasons since many of our managers currently approve/reject work items through a custom built Java app for their BlackBerrys that we would like to replace with a standard solution that allows them to view their UWL, respond to tasks and view/edit Adobe Interactive Forms. From piecing together information from both sides, what we have been able to find out is that (1) Java WebDynpros “should” work on BlackBerrys (though no definitive word if the same applies to ABAP WebDynpros) (2) Adobe does not provide a solution for BlackBerrys at this time and no timeline has been given for this being possible (even our project manager asked this directly to the Adobe presenter during Q&A at last weeks HR conference in Orlando!) For now, it looks like we are stuck further customizing and supporting our own custom solution for mobile users.
- Sub-Process numbering, tracking, and ancestry: Currently, once we start a process, it is assigned a single process ID number. Take as an example the scenario where a manager requests that new positions be created. Suppose he creates 6 new positions. This in turn currently creates one process ID, say “423201” which relates the 6 new positions together. It would be nice, however, if we could have it split off and make each of the 6 requests be separate. Such is the case where a recruiter might fill each positions separately but we want to know how they all related back to the original request from the manager. In that case, we would have something like “423201-a”, “423201-b”, “423201-c”, etc. Technically, I would think this would involve create new process objects as “children” of the original process object and tracking that in some way. Currently, however, there is no direct way to do this.