Нужно вызвать последовательно три метода :
- CRM_LOY_MEMBERSHIP_SEARCH (поиск)
- CRM_LOY_MEMBERSHIP_PUT (изменение)
- CRM_LOY_MEMBERSHIP_SAVE (сохранение)
Пример. (на вход передается GUID участия)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
FORM set_stat_msh USING guid TYPE loy_frw_guid estat TYPE loy_frw_jestat lv_success TYPE boolean. lv_success = ''. DATA srch_opt TYPE genilt_query_parameters. DATA it_selection_parameters TYPE genilt_selection_parameter_tab. DATA sel_p TYPE LINE OF genilt_selection_parameter_tab. sel_p-attr_name = 'GUID'. sel_p-option = 'EQ'. sel_p-sign = 'I'. sel_p-low = guid. APPEND sel_p TO it_selection_parameters. DATA et_data TYPE crmt_loy_msh_mems_attr. CALL FUNCTION 'CRM_LOY_MEMBERSHIP_SEARCH' EXPORTING is_srch_options = srch_opt it_selection_parameters = it_selection_parameters IMPORTING et_data = et_data. DATA it_input_fields TYPE crmt_loy_com_input_field. DATA inp_f TYPE LINE OF crmt_loy_com_input_field. DATA fieldnames TYPE crmt_loy_com_input_field_names. DATA f_nms TYPE LINE OF crmt_loy_com_input_field_names. DATA ct_data TYPE crmt_loy_msh_loyd_mems. DATA table TYPE LINE OF crmt_loy_msh_loyd_mems. f_nms-fieldname = 'ESTAT'. "Поля для изменения APPEND f_nms TO fieldnames. LOOP AT et_data ASSIGNING FIELD-SYMBOL(<fs>). inp_f-application = <fs>-application. "импортируемые поля inp_f-guid = <fs>-guid. inp_f-fieldnames = fieldnames. APPEND inp_f TO it_input_fields. table-estat = estat. table-guid = <fs>-guid. table-ref_guid = <fs>-ref_guid. table-application = <fs>-application. table-process_type = <fs>-process_type. table-memb_guid = <fs>-memb_guid. table-pa_set_guid = <fs>-pa_set_guid. table-object_id = <fs>-object_id. table-mems_type = <fs>-mems_type. table-loy_prog_guid = <fs>-loy_prog_guid. table-empl_resp_guid = <fs>-empl_resp_guid. table-nominator_id = <fs>-nominator_id. table-start_date = <fs>-start_date. table-end_date = <fs>-end_date. table-purpose_of_use = <fs>-purpose_of_use. table-created_via = <fs>-created_via. table-status = <fs>-status. table-status_ch_date = <fs>-status_ch_date. table-status_reason = <fs>-status_reason. table-last_txn_date = <fs>-last_txn_date. table-created_on = <fs>-created_on. table-created_by = <fs>-created_by. table-changed_on = <fs>-changed_on. table-changed_by = <fs>-changed_by. table-changed_at = <fs>-changed_at. table-os_guid = <fs>-os_guid. table-istat = <fs>-istat. ##istat table-campaign_code = <fs>-campaign_code. table-member_country = <fs>-member_country. table-reg_by_guid = <fs>-reg_by_guid. table-agent = <fs>-agent. table-account_guid = <fs>-account_guid. table-def_mems_type = <fs>-def_mems_type. table-membership_dummy = <fs>-membership_dummy. table-zzstore_origin = <fs>-zzstore_origin. table-process_mode = 'M'. "MODIFY APPEND table TO ct_data. ENDLOOP. DATA ev_success TYPE boolean. CALL FUNCTION 'CRM_LOY_MEMBERSHIP_PUT' "изменение EXPORTING it_input_fields = it_input_fields IMPORTING ev_success = ev_success CHANGING ct_data = ct_data. CALL FUNCTION 'CRM_LOY_MEMBERSHIP_SAVE' "сохранение EXPORTING iv_update_task = 'X' IMPORTING ev_success = ev_success. IF ev_success = 'X'. lv_success = 'X'. ENDIF. DATA return TYPE bapiret2. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' IMPORTING return = return. ENDFORM. |