Code: Alles auswählen.
<ls_partner_com>-ref_partner_handle = sy-tabix + 20.
CLEAR: ls_input_field, ls_input_field-field_names[].
CALL FUNCTION 'FILL_INPUT_FIELDS_STRUCTURE'
EXPORTING
iv_structure_type_name = 'CRMT_PARTNER_COM'
iv_table_type_name = 'CRMT_PARTNER_COMT'
is_structure = <ls_partner_com>
IMPORTING
es_input_fields = ls_input_field
EXCEPTIONS
no_structure_type_name_given = 1
no_input_data_provided = 2
provide_structure_or_table = 3
non_existing_structure_name = 4
provide_one_input_table_only = 5
no_table_type_name_provided = 6
types_do_not_match = 7
no_ddic_info_available = 8
OTHERS = 9.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*Fill logical key for partner
lv_logical_key = <ls_partner_com>-ref_partner_handle.
lv_logical_key+4 = <ls_partner_com>-ref_partner_fct.
lv_logical_key+12 = <ls_partner_com>-ref_partner_no.
lv_logical_key+28 = <ls_partner_com>-ref_display_type.
lv_logical_key+30 = <ls_partner_com>-ref_no_type.
PERFORM fill_input_fields USING
<ls_partner_com>-ref_handle
<ls_partner_com>-ref_kind
gc_object_name-partner
lv_logical_key
ls_input_field-field_names
CHANGING
et_inputfield.
...
FORM fill_input_fields USING
iv_handle type crmt_handle
iv_ref_kind TYPE crmt_object_kind
iv_object_name TYPE crmt_object_name
iv_logical_key TYPE crmt_logical_key
it_field_names TYPE crmt_input_field_names_tab
CHANGING
lt_input_fields TYPE crmt_input_field_tab.
DATA: ls_input_fields TYPE crmt_input_field.
ls_input_fields-ref_handle = iv_handle.
ls_input_fields-ref_kind = iv_ref_kind.
ls_input_fields-objectname = iv_object_name.
ls_input_fields-logical_key = iv_logical_key.
ls_input_fields-field_names = it_field_names.
INSERT ls_input_fields INTO TABLE lt_input_fields.
ENDFORM. " fill_input_fields
Code: Alles auswählen.
...
CHECK NOT lt_input_fields IS INITIAL OR
NOT lt_partner_attribute IS INITIAL.
* store items with a GUID which should be created
LOOP AT lt_orderadm_i ASSIGNING <ls_orderadm_i>
WHERE mode EQ gc_mode-create
AND guid IS not INITIAL.
INSERT <ls_orderadm_i>-guid INTO TABLE lt_create_items.
ENDLOOP.
IF gv_dialog EQ false.
CALL FUNCTION 'DIALOG_SET_NO_DIALOG'.
ENDIF.
CALL FUNCTION 'CRM_ORDER_MAINTAIN'
EXPORTING
it_opport_h = lt_opport_h
it_activity_h = lt_activity_h
it_service_h = lt_service_h
it_lead_h = lt_lead_h
it_sales = lt_sales
...