Create Crm Activity

Published on January 2017 | Categories: Documents | Downloads: 47 | Comments: 0 | Views: 141
of 13
Download PDF   Embed   Report

Comments

Content

FUNCTION zcss001_create_crm_activity.
*"---------------------------------------------------------------------*"*"Local Interface:
*" IMPORTING
*"
VALUE(X_PARTNER) TYPE BU_PARTNER
*"
VALUE(X_CONT_ACCT) TYPE CRMT_BUAG_ID
*"
VALUE(X_DESCRIPTION) TYPE CHAR40 OPTIONAL
*"
VALUE(X_REASON) TYPE CHAR2 OPTIONAL
*"
VALUE(X_GOAL) TYPE CRMT_OBJECTIVE OPTIONAL
*"
VALUE(X_BOD_MODE) TYPE CHAR1 OPTIONAL
*"
VALUE(X_FLEX_BILL) TYPE CHAR1 OPTIONAL
*"
VALUE(X_SDA) TYPE CHAR1 OPTIONAL
*"
VALUE(X_SDA_PROCESS) TYPE CRMT_PROCESS_TYPE_DB OPTIONAL
*" EXPORTING
*"
VALUE(Y_CONTACT_ID) TYPE CHAR10
*" TABLES
*"
XT_TEXT_LINES STRUCTURE TLINE OPTIONAL
*"---------------------------------------------------------------------*======================================================================*
* Name.......... ZCSS001_CREATE_CRM_ACTIVITY
* Reference.....
*======================================================================*
* OVERVIEW
* This RFC Enables function module is written for the purpose of the AGL
* Online Self Service project for creation of CRM Contacts when the customer
* does certain activities online with regard to his/her AGL Accout
*
*======================================================================*
*
* CHANGE HISTORY
*
* Date
Name
Reference Description
*
*======================================================================*
*
* CHANGE HISTORY
*
* Date
Name
Reference
Description
* 29/09/2010 Mishan L
N/A
Initial implementation
* 31/05/2013 Chandan Gupta
INC000000263100 Create Contact Notes separ
ately for Flexible Billing
* 15/07/2013 Shiney John
SDA Defect
Create Contact note for SD
A
*======================================================================*
*Tables declarations
DATA: lt_orderadm_h
lt_activity_h
lt_customer_h
lt_status
lt_partner
lt_object_to_save
lt_saved_objects
lt_field_names
lt_input_fields
lt_document_flow
lt_partner_new
lt_status_bapi TYPE
lt_service_os TYPE

TYPE crmt_orderadm_h_comt,
TYPE crmt_activity_h_comt,
TYPE crmt_customer_h_comt,
TYPE crmt_status_comt,
TYPE crmt_partner_comt,
TYPE crmt_object_guid_tab,
TYPE crmt_return_objects,
TYPE crmt_input_field_names_tab,
TYPE crmt_input_field_tab,
TYPE TABLE OF bapibus20001_doc_flow_ins,
LIKE bapibus20001_partner_ins OCCURS 0,
TABLE OF bapibus20001_status_ins,
crmt_srv_osset_comt,

