cancel
Showing results for 
Search instead for 
Did you mean: 

0HR_PA_OS_1

Former Member
0 Kudos

Hi,

We're using datasource 0HR_PA_OS_1 to upload staff assignment data to Infocube PAOS_C01

There is a specific condition where we want a line excluded from being extracted from R/3.

If both OPOS_FREE aqnd OPOS_OCC are blank (both key figures), we want that line excluded from the data.

The datasource does not have any of the two InfoObjects asa selection fields. How can we exclude that line? If we can't do that in the datasource, can we restrict a report into not showing that line?

Thanks

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

may be u can write a start routine to delete that particular record that satisfies your condition..

Former Member
0 Kudos

Are we talking about the infopackage, or something different?

thanks

Former Member
0 Kudos

no start routine in transfer rules to delete the record..

u will have to loop into the data_package and delete the unwanted records..

this is just one way.. there might be n number of other ways to do as well

Message was edited by:

Pradhiba

Former Member
0 Kudos

To get a better understanding of what we're trying to do, have alook at the problem description (from SAP Note 520677)

Summary

Symptom

The extractor for the transaction data of occupied positions (0HR_PA_OS_1 InfoSource) returns at least 2 records for occupied positions, and one record for completely unoccupied positions.

This is not an error.

The main aim of the extractor is to obtain information about existing positions, that is, an analysis of both occupied and unoccupied positions.

In the transaction data, some key figures are issued which do not depend on the personnel number that occupies a position. Therefore, this data, which is related more to the position, is issued in a separate record within the extract structure.

We're trying to get rid of that additional line

Former Member
0 Kudos

sorry.. not a HR person functionally.. you have to try it out and check if it is coming fine..

Former Member
0 Kudos

Hi Michail,

I know that this DS returns 2 records for an occupied position if the position is not occupied for 100% of the scheduled time for that month and one record for unoccupied positions.

Coming to your problem now. You can do this either in the start routine of the update rules or in the Bex query as well with a condition. I think you can try this with a condition in the report. Create a calculated kf which gives you a value 1 if either 0POS_FRE or 0POS_OCC is 1 and 0 if both of them aer 0. Include this kf in your query and put a condition on this kf saying that display records if this kf = 1. That should solve your problem.

If you want to do it in the UR, write a start routine and delete the records where both these kfs are 0.

Hope this helps.

Thanks and Regards

Subray Hegde

Former Member
0 Kudos

Great timing... I was playing around with calculated kfs in the query designer just as you sent me this suggestion. I'm trying to create the kf according to your instructions. I could use some mroe help.

I'm in the change calculated kf option. What do I type in the editor? I can't figure out how to instruct the kf to give me a value of 1 when the condition is met?

I'm typing the following:

((OPOS_FRE <> 1 OR OPOS_VAC <>1) = 1) XOR (OPOS_FRE == 0 AND OPOS_OCC ==0) = 0

Unsurprisingly the query won't even run from RSECADMIN. The ABAP debugger kicks in...

I understand the logic of what I need to do but I don't know where the settings are.

A) Where do I set the value of the calculated KF to either 0 or 1.

B) How do I get the system to display only values that are 1?

Thanks

Former Member
0 Kudos

Hi Michail,

Try this in your KF calculation. This is a way of implementing IF conditions using logical and mathematical functions.

( ( ( OPOS_FRE == 1 )* ( OPOS_VAC == 0 ) ) + ( ( OPOS_FRE == 0 )* ( OPOS_VAC == 1 ) ) + ( ( OPOS_FRE == 1 )* ( OPOS_VAC == 1 ) ) )

Hope it helps.

Thanks and Regards

Subray Hegde

Former Member
0 Kudos

Thanks, I added this in the calculated kf and now I get a value of 0 or 1 in the query. How do I get the query to display only values of 1? I tried adding a condition to the query, and set the calculated KF equal to 1. When I run the query in RSECADMIN I get the following message instead of displaying the results:

WThere is a condit. on Vehicle Class, results row suppress. active on Cost BRAIN

DO I enter the condition through View>Condition in the Bex query designer, or is there an option in the calculated kf itself where I specify that I only want to see results when the value is 1?

thanks

Former Member
0 Kudos

I also get a message 109, no data was found that meets the used conditions.

In my condition I've set the calcd kf equal to 1. I've also tried to set it different than 0. I get the same message. No data was found that meets the used conditions.

When I remove the condition and run the query in RSRT I can see that the calcd kf has values of 0 or 1.

Why is the system saying that the condition has not been met?

Thanks

Former Member
0 Kudos

Hi Michail,

What you have done is the right way of creating a condition in the report (from Bex analyzer). Do one more thing in the condition. Instead of selecting the condition for all the characteristics (by default), select a few charactertics and see if it works. The condition is the same (kf == 1). Also, try to see if you have any filters. A combination of filters and condition sometimes behaves strangely. Hope this helps.

Thanks and Regards

Subray Hegde

Answers (0)