I want to create an order by using CRM_ORDER_MAINTAIN , the header data is ok now, but the item date field can not be uploaded to system successfully .my code is as follows:
DATA:
ls_input_fields TYPE crmt_input_field,
lt_input_fields TYPE crmt_input_field_tab,
ls_input_field_names TYPE crmt_input_field_names,
lt_input_field_names TYPE crmt_input_field_names_tab,
lt_saved_objects TYPE crmt_return_objects,
lt_orderadm_h TYPE crmt_orderadm_h_comt,
ls_orderadm_h TYPE crmt_orderadm_h_com,
lt_opport_h TYPE crmt_opport_h_comt,
ls_opport_h TYPE LINE OF crmt_opport_h_comt,
lt_nametab TYPE crmt_input_field_names_tab,
ls_nametab TYPE crmt_input_field_names,
ls_save_guid TYPE crmt_object_guid,
lt_save_guid TYPE crmt_object_guid_tab.
DATA: i_exception TYPE crmt_exception_t.
DATA: lt_extension2 TYPE crmt_extension2_comt,
ls_extension2 TYPE crmt_extension2_com,
ls_retreq_i TYPE ztab0000m8,
lt_retreq_i TYPE REF TO ztab0000m8t.
FIELD-SYMBOLS:<ls_extension2> TYPE crmt_extension2_wrk,
<ls_retreq_i> TYPE ztab0000m8,
<fs_retreq_i> TYPE ztab0000m8,
<fs_data> TYPE ztab0000m8.
CALL FUNCTION 'CRM_INTLAY_GET_HANDLE'
IMPORTING
ev_handle = ls_input_fields-ref_handle.
CREATE DATA lt_retreq_i.
CLEAR ls_extension2.
ASSIGN ls_retreq_i TO <fs_retreq_i>.
IF <fs_retreq_i> IS ASSIGNED.
<fs_retreq_i>-zzfld00006x = '30'.
<fs_retreq_i>-zzfld00006y = 'EUR'.
ENDIF.
INSERT <fs_retreq_i> INTO TABLE lt_retreq_i->*.
ls_extension2-data = lt_retreq_i.
ls_extension2-ref_handle = ls_input_fields-ref_handle.
ls_extension2-ref_kind = 'A'.
APPEND ls_extension2 TO lt_extension2.
ls_nametab = 'ZZFLD00006X'.
INSERT ls_nametab INTO TABLE lt_nametab.
ls_nametab = 'ZZFLD00006Y'.
INSERT ls_nametab INTO TABLE lt_nametab.
* ls_nametab-fieldname = 'DATA'.
* INSERT ls_nametab INTO TABLE lt_nametab.
* ls_nametab-fieldname = 'REF_HANDLE'.
* INSERT ls_nametab INTO TABLE lt_nametab.
* ls_nametab-fieldname = 'REF_KIND'.
* INSERT ls_nametab INTO TABLE lt_nametab.
* ls_nametab-fieldname = 'OBJECT'.
* INSERT ls_nametab INTO TABLE lt_nametab.
ls_input_fields-ref_kind = 'A'.
ls_input_fields-objectname = 'ZOBJ000001'. "EXTENSION2
ls_input_fields-field_names = lt_nametab.
INSERT ls_input_fields INTO TABLE lt_input_fields.
CLEAR: ls_nametab, lt_nametab[].
ls_orderadm_h-handle = ls_input_fields-ref_handle.
ls_orderadm_h-process_type = 'ZPRD'.
ls_orderadm_h-mode = 'A'.
ls_orderadm_h-zzfld00007m = '005056A45BD71ED596F4C15C9E1BE9E0'. "产品GUID号
APPEND ls_orderadm_h TO lt_orderadm_h.
ls_nametab-fieldname = 'HANDLE'.
INSERT ls_nametab INTO TABLE lt_nametab.
ls_nametab-fieldname = 'MODE'.
INSERT ls_nametab INTO TABLE lt_nametab.
ls_nametab-fieldname = 'PROCESS_TYPE'.
INSERT ls_nametab INTO TABLE lt_nametab.
ls_nametab-fieldname = 'ZZFLD00007M'.
INSERT ls_nametab INTO TABLE lt_nametab.
* ls_input_fields-ref_handle = ls_input_fields-ref_handle + 1.
ls_input_fields-ref_kind = 'A'.
ls_input_fields-objectname = 'ORDERADM_H'.
ls_input_fields-field_names = lt_nametab.
INSERT ls_input_fields INTO TABLE lt_input_fields.
CLEAR: ls_nametab, lt_nametab[].
CALL FUNCTION 'CRM_ORDER_MAINTAIN'
EXPORTING
* it_opport_h = lt_opport_h
it_extension2 = lt_extension2
IMPORTING
et_exception = i_exception " CRMT_EXCEPTION_T
CHANGING
ct_orderadm_h = lt_orderadm_h
* ct_orderadm_i =
ct_input_fields = lt_input_fields
* CV_LOG_HANDLE =
* CT_PARTNER_ATTRIBUTES =
* CT_DOC_FLOW =
EXCEPTIONS
error_occurred = 1
document_locked = 2
no_change_allowed = 3
no_authority = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
IF sy-subrc = 0.
READ TABLE lt_orderadm_h INTO ls_orderadm_h INDEX 1.
ls_save_guid = ls_orderadm_h-guid.
APPEND ls_save_guid TO lt_save_guid.
ENDIF.
CALL FUNCTION 'CRM_ORDER_SAVE'
EXPORTING
it_objects_to_save = lt_save_guid
IMPORTING
et_saved_objects = lt_saved_objects
EXCEPTIONS
document_not_saved = 1
OTHERS = 2.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ENDIF.
*
ENDIF.