on 06-30-2015 8:16 AM
Hi all,
I got a specific problem and does not get a step forward. I'm triing to navigate via OBN-NAvigation into a Transaction. I developed everything well I think.
I created an own SWO1-Object and testing is ok, but my POWL-List always navigate to itself again.
As I can read in the documention SAP provides I'm pretty sure, that I need to pass also the bo_system. But I have no idea where I can find it.
Looking into standard classes let me recognize, that there is always a constant in, which provides a system (I marked the variable red below)
Has someone an idea, where I can find the bo_system to my swo1 object.
DATA: lv_trvog type trvog.
DATA: ls_portal_actions TYPE powl_follow_up_sty.
DATA: ls_parameter type POWL_NAMEVALUE_STY.
FIELD-SYMBOLS: <lft_usage_data> TYPE YVV2_PROMOTION_POWL_TT.
FIELD-SYMBOLS: <lf_usage_data> TYPE YVV2_PROMOTION_POWL.
CLEAR:
e_portal_actions,
e_messages,
e_do_refresh,
e_result_lines_changed,
e_changes_processed,
e_selected_changed,
e_actions_changed.
* SWO1-Object: BPR_SLSORD
* ls_portal_actions-bo_name = 'sales_order'. "#EC NOTEXT
*Correct Name?
ls_portal_actions-bo_system = 'SAP_ERP_SalesService'. "#EC NOTEXT
ls_portal_actions-fire_wdevent = 'X'.
* --- handle actions ------------------------------------------------
CASE i_actionid.
* create
WHEN me->gc_action_create.
* create with reference
WHEN me->gc_action_create_ref.
* display
WHEN me->gc_action_display.
* change
WHEN me->gc_action_edit.
* delete
WHEN me->gc_action_delete.
* navigate to vbeln
WHEN me->gc_action_vbeln.
"Implement the user navigation to VA03
UNASSIGN <lft_usage_data>.
UNASSIGN <lf_usage_data>.
ASSIGN c_result_tab TO <lft_usage_data>.
IF <lft_usage_data> is ASSIGNED.
READ TABLE <lft_usage_data> ASSIGNING <lf_usage_data> INDEX i_action_index.
IF <lf_usage_data> is ASSIGNED.
SELECT SINGLE trvog from vbak into lv_trvog where vbeln = <lf_usage_data>-vbeln.
IF sy-subrc <> 0 ##needed.
ENDIF.
* ls_parameter-key = 'VBAK_VBELN'. "#EC NOTEXT
* ls_parameter-value = <lf_usage_data>-vbeln.
* APPEND ls_parameter TO e_portal_actions-parameters.
* e_portal_actions-fire_wdevent = abap_true.
* ls_portal_actions-bo_op_name = 'salesorder_display'. "#EC NOTEXT
* SWO1-Object: BPR_SLSORD
* NAvigation kopiert von Rolle SAP_BPR_INT_SALES_REP_14
* ls_portal_actions-fire_wdevent = 'X'.
ls_portal_actions-bo_name = 'yvv205salesorder'.
ls_portal_actions-bo_op_name = 'displayvbeln'.
ls_parameter-key = 'VBELN'.
ls_parameter-value = <lf_usage_data>-vbeln.
INSERT ls_parameter INTO TABLE ls_portal_actions-parameters.
ls_parameter-key = 'TRVOG'.
ls_parameter-value = lv_trvog. "This parameter handles the transaction VA03/13/23
INSERT ls_parameter INTO TABLE ls_portal_actions-parameters.
ENDIF.
ENDIF.
~Florian
Hi Samuli,
thank you for your support. I found the issue today and want to share it here to close this question. The navigation did not work because of an corrupt ICM-Cache after our EHP7 upgrade.
The basis-guys took care of it and now it works fine.
Anyway, I fought a bit with my OBN-navigation to get this thing running. At the moment I'm working on a paper to conserve the handling for me. After I'm finished I will also share it as an wiki-page or blog...
This issue is closed.
~Florian
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Soemthing to add, the SWO1-Object is working fine. I developed it similar to BUS2032 just with some parameters.
~Florian
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I assume the code you have pasted is the HANDLE_ACTION method of the feeder class? In that case I suggest you do not clear the export parameters (e.g. E_PORTAL_ACTIONS), they come populated with values from the super classes. See Implementing a Feeder Class - UI Technologies in SAP NetWeaver - SAP Library for details.
Yes,
that is handle_action. There is no data passed from the superclass. I passed the full method again. I cannot see my mistake or what I should have coded wrong. Only with the bo_system I'm really not sure if that is wrong in my context.
~Florian
METHOD if_powl_feeder~handle_action.
DATA: ls_portal_actions TYPE powl_follow_up_sty.
DATA: ls_parameter TYPE powl_namevalue_sty.
FIELD-SYMBOLS: <lft_usage_data> TYPE yvv2_orderhead_powl_tt.
FIELD-SYMBOLS: <lf_usage_data> TYPE yvv2_orderhead_powl.
CLEAR:
e_portal_actions,
e_messages,
e_do_refresh,
e_result_lines_changed,
e_changes_processed,
e_selected_changed,
e_actions_changed.
* SWO1-Object: BPR_SLSORD
* ls_portal_actions-bo_name = 'sales_order'. "#EC NOTEXT
*Correct Name?
ls_portal_actions-bo_system = 'SAP_ERP_SalesService'. "#EC NOTEXT
ls_portal_actions-fire_wdevent = 'X'.
* --- handle actions ------------------------------------------------
CASE i_actionid.
* create
WHEN me->gc_action_create.
* create with reference
WHEN me->gc_action_create_ref.
* display
WHEN me->gc_action_display.
* change
WHEN me->gc_action_edit.
* delete
WHEN me->gc_action_delete.
* navigate to vbeln
WHEN me->gc_action_vbeln.
"Implement the user navigation to VA03
UNASSIGN <lft_usage_data>.
UNASSIGN <lf_usage_data>.
ASSIGN c_result_tab TO <lft_usage_data>.
IF <lft_usage_data> IS ASSIGNED.
READ TABLE <lft_usage_data> ASSIGNING <lf_usage_data> INDEX i_action_index.
IF <lf_usage_data> IS ASSIGNED.
* ls_parameter-key = 'VBAK_VBELN'. "#EC NOTEXT
* ls_parameter-value = <lf_usage_data>-vbeln.
* APPEND ls_parameter TO e_portal_actions-parameters.
* e_portal_actions-fire_wdevent = abap_true.
* ls_portal_actions-bo_op_name = 'salesorder_display'. "#EC NOTEXT
* SWO1-Object: BPR_SLSORD
* NAvigation kopiert von Rolle SAP_BPR_INT_SALES_REP_14
* ls_portal_actions-fire_wdevent = 'X'.
ls_portal_actions-bo_name = 'yvv205salesorder'.
ls_portal_actions-bo_op_name = 'displayvbeln'.
ls_parameter-key = 'VBAK-VBELN'.
ls_parameter-value = <lf_usage_data>-vbeln.
INSERT ls_parameter INTO TABLE ls_portal_actions-parameters.
ls_parameter-key = 'VBAK-TRVOG'.
ls_parameter-value = <lf_usage_data>-trvog. "This parameter handles the transaction VA03/13/23
INSERT ls_parameter INTO TABLE ls_portal_actions-parameters.
ENDIF.
ENDIF.
WHEN OTHERS.
CLEAR ls_portal_actions.
ENDCASE.
e_portal_actions = ls_portal_actions.
ENDMETHOD.
In that case you can try to populate E_PORTAL_ACTIONS manually by using the following code
* get launch information e.g. OBN
call method io_wi_handler->get_launch_exec_info
importing
e_portal_actions = e_portal_actions
exceptions
fallback_used = 1
others = 2.
I have never had to populate the system in the navigation parameters.
User | Count |
---|---|
84 | |
24 | |
12 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.