0% found this document useful (0 votes)
100 views11 pages

CR Creation Supplier

The document describes testing an API for converting data between a master data governance system and SAP. It obtains instances of the conversion API, sets the environment, and calls methods to create entity structures, keys, and data for different entity types like address, partner, and role and inserts this data into internal tables for processing.

Uploaded by

Rahul Bhayani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
100 views11 pages

CR Creation Supplier

The document describes testing an API for converting data between a master data governance system and SAP. It obtains instances of the conversion API, sets the environment, and calls methods to create entity structures, keys, and data for different entity types like address, partner, and role and inserts this data into internal tables for processing.

Uploaded by

Rahul Bhayani
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 11

*&---------------------------------------------------------------------*

*& Report Z_TEST_MDG_CONV_API


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT z_test_mdg_conv_api.

DATA: gt_entity TYPE usmd_t_entity.

DATA: gs_temp_key TYPE string,


gs_temp_key_addr TYPE string.
DATA: go_mdg_conv TYPE REF TO if_usmd_conv_som_gov_api,
gv_crequest TYPE usmd_crequest.

DATA: go_error TYPE REF TO cx_root,


g_error_string TYPE string.

FIELD-SYMBOLS: <fs_ad_postal> TYPE /mdgbp/_s_bp_pp_ad_postal,


<fs_address> TYPE /mdgbp/_s_bp_pp_address,
<fs_bp_addusg> TYPE /mdgbp/_s_bp_pp_bp_addusg,
<fs_ad_tel> TYPE /mdgbp/_s_bp_pp_ad_tel,
<fs_ad_fax> TYPE /mdgbp/_s_bp_pp_ad_fax,
<fs_ad_email> TYPE /mdgbp/_s_bp_pp_ad_email,
<fs_ad_url> TYPE /mdgbp/_s_bp_pp_ad_url,
<fs_bp_role> TYPE /mdgbp/_s_bp_pp_bp_role,
<fs_bp_centrl> TYPE /mdgbp/_s_bp_pp_bp_centrl,
<fs_bp_compny> TYPE /mdgbpx/_s_bp_pp_bp_compny,
<fs_bp_mlt_as> TYPE /mdgbpx/_s_bp_pp_bp_mlt_as,
<fs_bp_porg> TYPE /mdgbpx/_s_bp_pp_bp_porg,
<fs_bp_vengen> TYPE /mdgbpx/_s_bp_pp_bp_vengen,
<fs_bp_header> TYPE /mdgbp/_s_bp_pp_bp_header,
<lt_anydata_address> TYPE ANY TABLE,
<lt_anydata_bp_header> TYPE ANY TABLE,
<lt_anydata_bp_mlt_as> TYPE ANY TABLE,
<lt_anydata_centrl> TYPE ANY TABLE,
<lt_anydata_compny> TYPE ANY TABLE,
<lt_anydata_bp_porg> TYPE ANY TABLE,
<lt_anydata_role> TYPE ANY TABLE,
<lt_anydata_bp_addusg> TYPE ANY TABLE,
<lt_anydata_postal> TYPE ANY TABLE,
<lt_anydata_ad_tel> TYPE ANY TABLE,
<lt_anydata_ad_fax> TYPE ANY TABLE,
<lt_anydata_ad_email> TYPE ANY TABLE,
<lt_anydata_ad_url> TYPE ANY TABLE,
<lt_anydata_bp_vengen> TYPE ANY TABLE.

DATA: g_s_entity TYPE REF TO data,


g_t_entity TYPE REF TO data.

DATA: gt_entity_keys TYPE usmd_gov_api_ts_ent_tabl,


wa_entity_keys TYPE usmd_gov_api_s_ent_tabl.

DATA: gt_entity_data TYPE usmd_gov_api_ts_ent_data,


wa_entity_data TYPE usmd_gov_api_s_ent_data.
INITIALIZATION.

START-OF-SELECTION.

* Get model instance


TRY .
go_mdg_conv = cl_usmd_conv_som_gov_api=>get_instance(
iv_model_name = 'BP'
* iv_classname = 'CL_USMD_CONV_SOM_GOV_API'
).
CATCH cx_usmd_conv_som_gov_api INTO go_error. "
g_error_string = go_error->get_text( ).
CATCH cx_usmd_app_context_cons_error INTO go_error. "
g_error_string = go_error->get_text( ).
CATCH cx_usmd_gov_api INTO go_error. "
g_error_string = go_error->get_text( ).
ENDTRY.

