cancel
Showing results for 
Search instead for 
Did you mean: 

IF_RSPLS_CR_METHODS~CREATE behaviour with new lines (before and after local filter)

former_member440270
Discoverer
0 Kudos

Hello!

I have an input form with new lines (prompts for each characteristic). Input schedule uses ADSO with characteristic relationships (Exit type). When I change the local filter (prompt) - the form calls method IF_RSPLS_CR_METHODS~CREATE with filter parameter i_tsx_seldr (which I convert to table lt_range). But when I click OK button of promt I see another call of IF_RSPLS_CR_METHODS~CREATE method. Аnd with the choice of each subsequent characteristic of new line, the number of calls CREATE method after OK button of promt increases. So I see the next behaviour:

1. Before OK button of promt - 1 call of CREATE - with local filter of my new line

Account I selected in new line in lt_range filter:

2. After OK button of prompt - 1, 3, 5, 7... calls of CREATE (for 1, 2, 3, 4 characteristics in relationships) - with global filter of my BEx query

All accounts from global filter of my BEx query in lt_range:

3. After data changing in the form - 7 callls of CREATE (for 4 characteristics in relationships) - with global filter of my BEx query

Could anyone explain behaviour of 2 and 3 point above? Is it possible to switch off this steps (I need only first step - 1 call of CREATE before prompt window appears, 2 and 3 points negativly affects on performance)

Accepted Solutions (1)

Accepted Solutions (1)

0 Kudos

Hi Vitaly,

it seems that in AO under 'Components' for 'Crosstab' you use the setting 'Planning New Line Validation': Lines or Members. Please use None as the server checks the consistency of new lines anyway in 'Recalculate' or 'Save' .

It seems that in the cases Lines, Members AO sends additional value help calls to the server. I wonder what can be checked with these additional value help calls.

Regards,

Gregor

Answers (3)

Answers (3)

former_member440270
Discoverer
0 Kudos

Thank you very much, Gregor, it solved my problem!

former_member440270
Discoverer
0 Kudos

Hi Gregor, thank you for your help and answer.

My query settings are shown below (characteristic relationships is active only for value help in New Lines):

When I press OK in value help there are a lot of CREATE method calls with static (fix) filter (not effective filter) The same behaviour is when I input data in data cells of BEx Query.

For example, if I press OK in value help window below, there will be 7 calls of create with static filter of Bex query:

lt_range includes all accounts of BEx query, but in new line i see only AB202040407.

0 Kudos

Hi Vitaly,

method IF_RSPLS_CR_METHODS~CREATE is called if the system needs to retrieve all valid combinations based on characteristic relationships. How many calls are required depends on many things, usually query settings.

Examples:

1 Query uses 'Access Mode for Result Values' based on characteristic relationships. This means the query result set does not only contain booked values but also valid combinations based on characteristic relationships. The contents of i_tsx_seldr here usually is the effective filter (intersection of fix and dynamic filter) of the query. The number of calls required depend on the characteristics with the above setting and where these characteristics are used.

2 Query uses value help based on characteristic relationships in new lines. Here i_tsx_seldr is again the effective filter, but may also contain values from other cells in the new line already filled. The system checks whether the value help characteristic is used in a characteristic relationship. If yes, the relation might share characteristics with other relations, then these relations are also relevant, etc. The result then is the inner-join of the results of the CREATE methods calls projected to the value help characteristic.

Also disaggregation and also some planning function types might use the CREATE methods.

In an exit implementation of a characteristic relationship we don't know whether buffering is allowed. You can delegate buffering to the system easily: set the flag N_USE_EXTERNAL_BUFFER contained in interface <IF_RSPLS_CHAR_RELATION> in the constructor of your exit implementation. Then the system buffers the results of all methods CREATE, CHECK, DERIVE. Cf. also the parameter and method documentation in SE24.

Regards,

Gregor