Quantcast
Channel: SCN: Message List - SAP CRM: Webclient UI - Framework
Viewing all articles
Browse latest Browse all 7775

Re: Formatting Date field

$
0
0

Hello Tim,

 

Please put below code in setter method::--

 

method SET_TIME_FROM.
     DATA:
       current TYPE REF TO if_bol_bo_property_access,
       dref    TYPE REF TO data,
       copy    TYPE REF TO data.
      DATA: lv_timestamp       TYPE crmt_date_timestamp_from,
       lv_timestamp_from  TYPE crmt_date_timestamp_from,
       lv_timezone        TYPE crmt_timezone_from,
       lv_date            TYPE sy-datum,
       lv_time TYPE sy-uzeit,
       lv_dat TYPE d,
       tempchar(40) TYPE c.

     FIELD-SYMBOLS:
       <nval> TYPE ANY,
       <oval> TYPE ANY.

*   get current entity
     if iterator is bound.
       current = iterator->get_current( ).
     else.
       current = collection_wrapper->get_current( ).
     endif.

*   get old value and dataref to appropriate type

     TRY.
     dref = current->get_property( 'TIME_FROM' )."#EC NOTEXT
       CATCH cx_sy_ref_is_initial.
         RETURN.
     ENDTRY.


*   assure that attribue exists
     CHECK dref IS BOUND.

*   set <oval> to old value
     ASSIGN dref->* TO <oval>.
*   create a copy for new value
     CREATE DATA copy LIKE <oval>.
*   set <nval> to new value
     ASSIGN copy->* TO <nval>.

*   fill new value using the right conversion
     TRY.
*        TRY.
         CALL METHOD if_bsp_model_util~convert_from_string
           EXPORTING
             data_ref       = copy
             value          = value
             attribute_path = attribute_path.

CATCH cx_sy_conversion_error.
         RAISE EXCEPTION TYPE cx_bsp_conv_failed
           EXPORTING
             name = 'TIME_FROM'."#EC NOTEXT
     ENDTRY.

*   only set new value if value has changed
     IF <nval> <> <oval>.
current->get_property_as_value( EXPORTING iv_attr_name = 'TIMESTAMP_FROM' IMPORTING ev_result = lv_timestamp_from ).
     IF  lv_timestamp_from IS NOT INITIAL.
       CONVERT  TIME STAMP lv_timestamp_from TIME ZONE lv_timezone INTO DATE lv_date TIME lv_time.
     ENDIF.
     IF <nval> NE lv_time.
       lv_time = <nval>.
       CONVERT DATE lv_date TIME lv_time INTO TIME STAMP  lv_timestamp_from TIME ZONE lv_timezone.


  IF lv_timestamp_from IS NOT INITIAL.
current->set_property(
    iv_attr_name = 'TIMESTAMP_FROM'             "#EC NOTEXT
    iv_value     = lv_timestamp_from ).
  ENDIF.

  current->set_property(
               iv_attr_name = 'TIME_FROM' "#EC NOTEXT
                      iv_value     = <nval> ).

ENDIF.

   ENDIF.

 

check above code... and make changes like this.

 

Thanks and Regards,

Amit


Viewing all articles
Browse latest Browse all 7775

Trending Articles



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