* Set environment
TRY.
go_mdg_conv->set_environment(
EXPORTING
* iv_crequest_id =
iv_crequest_type = 'SUPPL1P1'
* iv_process =
* iv_wi_id =
iv_create_crequest = abap_true
* iv_edition =
).
CATCH cx_usmd_conv_som_gov_api_env INTO go_error. "
g_error_string = go_error->get_text( ).
ENDTRY.

** Get Change Request temporary key


gv_crequest = go_mdg_conv->get_crequest_id( ).

* CASE wa_entity. "wa_usmd0020-usmd_entity.


*************************************
* 'BP_HEADER'
*************************************
CLEAR: g_s_entity, g_t_entity.

* Get Partner temporary key


TRY.
go_mdg_conv->create_entity_tmp_key(
EXPORTING
* iv_lock = ABAP_TRUE
iv_entity = 'BP_HEADER'
IMPORTING
es_key = gs_temp_key
).
CATCH cx_usmd_gov_api_core_error INTO go_error. "
g_error_string = go_error->get_text( ).
CATCH cx_usmd_gov_api INTO go_error. "
g_error_string = go_error->get_text( ).
ENDTRY.

TRY .
go_mdg_conv->get_entity_structure(
EXPORTING
iv_entity_name = 'BP_HEADER'
iv_struct_type = go_mdg_conv->gc_struct_key_attr
* iv_edition = ABAP_FALSE
IMPORTING
er_structure = g_s_entity
er_table = g_t_entity
).
CATCH cx_usmd_gov_api INTO go_error.
g_error_string = go_error->get_text( ).

ENDTRY.

ASSIGN g_s_entity->* TO <fs_bp_header>.


ASSIGN g_t_entity->* TO <lt_anydata_bp_header>.

DATA: l_uuid_16 TYPE sysuuid_x16.

TRY.
l_uuid_16 = cl_system_uuid=>create_uuid_x16_static( ).
CATCH cx_uuid_error INTO go_error.
CLEAR l_uuid_16.
ENDTRY.

<fs_bp_header>-bp_header = gs_temp_key.
<fs_bp_header>-bp_guid = l_uuid_16.
<fs_bp_header>-bu_group = 'ZTER'.
<fs_bp_header>-bu_type = 2.

INSERT <fs_bp_header> INTO TABLE <lt_anydata_bp_header>.

CLEAR wa_entity_keys.
wa_entity_keys-entity = 'BP_HEADER'.
wa_entity_keys-tabl = g_t_entity.
INSERT wa_entity_keys INTO TABLE gt_entity_keys.

TRY.
go_mdg_conv->enqueue_entity(
EXPORTING
it_entity_keys = gt_entity_keys
* iv_lock_mode = 'E'
).
CATCH cx_usmd_gov_api_core_error INTO go_error. "
g_error_string = go_error->get_text( ).
CATCH cx_usmd_gov_api_entity_lock INTO go_error. "
g_error_string = go_error->get_text( ).
CATCH cx_usmd_gov_api INTO go_error. "
g_error_string = go_error->get_text( ).
ENDTRY.

CLEAR wa_entity_data.
wa_entity_data-entity = 'BP_HEADER'.
wa_entity_data-entity_data = g_t_entity.
* wa_entity_Data-entity_attributes = .

INSERT wa_entity_data INTO TABLE gt_entity_data.

*************************************
* 'BP_CENTRL'
*************************************
CLEAR: g_s_entity, g_t_entity.

TRY .
go_mdg_conv->get_entity_structure(
EXPORTING
iv_entity_name = 'BP_CENTRL'
iv_struct_type = go_mdg_conv->gc_struct_key_attr
* iv_edition = ABAP_FALSE
IMPORTING
er_structure = g_s_entity
er_table = g_t_entity
).
CATCH cx_usmd_gov_api INTO go_error.
g_error_string = go_error->get_text( ).

ENDTRY.

ASSIGN g_s_entity->* TO <fs_bp_centrl>.


ASSIGN g_t_entity->* TO <lt_anydata_centrl>.

<fs_bp_centrl>-bp_header = gs_temp_key.
<fs_bp_centrl>-name_org1 = 'NAME 1 API'.
<fs_bp_centrl>-name_org2 = 'NAME 2 API'.

INSERT <fs_bp_centrl> INTO TABLE <lt_anydata_centrl>.

CLEAR wa_entity_data.
wa_entity_data-entity = 'BP_CENTRL'.
wa_entity_data-entity_data = g_t_entity.
* wa_entity_Data-entity_attributes = .

INSERT wa_entity_data INTO TABLE gt_entity_data.

