Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 8451

Re: populate custom fields of Shopping Cart's item data

$
0
0

DATA: lr_inputfield     TYPE REF TO cl_wd_input_field,
         lr_view_element   TYPE REF TO if_wd_view_element,
         lt_change_log     TYPE wdr_context_change_list,
         lt_datas          TYPE TABLE OF tab512,
         lt_datasrfc       TYPE TABLE OF tab512,
         lt_datas2         TYPE TABLE OF tab512,
         ls_data           TYPE SYCHAR512,
         ls_datasrfc        TYPE SYCHAR512.

   DATA: l_context TYPE REF TO if_wd_context,
         lr_node   TYPE REF TO if_wd_context_node,
         lv_nr     TYPE string,
         lv_nr2    TYPE string,
         lv_description  TYPE string,
         lv_description2 TYPE string,
         lv_descrip      TYPE string,
         lv_des           TYPE string.


   DATA: lv_index TYPE string,
         lo_context TYPE REF TO if_wd_context,
         lt_changes TYPE wdr_context_change_list,
         ls_change  TYPE wdr_context_change.

     DATA: lv_be_sytem           TYPE om_attrval,
         lf_spras              TYPE spras.

   DATA: lt_option             TYPE TABLE OF rfc_db_opt,
         ls_option             TYPE          rfc_db_opt,
         lt_feld               TYPE TABLE OF rfc_db_fld,
         ls_feld               TYPE          rfc_db_fld.

   FIELD-SYMBOLS: <ls_new_value> TYPE any.


************************************************************************
* 1. Prüfen ob wir im Shoppingcart-Wizard sind
*-----------------------------------------------------------------------

   IF zcl_ebp_context=>get_transaction_group( ) <> zcl_ebp_context=>gc_ta_group_sc_wizard.
     RETURN.
   ENDIF.

************************************************************************
* 2. Feld auf Anzeige setzen
*-----------------------------------------------------------------------
     TRY.
         lr_view_element = view->get_element( 'GOODS_RECIPIENT_ID' ).
         IF lr_view_element IS BOUND.
           lr_inputfield ?= lr_view_element.
           CALL METHOD lr_inputfield->set_enabled
             EXPORTING
               value = space.
         ENDIF.

       CATCH cx_sy_move_cast_error.
         RETURN.
     ENDTRY.

************************************************************************
* 3. HSE Beschreibung füllen
*-----------------------------------------------------------------------

IMPORT lt_datas TO lt_datas2 FROM MEMORY ID sy-uname.

lo_context = wd_context->get_context( ).
lt_changes = lo_context->get_context_change_log( and_reset = abap_true ).

IF FIRST_TIME NE 'X'.

IF lt_changes IS NOT INITIAL .
LOOP AT lt_changes INTO ls_change WHERE change_kind EQ 'A'.
ASSIGN ls_change-new_value->* TO <ls_new_value>.
lv_index = ls_change-element_index.
ENDLOOP.

LOOP AT lt_datas2 INTO ls_data .
  lv_nr = ls_data+1(2).
  IF <ls_new_value> EQ lv_nr.
    lv_description = ls_data+3(30).
  ENDIF.
ENDLOOP.
ENDIF.

l_context = wd_context->get_context( ).

   IF l_context->name = 'V_DODC_SC_I_BD'.
     lr_node = wd_context->get_child_node('ITEM_BASIC_DATA').

       CALL METHOD LR_NODE->SET_ATTRIBUTE
         EXPORTING
           VALUE = lv_description
           NAME  = 'ZZHSE_TEXT'.

     CALL METHOD LR_NODE->GET_ATTRIBUTE
       EXPORTING
         NAME  = 'ZZHSE_TEXT'
       IMPORTING
         VALUE = lv_descrip .

         CALL METHOD LR_NODE->GET_ATTRIBUTE
       EXPORTING
         NAME  = 'ZZHSE'
       IMPORTING
         VALUE = lv_nr2 .




IF lv_descrip IS INITIAL.

  CALL FUNCTION 'Z_EBP_READ_SINGLE_ATTRIBUTE'
     EXPORTING
       id_attr_id              = 'SYS'
     IMPORTING
       ed_value                = lv_be_sytem
     EXCEPTIONS
       object_id_not_found     = 1
       no_attributes_requested = 2
       attributes_read_error   = 3
       OTHERS                  = 4.
   IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
     EXIT.
   ENDIF.

lf_spras = sy-langu.
     ls_option-text = text-002.
     CONCATENATE ls_option-text(9) lf_spras ls_option-text+9(1) INTO ls_option-text.
     APPEND ls_option TO lt_option.

     ls_feld-fieldname = 'SPRAS'.
     APPEND ls_feld TO lt_feld.
     ls_feld-fieldname = 'HSE'.
     APPEND ls_feld TO lt_feld.
     ls_feld-fieldname = 'TEXT'.
     APPEND ls_feld TO lt_feld.

     CALL FUNCTION 'RFC_READ_TABLE'
       DESTINATION lv_be_sytem
       EXPORTING
         query_table          = '/GBE/MMC_HSET'
       TABLES
         options              = lt_option
         fields               = lt_feld
         data                 = lt_datasrfc
       EXCEPTIONS
         table_not_available  = 1
         table_without_data   = 2
         option_not_valid     = 3
         field_not_valid      = 4
         not_authorized       = 5
         data_buffer_exceeded = 6
         OTHERS               = 7.

      IF lv_nr2 NE lv_nr AND lt_datas2 IS NOT INITIAL.
      LOOP AT lt_datas2 INTO ls_data .
       lv_nr = ls_data+1(2).
       IF lv_nr EQ lv_nr2.
       lv_des    = ls_data+3(30).
      CALL METHOD LR_NODE->SET_ATTRIBUTE
         EXPORTING
           VALUE = lv_des
           NAME  = 'ZZHSE_TEXT'.
      ENDIF.
      ENDLOOP.
      ELSE.
       LOOP AT lt_datasrfc INTO ls_datasrfc .
       lv_nr = ls_datasrfc+1(2).
       IF lv_nr EQ lv_nr2.
       lv_des    = ls_datasrfc+3(30).
      CALL METHOD LR_NODE->SET_ATTRIBUTE
         EXPORTING
           VALUE = lv_des
           NAME  = 'ZZHSE_TEXT'.
      ENDIF.
      ENDLOOP.
     ENDIF.
  EXPORT lv_description2 FROM lv_description TO MEMORY ID sy-uname.
ENDIF.




    ENDIF.
   ENDIF.


Viewing all articles
Browse latest Browse all 8451

Trending Articles



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