cancel
Showing results for 
Search instead for 
Did you mean: 

extractor for concurrent employment

yajjala1
Participant
0 Kudos

The standard extractor 0HR_PY_1 does not meet the our requirements, as the extractor sums up the records extracted out of the cluster table into a monthly sum. We requires this to be captured by pay period. what I have to do to enhance the program to use the CE cluster tables.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi John,

I think you won't meet ur requirement by enhancing the DS 0HR_PY_1. Till now i didn't work on Cluster Tables. Generally, we can restrict the data through enhancements. we can populate data for new fields using enhamcement.

I will try to help you on my view... take the case you have the Pay period in your Extractor. you can create the same data values(means key figures which sums up by Monthly ). By writing the code you can populate the data for the new fields(which sums up the Data Values by Pay Period).

In order to calculate by pay period you need to how to extract the data by pay period. then you need to sum that. we can implement that we have to know the functionality of the data values(Cluster Tables).

Till now i didn't work on that. i will analyse the DS 0HR_PY_1 i will try to update the thread with my input's.

May be any expert who worked on HR will guide us.

i can guide you how to enhance it. I don't know about functional relationship in HR. I will go through the DS. provide as much information as you can that would be helpful if any body refers.(i mean which key figures?).

or

we can implement Generic datasource. try to provide the cluster tables. i will look into it.

all the best.

Nagesh.

don't post the same Qustion twise. try to keep the Thread on the top with small change on the message. so your message will be on the top. expert will guide you.

edited by: Nagesh Ganisetti

Former Member
0 Kudos

1. go SE37, Create a function module(ZHR_BIW_GET_DATA) reference to RSAX_BIW_GET_DATA_SIMPLE.

2. In the table Tab create a Table E_T_DATA reference to HRMS_BIW_PY1.

3. Create a function module(ZHRMS_BIW_EXTRACT_PY1) reference to HRMS_BIW_EXTRACT_PY1 (which Extracting the required data).

4. Coming to changes in the FM ZHRMS_BIW_EXTRACT_PY1(refer at the bottom).

5. call the function module (ZHRMS_BIW_EXTRACT_PY1) in the extractor function module (ZHR_BIW_GET_DATA).

6. go to RSO2, crate a transaction datasource. Provide description, application component. Click on “by FM “ push button.

7. provide function module name(ZHR_BIW_GET_DATA) and ES(HRMS_BIW_PY1).

8. save.

Observation:

Here the block of code deleting the Payroll results which belong to concurrent employment.

<b>* do not evaluate payroll results which belong to concurrent employment</b>

DELETE p_rgdir WHERE NOT persdata IS INITIAL.

IF sy-subrc EQ 0.

log_write_full

'W' "message type

'HR_BW_PY99' "message class

'021' "message number

p_pernr "message variable 1

space space space.

IF 1 = 0. "where used-list

MESSAGE w021(hr_bw_py99) WITH p_pernr.

ENDIF.

ENDIF.

<b>It is summing up the entries in this Subroutine.</b>

  • evaluate payroll results

PERFORM process_evp TABLES it_import_results

py1_info_source

USING it_evp_chain

p_pernr

p_import_relid

p_molga

p_timebase.

<b>There is a collect statement in this subroutine. Try to change this to Append.</b>

These two are my observations….you could see coding for summation by (date periods…1 or 2 or 3 or 4). I didn’t touch that… <b>try to sit with ABAP consultant</b> he will guide you.

Try to analyze it … if you need any help please update the thread. I will try to look into it. Sit with ABAP Consultant he will guide you.

I want to develop the changes in my system. I don’t know how to check the data…that’s the reason I didn’t work on this. It could help you to move further that’s belief.

<b>Update the thread</b> how you developed this even above suggestion are not useful.

<b>All the best.</b>

Regards,

Nagesh.

yajjala1
Participant
0 Kudos

Nagesh,

I found Form process_evp in include program LHRMS_BIW_PYF01. Yes there is COLLECT STATEMENT If I change that to APPEND then I will get all values directly with out summation.

I did not understand what I have to do for concurrent employment. I seen code in the same include module. But I do not understand what I have to do use concurrent employment functionality.

Thanks

John

Former Member
0 Kudos

May if we need only concurrent employment... we need to code like this....I'm not sure... check with your functonal guys how can they diffrentiate Concurrent Employment with others.

DELETE p_rgdir WHERE NOT persdata not INITIAL.

