Sie sind auf Seite 1von 5

REPORT ZTEST3. INCLUDE:CRM_OBJECT_KINDS_CON, CRM_OBJECT_NAMES_CON.

DATA: s_orderadm_h TYPE crmt_orderadm_h_com, t_orderadm_h TYPE crmt_orderadm_h_comt, s_input_fields TYPE crmt_input_field, t_input_fields TYPE crmt_input_field_tab, s_field_names TYPE crmt_input_field_names, t_field_names TYPE crmt_input_field_names_tab, s_activity_h TYPE CRMT_ACTIVITY_H_COM, t_activity_h TYPE CRMT_ACTIVITY_H_COMT, s_objects_to_save TYPE crmt_object_guid, t_objects_to_save TYPE crmt_object_guid_tab, s_saved_objects TYPE crmt_return_objects_struc, t_saved_objects TYPE crmt_return_objects. ***** SURVEY********** DATA: lead_guid TYPE guid_32, activity_guid TYPE guid_32, lead_id TYPE crmt_object_id, activity_id TYPE crmt_object_id, valueguid TYPE crm_svy_db_sv_guid, valueversion TYPE crm_svy_db_sv_vers. DATA: survey_value_guid TYPE guid_32, it_values TYPE CRM_SVY_API_STRING_T. DATA: et_survey_param TYPE CRM_SVY_API_PARAMETER_T, it_survey_param TYPE CRM_SVY_API_PARAMETER_T, wa_survey_param TYPE CRM_SVY_API_PARAMETER, cs_evaluation_infos TYPE CRM_SVY_RE_TAR_OBJ. DATA: o_survey_runtime TYPE REF TO cl_crm_svy_runtime, o_surveyvalues TYPE REF TO cl_crm_svy_values, t_application_params TYPE crm_svy_api_parameter_t, t_all_values TYPE survy_t_all_values. DATA: value TYPE string. ****** END SURVEY ***** DATA: guid_h TYPE CRMT_OBJECT_GUID, guid_i TYPE CRMT_OBJECT_GUID, process_type TYPE CRMT_PROCESS_TYPE, item_type TYPE CRMT_ITEM_TYPE, object_type TYPE CRMT_SUBOBJECT_CATEGORY, process_mode TYPE CRMT_MODE, it_survey_ui TYPE CRMT_SURVEY_UI_TAB. * Fill required structures CLEAR: s_orderadm_h, t_orderadm_h. s_orderadm_h-object_id = 'BUS2000126'."'BUS2000108'. s_orderadm_h-process_type = 'ZCRC'. s_orderadm_h-description = 'Description nih'. APPEND s_orderadm_h TO t_orderadm_h. ****** ADD FIRST PROPERTY TO INPUT FIELDS -> ACTIVITY_H CLEAR: s_input_fields, t_input_fields . s_input_fields-ref_kind = gc_object_kind-orderadm_h."'A'. s_input_fields-objectname = gc_object_nameactivity_h."'ACTIVITY_H'."'LEAD_H'.

CLEAR: s_field_names, t_field_names. * in order to get location and external reference no values, their fieldnames must be added to these s_field_namesfieldname = 'ACT_LOCATION'. APPEND s_field_names TO t_field_names. s_field_names-fieldname = 'CATEGORY'. APPEND s_field_names TO t_field_names. s_field_namesfieldname = 'EXTERN_ACT_ID'. APPEND s_field_names TO t_field_names. s_input_fields-field_names = t_field_names. APPEND s_input_fields TO t_input_fields. ****** END FIRST PROPERTY TO INPUT FIELDS -> ACTIVITY_H ****** ADD SECOND PROPERTY TO INPUT FIELDS -> ORDERADM_H CLEAR: s_input_fields. CLEAR: s_field_names, t_field_names. s_input_fields-ref_kind = gc_object_kind-orderadm_h ."'A'. s_input_fields-objectname = gc_object_name-orderadm_h."'ORDERADM_H'. *Subtable FIELD_NAMES s_field_namesfieldname = 'DESCRIPTION'. APPEND s_field_names TO t_field_names. */Subtable FIELD_NAMES s_input_fields-field_names = t_field_names. APPEND s_input_fields TO t_input_fields. ****** END ADD SECOND PROPERTY TO INPUT FIELDS -> ORDERADM_H CLEAR: s_activity_h, t_activity_h. s_activity_h-ACT_LOCATION = 'Location nih'. s_activity_h-EXTERN_ACT_ID = 'Extern ref no nih'. s_activity_h-category = 'ZC1'. APPEND s_activity_h TO t_activity_h. * Create activity CALL FUNCTION 'CRM_ORDER_MAINTAIN' EXPORTING * it_lead_h = t_lead_h it_activity_h = t_activity_h * it_partner = t_partner_h * iv_collect_exceptions = '' CHANGING ct_orderadm_h = t_orderadm_h ct_input_fields = t_input_fields 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. * Get GUID of created LEAD for later saving READ TABLE t_orderadm_h INTO s_orderadm_h INDEX 1. CLEAR: s_objects_to_save.", t_objects_to_save. *s_objects_to_save = lead_guid = s_orderadm_h-guid. s_objects_to_save = activity_guid = s_orderadm_h-guid. APPEND s_objects_to_save TO t_objects_to_save.

