anchor.diff:    " W3xx DESERIALIZE
     """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     METHOD lif_object~deserialize.
  +
       DATA ls_key       TYPE wwwdatatab.
  -    DATA l_base64str  TYPE string.
  +    DATA lv_base64str TYPE string.
       DATA lt_w3params  TYPE STANDARD TABLE OF wwwparams.
  -    DATA ls_wwwparam  TYPE wwwparams.
  -    DATA l_tmp        TYPE string.
  -    DATA l_xstring    TYPE xstring.
  +    DATA lv_xstring   TYPE xstring.
       DATA lo_utility   TYPE REF TO cl_http_utility.
       DATA lt_w3mime    TYPE STANDARD TABLE OF w3mime.
       DATA lt_w3html    TYPE STANDARD TABLE OF w3html.
  -    DATA l_size       TYPE int4.
  +    DATA lv_size      TYPE int4.
       DATA lv_tadir_obj TYPE tadir-object.
   
       ls_key = init_key( ).
   
  -    io_xml->read( exporting iv_name = 'TEXT'
  -                  changing  cg_data = ls_key-text ).
  -
  -    io_xml->read( exporting iv_name = 'DATA'
  -                  changing  cg_data = l_base64str ).
  +    io_xml->read( EXPORTING iv_name = 'TEXT'
  +                  CHANGING  cg_data = ls_key-text ).
  +
  +    io_xml->read( EXPORTING iv_name = 'DATA'
  +                  CHANGING  cg_data = lv_base64str ).
   
       io_xml->read( EXPORTING iv_name = 'PARAMS'
                     CHANGING  cg_data = lt_w3params ).
   
       CREATE OBJECT lo_utility.
  -    l_xstring = lo_utility->decode_x_base64( encoded = l_base64str ).
  +    lv_xstring = lo_utility->decode_x_base64( lv_base64str ).
   
       CASE ls_key-relid.
         WHEN 'MI'.
           CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
  -          EXPORTING  buffer        = l_xstring
  -          IMPORTING  output_length = l_size
  -          TABLES     binary_tab    = lt_w3mime.
  +          EXPORTING
  +            buffer        = lv_xstring
  +          IMPORTING
  +            output_length = lv_size
  +          TABLES
  +            binary_tab    = lt_w3mime.
         WHEN 'HT'.
           CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
  -          EXPORTING  buffer        = l_xstring
  -          IMPORTING  output_length = l_size
  -          TABLES     binary_tab    = lt_w3mime.
  +          EXPORTING
  +            buffer        = lv_xstring
  +          IMPORTING
  +            output_length = lv_size
  +          TABLES
  +            binary_tab    = lt_w3mime.
   
           CALL FUNCTION 'SCMS_BINARY_TO_TEXT'
  -          EXPORTING  input_length  = l_size
  -          IMPORTING  output_length = l_size
  -          TABLES     binary_tab    = lt_w3mime
  -                     text_tab      = lt_w3html
  -          EXCEPTIONS failed        = 1.
  -
  -          IF sy-subrc IS NOT INITIAL.
  -            _raise 'Cannot update W3xx params'.
  -          ENDIF.
  -
  -        clear lt_w3mime.
  +          EXPORTING
  +            input_length  = lv_size
  +          IMPORTING
  +            output_length = lv_size
  +          TABLES
  +            binary_tab    = lt_w3mime
  +            text_tab      = lt_w3html
  +          EXCEPTIONS
  +            failed        = 1.
  +        IF sy-subrc IS NOT INITIAL.
  +          _raise 'Cannot update W3xx params'.
  +        ENDIF.
  +
  +        CLEAR lt_w3mime.
         WHEN OTHERS.
           _raise 'Wrong W3xx type'.
       ENDCASE.
   
       CALL FUNCTION 'WWWPARAMS_UPDATE'
  -      TABLES     params       = lt_w3params
  -      EXCEPTIONS update_error = 1.
  +      TABLES
  +        params       = lt_w3params
  +      EXCEPTIONS
  +        update_error = 1.
   
       IF sy-subrc IS NOT INITIAL.
         _raise 'Cannot update W3xx params'.
  
positive.code: *
  *----------------------------------------------------------------------*
  CLASS lcl_object_tran IMPLEMENTATION.
    METHOD lif_object~get_metadata.
      rs_metadata = get_metadata( ).
    ENDMETHOD.
  
    METHOD split_parameters_comp.
      DATA: off TYPE i.
  
      IF iv_param CS iv_type.
        off = sy-fdpos + strlen( iv_type ).
        ic_value = iv_param+off.
        IF ic_value CA '\'.
          CLEAR ic_value+sy-fdpos.
        ENDIF.
      ENDIF.
    ENDMETHOD.
  
    METHOD split_parameters.
      "this is a copy of subroutine split_parameters from LSEUKF01
      FIELD-SYMBOLS <f> TYPE any.
      DATA: off       TYPE i,
            param_beg TYPE i,
            l_length  TYPE i.
      DATA: ls_param TYPE rsparam.
  
      CLEAR es_rsstcd-s_vari.
  
      IF is_tstcp-param(1) = '\'.             " OO-Transaktion ohne FR
        split_parameters_comp( EXPORTING iv_type = c_oo_program
                                         iv_param = is_tstcp-param
                               CHANGING  ic_value = es_tstc-pgmna ).
        split_parameters_comp( EXPORTING iv_type = c_oo_class
                                         iv_param = is_tstcp-param
                               CHANGING  ic_value = es_rsstcd-classname ).
        split_parameters_comp( EXPORTING iv_type = c_oo_method
                                         iv_param = is_tstcp-param
                               CHANGING  ic_value = es_rsstcd-method ).
  
        IF NOT es_tstc-pgmna IS INITIAL.
          es_rsstcd-s_local = c_true.
        ENDIF.
        RETURN.
      ELSEIF is_tstcp-param(1) = '@'.         " Transaktionsvariante
        es_rsstcd-s_vari = c_true.
        IF is_tstcp-param(2) = '@@'.
          es_rsstcd-s_ind_vari = c_true.
          off = 2.
        ELSE.
          CLEAR es_rsstcd-s_ind_vari.
          off = 1.
        ENDIF.
  *      IF is_tstcp-param CA ' '. ENDIF.
        sy-fdpos = sy-fdpos - off.
        IF sy-fdpos GT 0.
          es_rsstcd-call_tcode = is_tstcp-param+off(sy-fdpos).
          sy-fdpos = sy-fdpos + 1 + off.
          es_rsstcd-variant = is_tstcp-param+sy-fdpos.
        ENDIF.
      ELSEIF is_tstcp-param(1) = '/'.
        es_rsstcd-st_tcode = c_true.
        es_rsstcd-st_prog  = space.
        IF is_tstcp-param+1(1) = '*'.
          es_rsstcd-st_skip_1 = c_true.
        ELSE.
          CLEAR es_rsstcd-st_skip_1.
        ENDIF.
  *      IF is_tstcp-param CA ' '. ENDIF.
        param_beg = sy-fdpos + 1.
        sy-fdpos = sy-fdpos - 2. "SUBTRACT 2 FROM sy-fdpos.
        IF sy-fdpos GT 0.
          es_rsstcd-call_tcode = is_tstcp-param+2(sy-fdpos).
        ENDIF.
  *      SELECT SINGLE * FROM tstc INTO *tstc
  *                      WHERE tcode = rsstcd-call_tcode.
  *      IF sy-subrc = 0.
  *        IF *tstc-cinfo O hex_rep.
  *          PERFORM fill_tfields_report USING *tstc-pgmna.
  *        ELSEIF *tstc-cinfo O hex_men OR *tstc-cinfo O hex_par.
  *        ELSE.
  *          PERFORM fill_tfields_dynpro USING *tstc-pgmna *tstc-dypno.
  *        ENDIF.
  *      ENDIF.
        SHIFT is_tstcp-param BY param_beg PLACES.
      ELSE.
        es_rsstcd-st_tcode = space.
        es_rsstcd-st_prog  = c_true.
  *      PERFORM fill_tfields_dynpro USING tstc-pgmna tstc-dypno.
      ENDIF.
  
      DO 254 TIMES.
        IF is_tstcp-param = space.
          EXIT.
        ENDIF.
        CLEAR ls_param.
  *        condense tstcp-param no-gaps.
        IF is_tstcp-param CA '='.
          CHECK sy-fdpos NE 0.
          ASSIGN is_tstcp-param(sy-fdpos) TO <f>.
          ls_param-field = <f>.
          IF ls_param-field(1) = space.
            SHIFT  ls_param-field.
          ENDIF.
          sy-fdpos = sy-fdpos + 1.
          SHIFT is_tstcp-param BY sy-fdpos PLACES.
          IF is_tstcp-param CA ';'.
            IF sy-fdpos NE 0.
              ASSIGN is_tstcp-param(sy-fdpos) TO <f>.
              ls_param-value = <f>.
              IF ls_param-value(1) = space.
                SHIFT  ls_param-value.
              ENDIF.
            ENDIF.
            sy-fdpos = sy-fdpos + 1.
            SHIFT is_tstcp-param BY sy-fdpos PLACES.
            APPEND ls_param TO et_rsparam.
          ELSE.       " Da _____; muglich
            l_length = strlen( is_tstcp-param ).
            CHECK l_length > 0.
            ASSIGN is_tstcp-param(l_length) TO <f>.
            ls_param-value = <f>.
            IF ls_param-value(1) = space.
              SHIFT  ls_param-value.
            ENDIF.
            l_length = l_length + 1. "ADD 1 TO l_length.
            SHIFT is_tstcp-param BY l_length PLACES.
            APPEND ls_param TO et_rsparam.
          ENDIF.
        ENDIF.
      ENDDO.
  * oo-Transaktion mit Framework
      IF es_rsstcd-call_tcode = c_oo_tcode.
        es_rsstcd-s_trframe = c_true.
        LOOP AT et_rsparam INTO ls_param.
          CASE ls_param-field.
            WHEN c_oo_frclass.
              es_rsstcd-classname = ls_param-value.
            WHEN c_oo_frmethod.
              es_rsstcd-method   = ls_param-value.
            WHEN c_oo_frupdtask.
              IF ls_param-value = c_oo_synchron.
                es_rsstcd-s_upddir  = c_true.
                es_rsstcd-s_updtask = c_false.
                es_rsstcd-s_updlok  = c_false.
              ELSEIF ls_param-value = c_oo_asynchron.
                es_rsstcd-s_upddir  = c_false.
                es_rsstcd-s_updtask = c_true.
                es_rsstcd-s_updlok  = c_false.
              ELSE.
                es_rsstcd-s_upddir  = c_false.
                es_rsstcd-s_updtask = c_false.
                es_rsstcd-s_updlok  = c_true.
              ENDIF.
          ENDCASE.
        ENDLOOP.
  
negative.code:   METHOD lif_object~serialize.
  
      DATA: lv_bf                TYPE sfw_bfunction,
            lo_bf                TYPE REF TO cl_sfw_bf,
            ls_header            TYPE sfw_bf,
            lv_name_32           TYPE sfw_name32,
            lv_name_80           TYPE sfw_name80,
  