lt_osset TYPE crmt_srv_osset_comt1,
lt_subject TYPE crmt_srv_subject_comt,
lt_codes TYPE TABLE OF com_code_f4,
lt_header
TYPE TABLE OF bapibus20001_header_upd,
lt_return8
LIKE bapiret2 OCCURS 0,
lt_inputfields
LIKE bapibus20001_input_fields OCCURS 0.
DATA: lt_text TYPE crmt_text_comt,
lt_lines TYPE comt_text_lines_t,
lt_doc_link
TYPE crmt_doc_flow_extdt,
lt_maint_doc_flow
TYPE crmt_doc_flow_comt.
*Structure Declaration
DATA:
ls_orderadm_h
LIKE LINE OF lt_orderadm_h ,
ls_activity_h
LIKE LINE OF lt_activity_h,
ls_customer_h
LIKE LINE OF lt_customer_h ,
ls_status
LIKE LINE OF lt_status,
ls_activity
LIKE LINE OF gt_activity,
ls_saved_objects
LIKE LINE OF lt_saved_objects,
ls_partner
LIKE LINE OF lt_partner,
ls_input_fields
LIKE LINE OF lt_input_fields,
ls_field_names
LIKE LINE OF lt_field_names,
ls_partner_new
LIKE LINE OF lt_partner_new,
lst_document_flow LIKE LINE OF lt_document_flow,
lst_header
LIKE LINE OF lt_header,
lst_inputfields
LIKE bapibus20001_input_fields,
ls_return8
LIKE LINE OF lt_return8,
ls_text TYPE crmt_text_com,
ls_lines TYPE tline,
ls_status_bapi TYPE bapibus20001_status_ins,
ls_text_lines TYPE tline,
ls_service_os TYPE crmt_srv_osset_com,
ls_osset TYPE crmt_srv_osset_com1,
ls_subject TYPE crmt_srv_subject_com,
ls_codes TYPE com_code_f4,
ls_doc_link
LIKE LINE OF lt_doc_link,
ls_maint_doc_flow
TYPE crmt_doc_flow_com,
* Variable Declaration.
lv_guid
TYPE crmt_object_guid,
lv_partner
TYPE bu_partner,
lv_subject_prof TYPE crmt_subject_profile,
lv_buag_id TYPE crmt_buag_id,
lv_buag_guid TYPE crmt_buag_guid.
DATA: lv_process_type TYPE crmt_process_type_db,
* >>> Start of insertion by Chandan Gupta for INC000000263100 on 31/05/2013 >>>
lv_activity_category TYPE crmt_activity_category.
* >>> End of insertion by Chandan Gupta for INC000000263100 on 31/05/2013 >>>
*Constant declarations
CONSTANTS:
lc_direction_out(1) TYPE c
VALUE '1',
lc_direction_in(1) TYPE c
VALUE '0',
lc_wait
TYPE bapita-wait
VALUE 'X',
lc_activity_categ(3) TYPE c
VALUE 'URL',
* >>> Start of insertion by Chandan Gupta for INC000000263100 on 31/05/2013 >>>
lc_internal_activity TYPE crmt_activity_category VALUE 'Z05',
* >>> End of insertion by Chandan Gupta for INC000000263100 on 31/05/2013 >>>
lc_proces_type
TYPE crmt_object_name
VALUE 'PROCESS_TYPE',

lc_description
TYPE crmt_object_name
VALUE 'DESCRIPTION',
lc_direction
TYPE crmt_object_name
VALUE 'DIRECTION',
lc_category
TYPE crmt_object_name
VALUE 'CATEGORY',
lc_objective
TYPE crmt_object_name
VALUE 'OBJECTIVE',
lc_priority
TYPE crmt_object_name
VALUE 'PRIORITY',
lc_campaign_id
TYPE crmt_object_name
VALUE 'ZZCUSTOMER_H0201',
lc_orderadm_h
TYPE crmt_object_name
VALUE 'ORDERADM_H',
lc_customer_h
TYPE crmt_object_name
VALUE 'CUSTOMER_H',
lc_text
TYPE crmt_object_name
VALUE 'TEXTS',
lc_service_os
TYPE crmt_object_name
VALUE 'SERVICE_OS',
lc_lines
TYPE crmt_object_name
VALUE 'LINES',
lc_z_icamp
TYPE crm_j_stsma
VALUE 'Z_CMP01',
lc_z_act
TYPE crm_j_stsma VALUE 'Z_CONACT',
lc_activity_h
TYPE crmt_object_name
VALUE 'ACTIVITY_H',
lc_partner
TYPE crmt_object_name
VALUE 'PARTNER',
lc_status
TYPE crmt_object_name
VALUE 'STATUS',
lc_activate
TYPE crmt_object_name
VALUE 'ACTIVATE',
lc_a
TYPE crmt_brel_kind
VALUE 'A',
lc_open(5)
TYPE c
VALUE 'E0001',
lc_closed(5) TYPE c
VALUE 'E0006',
lc_code TYPE crmt_object_name
VALUE 'CODE ',
lc_codegruppe TYPE crmt_object_name
VALUE 'CODEGRUPPE',
lc_defectclass TYPE crmt_object_name
VALUE 'DEFECTCLASS',
lc_defquantity TYPE crmt_object_name
VALUE 'DEFQUANTITY',
lc_katalogart TYPE crmt_object_name
VALUE 'KATALOGART',
lc_listcode TYPE crmt_object_name
VALUE 'LISTCODE',
lc_quality TYPE crmt_object_name
VALUE 'QUALITY'.
lv_process_type = 'Z029'.
* >>> Start of insertion by Chandan Gupta for INC000000263100 on 31/05/2013 >>>
lv_activity_category = lc_activity_categ.
* >>> End of insertion by Chandan Gupta for INC000000263100 on 31/05/2013 >>>