CALL FUNCTION 'CRM_SURVEY_DATA_GET' EXPORTING IV_OBJECT_KIND = 'A' IV_OBJECT_GUID = s_orderadm_h-guid IMPORTING EV_OBJECT_GUID_HEADER = guid_h EV_OBJECT_GUID_ITEM = guid_i EV_PROCESS_TYPE = process_type EV_ITEM_TYPE = item_type EV_OBJECT_TYPE = object_type EV_PROCESS_MODE = process_mode ET_SURVEY_UI = it_survey_ui EXCEPTIONS ERROR_OCCURRED = 1 OTHERS = 2 . IF SY-SUBRC <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. * Create survey runtime object CLEAR: o_survey_runtime. CREATE OBJECT o_survey_runtime EXPORTING i_runtime_mode = 'INBOUND' i_application_id = 'CRM_SURVEY_ACTIVITY' i_survey_id = 'COMPLAIN_PELAYANAN' i_survey_version = '0000000014' i_language = 'E' i_media_type = '01' i_valueversion = '0000000001' i_no_value_save = ''. o_survey_runtime->get_values( IMPORTING er_survey_values = o_surveyvalues ). IF o_survey_runtime->GV_VALUEGUID IS INITIAL. CALL FUNCTION 'GUID_CREATE' IMPORTING * EV_GUID_16 = * EV_GUID_22 = EV_GUID_32 = survey_value_guid . o_survey_runtime->GV_VALUEGUID = survey_value_guid. ENDIF. IF o_survey_runtime->GV_VALUEVERSION IS INITIAL. o_survey_runtime->GV_VALUEVERSION = o_survey_runtime->GV_VALUEVERSION + 1. ENDIF. CALL METHOD O_SURVEYVALUES->VALUES_GET EXPORTING I_QUESTION_ID = 'q1' I_ANSWER_ID = 'a1'

IMPORTING ET_VALUES .

= it_values

CALL METHOD O_SURVEYVALUES->VALUES_DELETE EXPORTING I_QUESTION_ID = 'q1' I_ANSWER_ID = 'a1' IT_VALUES = it_values . value = 'Nama tamu nih'. APPEND value TO it_values. CALL METHOD O_SURVEYVALUES->VALUES_SET EXPORTING I_QUESTION_ID = 'q1' I_ANSWER_ID = 'a1' IT_VALUES = it_values . CALL FUNCTION 'CRM_INTLAY_SET_HEADER_GUID' EXPORTING IV_HEADER_GUID = s_orderadm_h-guid . wa_survey_param-name = 'SurveyId'. wa_survey_param-value = 'COMPLAIN_PELAYANAN'. APPEND wa_survey_param TO it_survey_param. wa_survey_param-name = 'SchemaVersion'. wa_survey_param-value = '1'. APPEND wa_survey_param TO it_survey_param. wa_survey_param-name = 'conid'. wa_survey_param-value = ''. APPEND wa_survey_param TO it_survey_param. wa_survey_param-name = 'onInputProcessing(SUBMIT)'. wa_survey_param-value = 'Save'. APPEND wa_survey_param TO it_survey_param. CALL FUNCTION 'CRM_SVY_ACTIVITY_PAI' EXPORTING I_APPLICATION_ID = 'CRM_SURVEY_ACTIVITY' I_SURVEY_ID = 'COMPLAIN_PELAYANAN' I_SURVEY_VERSION = '0000000014' I_LANGUAGE = 'E' I_VALUEGUID = o_survey_runtime->GV_VALUEGUID I_VALUEVERSION = o_survey_runtime->GV_VALUEVERSION IR_SURVEY_VALUES = O_SURVEYVALUES IT_SURVEY_PARAMS = it_survey_param IMPORTING ET_SURVEY_PARAMS = et_survey_param CHANGING CS_EVALUATION_INFOS = cs_evaluation_infos . IF t_objects_to_save IS NOT INITIAL. CLEAR: t_saved_objects. * Save lead CALL FUNCTION 'CRM_ORDER_SAVE' EXPORTING

it_objects_to_save = t_objects_to_save IMPORTING et_saved_objects = t_saved_objects EXCEPTIONS document_not_saved = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 symsgv2 sy-msgv3 sy-msgv4. ENDIF. READ TABLE t_saved_objects INTO s_saved_objects INDEX 1. WRITE: / 'ID:' , s_saved_objects-object_id. *READ TABLE t_saved_objects INTO s_saved_objects INDEX 1. *lead_id = s_saved_objects-object_id. *activity_id = s_saved_objects-object_id. ** Commit work CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'. ENDIF.

Das könnte Ihnen auch gefallen