SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

CL_GOS_ATTACHMENT_LIST не работает в ECC 6.0



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
den
Старший специалист
Старший специалист



Joined: 11 Oct 2007
Posts: 103

PostPosted: Thu Nov 05, 2009 3:49 pm    Post subject: CL_GOS_ATTACHMENT_LIST не работает в ECC 6.0 Reply with quote

Здравствуйте!
Второй день бьюсь, в ECC 6.0 SAP вставил дополнительную проверку и класс CL_GOS_ATTACHMENT_LIST стал валиться в дамп при показе списка аттачей для материала.
Дамп в функции SREL_GET_NEXT_RELATIONS, требуется что бы
relationtype был заполнен. Если его заполняю, то аттач-лист выводится пустой.

Code:
* New API in Rel. 6.10: Raise an exception if this FM
* possibly delivers inconsistent results
      IF relationtype IS INITIAL.
        TRY.
            li_model_role = cl_obl_model_factory=>role_conv_inst(
                 roletype ).
            .
            IF NOT li_model_role IS INITIAL.
              MESSAGE x027 WITH roletype.  "<---- DUMP
            ENDIF.
          CATCH cx_obl_model_error .
        ENDTRY.
      ENDIF.


В старых вресяих этот код рабочий. Кто-нибудь сталкивался с такой ошибкой, как обойти или по другому показать attachment list?

Code:
  DATA: gs_object                TYPE swotobjid.
  DATA: gs_borident              TYPE borident.

  gs_object-objkey  = '000000000010000020'.
  gs_object-objtype = 'BUS1001006'. "Standard material

  MOVE-CORRESPONDING gs_object TO gs_borident.

  CHECK sy-binpt IS INITIAL AND
        sy-batch IS INITIAL.

  IF go_alv_container IS INITIAL.

*-- Create container
    CREATE OBJECT go_alv_container
      EXPORTING
        container_name = 'ALVCONTAINER'.

    CALL FUNCTION 'SWU_OBJECT_PUBLISH'
      EXPORTING
        objtype           = gs_object-objtype
        objkey            = gs_object-objkey
      EXCEPTIONS
        objtype_not_found = 0
        error_message     = 0
        OTHERS            = 0.

*-- Display attachment list in foreground mode
    CREATE OBJECT go_attlist
      EXPORTING
        is_object    = gs_borident
        io_container = go_alv_container.

    go_list_viewer ?= go_attlist->go_list_viewer.

    CALL METHOD go_list_viewer->get_current(
      IMPORTING eo_object = go_list_viewer_item ).

*-- Get BOR-relationship attribute
    CALL METHOD go_list_viewer_item->get_attribute(
      IMPORTING   ep_value          = g_string
      EXCEPTIONS  no_attribute      = 1
                  object_not_exists = 2
                  OTHERS            = 3 ).

    MOVE g_string TO g_title.
    CONCATENATE p_objkey g_title INTO g_title
      SEPARATED BY space.
    CONDENSE g_title.
    MOVE g_title TO g_objdesc.

*-- Set ALV-title
    CALL METHOD go_list_viewer->set_title(
      EXPORTING ip_title = g_title ).
  ENDIF.
Back to top
View user's profile Send private message
John Doe
Модератор
Модератор


Age: 45
Joined: 05 Nov 2007
Posts: 725
Location: КраснАдар

PostPosted: Thu Nov 05, 2009 6:55 pm    Post subject: Reply with quote

Тоже столкнулся. Победить сходу не удалось, можно в принципе самому вывод написать. Список приложений легко получить через BAPI_REL_GETRELATIONS.
Back to top
View user's profile Send private message Blog
ppeter
Участник
Участник



Joined: 29 Oct 2008
Posts: 15

PostPosted: Fri Nov 06, 2009 10:50 am    Post subject: Reply with quote

Привет!

CL_GOS_ATTACHMENT_LIST - устаревший класс. Вместо него для вывода списка приложений был разработан другой: CL_ATTACHMENT_LIST.

Code:
DATA: GOSCONT TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
data: io_object type ref to CL_SOBL_BOR_ITEM.
DATA: I_OBJECT TYPE BORIDENT.
DOCLIST_new TYPE REF TO CL_ATTACHMENT_LIST.


Code:
MODULE ALV_DOCS_PBO OUTPUT.
  IF GOSCONT IS INITIAL.
    CREATE OBJECT GOSCONT
      EXPORTING
        CONTAINER_NAME = 'GOSCONT'.
    CREATE OBJECT IO_OBJECT
      EXPORTING
        IS_BOR = I_OBJECT.
  endif.

  data: lf_mode type SGS_RWMOD.
  case g_mode.
    when CS_DISPLAY.
      lf_mode = cl_attachment_list=>GC_MOD_DISPLAY.
    when CS_CHANGE.
      lf_mode = cl_attachment_list=>GC_MOD_edit.
  endcase.

   if DOCLIST_new is initial.

    TRY.
        CREATE OBJECT DOCLIST_new
          EXPORTING
            IO_OBJECT       = IO_OBJECT
            IO_CONTAINER    = goscont
            IP_MODE         = lf_mode.
      CATCH CX_SOBL_BROWSER .
    ENDTRY.
    TRY.
        CALL METHOD DOCLIST_NEW->DISPLAY.
      CATCH CX_SOBL_BROWSER .
    ENDTRY.
  ENDIF.

ENDMODULE.                 " ALV_DOCS_PBO  OUTPUT
[/code]
Back to top
View user's profile Send private message
vga
Мастер
Мастер


Age: 200
Joined: 04 Oct 2007
Posts: 1218
Location: Санкт-Петербург

PostPosted: Fri Nov 06, 2009 11:03 am    Post subject: Reply with quote

Или использовать класс CL_GOS_ATTACHMENTS
Пример: программа GOS_SERVICE_TEST

Code:

  DATA: gs_object                TYPE swotobjid.
  DATA: gs_borident              TYPE borident.

  gs_object-objkey  = '000000000010000020'.
  gs_object-objtype = 'BUS1001006'. "Standard material

  MOVE-CORRESPONDING gs_object TO gs_borident.

  CREATE OBJECT go_alv_container
      EXPORTING
        container_name = 'ALVCONTAINER'.

    DATA:
      go_attachments TYPE REF TO cl_gos_attachments,
      lo_bitem TYPE REF TO cl_browser_item,
      ls_layout TYPE sgs_s_allo,
      l_mode TYPE sgs_rwmod VALUE 'D'.

      CREATE OBJECT lo_bitem TYPE cl_sobl_bor_item
          EXPORTING
            is_bor = gs_borident.

      CREATE OBJECT go_attachments
              EXPORTING
                io_object       = lo_bitem
                ip_check_arl    = 'X'
                ip_check_bds    = 'X'
                io_container    = go_alv_container
                is_layout       = ls_layout
                ip_mode         = l_mode
                ip_notes        = 'X'
                ip_attachments  = 'X'
                ip_urls         = 'X'
                .

      go_attachments->display( ).
Back to top
View user's profile Send private message Blog Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.