Age: 46 Joined: 05 Nov 2007 Posts: 725 Location: КраснАдар
Posted: Thu Nov 18, 2010 11:07 am Post subject: Список приложений из GOS
Преамбула: Файлики, подцепленные к объектам через GOS, в моей системе сохраняются в БД, а не на контент-сервере. Пользователи сканируют хаотично, не придерживаясь рекомендаций IT, размер файлов не контролируется, вследствие чего имеем общее увеличение времени на бэкап БД.
Фабула: Найти большие файлы для дальнейшей оптимизации (пересканирования либо конвертации). Для этой цели создается отчет для вывода списка объектов системы с приложенными файлами. Реализуется возможность проваливаться на уровень приложения из списка.
Code:
TYPE-POOLS: slis.
DATA: t_atta TYPE TABLE OF srgbtbrel WITH HEADER LINE.
DATA: g_object TYPE bapiborid,
lt_relat TYPE TABLE OF bapirellk,
fcat TYPE lvc_t_fcat,
hcat TYPE lvc_s_fcat.
DATA: t_obj TYPE HASHED TABLE OF rpybobs WITH UNIQUE KEY objtype
WITH HEADER LINE.
DATA: BEGIN OF obj,
objtp TYPE so_obj_tp,
objyr TYPE so_obj_yr,
objno TYPE so_obj_no,
END OF obj.
DATA: otype TYPE rpybobs-objtype,
length LIKE sood-objlen.
DATA: BEGIN OF outtab OCCURS 0,
objtype LIKE rpybobs-objtype,
shorttext LIKE rpybobs-shorttext,
objnum LIKE srgbtbrel-instid_a,
attnum TYPE i,
length TYPE p DECIMALS 3,
uname TYPE sy-uname,
END OF outtab.
PARAMETERS: p_size TYPE i. " Допустимый размер файла в кБ
START-OF-SELECTION.
SELECT * FROM srgbtbrel INTO TABLE t_atta
WHERE reltype = 'ATTA'.
IF sy-subrc <> 0.
MESSAGE 'Нет загруженных приложений'(001) TYPE 'S' DISPLAY LIKE 'E'.
EXIT.
ENDIF.
LOOP AT t_atta.
CLEAR outtab.
READ TABLE t_obj WITH TABLE KEY objtype = t_atta-typeid_a.
IF sy-subrc <> 0.
MOVE t_atta-typeid_a TO otype.
CALL FUNCTION 'RPY_OBJECTTYPE_READ'
EXPORTING
objecttype_id = otype
IMPORTING
objecttype_info = t_obj.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
INSERT t_obj INTO TABLE t_obj.
ENDIF.
outtab-objtype = t_atta-typeid_a.
outtab-shorttext = t_obj-shorttext.
outtab-objnum = t_atta-instid_a.
outtab-attnum = 1.
obj = t_atta-instid_b+17(17).
SELECT SINGLE objlen cronam FROM sood INTO (length, outtab-uname)
WHERE objtp = obj-objtp
AND objyr = obj-objyr
AND objno = obj-objno.
*&---------------------------------------------------------------------*
*& Form user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->OKCODE text
* -->SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING okcode TYPE sy-ucomm
selfield TYPE slis_selfield.
DATA: l_object TYPE sibflporb.
CASE okcode.
WHEN '&IC1'.
IF selfield-value IS NOT INITIAL.
CLEAR outtab.
READ TABLE outtab INDEX selfield-tabindex.
l_object-instid = outtab-objnum.
l_object-typeid = outtab-objtype.
l_object-catid = 'BO'.
CALL FUNCTION 'GOS_ATTACHMENT_LIST_POPUP'
EXPORTING
is_object = l_object.
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.