Sie sind auf Seite 1von 4

Creating an interested in the ERP using method cmd_ei_api=>maintain_bapi

created by Veronika Hermenau on Jun 1, 2012 5:48 PM, last modified by Veronika Hermenau on Jun 1, 2012 6:02 PM
Version 2
inShare

It is only an exmple for creating an interested in the ERP using method cmd_ei_api=>maintain_bapi All data to interested are transferred in the structure LS_MASTERDATA. The LS_MASTERDATA is a deep structure of type CMDS_EI_MAIN (see Figures).

In the sub-structures / tables all the data will be stored in that way which is known from creating customers in dialog: the general data, the plant data and the sales data. The individual views are subdivided according to the "tables" in which the data are stored. Alpha In my application I have used only the general data: address data, phone number, fax number and e-mail address. In this case, I needed the component CENTRAL and from ADDRESS, the part POSTAL and the part COMMUNICATION with its components PHONE FAX and EMAIL. Alpha The structure header is divided into and OBJECT_INSTANCE and OBJECT_TASK. OBJECT_INSTANCE is filled with the customer number, if it is an external number assignment, otherwise, the system determines the customer number. OBJECT_TASKindicates whether there is acreation(I) a change in (U) or deletion(D). Such aTASKfield exists in all higher-level units, and it must be filled every time.The subordinate unitseach contain two structures, a DATA and a DATAX with the same field names. The DATA fields contains the values, The DATAX fields marks the corresponding as used . (Marker :Field is to evaluate) Now for the code. One can use certainly Field symbols to access to the structures, but toclarify what is actually filled, here the fields are named directly. .....
is_adr_data is an user structure, which contains VCARD Data from a portal applikation

data: ls_masterdata type cmds_ei_main, ls_customers type cmds_ei_extern, lt_customers type cmds_ei_extern_t, * for Exportparameters of Methode ls_master_data_correct type cmds_ei_main, ls_message_correct type cvis_message, ls_master_data_defective type cmds_ei_main, ls_message_defective type cvis_message, * for Transfer Communication data ls_phone_main type cvis_ei_cvi_phone, ls_phone type cvis_ei_phone_str, lt_phone type cvis_ei_phone_t, ls_fax_main type cvis_ei_cvi_fax, ls_fax type cvis_ei_fax_str, lt_fax type cvis_ei_fax_t, ls_mail_main type cvis_ei_cvi_smtp, ls_mail type cvis_ei_smtp_str, lt_mail type cvis_ei_smtp_t. * Customer number (in case of external creating of numbers) ls_customers-header-object_instance-kunnr = lv_nummer. * Mark CREATE ls_customers-header-object_task = 'I'. * Fill central data like Customer Account Group ls_customers-central_data-central-data-ktokd = c_interessent. ls_customers-central_data-central-datax-ktokd = 'X'. * now address data ls_customers-central_data-address-task = 'I'. * if the FROM date should be filled here , it has also to be filled in all other used structures ls_customers-central_data-address-postal-data-from_date = sy-datum. * NAME and SORT1 are Mandatory fields ls_customers-central_data-address-postal-data-name = is_adr_data-name_last. ls_customers-central_data-address-postal-data-sort1 = is_adr_data-name_last. ls_customers-central_data-address-postal-data-name_2 = is_adr_dataname_first. ls_customers-central_data-address-postal-data-city = is_adr_data-city1. ls_customers-central_data-address-postal-data-postl_cod1 = is_adr_datapost_code1. ls_customers-central_data-address-postal-data-street = is_adr_data-street. ls_customers-central_data-address-postal-data-country = is_adr_data-country. ls_customers-central_data-address-postal-data-langu = is_adr_data-country. * and now mark all used fields ls_customers-central_data-address-postal-datax-from_date = 'X'. ls_customers-central_data-address-postal-datax-to_date = 'X'. ls_customers-central_data-address-postal-datax-name = 'X'. ls_customers-central_data-address-postal-datax-sort1 = 'X'. ls_customers-central_data-address-postal-datax-name_2 = 'X'. ls_customers-central_data-address-postal-datax-city = 'X'. ls_customers-central_data-address-postal-datax-postl_cod1 = 'X'. ls_customers-central_data-address-postal-datax-street = 'X'. ls_customers-central_data-address-postal-datax-house_no = 'X'. ls_customers-central_data-address-postal-datax-country = 'X'. ls_customers-central_data-address-postal-datax-langu = 'X'. * fill telephon data

ls_phone-contact-task = 'I'. ls_phone-contact-data-telephone = is_adr_data-telnummer. ls_phone-contact-data-country = is_adr_data-country. ls_phone-contact-datax-country = 'X'. ls_phone-contact-datax-telephone = 'X'. append ls_phone to lt_phone. ls_phone_main-phone = lt_phone. * fill fax data ls_fax-contact-task = 'I'. ls_fax-contact-data-fax = is_adr_data-faxnummer. ls_fax-contact-datax-fax = 'X'. ls_fax-contact-data-country = is_adr_data-country. ls_fax-contact-datax-country = 'X'. append ls_fax to lt_fax. ls_fax_main-fax = lt_fax. * fill mail data ls_mail-contact-task = 'I'. ls_mail-contact-data-e_mail = is_adr_data-smtp_addr. ls_mail-contact-datax-e_mail = 'X'. append ls_mail to lt_mail. ls_mail_main-smtp = lt_mail. ls_customers-central_data-address-communication-smtp = ls_mail_main. ls_customers-central_data-address-communication-phone = ls_phone_main . ls_customers-central_data-address-communication-fax = ls_fax_main. append ls_customers to lt_customers. ls_masterdata-customers = lt_customers. cmd_ei_api=>maintain_bapi( exporting iv_test_run = space * iv_collect_messages = SPACE is_master_data = ls_masterdata importing es_master_data_correct = ls_master_data_correct es_message_correct = ls_message_correct es_master_data_defective = ls_master_data_defective es_message_defective = ls_message_defective ). * to start booking call function 'BAPI_TRANSACTION_COMMIT'

Das könnte Ihnen auch gefallen