*************************************
* 'AD_POSTAL'
*************************************

* Get temporary key --> It sholud work with temporary key but it doesn't. Use
range number instead
*** TRY.
*** CLEAR gs_temp_key_addr.
*** go_mdg_conv->create_entity_tmp_key(
*** EXPORTING
**** iv_lock = ABAP_TRUE
*** iv_entity = 'ADDRNO'
*** IMPORTING
*** es_key = gs_temp_key_addr
*** ).
*** CATCH cx_usmd_gov_api_core_error INTO go_error. "
*** g_error_string = go_error->get_text( ).
*** CATCH cx_usmd_gov_api INTO go_error. "
*** g_error_string = go_error->get_text( ).
*** ENDTRY.

"Temporary Address Numbers within MDG-Staging


"determine the preliminary address-number that is only valid
"for staged data (as soon as this comes to primary persistency
"this will be dropped and a new "real" address-number will be
"created during mapping/API-calling
CONSTANTS: gc_number_range TYPE inri-nrrangenr VALUE '01',
gc_number_range_object TYPE inri-object VALUE 'MDG_ADDR'.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = gc_number_range
object = gc_number_range_object
IMPORTING
number = gs_temp_key_addr "ev_address_number
* returncode = lv_returncode
EXCEPTIONS
interval_not_found = 1
number_range_not_intern = 2
object_not_found = 3
quantity_is_0 = 4
quantity_is_not_1 = 5
interval_overflow = 6
buffer_overflow = 7
OTHERS = 8.
IF sy-subrc <> 0.
"TODO: Implement suitable error handling here
EXIT.
ENDIF.

CLEAR: g_s_entity, g_t_entity.


TRY .
go_mdg_conv->get_entity_structure(
EXPORTING
iv_entity_name = 'AD_POSTAL'
iv_struct_type = go_mdg_conv->gc_struct_key_attr
* iv_edition = ABAP_FALSE
IMPORTING
er_structure = g_s_entity
er_table = g_t_entity
).
CATCH cx_usmd_gov_api INTO go_error.
g_error_string = go_error->get_text( ).
ENDTRY.

ASSIGN g_s_entity->* TO <fs_ad_postal>.


ASSIGN g_t_entity->* TO <lt_anydata_postal>.

<fs_ad_postal>-addrno = gs_temp_key_addr.
<fs_ad_postal>-bp_header = gs_temp_key.
<fs_ad_postal>-street = 'street'.
<fs_ad_postal>-city1 = 'city1'.
<fs_ad_postal>-house_nr1 = '1'.
<fs_ad_postal>-ref_posta = 'ES'.
<fs_ad_postal>-rfe_post = '25'.
<fs_ad_postal>-post_cod1 = '25001'.
INSERT <fs_ad_postal> INTO TABLE <lt_anydata_postal>.

CLEAR wa_entity_data.
wa_entity_data-entity = 'AD_POSTAL'.
wa_entity_data-entity_data = g_t_entity.
* wa_entity_Data-entity_attributes = .

INSERT wa_entity_data INTO TABLE gt_entity_data.

*************************************
* 'BP_ADDUSG'
*************************************

CLEAR: g_s_entity, g_t_entity.


TRY .
go_mdg_conv->get_entity_structure(
EXPORTING
iv_entity_name = 'BP_ADDUSG'
iv_struct_type = go_mdg_conv->gc_struct_key_attr
* iv_edition = ABAP_FALSE
IMPORTING
er_structure = g_s_entity
er_table = g_t_entity
).
CATCH cx_usmd_gov_api INTO go_error.
g_error_string = go_error->get_text( ).

ENDTRY.

ASSIGN g_s_entity->* TO <fs_bp_addusg>.


ASSIGN g_t_entity->* TO <lt_anydata_bp_addusg>.

<fs_bp_addusg>-addrno = gs_temp_key_addr.
<fs_bp_addusg>-bp_header = gs_temp_key.
<fs_bp_addusg>-bp_adrknd = 'XXDEFAULT'.
<fs_bp_addusg>-xdfadu = abap_true.

INSERT <fs_bp_addusg> INTO TABLE <lt_anydata_bp_addusg>.


CLEAR wa_entity_data.
wa_entity_data-entity = 'BP_ADDUSG'.
wa_entity_data-entity_data = g_t_entity.
* wa_entity_Data-entity_attributes = .

INSERT wa_entity_data INTO TABLE gt_entity_data.

*************************************
* 'ADDRESS'
*************************************

CLEAR: g_s_entity, g_t_entity.

