cancel
Showing results for 
Search instead for 
Did you mean: 

Service For objects in Functional Location & Equipment?

Former Member
0 Kudos

Dear All,

While taking the Print of WCA automatically the Document which we attached using service objects in Functional Location or Equipment ( for which we create WCA)  should also be printed .

Is it Possible?

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi Pradeep,

Check out the following ABAP code. This will help you to access the attachments that are linked to your WCA objects. Modify your WCA print program and append the print program for these objects also. The below given program is also available on net. Pls modify according to your requirement.

Hope this solves.

Regards

Sathish

REPORT /ctac/ami_tool_down_attachmnts LINE-SIZE 1000.

  • &---------------------------------------------------------------------*
  • & C T A C T E M P L A T E S A N D T O O L S
  • &---------------------------------------------------------------------*
  • & Author | Ctac Ben Meijs
  • & Date | Oktober 2006
  • & Release | R/3 6.20 vv
  • & Version | V1
  • & Released for use | 12-10-2006
  • &---------------------------------------------------------------------*
  • $ Purpose | Download Tool for attachments
  • &---------------------------------------------------------------------*
  • $*$----------------------------------------------------------------*
  • $*$ Company  : Ctac AMI
  • $*$ Author  : Ben Meijs
  • $*$ Date  : 12-10-2006
  • $*$ SAP rel. : 620 vv
  • $*$ Transport:
  • This program enables you to download attachments in BINARY format
  • to your client. These attachments are for example attached using
  • the object services option.
  • In table SRGBTBREL, the information is stored that is needed
  • to find attachments.
  • No updates are performed in this program.
  • $*$----------------------------------------------------------------*
  • $*$----------------------------------------------------------------*
  • $*$ M O D I F I C A T I O N S *
  • $*$----------------------------------------------------------------*
  • & Author |
  • & Date | ..-..-....
  • & Change | Notification/Project - Customernumber
  • & Transport request|
  • & Purpose Change |
  • & |
  • & DB-Changes | (database updates?, relatie tussen updates)
  • &-------------------------------------------------------------------*


  • $*$----------------------------------------------------------------*
  • $*$ G L O B A L T Y P E D E C L A R A T I O N *
  • $*$----------------------------------------------------------------*
  • $*$----------------------------------------------------------------*
  • $*$ Type pool declarations
  • $*$----------------------------------------------------------------*

TYPE-POOLS: abap, "ABAP reporting types / constantsicon. "Possible icons

  • $*$----------------------------------------------------------------*
  • $*$ Type Definitions
  • $*$----------------------------------------------------------------*

TYPES: ty_fieldname(80) TYPE c. TYPES:BEGIN OF ts_key, foltp TYPE so_fol_tp, folyr TYPE so_fol_yr, folno TYPE so_fol_no, objtp TYPE so_obj_tp, objyr TYPE so_obj_yr, objno TYPE so_obj_no, forwarder TYPE so_usr_nam, END OF ts_key .

TYPES:BEGIN OF ts_attachment, foltp TYPE so_fol_tp, folyr TYPE so_fol_yr, folno TYPE so_fol_no, objtp TYPE so_obj_tp, objyr TYPE so_obj_yr, objno TYPE so_obj_no, brelguid TYPE oblguid32, roletype TYPE oblroltype, END OF ts_attachment .

TYPES:tt_attachment TYPE TABLE OF ts_attachment .

  • $*$----------------------------------------------------------------*
  • $*$ G L O B A L D A T A D E C L A R A T I O N *
  • $*$----------------------------------------------------------------*
  • $*$----------------------------------------------------------------*
  • $*$ Global Data Declarations
  • $*$----------------------------------------------------------------*

TABLES: soc3. "containsDATA: ta_srgbtbrel TYPE STANDARD TABLE OF srgbtbrel,wa_srgbtbrel TYPE srgbtbrel, wa_sood TYPE sood.

DATA:tp_path TYPE ty_fieldname VALUE 'FILENAME-FILEEXTERN'.

  • $*$----------------------------------------------------------------*
  • $*$ S E L E C T I O N S C R E E N *
  • $*$----------------------------------------------------------------*
  • $*$ Define your selection-criteria here *
  • $*$----------------------------------------------------------------*