*
*

*
*

IF x_bod_mode EQ 'A' OR
x_bod_mode EQ 'E'.
lv_process_type = 'Z029'.
ELSEIF x_bod_mode EQ 'B' OR
x_bod_mode EQ 'S'.
lv_process_type = 'Z143'.
>>> Start of insertion by Chandan Gupta for INC000000263100 on 31/05/2013 >>>
lv_activity_category = lc_internal_activity.
>>> End of insertion by Chandan Gupta for INC000000263100 on 31/05/2013 >>>
ELSEIF x_flex_bill = 'C'
OR x_flex_bill = 'U'
OR x_flex_bill = 'T'.
lv_process_type = 'Z141'.
>>> Start of insertion by Chandan Gupta for INC000000263100 on 31/05/2013 >>>
lv_activity_category = lc_internal_activity.
>>> End of insertion by Chandan Gupta for INC000000263100 on 31/05/2013 >>>
ENDIF.

*Begin for SDA Changee - SJ - 15/7/2013
IF x_sda IS NOT INITIAL.
lv_process_type = x_sda_process.
lv_activity_category = lc_internal_activity.
ENDIF.
*End for SDA Changee - SJ - 15/7/2013
* Get a activity guid.
CALL FUNCTION 'CRM_GUID_CREATE'

IMPORTING
ev_guid = ls_activity_h-ref_guid.
INSERT ls_activity_h-ref_guid INTO TABLE lt_object_to_save.
lv_guid

= ls_activity_h-ref_guid.

* Make the Partner Number compatible to the Activity
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = x_partner
IMPORTING
output = lv_partner.
* Set activity 'category','direction' 'Priority' in activity table
ls_activity_h-ref_guid
= lv_guid.
* >>> Start of replacement by Chandan Gupta for INC000000263100 on 31/05/2013 >>
>
* ls_activity_h-category
= lc_activity_categ.
ls_activity_h-category
= lv_activity_category.
* >>> End of replacement by Chandan Gupta for INC000000263100 on 31/05/2013 >>>
ls_activity_h-direction
= lc_direction_in.
ls_activity_h-priority = '5'.
ls_activity_h-objective = x_goal.
INSERT ls_activity_h INTO TABLE lt_activity_h.
*

Fill the Input field Names for the activity table
CLEAR ls_field_names.
ls_field_names-fieldname = lc_category.
INSERT ls_field_names INTO TABLE lt_field_names.
CLEAR ls_field_names.
ls_field_names-fieldname = lc_priority .
INSERT ls_field_names INTO TABLE lt_field_names.
CLEAR ls_field_names.
ls_field_names-fieldname = lc_direction.
INSERT ls_field_names INTO TABLE lt_field_names.
CLEAR ls_field_names.
ls_field_names-fieldname = lc_objective.
INSERT ls_field_names INTO TABLE lt_field_names.

*

Fill the Input fields for
ls_input_fields-ref_guid
ls_input_fields-ref_kind
ls_input_fields-objectname
ls_input_fields-field_names
INSERT ls_input_fields INTO

