Está en la página 1de 5

METHOD if_ex_crm_copy_badi~orderadm_h.

TYPES: BEGIN OF typ_axt.


INCLUDE type zatab0001o4_work.
TYPES: END OF typ_axt.
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:
DATA:
**
*
*
*
*
*
*
*
*
*
**

gv_guid
lt_inszaob
lt_messages
lt_req_objects
lt_inscar
lt_carrier
lcl_axt_api
lcl_axt_x_runtime
ls_inscar
ls_carrier
lv_parent_id
lv_table_id
lv_record_id
lv_inscar
lv_inscarname
lt_domain_text
lt_domain_text1
wa_domain_text

TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE

crmt_object_guid.
STANDARD TABLE OF zatab0001o4.
axtt_msg.
crmt_object_name_tab.
STANDARD TABLE OF zatab00015l.
STANDARD TABLE OF zatab0001o4.
REF TO cl_axt_tables_api.
REF TO cx_axt.
zatab00015l.
typ_axt.
crmt_object_guid.
axt_table_id.
axt_record_id.
char10.
string.
STANDARD TABLE OF dd07v.
STANDARD TABLE OF dd07v.
dd07v.

Start of Data for Dump


DATA lv_guid
TYPE crmt_object_guid.
DATA lt_header_guid TYPE crmt_object_guid_tab.
DATA lt_orderadm_h
TYPE crmt_orderadm_h_wrkt.
DATA wa_orderadm_h
TYPE crmt_orderadm_h_wrk.
DATA lt_input_field_names TYPE crmt_input_field_names_tab.
DATA ls_input_field_names TYPE crmt_input_field_names.
DATA ls_input_fields
TYPE crmt_input_field.
DATA gt_saved_objects TYPE crmt_return_objects.
DATA gt_input_fields
TYPE crmt_input_field_tab.
End of Data for Dump

*** Start of Changes Dump


* MOVE is_ref_orderadm_h-guid TO lv_guid.
*
* IF lv_guid IS NOT INITIAL.
*
REFRESH lt_header_guid.
*
INSERT lv_guid INTO TABLE lt_header_guid.
*
*
IF sy-subrc EQ 0.
*
CALL FUNCTION 'CRM_ORDER_READ'
*
EXPORTING
*
it_header_guid
= lt_header_guid
*
IMPORTING

**
et_partner
= lt_partner
*
et_orderadm_h
= lt_orderadm_h
**
et_orderadm_i
= lt_orderadm_i
*
EXCEPTIONS
*
document_not_found
= 1
*
error_occurred
= 2
*
document_locked
= 3
*
no_change_authority = 4
*
no_display_authority = 5
*
no_change_allowed
= 6
*
OTHERS
= 7.
*
IF sy-subrc <> 0.
*** Implement suitable error handling here
*
ENDIF.
*
READ TABLE lt_orderadm_h INTO wa_orderadm_h WITH KEY guid = lv_guid .
*
ENDIF.
***** Header data orderadm_h
*
cs_orderadm_h-description = wa_orderadm_h-description .
*
ls_input_field_names-fieldname = 'DESCRIPTION'.
*
INSERT ls_input_field_names INTO TABLE ct_input_field_names.
*
****** input fields
*
ls_input_fields-ref_handle = '0000000001'.
*
ls_input_fields-ref_kind = 'A'.
"A (ADMIN HEADER)
*
ls_input_fields-objectname = 'ORDERADM_H'.
*
ls_input_fields-field_names = ct_input_field_names.
*
INSERT ls_input_fields INTO TABLE gt_input_fields.
*
CLEAR: ls_input_fields, ls_input_field_names.
*
*
CALL FUNCTION 'CRM_ORDER_SAVE'
*
EXPORTING
*
it_objects_to_save = lt_header_guid
*
IMPORTING
*
et_saved_objects
= gt_saved_objects.
*
*
IF sy-subrc <> 0.
** Implement suitable error handling here
*
ENDIF.
* ENDIF.
*** End of changes Dump
CLEAR: lv_parent_id,lv_table_id .
GET PARAMETER ID 'AUN' FIELD lv_inscar.
SELECT * FROM zatab00015l INTO TABLE lt_inscar WHERE object_id = is_ref_orde
radm_h-guid AND zzafld0000a9 = lv_inscar.
IF sy-subrc EQ 0.
READ TABLE lt_inscar INTO ls_inscar INDEX 1.

MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE
MOVE

ls_inscar-zzafld0000a9
ls_inscar-zzafld0000aa
ls_inscar-zzafld0000ab
ls_inscar-zzafld0000ac
ls_inscar-zzafld0000ad
ls_inscar-zzafld0000ae
ls_inscar-zzafld0000af
ls_inscar-zzafld0000ag
ls_inscar-zzafld0000ah
ls_inscar-zzafld0000aj
ls_inscar-zzafld0000ak
ls_inscar-zzafld0000al
ls_inscar-zzafld0000am
ls_inscar-zzafld0000an
ls_inscar-ZZAFLD0000AI