Regards,

Nagesh.

Former Member
0 Kudos

Nagesh.

yajjala1
Participant
0 Kudos

I am calling the following function module (ZHRMS_BIW_EXTRACT_PY1) in the extractor function module (ZHR_BIW_GET_DATA) as you suggested. What are the values should assign to the following attributes in the function module. Can you send me what are the modifications should I make in ZHR_BIW_GET_DATA

i_updmode =

begda =

endda =

i_read_only =

tabpernr =

py1_info_source =

CALL FUNCTION 'ZHRMS_BIW_EXTRACT_PY1'

EXPORTING

i_updmode =

begda =

endda =

i_read_only =

TABLES

tabpernr =

py1_info_source =

EXCEPTIONS

ERROR_PASSED_TO_MESS_HANDLER = 1.

if sy-subrc ne 0.

raise ERROR_PASSED_TO_MESS_HANDLER.

endif.

yajjala1
Participant
0 Kudos

<u>Here is my new Extract function</u>

FUNCTION ZHR_RSAX_BIW_GET_DATA.

*"----


""Local Interface:

*" IMPORTING

*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR

*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL

*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL

*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL

*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL

*" VALUE(I_REMOTE_CALL) TYPE SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF

*" TABLES

*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL

*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL

*" E_T_DATA STRUCTURE HRMS_BIW_PY1 OPTIONAL

*" EXCEPTIONS

*" NO_MORE_DATA

*" ERROR_PASSED_TO_MESS_HANDLER

*"----


  • Example: DataSource for table HR Pay

TABLES: HRMS_BIW_PY1.

  • Auxiliary Selection criteria structure

DATA: L_S_SELECT TYPE SRSC_S_SELECT.

  • Maximum number of lines for DB table

STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,

  • counter

S_COUNTER_DATAPAKID LIKE SY-TABIX,

  • cursor

S_CURSOR TYPE CURSOR.

  • Select ranges

RANGES: L_R_CARRID FOR SFLIGHT-CARRID,

L_R_CONNID FOR SFLIGHT-CONNID.

  • Initialization mode (first call by SAPI) or data transfer mode

  • (following calls) ?

IF I_INITFLAG = SBIWA_C_FLAG_ON.

************************************************************************

  • Initialization: check input parameters

  • buffer input parameters

  • prepare data selection

************************************************************************

  • Check DataSource validity

CASE I_DSOURCE.

WHEN 'ZHRPAY'.

WHEN OTHERS.

IF 1 = 2. MESSAGE E009(R3). ENDIF.

  • this is a typical log call. Please write every error message like this

LOG_WRITE 'E' "message type

'R3' "message class

'009' "message number

I_DSOURCE "message variable 1

' '. "message variable 2

RAISE ERROR_PASSED_TO_MESS_HANDLER.

ENDCASE.

APPEND LINES OF I_T_SELECT TO S_S_IF-T_SELECT.

  • Fill parameter buffer for data extraction calls

S_S_IF-REQUNR = I_REQUNR.

S_S_IF-DSOURCE = I_DSOURCE.

S_S_IF-MAXSIZE = I_MAXSIZE.

  • Fill field list table for an optimized select statement

  • (in case that there is no 1:1 relation between InfoSource fields

  • and database table fields this may be far from beeing trivial)

APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.

ELSE. "Initialization mode or data extraction ?

************************************************************************

  • Data transfer: First Call OPEN CURSOR + FETCH

  • Following Calls FETCH only

************************************************************************

  • First data package -> OPEN CURSOR

IF S_COUNTER_DATAPAKID = 0.

  • Fill range tables BW will only pass down simple selection criteria

  • of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'CARRID'.

MOVE-CORRESPONDING L_S_SELECT TO L_R_CARRID.

APPEND L_R_CARRID.

ENDLOOP.

LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'CONNID'.

MOVE-CORRESPONDING L_S_SELECT TO L_R_CONNID.

APPEND L_R_CONNID.

ENDLOOP.

  • Determine number of database records to be read per FETCH statement

  • from input parameter I_MAXSIZE. If there is a one to one relation

  • between DataSource table lines and database entries, this is trivial.

  • In other cases, it may be impossible and some estimated value has to

  • be determined.

OPEN CURSOR WITH HOLD S_CURSOR FOR

SELECT (S_S_IF-T_FIELDS) FROM SFLIGHT

WHERE CARRID IN L_R_CARRID AND

