Adding an URL to a Work Item - Sample Code

Dimitri Dupont Dimitri.Dupont at openhr.com
Fri Mar 30 04:38:28 EDT 2007


Hello what we did here is following  for the purists it is maybe not the
cleanest code but it does the trick ;-)


1 Create a background task to create the attachement object 
The code is here below 
I did this for an appraisal process thus the 'APPR_DOC' object used but
just replace it with your object 

begin_method insertattachement changing container. 
DATA: p_botype LIKE borident-objtype   VALUE 'APPR_DOC', " 
      p_bo_id  LIKE borident-objkey, 
*" Key e.g. PO No. 
*  Object_b 
     p_msgtyp  LIKE sofm-doctp         VALUE 'URL', 
     p_docty   LIKE borident-objtype   VALUE 'MESSAGE', 
*  Relationship 
     p_reltyp  LIKE breltyp-reltype    VALUE 'URL'. 

p_bo_id = object-key. 

TYPES: BEGIN OF ty_message_key, 
      foltp TYPE so_fol_tp, 
      folyr TYPE so_fol_yr, 
      folno TYPE so_fol_no, 
      doctp TYPE so_doc_tp, 
      docyr TYPE so_doc_yr, 
      docno TYPE so_doc_no, 
      fortp TYPE so_for_tp, 
      foryr TYPE so_for_yr, 
      forno TYPE so_for_no, 
     END OF ty_message_key. 
DATA : lv_message_key TYPE ty_message_key. 
DATA : lo_message TYPE swc_object. 
DATA : lt_doc_content TYPE STANDARD TABLE OF soli-line 
                           WITH HEADER LINE. 
*----------------------------------------------------------------------*

* First derive the Attachment's ( MESSAGE )document type. 
p_docty = 'MESSAGE'. 
p_msgtyp = 'URL'. 
*----------------------------------------------------------------* 

* Create an initial instance of BO 'MESSAGE' - to call the 
* instance-independent method 'Create'. 
swc_create_object lo_message 'MESSAGE' lv_message_key. 
* define container to pass the parameter values to the method call 
* in next step. 
swc_container lt_message_container. 
* Populate container with parameters for method 
swc_set_element lt_message_container 'DOCUMENTTITLE' 'MBO Portal'. "
title of your attachement 
swc_set_element lt_message_container 'DOCUMENTLANGU' 'E'. 
swc_set_element lt_message_container 'NO_DIALOG'     'X'. 
swc_set_element lt_message_container 'DOCUMENTNAME'   p_docty. 
swc_set_element lt_message_container 'DOCUMENTTYPE'   p_msgtyp. 

* In case of URLs..it should be concatenated with &KEY& in the begining.

DATA: ilen TYPE i. 
DATA: l_url1(255). 
CASE p_msgtyp. 
  WHEN 'URL'. 
*   fill link 
    DATA: l_url TYPE string. 
    CALL FUNCTION 'ZMBO_GET_URL_LINK' 
      EXPORTING 
        PLAN_VERSION = OBJECT-KEY-PLANVERSION 
        APPRAISAL_ID = OBJECT-KEY-ID 
        PART_AP_ID   = OBJECT-KEY-PARTID 
      IMPORTING 
        L_URL        = L_URL. 
    CONCATENATE '&KEY&' l_url INTO lt_doc_content. 
**    lt_doc_content = '&KEY&http://www.google.com'
<http://www.google.com'>  . 
    APPEND lt_doc_content. 

* In case of Notes or Private Notes, get the data from files on appl 
* server or from wherever(? - remember background). 
  WHEN 'RAW'. 
    lt_doc_content = 'Hi How r u?' . 
    APPEND lt_doc_content. 
* In case of PC File attachments 
  WHEN OTHERS. 
ENDCASE. 

 

* 'DocumentContent' is a multi-line element ( itab ). 
swc_set_table lt_message_container 'DocumentContent' lt_doc_content. 
* Size is required in case of File attachments 
DATA : lv_doc_size TYPE i. 
DATA : l_file_lines TYPE i. 
DESCRIBE TABLE lt_doc_content LINES l_file_lines. 
READ TABLE lt_doc_content INDEX l_file_lines. 
lv_doc_size = ( 255 * ( l_file_lines - 1 ) ) + 
            STRLEN( lt_doc_content ). 
swc_set_element lt_message_container 'DOCUMENTSIZE'   lv_doc_size . 
* Refresh to get the reference of create 'MESSAGE' object for attachment

swc_refresh_object lo_message. 
swc_call_method lo_message 'CREATE' lt_message_container. 
* Get Key of new object 
swc_get_object_key lo_message lv_message_key. 

COMMIT WORK. 

swc_create_object lo_message 'SOFM' lv_message_key. 
swc_set_element container 'LinkAttachement' lo_message. 

end_method. 

2. Bind the task contaienr element to the workflow container element
&_ATTACH_OBJECTS& 

3. In your dialog task bind this &_ATTACH_OBJECTS& of the WF COntainer
to the Task COntainer and voila 
the trick is done 

 

Dimitri Dupont 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.mit.edu/pipermail/sap-wug/attachments/20070330/29e4fe37/attachment.htm


More information about the SAP-WUG mailing list