SELECT-OPTIONS: so_insti FOR wa_srgbtbrel-instid_a,so_typid FOR wa_srgbtbrel-typeid_a DEFAULT 'TRDIR', so_catid FOR wa_srgbtbrel-catid_a DEFAULT 'BO'.

PARAMETERS  : pa_filty(3) TYPE c DEFAULT 'BIN' OBLIGATORY,pa_path LIKE (tp_path) OBLIGATORY.

  • $*$-------------------------------------------------------------------*
  • $*$ M A I N P R O C E S S I N G *
  • $*$-------------------------------------------------------------------*

START-OF-SELECTION.SELECT * FROM srgbtbrel INTO TABLE ta_srgbtbrel WHERE instid_a IN so_insti AND typeid_a IN so_typid AND catid_a IN so_catid.

IF sy-subrc eq 0. SORT ta_srgbtbrel BY instid_a typeid_a catid_a. DELETE ADJACENT DUPLICATES FROM ta_srgbtbrel COMPARING instid_a typeid_a catid_a.
LOOP AT ta_srgbtbrel INTO wa_srgbtbrel. PERFORM process_attachments USING wa_srgbtbrel-instid_a wa_srgbtbrel-typeid_a wa_srgbtbrel-catid_a. ENDLOOP. ENDIF.

END-OF-SELECTION.

  • $*$-------------------------------------------------------------------*
  • $*$ F O R M R O U T I N E S *
  • $*$-------------------------------------------------------------------*
  • &---------------------------------------------------------------------*
  • & Form process_attachments
  • &---------------------------------------------------------------------*
  • Process attachemnts for one specific object
  • ----------------------------------------------------------------------*

FORM process_attachments USINGutp_instid TYPE any utp_typeid TYPE c utp_catid TYPE c.
DATA: lta_sood TYPE STANDARD TABLE OF sood, lwa_sood TYPE sood.

DATA: ltp_pathin(1000) type c, ltp_filename TYPE string.
DATA: ltp_sortfield TYPE char30. DATA: lta_objcont TYPE soli_tab. DATA: ltp_binfilesize LIKE soxwd-doc_length. DATA: lta_attachments TYPE tt_attachment, lwa_attachments LIKE LINE OF lta_attachments.
  • 1 First get all attachment to find the link that
PERFORM get_item_links USING utp_instid utp_typeid utp_catid CHANGING lta_attachments.
CHECK LINES( lta_attachments ) > 0.
LOOP AT lta_attachments INTO lwa_attachments. WRITE: / utp_instid, utp_typeid, utp_catid .
CLEAR lta_sood[].
SELECT * FROM sood INTO TABLE lta_sood WHERE objtp = lwa_attachments-objtp AND objyr = lwa_attachments-objyr AND objno = lwa_attachments-objno.
  • For every attachment! (probably one-on-one)

LOOP AT lta_sood INTO lwa_sood. ltp_pathin = pa_path. ltp_binfilesize = wa_sood-objlen.

WRITE: lwa_sood-objtp, lwa_sood-objyr, lwa_sood-objno.
CONCATENATE lwa_sood-objtp lwa_sood-objyr lwa_sood-objno INTO ltp_sortfield.
IMPORT
  • objhead_tab
objcont_tab TO lta_objcont
  • objpara_tab
  • objparb_tab
  • transa
  • report
  • dialog
  • functi

FROM DATABASE soc3(dt) ID ltp_sortfield.

IF sy-subrc = 0.
  • Create name of the attachment
CONCATENATE ltp_pathin '\' utp_typeid '_' utp_instid '_' lwa_sood-objdes '.' lwa_sood-file_ext INTO ltp_pathin.
  • make sure that in the path to client, no double slashes are
  • entered (except first two positions)

REPLACE '\\' WITH '\' INTO ltp_pathin+2. TRANSLATE ltp_pathin USING '/ '.

  • Download to the
CALL FUNCTION 'SO_OBJECT_DOWNLOAD' EXPORTING bin_filesize = ltp_binfilesize default_filename = filetype = pa_filty path_and_file = ltp_pathin extct = lwa_sood-extct no_dialog = 'X'
  • codepage =

IMPORTING

  • FILELENGTH =
  • F_CANCELLED =
  • ACT_FILETYPE =

