Ejemplo.
Te paso el siguiente código ejemplo, a ver si te sirve de algo.
REPORT ztest.
DATA: lv_log_handle TYPE balloghndl,
ls_appointment TYPE CRMT_APPOINTMENT_COM,
lt_appointment TYPE CRMT_APPOINTMENT_COMT,
ls_input_field_names TYPE crmt_input_field_names,
ls_input_field TYPE crmt_input_field,
lt_input_fields TYPE crmt_input_field_tab,
lt_header_guid TYPE crmt_object_guid_tab,
lt_saved_objects TYPE crmt_return_objects.
ls_appointment-appt_type = gc_type.
ls_appointment-ref_guid = gv_guid.
ls_appointment-mode = 'B'.
ls_appointment-duration = 13.
ls_appointment-is_duration = 'X'.
REFRESH: lt_input_fields,
lt_appointment.
INSERT ls_appointment INTO TABLE lt_appointment.
ls_input_field_names-fieldname = 'APPT_TYPE'.
INSERT ls_input_field_names INTO TABLE ls_input_field-field_names.
ls_input_field_names-fieldname = 'DURATION'.
INSERT ls_input_field_names INTO TABLE ls_input_field-field_names.
ls_input_field-objectname = 'APPOINMENT'.
ls_input_field-ref_guid = gv_guid
ls_input_field-ref_kind = 'B'.
INSERT ls_input_field INTO TABLE lt_input_fields.
CALL FUNCTION 'CRM_ORDER_MAINTAIN'
EXPORTING
it_appointment = lt_appointment
CHANGING
ct_input_fields = lt_input_fields
cv_log_handle = lv_log_handle
EXCEPTIONS
error_occurred = 1
document_locked = 2
no_change_allowed = 3
no_authority = 4
OTHERS = 5.
IF sy-subrc = 0.
APPEND gv_guid TO lt_header_guid.
CALL FUNCTION 'CRM_ORDER_SAVE'
EXPORTING
it_objects_to_save = lt_header_guid
iv_update_task_local = 'X'
iv_save_frame_log = 'X'
IMPORTING
et_saved_objects = lt_saved_objects
EXCEPTIONS
document_not_saved = 1
OTHERS = 2.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.
ENDIF.
|