CONNID IN L_R_CONNID.

ENDIF. "First data package ?

  • Fetch records into interface table.

  • named E_T_'Name of extract structure'.

FETCH NEXT CURSOR S_CURSOR

APPENDING CORRESPONDING FIELDS

OF TABLE E_T_DATA

PACKAGE SIZE S_S_IF-MAXSIZE.

IF SY-SUBRC <> 0.

CLOSE CURSOR S_CURSOR.

RAISE NO_MORE_DATA.

ENDIF.

S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.

ENDIF. "Initialization mode or data extraction ?

PERFORM Cal_HR_Pay.

ENDFUNCTION.

**********************************************************************

  • FORM : Cal_HR_Pay

  • Created : 04.04.2006 09:21:28

**********************************************************************

FORM Cal_HR_Pay .

DATA: sel_begda like sy-datum,

sel_endda like sy-datum.

DATA: g_s_interface TYPE sbiwa_s_interface.

DATA: g_s_read_only TYPE SBIWA_FLAG.

DATA: persons_package like hrpernr occurs 0 with header line.

DATA: l_t_hrms_biw_py1 LIKE hrms_biw_py1 OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'Z_ZHRMS_BIW_EXTRACT_PY1'

EXPORTING

I_UPDMODE = g_s_interface-updmode

BEGDA = sel_begda

ENDDA = sel_endda

  • I_READ_ONLY = ' '

TABLES

TABPERNR = persons_package

PY1_INFO_SOURCE = l_t_hrms_biw_py1

  • EXCEPTIONS

  • ERROR_PASSED_TO_MESS_HANDLER = 1

.

ENDFORM. "Cal_HR_Pay<u></u>

<u><b>Here is my Error when I was trying test data Source</u></b>

Please let me know how I call function Z_ZHRMS_BIW_EXTRACT_PY1 into ZHR_RSAX_BIW_GET_DATA.

Data Source is created successfully but When I test It is throwing an error.

yajjala1
Participant
0 Kudos

<b><u>Sorry Here is the Error</u></b>

Information on where terminated

Termination occurred in the ABAP program "SAPLZHRRAX_BIW_GET_DATA" - in

"ZHR_RSAX_BIW_GET_DATA".

The main program was "RSFHGEN2 ".

In the source code you have the termination point in line 101

of the (Include) program "LZHRRAX_BIW_GET_DATAU02".

The termination is caused because exception "CX_SY_DYNAMIC_OSQL_SEMANTICS"

occurred in

procedure "ZHR_RSAX_BIW_GET_DATA" "(FUNCTION)", but it was neither handled

locally nor declared

in the RAISING clause of its signature.

The procedure is in program "SAPLZHRRAX_BIW_GET_DATA "; its source code begins

in line