the Activity Table
= lv_guid.
= lc_a.
= lc_activity_h.
= lt_field_names[].
TABLE lt_input_fields.

*

Set partner no. in partner table
ls_partner-ref_guid
= lv_guid .
ls_partner-ref_kind
= lc_a.
ls_partner-ref_handle = '0001'.
ls_partner-partner_fct = '00000009'.
ls_partner-partner_no = lv_partner.
ls_partner-no_type
= 'BP'.
ls_partner-display_type = 'BP'.

ls_partner-mainpartner = 'X'.
APPEND ls_partner TO lt_partner.
*

Fill the Input field Names for the partner table
CLEAR ls_field_names.
REFRESH lt_field_names.
ls_field_names-fieldname = 'PARTNER_FCT'.
INSERT ls_field_names INTO TABLE lt_field_names.
CLEAR ls_field_names.
ls_field_names-fieldname = 'PARTNER_NO'.
INSERT ls_field_names INTO TABLE lt_field_names.
CLEAR ls_field_names.
ls_field_names-fieldname = 'NO_TYPE'.
INSERT ls_field_names INTO TABLE lt_field_names.
CLEAR ls_field_names.
ls_field_names-fieldname = 'DISPLAY_TYPE'.
INSERT ls_field_names INTO TABLE lt_field_names.

*777777
CLEAR ls_field_names.
ls_field_names-fieldname = 'KIND_OF_ENTRY'.
INSERT ls_field_names INTO TABLE lt_field_names.
*

Fill the Input fields for
ls_input_fields-ref_guid
ls_input_fields-ref_kind
ls_input_fields-logical_key
ls_input_fields-objectname
ls_input_fields-field_names
INSERT ls_input_fields INTO

the Partner Table
= lv_guid.
= lc_a.
= '0001'.
= lc_partner.
= lt_field_names[].
TABLE lt_input_fields.

*

Set the User Status to 'Closed'
ls_status-ref_guid
= ls_activity_h-ref_guid.
ls_status-ref_kind
= lc_a.
ls_status-activate
= 'X'.
ls_status-status
= lc_closed.
ls_status-user_stat_proc
= lc_z_act.
APPEND ls_status TO lt_status.

*

Fill the Input field Names for the Status table
CLEAR ls_field_names.
REFRESH lt_field_names.
ls_field_names-fieldname = lc_activate .
INSERT ls_field_names INTO TABLE lt_field_names.

*

Fill the Input fields for the Status Table
ls_input_fields-ref_guid
= ls_activity_h-ref_guid.
ls_input_fields-ref_kind
= lc_a.

CONCATENATE lc_closed lc_z_act INTO ls_input_fields-logical_key.
* ls_input_fields-logical_key = 'E0006Z_CONACT'.
ls_input_fields-objectname = lc_status.
ls_input_fields-field_names = lt_field_names[].
INSERT ls_input_fields INTO TABLE lt_input_fields.
*

Fill the ORDERADM_H fields

ls_orderadm_h-guid
= ls_activity_h-ref_guid.
ls_orderadm_h-mode
= lc_a.
* ls_orderadm_h-process_type
= 'Z010'.
ls_orderadm_h-process_type = lv_process_type .
* ls_orderadm_h-process_type
= 'Y111'.
ls_orderadm_h-description = x_description.
APPEND ls_orderadm_h TO lt_orderadm_h.
*

Fill the Input field Names for the orderadm_h table
CLEAR ls_field_names.
REFRESH lt_field_names.
ls_field_names-fieldname = lc_proces_type .
INSERT ls_field_names INTO TABLE lt_field_names.

*

Fill the Input field Names for the orderadm_h table
CLEAR ls_field_names.
ls_field_names-fieldname = lc_description .
INSERT ls_field_names INTO TABLE lt_field_names.

*

Fill the Input fields for
ls_input_fields-ref_guid
ls_input_fields-ref_kind
ls_input_fields-objectname
ls_input_fields-field_names
INSERT ls_input_fields INTO