TO
TO
TO
TO
TO
TO
TO
TO
TO
TO
TO
TO
TO
TO
TO

ls_carrier-zzafld0000i3.
ls_carrier-zzafld0000i4.
ls_carrier-zzafld0000i5.
ls_carrier-zzafld0000i6.
ls_carrier-zzafld0000i8.
ls_carrier-zzafld0000i9.
ls_carrier-zzafld0000ia.
ls_carrier-zzafld0000ib.
ls_carrier-zzafld0000ic.
ls_carrier-zzafld0000id.
ls_carrier-zzafld0000ie.
ls_carrier-zzafld0000if.
ls_carrier-zzafld0000ig.
ls_carrier-zzafld0000ik.
ls_carrier-ZZAFLD0000IO.

CALL METHOD cl_crm_aui_service=>get_fullname_of_bp


EXPORTING
iv_bp
= ls_inscar-zzafld0000a9
receiving
rv_fullname = lv_inscarname
.
MOVE lv_inscarname TO ls_carrier-ZZAFLD0000IY.
* get description for policy type
*
CALL FUNCTION 'DD_DOMA_GET'
*
EXPORTING
*
domain_name
= 'ZADTEL000160'
*
TABLES
*
dd07v_tab_a
= lt_domain_text
*
dd07v_tab_n
= lt_domain_text1
*
EXCEPTIONS
*
illegal_value = 1
*
op_failure
= 2
*
OTHERS
= 3.
*
IF sy-subrc <> 0.
** Implement suitable error handling here
*
ENDIF.
*
*
LOOP AT lt_domain_text INTO wa_domain_text.
*
IF ls_carrier-zzafld0000ik EQ wa_domain_text-domvalue_l.
*
ls_carrier-zzafld0000ik = wa_domain_text-ddtext.
*
EXIT.
*
ENDIF.
*
ENDLOOP.
MOVE ls_inscar-zzafld0000ao TO ls_carrier-zzafld0000il.
* get description for procedure type
*
CALL FUNCTION 'DD_DOMA_GET'
*
EXPORTING

*
domain_name
= 'ZADTEL000161'
*
TABLES
*
dd07v_tab_a
= lt_domain_text
*
dd07v_tab_n
= lt_domain_text1
*
EXCEPTIONS
*
illegal_value = 1
*
op_failure
= 2
*
OTHERS
= 3.
*
IF sy-subrc <> 0.
** Implement suitable error handling here
*
ENDIF.
*
*
LOOP AT lt_domain_text INTO wa_domain_text.
*
IF ls_carrier-zzafld0000il EQ wa_domain_text-domvalue_l.
*
ls_carrier-zzafld0000il = wa_domain_text-ddtext.
*
EXIT.
*
ENDIF.
*
ENDLOOP.
MOVE ls_inscar-zzafld0000ap TO ls_carrier-zzafld0000im.
* get description for carrier priority
*
CALL FUNCTION 'DD_DOMA_GET'
*
EXPORTING
*
domain_name
= 'ZADTEL000162'
*
TABLES
*
dd07v_tab_a
= lt_domain_text
*
dd07v_tab_n
= lt_domain_text1
*
EXCEPTIONS
*
illegal_value = 1
*
op_failure
= 2
*
OTHERS
= 3.
*
IF sy-subrc <> 0.
** Implement suitable error handling here
*
ENDIF.
*
*
LOOP AT lt_domain_text INTO wa_domain_text.
*
IF ls_carrier-zzafld0000im EQ wa_domain_text-domvalue_l.
*
ls_carrier-zzafld0000im = wa_domain_text-ddtext.
*
EXIT.
*
ENDIF.
*
ENDLOOP.
ENDIF.
CLEAR lv_inscar.
SET PARAMETER ID 'AUN' FIELD lv_inscar.
gv_guid = is_ref_orderadm_h-guid.
lv_table_id = 'ZATAB0001O4'.
lv_parent_id = gv_guid.
TRY.

lcl_axt_api = cl_axt_tables_api=>create_api_instance( iv_table_id = lv_t


able_id ).
CATCH: cx_axt_runtime INTO lcl_axt_x_runtime,
cx_axt_data_not_found INTO lcl_axt_x_runtime.
APPEND LINES OF lcl_axt_x_runtime->mt_messages TO lt_messages.
* TODO: Handle these messages!
RETURN.
ENDTRY.
lcl_axt_api->buffer_subscribe_for_refresh( ).
CALL FUNCTION 'CRM_GUID_CREATE'
IMPORTING
ev_guid = lv_record_id.
TRY.
lcl_axt_api->create(
iv_object_id
= lv_record_id
iv_parent_id
= lv_parent_id
iv_restrictive_mode = abap_true
is_data
= ls_carrier ).
*
lcl_axt_api->save( ).
CATCH cx_axt_runtime INTO lcl_axt_x_runtime.
ENDTRY.
ENDMETHOD.

También podría gustarte