You are on page 1of 13

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

You might also like