the orderadm_h Table
= ls_activity_h-ref_guid.
= lc_a.
= lc_orderadm_h.
= lt_field_names[].
TABLE lt_input_fields.

*

Fill the Input fields for
ls_input_fields-ref_guid
ls_input_fields-ref_kind
ls_input_fields-objectname
ls_input_fields-field_names
INSERT ls_input_fields INTO

the orderadm_h Table
= ls_activity_h-ref_guid.
= lc_a.
= lc_text.
= lt_field_names[].
TABLE lt_input_fields.

"'Z029'.

*<<<<<<<<<<<<<<<< Fill Long Text <<<<<<<<<<<<<<<<<
*Fill long text fields
ls_text-ref_guid = lv_guid.
ls_text-ref_kind = 'A'.
ls_text-tdid = 'A002'.
ls_text-tdspras = 'E'.
ls_text-tdstyle = 'SYSTEM'.
ls_text-tdform = 'SYSTEM'.
ls_text-mode = 'A'.
LOOP AT xt_text_lines INTO ls_text_lines.
ls_lines-tdformat = '*'.
ls_lines-tdline = ls_text_lines-tdline.
APPEND ls_lines TO lt_lines.
CLEAR: ls_lines.
ENDLOOP.
ls_text-lines = lt_lines.
APPEND ls_text TO lt_text.
ls_input_fields-ref_guid
= ls_activity_h-ref_guid.
ls_input_fields-ref_kind
= lc_a.
ls_input_fields-objectname = lc_text.
* CONCATENATE 'CRM_ORDERH' ls_activity_h-ref_guid INTO ls_input_fields-LOGICAL_
KEY.
CLEAR ls_field_names.

ls_field_names-fieldname = lc_lines .
INSERT ls_field_names INTO TABLE lt_field_names.
*<<<<<<<<<<<<<<< Fill Reason for activity
IF x_reason IS NOT INITIAL.
*Get subject profile
CALL FUNCTION 'CRM_ACTIVITY_H_REASON_PROFILE'
EXPORTING
iv_process_type = lv_process_type
IMPORTING
ev_profile_reason = lv_subject_prof
EXCEPTIONS
entry_not_found = 1
OTHERS
= 2.
IF sy-subrc = 0 AND lv_subject_prof IS NOT INITIAL.

"'Y111'

ls_service_os-ref_guid = lv_guid.
ls_service_os-ref_kind = 'A'.
ls_osset-ref_guid = lv_guid.
ls_osset-subject_profile = lv_subject_prof.
ls_osset-profile_type = 'F'.
ls_osset-ref_handle = '0000000001'.
*From subject profile get catelog code groups
CALL FUNCTION 'CRM_SUBJECT_PROF_CODES_PROVIDE'
EXPORTING
i_subject_profile
= lv_subject_prof
i_hierarchy_level
= '1'
i_no_authority_check = space
i_flg_released_only = 'X'
i_langu
= sy-langu
TABLES
e_code_tab
= lt_codes
EXCEPTIONS
no_valid_entry
= 1
no_entry
= 2
OTHERS
= 3.
IF sy-subrc = 0.
*Now fill LT_SERVICE_OS table for CRM_ORDER_MAINTAIN
READ TABLE lt_codes INTO ls_codes WITH KEY code = x_reason.
IF sy-subrc = 0.
ls_subject-katalogart = ls_codes-katalogart.
ls_subject-codegruppe = ls_codes-codegruppe.
ls_subject-code = x_reason.
ls_subject-mode = 'A'.
ls_subject-ref_handle = '0000000001'.
APPEND ls_subject TO lt_subject.
ls_osset-subject[] = lt_subject[].
APPEND ls_osset TO lt_osset.
ls_service_os-osset = lt_osset[].
APPEND ls_service_os TO lt_service_os.
ls_input_fields-ref_guid
= lv_guid.
ls_input_fields-ref_kind
= lc_a.
ls_input_fields-objectname = lc_service_os.
CLEAR ls_field_names.
ls_field_names-fieldname = lc_code .
INSERT ls_field_names INTO TABLE lt_field_names.

