create sap crm survey questionnaire)

6
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'.

Upload: agus-santoso

Post on 02-Mar-2015

952 views

Category:

Documents


27 download

TRANSCRIPT

Page 1: Create SAP CRM Survey Questionnaire)

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_name-activity_h."'ACTIVITY_H'."'LEAD_H'.

Page 2: Create SAP CRM Survey Questionnaire)

  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_names-fieldname = '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_names-fieldname = '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_names-fieldname = '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.

Page 3: Create SAP CRM Survey Questionnaire)

  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'

Page 4: Create SAP CRM Survey Questionnaire)

    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

Page 5: Create SAP CRM Survey Questionnaire)

      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 sy-msgv2 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.