cancel
Showing results for 
Search instead for 
Did you mean: 

Dump when switching to a different variant

Former Member
0 Kudos

Hi all,

I am a freshman for FPM, and currently I have met a issue when using it.

You know I want to switch to a different variant, but when I click the switch button, dump occurs:

-


Dump Info----


Note

The followin error text was processed in SD7 the systm: Access via 'NULL' object reference not possible.

The error occurred on the application server ldai1sd7_SD7_89 and in the work process. 9

The termination type was: RABAX_STATE

The ABAP call hierarchy was:

Method: WDDOMODIFYVIEW of program /1BCWDY/0AMWTCDY1FMANSV9U38B==CP

Method: IF_WDR_VIEW_DELEGATE~WD_DO_MODIFY_VIEW of program /1BCWDY/0AMWTCDY1FMANSV9U38B==CP

Method: DO_MODIFY_VIEW of program CL_WDR_DELEGATING_VIEW========CP

Method: MODIFY_VIEW of program CL_WDR_VIEW===================CP

Method: DO_MODIFY_VIEW of program CL_WDR_CLIENT_COMPONENT=======CP

Method: DO_MODIFY_VIEW of program CL_WDR_WINDOW_PHASE_MODEL=====CP

Method: PROCESS_REQUEST of program CL_WDR_WINDOW_PHASE_MODEL=====CP

Method: PROCESS_REQUEST of program CL_WDR_WINDOW=================CP

Method: EXECUTE of program CL_WDR_MAIN_TASK==============CP

Method: IF_WDR_RUNTIME~EXECUTE of program CL_WDR_MAIN_TASK==============CP

...

...

-


It ever worked fine before, and I have never changed my codes these days. Moreover, in some other development system

with old versions, the same codes can also work without any dump.

Has anyone met similar problems? I will appreciate your kindly help for any suggestions on this issue.

Thanks.

Accepted Solutions (0)

Answers (3)

Answers (3)

0 Kudos

you're welcome. hope it works, hehe.

yesrajkumar
Active Participant
0 Kudos

hi Alex,

Look at the following blog, this might help you.

Thanks,

S.Rajkumar.

0 Kudos

Hi

I have exactly the same problem.

I had implemented a switch between version using the overwrite_event_gaf, and a restart of the application with the use of cl_fpm_event=>gc_event_start_over.

Evereything worked fine till we made the upgrade from 701 to 720.

Then every time the FPM got restarted AND the customizing version switched, the already mentioned dump occures in the cnr_view of the FPM_GAF_COMPONt (to be exact; in the line 291 because the used object road_map_step ist initial)

I would apreciate any info concerning this.

The plog mentioned before only shows the way i already have done it.

Greetings

Stefan

0 Kudos

The restard i mentioned in my last post doesn't influence the problem. The dump occures every time the version gets shwitched, even if there was no restart before!

In the OVERRIDE_EVENT_GAF i use the following code to change the variant:

TRY.

CALL METHOD io_gaf->set_variant

EXPORTING

iv_variant_id = 'VARIANT_3'.

CATCH cx_fpm_floorplan .

ENDTRY.

Greetiings

Stefan

Edited by: Stefan Fasching on Oct 29, 2011 9:21 AM

0 Kudos

Hello everyone

The problem now has been solved by a new created note 1648280. (Thanks to Jinchi Lu

)

Greetings

Stefan

Former Member
0 Kudos

Hi Alex,

What code you have written to switch variant.

I hope you have implimented IF_FPM_GAF_CONF_EXIT/IF_FPM_OIF_CONF_EXIT and

using the method OVERRIDE_EVENT_GAF/OVERRIDE_EVENT_OIF (in that you would have class IF_FPM_GAF which has the relavant methods) to switch the variant.

give us code if possible.

Thanks & Regards,

Arvind

Former Member
0 Kudos

Hi Arvind,

Thank you very much for your reply.

Yes, I have implemented OVERRIDE_EVENT_GAF.

Here is my related codes:

-


method OVERRIDE_EVENT_GAF .

DATA: lr_pfm TYPE REF TO if_fpm.

TRY .

CASE io_gaf->mo_event->mv_event_id.

WHEN if_fpm_constants=>gc_event-start.

CASE WD_THIS->AV_VARIANT_TYPE.

WHEN 'A'.

io_gaf->set_variant( iv_variant_id = 'VARIANT_1' ).

WHEN 'B'.

io_gaf->set_variant( iv_variant_id = 'VARIANT_2' ).

WHEN OTHERS.

io_gaf->set_variant( iv_variant_id = 'VARIANT_2' ).

ENDCASE.

WHEN 'GO_V1'.

lr_pfm = wd_this->ar_fpm.

lr_pfm->raise_event_by_id( if_fpm_constants=>gc_event-start ).

  • lr_pfm->raise_event_by_id( cl_fpm_event=>gc_event_select_variant ).

WD_THIS->AV_VARIANT_TYPE = 'A'.

WHEN 'GO_V2'.

lr_pfm = wd_this->ar_fpm.

lr_pfm->raise_event_by_id( if_fpm_constants=>gc_event-start ).

WD_THIS->AV_VARIANT_TYPE = 'B'.

WHEN OTHERS.

ENDCASE.

CATCH cx_fpm_floorplan.

ENDTRY.

endmethod.

-


Thanks~~

Best Regards,

Alex

Former Member
0 Kudos

Hi Alex,

I tested te same code on my PC and it is working fine.

Did you check carfully, you might be getting the the dump from somewhere else( not because of FPM).

still, go to component config and check the Variant Id (Click on change button->Variant Parameters).

and if possible from ST22 give me the source code for line of dump and also check the Desktop 2, while debugging,

to check the method of your application from where the dump is coming.

Thanks & Regards,

Arvind

Former Member
0 Kudos

Hi Arvind,

Thank you for your reply.

In fact my codes also works in the other system, but just in the current system, the dump occurs suddenly these days.

It ever worked normally before.

Here is the debugging information:

-


ST22 INFO----


15 METHOD /1BCWDY/0AMWTCDY1FMANSV9U38B==CP /1BCWDY/B_0AMWTCDY1FMANSX1NNAA 1545

CL_CNR_VIEW_CTR=>WDDOMODIFYVIEW

Web Dynpro Component FPM_GAF_COMPONENT

Controller CNR_VIEW

14 METHOD /1BCWDY/0AMWTCDY1FMANSV9U38B==CP /1BCWDY/B_0AMWTCDY1FMANSX1NNAA 180

CLF_CNR_VIEW_CTR=>IF_WDR_VIEW_DELEGATE~WD_DO_MODIFY_VIEW

Web Dynpro Component FPM_GAF_COMPONENT

Controller CNR_VIEW

13 METHOD CL_WDR_DELEGATING_VIEW========CP CL_WDR_DELEGATING_VIEW========CM004 7

CL_WDR_DELEGATING_VIEW=>DO_MODIFY_VIEW

12 METHOD CL_WDR_VIEW===================CP CL_WDR_VIEW===================CM002 7

CL_WDR_VIEW=>MODIFY_VIEW

11 METHOD CL_WDR_CLIENT_COMPONENT=======CP CL_WDR_CLIENT_COMPONENT=======CM00T 15

CL_WDR_CLIENT_COMPONENT=>DO_MODIFY_VIEW

10 METHOD CL_WDR_WINDOW_PHASE_MODEL=====CP CL_WDR_WINDOW_PHASE_MODEL=====CM00F 24

CL_WDR_WINDOW_PHASE_MODEL=>DO_MODIFY_VIEW

9 METHOD CL_WDR_WINDOW_PHASE_MODEL=====CP CL_WDR_WINDOW_PHASE_MODEL=====CM002 112

CL_WDR_WINDOW_PHASE_MODEL=>PROCESS_REQUEST

8 METHOD CL_WDR_WINDOW=================CP CL_WDR_WINDOW=================CM00V 12

