cancel
Showing results for 
Search instead for 
Did you mean: 

POWL Navigation doesn't work because of BO_System?

Florian
Active Contributor
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

Florian
Active Contributor
0 Kudos

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

Answers (1)

Answers (1)

Florian
Active Contributor
0 Kudos

Soemthing to add, the SWO1-Object is working fine. I developed it similar to BUS2032 just with some parameters.

~Florian

Former Member
0 Kudos

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.

Florian
Active Contributor
0 Kudos

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.

Former Member
0 Kudos

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.