act_filename = ltp_filename TABLES objcont = lta_objcont EXCEPTIONS file_write_error = 1 invalid_type = 2 x_error = 3 kpro_error = 4 OTHERS = 5 . IF sy-subrc <> 0. WRITE: 'Error Download'(e02), sy-msgid , sy-msgty, sy-msgno, sy-msgv1, sy-msgv2, sy-msgv3, sy-msgv4. ELSE. WRITE: 'OK download'(e01), ltp_filename. ENDIF. ELSE. WRITE: 'Error download'(e02), ltp_sortfield. ENDIF. ENDLOOP. ENDLOOP.

ENDFORM. "process_attachments

  • &---------------------------------------------------------------------*
  • & Form get_item_links
  • &---------------------------------------------------------------------*
  • This form is copied from a SAP method used by object services
  • to find all links for one object
  • The three formal parameters of this routine identify the object.
  • Every object can have more than one attachment.
  • &---------------------------------------------------------------------*

FORM get_item_links USING utp_instid TYPE anyutp_typeid TYPE c utp_catid TYPE cCHANGING

cta_attachments TYPE tt_attachment.
  • Data definitions from SAP are taken over without changing naming
  • conventions

DATA: lo_boritem TYPE REF TO cl_sobl_bor_item, lo_al_item TYPE REF TO cl_gos_al_item, li_link TYPE REF TO if_browser_link, ls_option TYPE obl_s_relt, lt_options TYPE obl_t_relt, ls_key TYPE ts_key, ls_attachment TYPE ts_attachment, lt_attachment TYPE tt_attachment, lt_links TYPE obl_t_link, ls_link TYPE obl_s_link, lp_linkid TYPE blnk_inst.

DATA: gs_lpor     TYPE     sibflporb.
  • go_bitem = io_bitem.
CLEAR cta_attachments[].
gs_lpor-instid = utp_instid. gs_lpor-typeid = utp_typeid. gs_lpor-catid = utp_catid.
ls_option-sign = 'I'. ls_option-option = 'EQ'.
ls_option-low = 'ATTA'. APPEND ls_option TO lt_options.
ls_option-low = 'NOTE'. APPEND ls_option TO lt_options.
ls_option-low = 'URL'. APPEND ls_option TO lt_options.
TRY. CALL METHOD cl_binary_relation=>read_links_of_binrels EXPORTING is_object = gs_lpor it_relation_options = lt_options ip_role = 'GOSAPPLOBJ' ip_no_buffer = IMPORTING et_links = lt_links. . LOOP AT lt_links INTO ls_link. CASE ls_link-typeid_b . WHEN 'MESSAGE'. ls_key = ls_link-instid_b. MOVE-CORRESPONDING ls_key TO ls_attachment. ls_attachment-roletype = ls_link-roletype_b. IF ls_link-brelguid IS INITIAL. ls_attachment-brelguid = ls_link-relguidold. ELSE. ls_attachment-brelguid = ls_link-brelguid. ENDIF. APPEND ls_attachment TO lt_attachment.
WHEN OTHERS. CONTINUE. ENDCASE. ENDLOOP.
IF sy-subrc = 0.
  • CALL METHOD create_links
  • EXPORTING
  • io_bitem = io_bitem
  • it_attachment = lt_attachment
  • IMPORTING
  • et_partner = et_partner
  • et_links = et_links.
ENDIF. CATCH cx_obl_parameter_error . CATCH cx_obl_internal_error . CATCH cx_obl_model_error . CATCH cx_root. ENDTRY.
cta_attachments[] = lt_attachment[].

ENDFORM. "get_item_links

Former Member
0 Kudos

It is not possible with standard SAP print functionality.

You may need to go for some third party tool support. You search for Prometheus tool.

http://prometheusgroup.us/videos/WOPM.exe

sebastian_lenartowicz
Active Contributor
0 Kudos

Greetings Varma, Maheswaran,

I don't believe Prometheus Print Manager supports WCAs at this moment. It does a great job printing attachments to objects related to Work Orders (Orders themselves, Functional Locations, Equipments, Task Lists...) so this could indeed help meet your requirement.

Former Member
0 Kudos

As initial query was about to print the Services of Object attachments, I recommended Prometheus Print Manager tool. I have not used & I am not aware of its functionality.

Its better for him to do the study before going for that tool.