TRY .
go_mdg_conv->get_entity_structure(
EXPORTING
iv_entity_name = 'ADDRESS'
iv_struct_type = go_mdg_conv->gc_struct_key_attr
* iv_edition = ABAP_FALSE
IMPORTING
er_structure = g_s_entity
er_table = g_t_entity
).
CATCH cx_usmd_gov_api INTO go_error.
g_error_string = go_error->get_text( ).

ENDTRY.

ASSIGN g_s_entity->* TO <fs_address>.


ASSIGN g_t_entity->* TO <lt_anydata_address>.

<fs_address>-addrno = gs_temp_key_addr.
<fs_address>-bp_header = gs_temp_key.
<fs_address>-type = 1.

INSERT <fs_address> INTO TABLE <lt_anydata_address>.

CLEAR wa_entity_data.
wa_entity_data-entity = 'ADDRESS'.
wa_entity_data-entity_data = g_t_entity.
* wa_entity_Data-entity_attributes = .

INSERT wa_entity_data INTO TABLE gt_entity_data.

*************************************
* 'AD_TEL'
*************************************

CLEAR: g_s_entity, g_t_entity.


TRY .
go_mdg_conv->get_entity_structure(
EXPORTING
iv_entity_name = 'AD_TEL'
iv_struct_type = go_mdg_conv->gc_struct_key_attr
* iv_edition = ABAP_FALSE
IMPORTING
er_structure = g_s_entity
er_table = g_t_entity
).
CATCH cx_usmd_gov_api INTO go_error.
g_error_string = go_error->get_text( ).

ENDTRY.

ASSIGN g_s_entity->* TO <fs_ad_tel>.


ASSIGN g_t_entity->* TO <lt_anydata_ad_tel>.

"Telephone
<fs_ad_tel>-addrno = gs_temp_key_addr.
<fs_ad_tel>-ad_consno = '002'.
<fs_ad_tel>-bp_header = gs_temp_key.
<fs_ad_tel>-t_flgmob = 1.
<fs_ad_tel>-t_country = 'ES'.
<fs_ad_tel>-t_number = '987654321'.

INSERT <fs_ad_tel> INTO TABLE <lt_anydata_ad_tel>.

"Mobile
CLEAR <fs_ad_tel>.
<fs_ad_tel>-addrno = gs_temp_key_addr.
<fs_ad_tel>-ad_consno = '001'.
<fs_ad_tel>-bp_header = gs_temp_key.
<fs_ad_tel>-t_flgmob = 3.
<fs_ad_tel>-t_country = 'ES'.
<fs_ad_tel>-t_number = '654321098'.

INSERT <fs_ad_tel> INTO TABLE <lt_anydata_ad_tel>.

CLEAR wa_entity_data.
wa_entity_data-entity = 'AD_TEL'.
wa_entity_data-entity_data = g_t_entity.
* wa_entity_Data-entity_attributes = .

INSERT wa_entity_data INTO TABLE gt_entity_data.

*************************************
* 'AD_FAX'
*************************************
CLEAR: g_s_entity, g_t_entity.
TRY .
go_mdg_conv->get_entity_structure(
EXPORTING
iv_entity_name = 'AD_FAX'
iv_struct_type = go_mdg_conv->gc_struct_key_attr
* iv_edition = ABAP_FALSE
IMPORTING
er_structure = g_s_entity
er_table = g_t_entity
).
CATCH cx_usmd_gov_api INTO go_error.
g_error_string = go_error->get_text( ).

ENDTRY.

ASSIGN g_s_entity->* TO <fs_ad_fax>.


ASSIGN g_t_entity->* TO <lt_anydata_ad_fax>.

"FAX
<fs_ad_fax>-addrno = gs_temp_key_addr.
<fs_ad_fax>-ad_consno = '002'.
<fs_ad_fax>-bp_header = gs_temp_key.
<fs_ad_fax>-f_flgdeft = abap_true.
<fs_ad_fax>-f_country = 'ES'.
<fs_ad_fax>-f_number = '987654321'.

INSERT <fs_ad_fax> INTO TABLE <lt_anydata_ad_fax>.

CLEAR wa_entity_data.
wa_entity_data-entity = 'AD_FAX'.
wa_entity_data-entity_data = g_t_entity.
* wa_entity_Data-entity_attributes = .

INSERT wa_entity_data INTO TABLE gt_entity_data.