CLEAR ls_field_names.
ls_field_names-fieldname = lc_codegruppe.
INSERT ls_field_names INTO TABLE lt_field_names.
CLEAR ls_field_names.
ls_field_names-fieldname = lc_defectclass.
INSERT ls_field_names INTO TABLE lt_field_names.
CLEAR ls_field_names.
ls_field_names-fieldname = lc_defquantity.
INSERT ls_field_names INTO TABLE lt_field_names.
CLEAR ls_field_names.
ls_field_names-fieldname = lc_katalogart.
INSERT ls_field_names INTO TABLE lt_field_names.
CLEAR ls_field_names.
ls_field_names-fieldname = lc_listcode.
INSERT ls_field_names INTO TABLE lt_field_names.
CLEAR ls_field_names.
ls_field_names-fieldname = lc_quality.
INSERT ls_field_names INTO TABLE lt_field_names.
ls_input_fields-field_names = lt_field_names[].
INSERT ls_input_fields INTO TABLE lt_input_fields.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
*>>>>>>>>>>>>>>>>>>>
*<<<<<<<<<<<<<<<<< Fill activity Business Agreement <<<<<<<<<<<<<<<<<<<<
IF x_cont_acct IS NOT INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = x_cont_acct
IMPORTING
output = lv_buag_id.
SELECT SINGLE buag_guid INTO lv_buag_guid FROM crmm_buag
WHERE buag_id = lv_buag_id.
IF sy-subrc = 0 AND lv_buag_id IS NOT INITIAL.
ls_input_fields-ref_guid
ls_input_fields-ref_kind
ls_input_fields-objectname
ls_input_fields-ref_handle
ls_input_fields-field_names
INSERT ls_input_fields INTO

= ls_activity_h-ref_guid.
= 'A'.
= 'DOC_FLOW'.
= '0000000000'.
= lt_field_names[].
TABLE lt_input_fields.

ls_maint_doc_flow-ref_handle = '0000000000'.
ls_maint_doc_flow-ref_guid = lv_guid.
ls_maint_doc_flow-ref_kind = 'A'.
ls_doc_link-objkey_a = lv_guid.

ls_doc_link-objtype_a = 'BUS2000126'.
ls_doc_link-objkey_b = lv_buag_guid .
ls_doc_link-objtype_b = 'BUS1006130'.
ls_doc_link-brel_kind = 'A'.
ls_doc_link-brel_mode = 'A'.
ls_doc_link-reltype = 'ASGN'.
ls_doc_link-relation_handle = '0000000001'.
APPEND ls_doc_link TO lt_doc_link.
ls_maint_doc_flow-doc_link = lt_doc_link.
APPEND ls_maint_doc_flow TO lt_maint_doc_flow.
ENDIF.
ENDIF.
*>>>>>>>>>>>>>>>>>>
**********************************7888888888
*

FM to create activity
CALL FUNCTION 'CRM_ORDER_MAINTAIN'
EXPORTING
it_activity_h
= lt_activity_h
*
it_customer_h
= lt_customer_h
*
it_partner
= lt_partner
it_status
= lt_status
it_text
= lt_text
it_service_os
= lt_service_os
CHANGING
ct_orderadm_h
= lt_orderadm_h
ct_input_fields = lt_input_fields
ct_doc_flow
= lt_maint_doc_flow
EXCEPTIONS
error_occurred
= 1
document_locked = 2
no_change_allowed = 3
no_authority
= 4
OTHERS
= 5.

*

IF sy-subrc <> 0.
MESSAGE e061.
RETURN.
ENDIF.
lst_header-guid = lv_guid.
APPEND lst_header TO lt_header.
CLEAR lst_header.

*

Maintain the Activity Partner for Online Self Service activity
MOVE:
lv_guid
TO ls_partner_new-ref_guid,
'A'
TO ls_partner_new-ref_kind,
'0002'
TO ls_partner_new-ref_partner_handle,
'00000009'
TO ls_partner_new-partner_fct,
lv_partner
TO ls_partner_new-partner_no,
'BP'
TO ls_partner_new-no_type,
'BP'
TO ls_partner_new-display_type.
APPEND ls_partner_new TO lt_partner_new.
CLEAR ls_partner_new.
MOVE: lv_guid

