Remuneration Statement (HRFORMS) FAQ
Here you can see about Remuneration Statement (HRFORMS) Interview questions and answers that have been asked in several customer messages.
1) Performance problems - number of employees:
Check the default value by calling transaction HRFORMS ==> choose "Select form",==> the tab page on the bottom right of the screen ==> choose the "Selection Screen" tab page and
==> the "Number of employees" parameter.
Display this parameter on the selection screen or set a default value. Set the value to "1" to improve the system performance. The performance improvement has already been implemented in the PDF form, resulting in the side effect that the value "No. employees" = 0, does not make sense for the data processing either.
This results in meaningless form output. In addition, you can control the number of spool requests in the PDF form with this value. "No. employees" = 1 means one spool output per employee,
and a higher value means one spool request only is displayed.
If external calls are made, "No. Employees = 0" triggers the following error:
"No job started";
2) Suppressing remuneration statements, various options of form control
During the creation of remuneration statements using ABAP lists (RPCEDT*), there are various options on the selection screen regarding when a remuneration statement is to be printed and how retroactive accounting is displayed. The following information provides some tips about how this can be changed in HRFORMS.
Basically, for performance reasons, you should exclude personnel numbers from the selection if you know that the output is not required or does not make any sense.
For this purpose, use the method CHECK_PERSON in the BAdI HRFORM_HRF02 (the interface IF_EX_HRFORM_HRF02).
This method checks if a person is to be rejected or skipped during the form creation. The method is called for every person BEFORE the data for the form is read by the database.
In addition, there is the method CHECK_PERSON_LATE. Here, you can check the conditions of a wage type (option AF, DF) or insert a customer-specific condition (AZ,DZ).
3) Leaving date:
HRFORMS uses the function module HR_LEAVING_DATE to determine the leaving date in the standard SAP system, in contrast to the remuneration statement without HRFORMS where the function module RP_HIRE_FIRE is used.
As a result, the leaving date in HRFORMS corresponds to the field SCHLW-XFIRE. This always contains the last leaving date for reentries.
The field PFIRE (last leaving date from the in-period view) is not used in HRFORMS. However, if you still want the leaving date to be displayed from the selected period, use the following modification proposal to do so:
Use transaction HRFORMS_METADATA to create specific MetaStars, MetaDimensions, and so on.
Firstly, create a new customer field with the relevant fields for the in-period view, for example, name the new customer field ZHIRE_FIRE_INPER and the relevant fields ZPHIRE and ZPFIRE.
The customer field ZHIRE_FIRE_INPER is to be assigned to the function module that provides the entry date or leaving date for the in-period; the function module HRF_READ_EMPLOYEE_ATTRIBS.
You can transfer and use the functions of this function module with a few modifications.
The logic must select the entry of the internal tables 'lt_fire_dates' and 'lt_hire_dates' that is between BEGDA and ENDDA of the function module.
Finally, the function must be transferred to the form and the new fields must be added to the layout.
4) Entry date:
The entry date is determined by the function module HR_ENTRY_DATE where the feature ENTRY is not evaluated. The entry date is determined in a similar way in the remuneration statement using CEDT. In CEDT, (see SAP 357660), you can write a rule and, as required, display the fields SCHLW-PHIRE, I0041-DAT01 or P0016-EINDT.
In HRFORMS, IT0016 is not read in the standard SAP system (this is also the case in CEDT, but the filled structures can be used as required only). Proceed as follows to read this data (IT0016):
i) Call transaction HRFORMS_METADATA in change mode for a customer-specific MetaNet.
ii) Create a MetaStar of the type "Master data". Enter 0016 in the infotype field. Make these entries on the far left tab of the tab page on the right. Remain in the customer namespace.
iii) Use Drag and Drop to add MetaDimensions (such as employee, assignment, and so on) from the MetaDimensions tree to the MetaStar tree. Remain in the customer namespace if you create new MetaDimensions.
iv) Set the read functions for the MetaDimensions that you have added to the MetaStar in the last step.
Select "MetaStar" and enter a read function on the second tab page.
- Use the same functions as in similar MetaStars.
- Use HRF_PASS_EMPLOYEE_INFT, for example, for an employee or HRF_PASS_PERAS, for example, for an assignment.
v) Define the field-to-field relationships for the MetaDimensions in the MetaStar that are filled from the fields of the MetaStar (third tab page).
vi) On the fourth tab, define how the MetaFigures are filled in your MetaStar.
vii) Add the new MetaStar to your InfoNet (Drag and Drop to the MetaNet tree):
IT0041 is read by the MetaStar ITY_DATE_SPEC. Define the date to be printed in each case using the user exit (BAdI) HRPAD00_ENTRY_LEAVE. The standard entry date is in the dimension DIM_EMPLOYEE.
5) Error message when copying the form SAP_PAYSLIP_DE_P:
Problems with ADS connection:
The system issues the following error message when you copy the form:
"Internal error occured in SAFP API" (message number HRFORMS 002)
This error occurs if a specific RFC connection does not exist. This "ADS" connection must be configured.
"Row type of DDED is not compatible with TLINE"
Check the ADS connection, and in particular, if the password has expired.
6) Syntax error when generating the print program:
"The field "P_IPVIEW" is unknown. It is neither contained in one of the specified tables nor it is defined by a "DATA" statement".
7) Country-specific features for Germany ==> statement of earnings directive
However, the changes have been made in the form SAP_PAYSLIP_DE_P only (exception 4.70, because it does not yet contain the Form Builder). The form SAP_PAYSLIP_DE has not been changed because we cannot continue with the duplication of SMARTFORM versus Form Builder due to the high maintenance effort. We will maintain the Form Builder for the tool that is used most frequently.
b) Identification of wage types
The standard procedure and the manipulation options are described in SAP 1438864. In addition, it is often assumed that the indicator must correspond to the actual taxation or contribution. The wage type only allows us to determine how it is encoded in this sense. Whether taxation or contribution existed is impossible to determine from a technical and, to a certain extent, business point of view.
8) Scrolling in the PDF remuneration form:
Start the remuneration statement with the selection "No. employees" greater than 1. The print preview displays navigation fields (black arrow) to scroll (directly under the title "Print preview"). If "No. employees =1" is set, the system creates one spool request for every employee. However, the application cannot navigate between several spool requests.
9) Cumulation wage types:
The HRForms form provides the option for SAP and customer-specific cumulation wage types. The SAP-specific cumulation wage types are defined in the table T596I in the subapplication CEDT. Customer-specific cumulation wage types can be defined with a specific subapplication (defined in the form) in the table T596J. In the class CL_HRFORM_HRF02 in the method READ_SUMWT, both tables are merged to one list and are then used during the creation of cumulation wage types from the payroll wage types.
Both subapplications must be the same. Customers can also use the subapplication CEDT. This means it is easier to make changes without modifications to SAP-specific cumulation wage types. Create a customer-specific cumulation wage type with the same name with the changes in the table T596J to change an SAP-specific cumulation wage type. If the two subapplications are different, entries in the customer table T596J for an SAP-specific cumulation wage type are ignored. The same applies to entries of the SAP table T596I for customer-specific cumulation wage types.
For example: Cumulation wage type (Appl) = wage types (T596I, Appl)
+ wage types (T596J, Appl)
A(CEDT) = B(T596I, CEDT) + C(T596J, CEDT)
A(CUST) = D(T596I, CUST) + E(T596J, CUST)
This gives the following result in HRForms:
A = B(T596I, CEDT) + E(T596J, CUST)
The table T596A - Definition of subapplication (CEDT, among other things)
The table T596G - Cumulation wage types per subapplication
The table T596I - SAP definition of cumulation wage type
The table T596J - Customer-specific definition of cumulation wage type
10) Creating remuneration statements using the report H99_HRFORMS_CALL:
The report H99_HRFORMS_CALL can also be used to provide administrators with an option to create the remuneration statement without transaction HRFORMS.
Advantage 1) The remuneration statement can be created directly using a report variant (with the relevant authorization), without selecting the form in advance.
Advantage 2) The report can be included in the process model.
11) Transferring specific printer settings for Form Builder forms:
i) Transferring additional parameters from the user master record
You can set the output device and the attributes "Output Immediately" and "Delete After Output" for your own user profiles for the spool control. However, in HRForms, the output device only is transferred automatically.
Use the BAdI HRFORM_HRF02 in the method BEFORE_PDF_PRINT to transfer the other two attributes as well.
if sy-batch is initial. "only when not in batch mode
CH_SFPOUTPUTPARAMS-reqimm = '*'. "Immediate print
CH_SFPOUTPUTPARAMS-reqdel = '*'. "Delete after
When you enter the value "*", the specific specifications for these values are transferred to HRForms.
ii) Transfer of printer to a background job
The system always takes the printer from the
user master record as the printer. This overwrites the printer specified in the job.
This may be because many companies provide the remuneration statement using
Employee Self-Service (ESS). If your company still wants to print centrally as before,
you must also use the BAdI.
To do this, see the attachment Badi_Printer.htm.
12) Eliminating the split indicator for specific wage types:
A split indicator WPBP, for example, causes a wage type to be split in a period (multiple display).
If you want to suppress this, delete the split indicator of the required wage types in the payroll table RT in the method MODIFY_PAY_RESULTS of the BAdI HRFORM_HRF02.
13) Cross-personnel number page counter for insertion:
For performance reasons, the layout should always be called with the data for one personnel number only. However, as the page counting starts from the beginning during every call of the layout, you cannot use a cross-personnel number page counter.
A solution would be to write the page counter to the ABAP memory and to read it from there again. In the Form Builder form SAP_PAYSLIP_DE_P, we already use this with the global variable G_TOTAL_PAGECOUNT (see SAP 1430459, point d.). However, in the layout for this base value, you must add the number of the current page to this personnel number in a script (xfa.layout.page(this)).
IMPORTANT: SAP 1415445 makes this solution obsolete.
14) Retroactive accounting for master data changed subsequently:
that, if retroactive accounting is performed, the current values of the for-period are not displayed in the HRFORMS remuneration statement. Instead, the values of the in-period are always displayed. This concerns all values on the master page (for example, the "Number of Children" (IT0012), "Cost center" (IT0001), and so on).
15) Form not active:
HRForms forms are normally always inactive after a transport to the target system.
However, you can use the BAdI HRFORM_AFTER_TRANSP toautomatically activate the forms after the transport (see SAP 744147).
Caution: When you import the HR-SP, these forms are generated automatically. If a PDF form was delivered or changed within the HR-SP, it works only if there is an HTTP connection to an ADS server. You also require this connection if Adobe is not used in the system. The only way to deal with this error is to delete the form (tricky) or to establish this connection: SAP s 894009, 894389, and 925741.
Otherwise, you cannot complete this upgrade step.
16) Error: "No job started"
This error occurs in the case of an Adobe form if it is called externally, for example, using submit from IT0008. In this case, the "No. Employees" parameter must be set, in contrast to the general recommendations, to a different value to zero.
17) Dump: "OBJECTS_OBJREF_NOT_ASSIGNED"
This dump occurs with the exception: CX_SY_REF_IS_INITIAL, mostly after the transport to another system. This is caused by missing authorizations.
This infotype is evaluated in the EDT* programs and as of a specific Sync HR Support Package for 6.00 as of Enhancement Package 4, this function is also available in HRForms. (See SAP 1581310.) Otherwise, you must use the BAdI HRFORM_HRF02 and the method CHECK_PERNR.
19) Annual values missing in specific cases:
When you display remuneration statements for periods to which retroactive accounting has been performed from a later period, the annual values are missing.
This is due to the definition of the MetaStars CUMULATED_PAY and CUM_TAX_PAY_DE in the MetaNet, according to which current payroll results (type A) only are evaluated.
As a result of retroactive accounting from a later period (for example, from March to January), there are at least two types of payroll results for January: A current (type A) with in-period March and a last (type p) with in-period January or February. If the P result does not have January as the in-period, there is still a third type of payroll result: An original (type O) with in-period January.
When you display the remuneration statement of an earlier period (for example, for January), all results of later periods (that is, with an in-period after January) are ignored. If retroactive accounting has been performed from a later period (for example, March) to this earlier period (January), no current result (type A) is found for January.
In these cases, it is not possible to recreate the remuneration statement subsequently, as it was originally set when retroactive accounting had not yet been performed. However, this only affects the values in the remuneration statement from the MetaStars that evaluate the current payroll results only, such as the annual values in the MetaStars CUMULATED_PAY and CUM_TAX_PAY_DE.
20) Fields are displayed with incorrect validity
A complete list of - depending on validity according to time - correct entries is provided internally for each field. If entries are displayed in increasing or decreasing order, there is an incorrect setting in the layout of the form. Example: Display for administrator: The first page contains the
current administrator; the second page contains the previously valid administrator, and so on. In this case, change the layout of the field from '*' to '0' or '1' (= always display current entry).
21) Error: FPRUNX 001 (ADS: ...)
ADS: com.adobe.ProcessingException: com.adobe.Processin(200101ADS:
If the ADS connection worked earlier and this error occurs now, you probably have to get around only the ADS server.
If the connection is working and the error occurs only for individual personnel numbers or forms, it may be caused by incorrect master data. Example: The "Account Number" field in the form is of the type i. However, it is filled in IT0009 with a combination of numbers that also contains a hyphen.
22) Address fields are not printed, authorizations
A new authorization object P_HRF_META was delivered. When
this authorization is missing, address data and other things could also be missing.
Authorization object P_HRF_META:
Activity: 03 # display
Country grouping: 99 - other countries
HR Forms object name: PAYSLIP
HR Forms object type: FORMCLASS # form class
23) Dump when executing a form, and syntax error when checking the relevant form layout
Due to enhancements in the standard include RPCEDTD0_HRFORMS_INIT, a termination may also occur when you execute customer-defined forms, even though no change was made to these forms. In such a case, check the form in the form builder. If the system issues the error message
"INCLUDE RPCEDTD0_HRFORMS_INIT: The data object "HRDATA" does not have a component with the name ...", compare the InfoNet of your form with that of the standard form. If required, add the InfoStar that is displayed with the error message above to the InfoNet of your form.
24) Form copy not available in certain languages
For the copy to be available in all languages, you have to be logged on with the master language when copying (usually EN).
25) Suppressing the leave table if there is no data
In the sample SAP_PAYSLIP_DE_P, the leave table is displayed even if there is no data. This is a design decision. If you want to suppress the table with its heading in a case like this, you have to remove the attribute for the minimum counter 1 on the tab page for the binding in the "Object" pallet for the "Absence" line in the layout of the "Absences" table. - This currently ensures that the system always displays a line, even if the table is empty.
If sorting does not occur as desired (that is, continuously on the basis of personnel numbers), check whether IT0031 was used to link the personnel numbers with a reference personnel number.
These two personnel numbers are then output together so that they can be included in one envelope. If, despite this requirement, you need another type of sorting, use the presorting report H99_PRESORT_PERNR.
In rare constellations, you can also sort the output according to a central person because the print program uses the logical database PNPCE.
27) Compensated leave
See SAP 1849164 "Statement of Earnings Regulation (EBeschV) - FAQs", point e.) "Compensated leave days in the form SAP_PAYSLIP_DE_P".
28) Reconciling forms
You do not need to reconcile the HRFORMS forms. All of the objects are cross-client objects apart from Customizing of the cumulation wage types.
Tables: T596G, T596H, and T596I.