CL_WDR_WINDOW=>PROCESS_REQUEST

7 METHOD CL_WDR_MAIN_TASK==============CP CL_WDR_MAIN_TASK==============CM00I 76

CL_WDR_MAIN_TASK=>EXECUTE

6 METHOD CL_WDR_MAIN_TASK==============CP CL_WDR_MAIN_TASK==============CM00U 6

CL_WDR_MAIN_TASK=>IF_WDR_RUNTIME~EXECUTE

5 METHOD CL_WDR_CLIENT_ABSTRACT_HTTP===CP CL_WDR_CLIENT_ABSTRACT_HTTP===CM019 100

CL_WDR_CLIENT_ABSTRACT_HTTP=>HANDLE_REQUEST

4 METHOD CL_WDR_MAIN_TASK==============CP CL_WDR_MAIN_TASK==============CM00J 95

CL_WDR_MAIN_TASK=>IF_HTTP_EXTENSION~HANDLE_REQUEST

3 METHOD CL_HTTP_SERVER================CP CL_HTTP_SERVER================CM01B 388

CL_HTTP_SERVER=>EXECUTE_REQUEST_FROM_MEMORY

2 FUNCTION SAPLHTTP_RUNTIME LHTTP_RUNTIMEU02 1155

HTTP_DISPATCH_REQUEST

1 MODULE (PBO) SAPMHTTP SAPMHTTP 13

%_HTTP_START

Chosen variables

Name

Val.

No. 15 Ty. METHOD

Name CL_CNR_VIEW_CTR=>WDDOMODIFYVIEW

FIRST_TIME

2

0

0

0

2000

VIEW

D0002000

3000C400

D30000002C040000

LV_TMP_ROP_ID

FPM1

4543

60D1

0000

0000

460050004D003100

ROAD_MAP_STEP

F0000000

F0000000

FF00000000000000

%_DUMMY$$

2222

0000

0000

0000

2000200020002000

SY-REPID

/1BCWDY/0AMWTCDY1FMANSV9U38B==CP

2344545234455445344445535334334522222222

F123749F01D7434916D1E3695382DD3000000000

...

...

-


Is it enough for your analysis?

Thank you very much ~~

Best Regards,

Alex

Former Member
0 Kudos

Hi Arvind,

The dump occurs in the following place:

Component: FPM_GAF_COMPONENT

View : CNR_VIEW

Method : WDDOMODIFYVIEW( )

-


WDDOMODIFYVIEW( )----


...

...

iv_variant_id = lv_variant_id

iv_substep_id = space

iv_substep_variant = space ).

IF lv_roadmap_rendering_necessary = abap_true.

road_map_step = cl_wd_road_map_step=>new_road_map_step( view = view description = lv_name

id = lv_tmp_rop_id ).

road_map->add_step( road_map_step ).

ELSE.

road_map_step = road_map->get_step( id = lv_tmp_rop_id ).

ENDIF.

road_map_step->set_name( lv_roadmap_int ). ##########Dump occurs because road_map_step is initial#########

road_map_step->set_enabled( lv_mainstep_enabled ).

  • Create Roadmap Context Element and bind it to the UI-Element

lo_el_rop_data = lo_nd_rop_data->create_element( ).

lo_el_rop_data->set_attribute( EXPORTING name = 'ID' value = road_map_step->id ).

...

...

-


Thank you very much.

Best Regards,

Alex

Former Member
0 Kudos

These days I checked this problem again, and I find that the dump is caused because the internal implementation for

WDDOMODIFYVIEW() in CNR_VIEW of FPM_GAF_COMPONENT has been modified in the latest version. It has made it

impossible to raise the CL_FPM_EVENT=>START directly by users.

However, I am still confused on how to restart my FPM application after setting a new variant ID. I ever tried the FPM_

NAVIGATION_TO API, but got errors like "No launchpad entry"....

I will appreciate for any ideas on this problem

Thanks.

Best Regards,

Alex