TO lst_inputfields-ref_guid,

'A'
'0002'
'PARTNER'

TO lst_inputfields-ref_kind,
TO lst_inputfields-logical_key,
TO lst_inputfields-objectname.

MOVE 'PARTNER_FCT'
TO lst_inputfields-fieldname.
APPEND lst_inputfields TO lt_inputfields.
MOVE 'PARTNER_NO'
TO lst_inputfields-fieldname.
APPEND lst_inputfields TO lt_inputfields.
MOVE 'NO_TYPE'
TO lst_inputfields-fieldname.
APPEND lst_inputfields TO lt_inputfields.
MOVE 'DISPLAY_TYPE' TO lst_inputfields-fieldname.
APPEND lst_inputfields TO lt_inputfields.
CLEAR lst_inputfields.
*Call BAPI To maintain activity partner
CALL FUNCTION 'BAPI_BUSPROCESSND_CHANGEMULTI'
TABLES
header
= lt_header
partner
= lt_partner_new
document_flow = lt_document_flow
input_fields = lt_inputfields
return
= lt_return8.
*

Handle the error if any
READ TABLE lt_return8 INTO ls_return8
WITH KEY type = 'E'.
IF sy-subrc EQ 0.
RETURN.
ENDIF.

*

FM to commit the changes.
CALL FUNCTION 'CRM_ORDER_SAVE'
EXPORTING
it_objects_to_save = lt_object_to_save
IMPORTING
et_saved_objects = lt_saved_objects
EXCEPTIONS
document_not_saved = 1
OTHERS
= 2.
IF sy-subrc <> 0.
RETURN.
ENDIF.

*

FM to commit the changes.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = lc_wait.
IF sy-subrc = 0.
READ TABLE lt_saved_objects INTO ls_saved_objects INDEX 1.
IF sy-subrc = 0.
y_contact_id = ls_saved_objects-object_id.
ENDIF.

ENDIF.

ENDFUNCTION.
*----------------------------------------------------------------------*
***INCLUDE LZCSS001F01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form GET_BP_CP
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_bp USING lv_buag_id
CHANGING lv_act_partner
lv_buag_guid
lv_error.
SELECT SINGLE a~buag_guid
c~partner
INTO (lv_buag_guid ,lv_act_partner )
FROM ( crmm_buag AS a
INNER JOIN crmm_buag_l_fica
ON a~buag_guid = crmm_buag_l_fica~buag_guid )
INNER JOIN but000 AS c
ON crmm_buag_l_fica~bupa_guid = c~partner_guid
WHERE buag_id = lv_buag_id.
IF sy-subrc NE 0.
lv_error = 'X'.
ENDIF.
ENDFORM.
" GET_BP_CP
*&---------------------------------------------------------------------*
*&
Form GET_CP
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_LV_PARTNER text
*
<--P_LV_CONTACT_PERSON text
*
<--P_LV_ERROR text
*----------------------------------------------------------------------*
FORM get_cp USING
lv_partner
CHANGING lv_contact_person.
SELECT partner2 UP TO 1 ROWS
FROM but050
INTO lv_contact_person
WHERE ( reltyp = 'BUR001' AND
partner1 = lv_partner AND
date_to = '99991231' ).
ENDSELECT.
ENDFORM.
" GET_CP
*&---------------------------------------------------------------------*
*&
Form FILL_TEXT
*&---------------------------------------------------------------------*

