When using the BAPI_SALESORDER_CREATEFROMDAT2 bapi and you want to use a one time customer you need to link the ORDER_PARTNERS table with the PARTNERADDRESSES table.
This is done as follows;
ORDER_PARTNERS-ADDR_LINK = '1'.
PARTNERADDRESSES-ADDR_NO = '1'.
This will link the two tables and allow you to pass address and email information into the sales order for the one time customer.
Wednesday, September 28, 2016
Thursday, May 12, 2016
Creating a customer in HANA 1511
Creating a customer in HANA 1511 isn't as easy as it used to be. There's a new function, CVI_EI_INBOUND_MAIN, that is used to create all Business Partners. This has to be fed a lot of information before it will create a new customer. The code below will create a bare-bones customer with a single address.
*&---------------------------------------------------------------------* *& Report ZZCUSTCREATE *&---------------------------------------------------------------------* *& Test program to create a customer *&---------------------------------------------------------------------* report zzcustcreate. data: lt_data type cvis_ei_extern_t, lt_return type bapiretm, ls_return type bapireti, ls_retmsg type line of bapiretct, lv_text type string. data: wa_data like line of lt_data, wa_role type bus_ei_bupa_roles, wa_relation type burs_ei_extern, wa_paadr type bus_ei_bupa_address, wa_company type cmds_ei_company. data: lv_guid type guid_32, lv_pguid like but000-partner_guid, lv_partner like wa_data-partner-header-object_instance-bpartner. start-of-selection. lv_partner = '0017100152'. select single partner_guid from but000 into lv_pguid where partner = lv_partner. if sy-subrc = 0. lv_guid = lv_pguid. else. call method cl_system_uuid=>if_system_uuid_static~create_uuid_c32 receiving uuid = lv_guid. endif. * Create customer wa_data-partner-header-object_task = 'M'. wa_data-partner-header-object_instance-bpartner = lv_partner. "Because BP03 is externally numbered wa_data-partner-header-object_instance-bpartnerguid = lv_guid. *--- Partner / Central data / common -------------------------------- wa_data-partner-central_data-common-data-bp_control-category = '2'. "Organization wa_data-partner-central_data-common-data-bp_control-grouping = 'BP03'. "Grouping wa_data-partner-central_data-common-data-bp_centraldata-searchterm1 = 'MARKLANGENHOVEN'. wa_data-partner-central_data-common-data-bp_organization-name1 = 'Marks LLC'. wa_data-partner-central_data-common-data-bp_group-namegroup1 = 'MARKLLC'. wa_data-partner-central_data-common-datax-bp_centraldata-searchterm1 = abap_true. wa_data-partner-central_data-common-datax-bp_organization-name1 = abap_true. wa_data-partner-central_data-common-datax-bp_group-namegroup1 = abap_true. *--- Partner / Central data / Address ------------------------------- wa_paadr-task = 'M'. wa_paadr-data_key-operation = 'XXDFLT'. wa_paadr-data-postal-data-city = 'Beverly Hills'. wa_paadr-data-postal-data-postl_cod1 = '90210'. wa_paadr-data-postal-data-street = '1234 Main St'. wa_paadr-data-postal-data-country = 'US'. wa_paadr-data-postal-data-region = 'CA'. wa_paadr-data-postal-data-langu = 'E'. wa_paadr-data-postal-datax-city = abap_true. wa_paadr-data-postal-datax-postl_cod1 = abap_true. wa_paadr-data-postal-datax-street = abap_true. wa_paadr-data-postal-datax-country = abap_true. wa_paadr-data-postal-datax-region = abap_true. wa_paadr-data-postal-datax-langu = abap_true. wa_paadr-currently_valid = abap_true. append wa_paadr to wa_data-partner-central_data-address-addresses. *--- Partner / Central data / role ---------------------------------- wa_role-task = 'M'. "Modify wa_role-data_key = 'FLCU01'. "Role key - customer wa_role-data-rolecategory = 'FLCU01'. wa_role-data-valid_from = sy-datum. wa_role-data-valid_to = '99991231'. wa_role-currently_valid = abap_true. wa_role-datax-valid_from = abap_true. wa_role-datax-valid_to = abap_true. append wa_role to wa_data-partner-central_data-role-roles. wa_data-partner-central_data-role-current_state = abap_true. *--- Partner relation / header --------------------------------- wa_relation-header-object_instance-partner1-identificationcategory = 'FLCU01'. append wa_relation to wa_data-partner_relation. wa_relation-header-object_task = 'I'. *--- Customer / Company data ------------------------------------ wa_company-task = 'M'. "Modify wa_company-data_key = '1710'. " company code wa_company-data-zterm = '0002'. " terms of payment wa_company-datax-zterm = 'X'. append wa_company to wa_data-customer-company_data-company. *--- Customer / Header -------------------------------------------- wa_data-customer-header-object_task = 'I'. wa_data-customer-header-object_instance = lv_partner. *--- Customer / Central data ------------------------------------- wa_data-customer-central_data-address-task = 'M'. "Modify wa_data-customer-central_data-address-postal-data-from_date = sy-datum. wa_data-customer-central_data-address-postal-data-to_date = '99991231'. wa_data-customer-central_data-address-postal-data-name = 'Mark Langenhoven'. wa_data-ensure_create-create_customer = abap_true. "Finally fill the main data structure append wa_data to lt_data. call function 'CVI_EI_INBOUND_MAIN' exporting i_data = lt_data importing e_return = lt_return. call function 'BAPI_TRANSACTION_COMMIT'. loop at lt_return into ls_return. loop at ls_return-object_msg into ls_retmsg. message id ls_retmsg-id type 'S' number ls_retmsg-number into lv_text with ls_retmsg-message_v1 ls_retmsg-message_v2 ls_retmsg-message_v3 ls_retmsg-message_v4. write: / ' ', ls_retmsg-type, ls_retmsg-id, ls_retmsg-number, / '>>', lv_text. endloop. endloop. write: / 'Done'.
Thursday, January 21, 2016
Finding the correct BADi for the job
To be able to easily find the exact right BADi you need you can follow the steps below;
- Go to t-code SE24
- Pull up class CL_EXITHANDLER
- Double click the GET_INSTANCE method
- Put a break point on the CASE's sy-subrc line. (Roundabout line 28)
- Now run the t-code you want the BADi for and check the EXIT_NAME field for the name of the BADI
Subscribe to:
Posts (Atom)