1 of the (Include program "LZHRRAX_BIW_GET_DATAU02 ".

Former Member
0 Kudos

FUNCTION ZHR_RSAX_BIW_GET_DATA.

*"----


""Local Interface:

*" IMPORTING

*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR

*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL

*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL

*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL

*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL

*" VALUE(I_REMOTE_CALL) TYPE SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF

*" TABLES

*" I_T_SELECT TYPE SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL

*" I_T_FIELDS TYPE SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL

*" E_T_DATA STRUCTURE HRMS_BIW_PY1 OPTIONAL

*" EXCEPTIONS

*" NO_MORE_DATA

*" ERROR_PASSED_TO_MESS_HANDLER

*"----


  • Example: DataSource for table HR Pay

TABLES: HRMS_BIW_PY1.

  • Auxiliary Selection criteria structure

DATA: L_S_SELECT TYPE SRSC_S_SELECT.

  • Maximum number of lines for DB table

STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,

  • counter

S_COUNTER_DATAPAKID LIKE SY-TABIX,

  • cursor

S_CURSOR TYPE CURSOR.

  • Select ranges

RANGES: L_R_PERNR FOR PA0003-PERNR.

  • Initialization mode (first call by SAPI) or data transfer mode

  • (following calls) ?

IF I_INITFLAG = SBIWA_C_FLAG_ON.

************************************************************************

  • Initialization: check input parameters

  • buffer input parameters

  • prepare data selection

************************************************************************

  • Check DataSource validity

CASE I_DSOURCE.

WHEN 'ZHRPAY'.

WHEN OTHERS.

IF 1 = 2. MESSAGE E009(R3). ENDIF.

  • this is a typical log call. Please write every error message like this

LOG_WRITE 'E' "message type

'R3' "message class

'009' "message number

I_DSOURCE "message variable 1

' '. "message variable 2

RAISE ERROR_PASSED_TO_MESS_HANDLER.

ENDCASE.

APPEND LINES OF I_T_SELECT TO S_S_IF-T_SELECT.

  • Fill parameter buffer for data extraction calls

S_S_IF-REQUNR = I_REQUNR.

S_S_IF-DSOURCE = I_DSOURCE.

S_S_IF-MAXSIZE = I_MAXSIZE.

  • Fill field list table for an optimized select statement

  • (in case that there is no 1:1 relation between InfoSource fields

  • and database table fields this may be far from beeing trivial)

APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.

ELSE. "Initialization mode or data extraction ?

************************************************************************

  • Data transfer: First Call OPEN CURSOR + FETCH

  • Following Calls FETCH only

************************************************************************

  • First data package -> OPEN CURSOR

IF S_COUNTER_DATAPAKID = 0.

  • Fill range tables for fixed InfoSources. In the case of generated

  • InfoSources, the usage of a dynamical SELECT statement might be

  • more reasonable. BIW will only pass down simple selection criteria

  • of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.

LOOP AT g_t_select INTO l_s_select

WHERE fieldnm = 'PERNR' OR fieldnm = 'RFPNR'.

DELETE g_t_select INDEX sy-tabix.

MOVE-CORRESPONDING l_s_select TO l_r_pernr.

APPEND l_r_pernr.

ENDLOOP.

  • Determine number of database records to be read per FETCH statement

  • from input parameter I_MAXSIZE. If there is a one to one relation

  • between DataSource table lines and database entries, this is trivial.

  • In other cases, it may be impossible and some estimated value has to

  • be determined.

OPEN CURSOR WITH HOLD S_CURSOR FOR

SELECT pernr begda FROM pa0003 WHERE pernr IN l_r_pernr

AND sprps = space

ORDER BY pernr.

ENDIF. "First data package ?

  • Fetch records into interface table.

  • named E_T_'Name of extract structure'.

FETCH NEXT CURSOR S_CURSOR

APPENDING CORRESPONDING FIELDS

OF TABLE g_t_persons

PACKAGE SIZE S_S_IF-MAXSIZE.

IF SY-SUBRC <> 0.

CLOSE CURSOR S_CURSOR.

RAISE NO_MORE_DATA.

Else.

CLEAR: e_t_hrms_biw_py1, e_t_hrms_biw_py1[].

LOOP AT g_t_persons.

l_tabix = sy-tabix.

CLEAR: persons_package, persons_package[].

APPEND g_t_persons TO persons_package.

CLEAR: l_t_hrms_biw_py1, l_t_hrms_biw_py1[].

*start of the employee

SELECT begda INTO sel_begda FROM pa0000

WHERE pernr IN g_t_persons-pernr.

Sel_endda = ‘99991231’.

CALL FUNCTION 'z_ZHRMS_BIW_EXTRACT_PY1'

EXPORTING

i_updmode = g_s_interface-updmode

begda = sel_begda

endda = sel_endda

i_read_only = g_s_read_only

TABLES

tabpernr = persons_package

py1_info_source = l_t_hrms_biw_py1

EXCEPTIONS

ERROR_PASSED_TO_MESS_HANDLER = 1.

if sy-subrc ne 0.

raise ERROR_PASSED_TO_MESS_HANDLER.

endif.

APPEND LINES OF l_t_hrms_biw_py1 TO e_t_data.

ENDLOOP.

Endif.

S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.

ENDIF. "Initialization mode or data extraction ?

ENDFUNCTION.

can you try this.... one more thing.... in case any declaration missing please please refer function module(Standard Function Module). Declare all these in Global Declaration Area.

all the best,

Message was edited by: Nagesh Ganisetti

yajjala1
Participant
0 Kudos

I followed the same steps you told me to do. Only step was missing was how I call function Z_ZHRMS_BIW_EXTRACT_PY1 into ZHR_RSAX_BIW_GET_DATA and what are the parameters are going to pass in to Function.

John

Former Member
0 Kudos

can you chech the above code. i included that function module Z_ZHRMS_BIW_EXTRACT_PY1.

dud you selected personal number as data selection?

incase any error... debugg the code.

Nagesh.

Answers (1)

Answers (1)

former_member195980
Active Participant
0 Kudos

There is a cusomizing function in IMG of HR-modul which allows you to use the in-period instead of for-period.

Maintenaince of table HRMS_BW_PY_CUST1 - sm30.

However this creates much more records as data is not being compressed, especially as there are more month and therefore clusters to read.

Regards,

Beat Stoller

yajjala1
Participant
0 Kudos

Hi,

I was advise to do the following steps by our BW expert:

Advise me is that one correct:

Here are the details/reasons for this generic extractor:

- The standard extractor 0HR_PY_1 does not meet our requirements, as the extractor sums up the records extracted out of the cluster table into a monthly sum. We requires this to be captured by pay period.

- The standard extractor is also not concurrent employment enabled. An OSS message with SAP has confirmed that the extractor is not CE enabled, won't be fixed and the development of this feature might be available with mySAPERP 2007.

- The extractor uses function HR_BIW_GET_DATA which calls HRMS_BIW_EXTRACT_PY1. So in essence what you have to do is clone those programs and enhance the program to use the CE cluster tables as well (RT_PERSON, CRT_PERSON). Then to modify the program to not sum the values up, but keep them as they come out of the clusters.

- We have to create another function module as per the example RSAX_BIW_GET_DATA_SIMPLE, which then will call the function module you created above. Please use the same structure as 0HR_PY_1 is using (HRMS_BIW_PY1) enhanced by the pay period.

- Create the generic extractor assigning the last function module to it.

Please advise me whether these steps are correct or what is right way to approach this issue.

Thanks

Yajjala

Former Member
0 Kudos

Hi John,

check the message of Beat Stoller. If it won't suit to your requirement. we will work on the Generic Data Source using Function Module. Mean while i will try to analyse the things.

all the best.

Nagesh.

Former Member
0 Kudos

Hi John,

What evr Beat told that may be correct answer. At this point time i can say that is correct.

Please go through the details given below.

Assignment of Payroll Data to BW Month

Use

In this IMG activity, you determine the criterion for the assignment of payroll data to a BW month in order to run reports in the Business Information Warehouse. You specify the criterion with Country grouping. You can specify the BW month with the following time data:

1.<b> End date of For-period</b> (Definition: for-period Payroll (PY) Payroll period (start and end date of a period) for which a payroll result is created.)

<b>2. End date of In-period</b> (Definition: in-period Payroll (PY) The payroll period (start and end date of a period) in which a payroll result is created.)

<b>3. Payment date of for-period

4. Payment date of in-period</b>

The data source 0HR_PY_1 possesses not only the selection criterion Personnel number, but also the selection criterion BW month. The selection criterion BW month is only supported in Full upload mode. In this mode, the selection of the criterion for the assignment of the payroll data to a BW month also has an effect upon which basis the period selection takes place.

Standard settings

If there is no criterion specified for a country grouping, then SAP R/3 uses the criterion End date of the for period.

Activities

Enter the country grouping and the criterion for the time assignment of the payroll data to a BW month.

Example

In your company, you run the payroll for the country groupings of Germany (01) and the USA (10). For the employees in Germany, you want to assign the payroll data according to the criterion End date of the for-period. For the employees in the USA, you want to assign the payroll data using the payment date. To do this, enter the following:

Country grouping time-based assignment

01 End date of the for-period

10 Payment date of the in-period

I analysed programs you mentioed i found part of realted this customizing. Comming to Programs Function Modules you mentioed "HR_BIW_GET_DATA" is mainly for all the Data Sources for HR Module in SAP. comming to "HRMS_BIW_EXTRACT_PY1", it is extracting all the pay roll data.

In this 2nd Function Module, we have a block of code, i'm specifing here please go through it.

  • value can be overwritten by customizing, default = 1 (for-period)

DATA: l_timebase TYPE c VALUE '1'.

DATA: l_pa0439 TYPE pa0439.

  • All upload modes: criteria for assignment of the bw data to a BW month

  • Only full upload: criteria for selection of payroll results.

  • Values of domain BWPY1_RESULT:

  • 1 = based on IPEND of FOR-period,

  • 2 = based on IPEND of IN-period,

  • 3 = based on PAYDT of FOR-period,

  • 4 = based on PAYDT of IN-PERIOD

  • The value is determined by customizing. If no entry is available for the country grouping at the customizing table, the standard value 1 is used.

check this subroutine(<b>determine_criteria</b>).

In order to maintain the Table Entry wht Beat mentioned .... go to SBIW> Application Specific DS> HR>Payroll Pulg-in>Assignment of Payroll Data to Month.

<b>Please update the Thread with the details.</b>

all the best. <u><b>I belive that it satisfy your requirement. If not we will work on custom scenario.</b></u>

Nagesh.

yajjala1
Participant
0 Kudos

The extractor uses function HR_BIW_GET_DATA which calls HRMS_BIW_EXTRACT_PY1. What I have to do to these programs and how to enhance the program to use the CE(Concurrent Employment) cluster tables as well (RT_PERSON, CRT_PERSON). Then how to modify the program to not sum the values up, but keep them as they come out of the clusters.

Above answers were not working for me.

Former Member
0 Kudos

John,

1. create a Structe in SE11 with required Fields(with same fields of Standard Extractor).

2.Clone the Function Module RSAX_BIW_GET_DATA_SIMPLE to ZRSAX_BIW_GET_DATA_SIMPLE(we need to make some changes i will tell you at the end).

3.clone the Function Module HRMS_BIW_EXTRACT_PY1 to ZHRMS_BIW_EXTRACT_PY1(we need to implement the Functionality in this Function Module).

I will analyze this function module where to make changes... based on that we will implement this. I will update the thread in the weekend with coding.

Let me analyze the code in case if i need any thing i will update the thread.

All the best.

Regards,

Nagesh.

Former Member
0 Kudos

John,

one thing i want to tell you till now i nerver worked on HR and BW. I worked on ABAP...right now i'm working on BW.

I can tell you how to build the Generic Data Source for this. Base of the Generic Extractor is cloning of the function module HRMS_BIW_EXTRACT_PY1 as per the requirement(even base for Standard one).

Comming to the point...I have gone through the function module...I need few Clarifications.

1. Is standard DS not brining the Concurrent Employement(I have seen the part coding which is deleting CE)?

2. You don't want the Sum the Values(I have seen block of code for this which calculating the sum of all the numeric values, if you won't do sum up the values huge amount of data will come to BW...in term of records).

