Quantcast
Channel: SCN : All Content - SAP CRM: Webclient UI - Framework
Viewing all articles
Browse latest Browse all 4552

Program to create URL in Attachment Block of Opportunity/Activity/BP in CRM WEB UI

$
0
0

Hello Guys,


In this document, I'll explain the way to create a URL directly in the Attachment Block of any Opportunity using a Custom Program, without going to the Web UI.

This can be really helpful in case there is a requirement to automatically attach a unique URL for each opportunity after Create/Change operation.


For illustration, here I have created a Program to create the URL, but you can also put the code in a FM & call the same during/after the save or as per the business requirement.


Below is the small piece of code which will solve our purpose.

 

REPORT  ztest1.
PARAMETERS : p_opp_id TYPE crmt_object_id,      " Opportunity ID             p_url    TYPE char100 LOWER CASE.             " External URL
DATA : lv_opp_guid        TYPE crmt_object_guid,       wa_bus_obj     TYPE sibflporb,       lt_url         TYPE sdokcntascs,       wa_url         TYPE sdokcntasc,       lt_prop        TYPE sdokproptys,       wa_prop        TYPE sdokpropty,       wa_loio        TYPE skwf_io,       wa_phio        TYPE skwf_io,       wa_error       TYPE skwf_error.
CHECK p_url IS NOT INITIAL AND p_opp_id IS NOT INITIAL.
***
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'  EXPORTING    input  = p_opp_id  IMPORTING    output = p_opp_id.
***
SELECT SINGLE guid  FROM crmd_orderadm_h  INTO lv_opp_guid  WHERE object_id = p_opp_id.
***
wa_url-line = p_url.
APPEND wa_url TO lt_url.
***
wa_bus_obj-instid = lv_opp_guid.  "(Opportunity GUID)
wa_bus_obj-typeid = 'BUS2000111'. "(For Opportunity)
wa_bus_obj-catid  = 'BO'.         "(Business Object)
***
wa_prop-name = 'KW_RELATIVE_URL'. "The name of URL
wa_prop-value = p_opp_id.
APPEND wa_prop TO lt_prop.
wa_prop-name = 'CONTENT_URL'.
wa_prop-value = p_url.
APPEND wa_prop TO lt_prop.
wa_prop-name = 'LANGUAGE'.
wa_prop-value = sy-langu.
APPEND wa_prop TO lt_prop.
wa_prop-name = 'DESCRIPTION'.
wa_prop-value = 'Opportunity External URL'.
APPEND wa_prop TO lt_prop.
***
CALL METHOD cl_crm_documents=>create_url  EXPORTING    url             = lt_url    properties      = lt_prop    business_object = wa_bus_obj  IMPORTING    loio            = wa_loio    phio            = wa_phio    error           = wa_error.
***
IF wa_error IS INITIAL.  WRITE : 'URl added to Oppty : ', p_opp_id .
ELSE.  MESSAGE ID wa_error-id TYPE wa_error-type NUMBER wa_error-no        WITH wa_error-v1 wa_error-v1 wa_error-v1 wa_error-v1.
ENDIF.

 

The above program calls the Static Method CREATE_URL of Global Class CL_CRM_DOCUMENTS and the logic is pretty straight forward & simple.


If I execute the above program with below inputs :

 

2.png

 

The URL will be directly added in the Attachment block of opportunity like below:

 

4.png

 

You can use the same program for Activities/ Business Partners or any other CRM object, you just need to pass the corresponding Business Object (BO) Type & the respective GUID in the method parameter "BUSINESS_OBJECT". (for Eg. BUS1006 for Business Partner / BUS2000126 for Activity)

 

I hope this will be helpful for you. Please add comments if you need any further help or inputs.

 

Regards,

Bharat Bajaj


Viewing all articles
Browse latest Browse all 4552

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>