*
text
*----------------------------------------------------------------------*
*
-->P_X_PAYMENT_MODE_OTP text
*
-->P_X_AMOUNT text
*
-->P_X_RECEIPT_NO text
*----------------------------------------------------------------------*
FORM fill_text TABLES lt_lines TYPE comt_text_lines_t
USING
x_payment_mode_otp
x_amount
x_receipt_no
*
x_agent_id"changed on 01.10.2012
x_cont_acct
x_contract_no. "Changed on 03.10.2012
DATA:ls_lines
lv_cont_acct
CONSTANTS:lc_dot
lc_bus_agree
lc_pay_otp
lc_amount
lc_receipt
lc_agent
2012
lc_cont_no
n 03.10.2012

TYPE tline,
TYPE char12.
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

c
char26
char17
char7
char15
char9

VALUE '.',
VALUE 'Business Agreement Number:',
VALUE 'Payment Made OTP:',
VALUE 'Amount:',
VALUE 'Receipt Number:',
VALUE 'Agent Id:',"changed on 01.10.

TYPE char16

VALUE 'Contract Number:'."changed o

CLEAR :ls_lines,lv_cont_acct.
lv_cont_acct = x_cont_acct.
SHIFT lv_cont_acct LEFT DELETING LEADING '0'.
CONCATENATE lc_bus_agree
lv_cont_acct
INTO ls_lines-tdline SEPARATED BY space.
CONCATENATE ls_lines-tdline lc_dot INTO ls_lines-tdline.
CONDENSE ls_lines-tdline.
APPEND ls_lines TO lt_lines.
CLEAR ls_lines.
ls_lines-tdline = space.
APPEND ls_lines TO lt_lines.
CLEAR ls_lines.
CONCATENATE lc_pay_otp
x_payment_mode_otp
INTO ls_lines-tdline SEPARATED BY space.
IF x_payment_mode_otp IS NOT INITIAL.
CONCATENATE ls_lines-tdline lc_dot INTO ls_lines-tdline.
ENDIF.
CONDENSE ls_lines-tdline.
APPEND ls_lines TO lt_lines.
CLEAR ls_lines.
ls_lines-tdline = space.
APPEND ls_lines TO lt_lines.
CLEAR ls_lines.
CONCATENATE lc_amount

x_amount
INTO ls_lines-tdline SEPARATED BY space.
IF x_amount IS NOT INITIAL.
CONCATENATE ls_lines-tdline lc_dot INTO ls_lines-tdline.
ENDIF.
CONDENSE ls_lines-tdline.
APPEND ls_lines TO lt_lines.
CLEAR ls_lines.
ls_lines-tdline = space.
APPEND ls_lines TO lt_lines.
CLEAR ls_lines.
CONCATENATE lc_receipt
x_receipt_no
INTO ls_lines-tdline SEPARATED BY space.
IF x_receipt_no IS NOT INITIAL.
CONCATENATE ls_lines-tdline lc_dot INTO ls_lines-tdline.
ENDIF.
CONDENSE ls_lines-tdline.
APPEND ls_lines TO lt_lines.
CLEAR ls_lines.
**
*
*
*
*
*
*
*
*
*
*
*
*
*
**

start of change on 01.10.2012
ls_lines-tdline = space.
APPEND ls_lines TO lt_lines.
CLEAR ls_lines.
CONCATENATE lc_agent
x_agent_id
INTO ls_lines-tdline SEPARATED BY space.
IF x_agent_id IS NOT INITIAL.
CONCATENATE ls_lines-tdline lc_dot INTO ls_lines-tdline.
ENDIF.
CONDENSE ls_lines-tdline.
APPEND ls_lines TO lt_lines.
CLEAR ls_lines.
end of change on 01.10.2012

* start of change on 03.10.2012
IF x_contract_no IS NOT INITIAL.
ls_lines-tdline = space.
APPEND ls_lines TO lt_lines.
CLEAR ls_lines.
CONCATENATE lc_cont_no
x_contract_no
INTO ls_lines-tdline SEPARATED BY space.
CONCATENATE ls_lines-tdline lc_dot INTO ls_lines-tdline.
CONDENSE ls_lines-tdline.
APPEND ls_lines TO lt_lines.
CLEAR ls_lines.
ENDIF.
* end of change on 03.10.2012
ENDFORM.

" FILL_TEXT

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close