3. You don't want to restrict the values to any period(for this case data will be more).

if you say YES for 1st question. I will get the Concurrent Values(do i need to get Other values i mean other then concurrent values). 2nd one we can chnage the code.3rd one bit tricky. it's more over linked to update method(init, full and delta). At least i can update my findings.

I don't have the data... icould have checked in SandBox with BW.

Regards,

Nagesh.

yajjala1
Participant
0 Kudos

You are right nagesh,

Our consultant need all values from the Concurrent Employement.

How to enhance the program to use the CE(Concurrent Employeement) cluster tables as well (RT_PERSON, CRT_PERSON). How to modify the program to not sum the values up, but keep them as they come out of the clusters.

John

yajjala1
Participant
0 Kudos

Nagesh,

let me know what I have to do to not Sum the values. You said block of code for this which calculating the sum of all the numeric values, Please let me know where I have to modifications in the code not to Sum up but bring all the values..

yajjala1
Participant
0 Kudos

Hi,

How to Add payroll period fields(FAPER, IPERIN) to the structure HRMS_BIW_PY1?

period fields(FAPER, IPERIN) are coming from RT_person Cluster table.

Thanks

Former Member
0 Kudos

John,

If you want to add these 2 fields... don't use standard Structure(HRMS_BIW_PY1). Create a new structure in SE11(by copying HRMS_BIW_PY1 to ZHRMS_BIW_PY1. add two fields to this custom struture). Change in RS02. Change in Extractor function for E_T_DATA(In Tables Tab).

Don't enhance this(HRMS_BIW_PY1) extract structe...it may be used in other location(if it is not using any where except in Pay roll DS, you can enhance by appending 2 field ).

If you want to write code based on these two. please check with ABAP Consultant.

1. first extract the personal numbers.

2. extract the required data using this periods, personal numbers and validity periods.

All the best.

Regards,

Nagesh.

Former Member
0 Kudos

Give me all the details regarding Concurrent Employment. tables...new fields i will try to give some sample code(at least you can approch with that code to ABAP Consultant). Proivide the informationas much as you can... my personal id gnagesh02@yahoo.com. Don't post in forum. I'm bit busy with my work... i won't login into forum.

At least i will try to give you some sample code. I will analyse the Standard Function Modules. I will give my best to reslove your issue or to give some clues.

All the best.

Regards,

Nagesh.