*************************************
* 'AD_EMAIL'
*************************************
CLEAR: g_s_entity, g_t_entity.
TRY .
go_mdg_conv->get_entity_structure(
EXPORTING
iv_entity_name = 'AD_EMAIL'
iv_struct_type = go_mdg_conv->gc_struct_key_attr
* iv_edition = ABAP_FALSE
IMPORTING
er_structure = g_s_entity
er_table = g_t_entity
).
CATCH cx_usmd_gov_api INTO go_error.
g_error_string = go_error->get_text( ).

ENDTRY.

ASSIGN g_s_entity->* TO <fs_ad_email>.


ASSIGN g_t_entity->* TO <lt_anydata_ad_email>.

"email
<fs_ad_email>-addrno = gs_temp_key_addr.
<fs_ad_email>-ad_consno = '001'.
<fs_ad_email>-bp_header = gs_temp_key.
<fs_ad_email>-e_address = 'test@domain.com'.
<fs_ad_email>-e_flgdeft = abap_true.

INSERT <fs_ad_email> INTO TABLE <lt_anydata_ad_email>.

CLEAR wa_entity_data.
wa_entity_data-entity = 'AD_EMAIL'.
wa_entity_data-entity_data = g_t_entity.
* wa_entity_Data-entity_attributes = .

INSERT wa_entity_data INTO TABLE gt_entity_data.

*************************************
* 'AD_URL'
*************************************
CLEAR: g_s_entity, g_t_entity.
TRY .
go_mdg_conv->get_entity_structure(
EXPORTING
iv_entity_name = 'AD_URL'
iv_struct_type = go_mdg_conv->gc_struct_key_attr
* iv_edition = ABAP_FALSE
IMPORTING
er_structure = g_s_entity
er_table = g_t_entity
).
CATCH cx_usmd_gov_api INTO go_error.
g_error_string = go_error->get_text( ).

ENDTRY.

ASSIGN g_s_entity->* TO <fs_ad_url>.


ASSIGN g_t_entity->* TO <lt_anydata_ad_url>.

"Company Site
<fs_ad_url>-addrno = gs_temp_key_addr.
<fs_ad_url>-ad_consno = '001'.
<fs_ad_url>-bp_header = gs_temp_key.
<fs_ad_url>-u_address = 'http:\\www.company.com'.
<fs_ad_url>-u_flgdeft = abap_true.
<fs_ad_url>-u_type = 'HPG'.

INSERT <fs_ad_url> INTO TABLE <lt_anydata_ad_url>.

CLEAR wa_entity_data.
wa_entity_data-entity = 'AD_URL'.
wa_entity_data-entity_data = g_t_entity.
* wa_entity_Data-entity_attributes = .

INSERT wa_entity_data INTO TABLE gt_entity_data.

**********************************************************************

TRY.
go_mdg_conv->write_entity_data( it_entity_data = gt_entity_data ).

CATCH cx_usmd_gov_api_core_error INTO go_error. "


g_error_string = go_error->get_text( ).
CATCH cx_usmd_gov_api_entity_write INTO go_error. "
g_error_string = go_error->get_text( ).
CATCH cx_usmd_gov_api INTO go_error. "
g_error_string = go_error->get_text( ).
ENDTRY.

TRY.
go_mdg_conv->validate_crequest( ).
CATCH cx_usmd_gov_api_core_error INTO go_error. "
g_error_string = go_error->get_text( ).
CATCH cx_usmd_conv_som_gov_api INTO go_error. "
g_error_string = go_error->get_text( ).
ENDTRY.

TRY.
DATA: g_crequest_data TYPE usmd_s_crequest.

g_crequest_data-usmd_crequest = gv_crequest.
g_crequest_data-usmd_creq_type = 'SUPPL1P1'.
g_crequest_data-usmd_creq_text = 'Z_TEST_MDG_CONV_API'.
g_crequest_data-usmd_creq_status = '00'.

go_mdg_conv->write_crequest( is_crequest_data = g_crequest_data ).


CATCH cx_usmd_gov_api_core_error INTO go_error. "
g_error_string = go_error->get_text( ).
CATCH cx_usmd_gov_api INTO go_error. "
g_error_string = go_error->get_text( ).
ENDTRY.

* Save
TRY.
go_mdg_conv->save( ).
CATCH cx_usmd_gov_api_core_error INTO go_error. "
g_error_string = go_error->get_text( ).
CATCH cx_usmd_gov_api INTO go_error. "
g_error_string = go_error->get_text( ).
ENDTRY.

go_mdg_conv->dequeue_entity_all( ).

END-OF-SELECTION.

COMMIT WORK AND WAIT.

WRITE: / 'GV_CREQUEST: ', gv_crequest,


/ 'GS_TEMP_KEY: ', gs_temp_key.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy