cancel
Showing results for 
Search instead for 
Did you mean: 

What badi is used when I call "FromSAP" pass with "ENTRYTYPE=TABLE"?

Former Member
0 Kudos

Hello,

I need to get information from table HRP1000 which contains >500 000 entries.

When I run pass fromCustom with pass type "FromSAP" to select all lines from this table, I get error about memory lack:

"Unhandled Error in DSERuntime - Exception:java.lang.OutOfMemoryError: Java heap space (failed to allocate 32 bytes)"

My fromSAP pass:

I checked the post "How to filter and read large data in SAP table using IDM Job ?", but recommendation to filter entries with "FILTER         SELECTION_EXP:0....." doesn't work for me too (as same as for post's author).

I read this post "Technical Overview of BAPIs used to connect to ABAP Application Servers" and it says that  "When reading ABAP Table information - the  RFC_READ_TABLE used".

Do I understand correctly that when I set parameters "ENTRYTYPE=TABLE" pass fromSAP will use badi RFC_READ_TABLE?

1. Where can I check it?

I would grateful if anybody can provide me link to documentation or real samples where I can see what BADI is used by toSAP or FromSAP passes.

I read  Note 1398976 - SAP IdM: Filter definition for initial load of ABAP entities,

it very nice describes how to filter Roles,Profiles and Users, but no word about how to filer Tables data.

2. If RFC_READ_TABLE is used , how could I pass parameters: OPTIONS and FIELDS to badi?

Thanks in advance!

Accepted Solutions (0)

Answers (2)

Answers (2)

dirk_pape3
Participant
0 Kudos

Hi Natalia,

maybe you have already saved your problem?!

We were just facing the same one and found a very simple solution. Instead of populating data to a Z-Table we just defined a view in the ABAP dictionary of the ERP system which includes the filtering for the relevant rows and columns of the source table (in our case HRP1001 which is even bigger).

Instead of entering HRP1001 as value to parameter TABLE we added the name of the view then (e. g. ZHRP1001).

This does not involve any BAdI or triggers to populate data into other tables and is completely transparent to the IDM.

We had just to add some authorizations to the RFC user (S_TABU_NAM and S_TABU_DIS), which were very restrictive before, and reduced our load time from about 2,5 hours to less than 10 seconds (memory usage has been reduced also dramatically).

Maybe this hint is helpful for others or even for you if you did not yet find a good solution for your problem.

Regards,

Dirk

Former Member
0 Kudos

Hi all,

I added parameter -Xmx51200M to dispatcher script and problem with OutOfMemoryError is solved.

But I need to filter data from table in any way, becuase I don't want to upload 500.000 entries when I need just 10.000 from it.

Please help me to filter data from table.

Best regards,

Natalia.

0 Kudos

Hi Natalia,

Did you manage to work out how to filter data from Hrp1000? As I need to do the same. If so could you post a screenshot of how the filteris setup

Kind Regards

Steve

Former Member
0 Kudos

Hi Natalia,

I have had this problem a few times, very useful to be able to slow IdM down when reading from a big ABAP table. I filtered using an alphabetical range:

Add the following Parameters and Values to your FromSAP pass:

FILTER1    SELECTION_RANGE/SIGN=I

FILTER2    SELECTION_RANGE/OPTION=BT

FILTER3    SELECTION_RANGE/LOW=A

FILTER4    SELECTION_RANGE/HIGH=M

Hope this is the answer for you too!

Kind regards,

Andy

Former Member
0 Kudos

Hi Stephen,

Unfortunatelly I didn't find solution for this problem.

As temporary workaround I uploaded this table to csv and then downloaded it to IDM, but it's very mindlessly.

Best regards,

Natalia.

Former Member
0 Kudos

Hi Andy,

thanks for answer, but you have filtered ROLE, not a TABLE data.

How to filter ROLE is described in Note 1398976 and it realy works.

In my case I need to filter data from table HRP1000.

Do you have any idea?

Best regards,

Natalia.

ChrisPS
Contributor
0 Kudos

Hi Natalia,

               unfortunately there is no filter possible when reading a table via a pass in the SAP

connector therefore if you have a workaround then use this. Maybe enter this in the IdM ideas place as a feature for the future (if you like of course).

Regards,

Chris

SAP IdM Support

Former Member
0 Kudos

Thanks Chris I'll stop looking now 😉

So I guess one solution would be create a Z table in the ABAP system and populate it only with the records you need, then read the entire Z table into IdM. I considered this when fixing the problem I had, before I found the FILTER option for ENTRYTYPE=ROLE when using the standard BAPI_USER_GET_DETAILS.

This has got me thinking though Natalia, - why do you need to read raw data from HRP1000 rather than using the HCM interface to IdM? This would bring across only the data required for the subset of employees you want to read.

Kind regards,

Andy

Former Member
0 Kudos

Andy,

I need to have positions description in 2 languages (UK and EN), but when I get users from HCM via standard method (HCM-->VDS-->IDM) I can get all information about user only in 1 language.

Kindly people from this site recommended me to get data directly from table HRP1000. But now I have problem to download full table.

Yes, I can create Z-table... but I had hope to use standard

Best regards,

Natalia.

0 Kudos

Hi Natalia,

Thanks for the response, it would a appear from Christopher post there is no way to apply a filter to a table.

Steve