DAK написал(а):
Поля 
CI_EKPODB-ZZTAXAM, CI_EKPODB-ZZNETAM типа CURR, а
 CI_EKPODB-ZZSUMAM типа CHAR.
при обычном заполнении структуры EXTENSIONIN (gs_EXTENSIONIN+30 = gs_CI_EKPODB) у меня была ошибка связанная с уникодом, пришлось сделать как написано в ноте:
берем ст. s1 исходной структуры и ст. s1 с теми же полями только типа char и делаем move-corresponding а s2 move в EXTENSIONIN.
вот только это не помогло(((
Насколько я смог понять то в OSS Note 509898 советуют "to write a customer exit/badi to the BAPI" и там обработать ваши данные.
Вроде бы как BADI ME_BAPI_PO_CUST метод MAP2I_EXTENSIONIN вызывается после проверки типа данных в customer-include.
Code:
*  check if the included fields are character like data types
  LOOP AT gr_abap->components ASSIGNING <comp>.
    CHECK <comp>-type_kind EQ gr_abap->typekind_packed.
*  message could be customized ME887
    MESSAGE w887(me) WITH im_name INTO gl_dummy.
    mmpur_message_enaco_forced sy-msgty sy-msgid sy-msgno sy-msgv1
                               sy-msgv2 sy-msgv3 sy-msgv4.
    lf_exit = cl_mmpur_constants=>yes.
  ENDLOOP.
*  call customer BAdI for inbound mapping of extensionin
  GET BADI lr_badi.
  TRY.
      CALL BADI lr_badi->map2i_extensionin
        EXPORTING
          im_container = im_container
          im_name      = im_name
          im_error     = lf_exit
        CHANGING
          ch_struc     = ch_struc.
    CATCH cx_mmpur_root.
      EXIT.
  ENDTRY.
  CHECK lf_exit EQ cl_mmpur_constants=>no.
  TRY.
      ASSIGN ch_struc TO <fs>.
*  convert container data to target structure
      im_nls->cont_to_struc( EXPORTING cont   = im_container
                                       langu  = sy-langu
                             IMPORTING struc  = <fs> ).
    CATCH: cx_root.
  ENDTRY.