Thursday, February 11, 2016

2039326 - Interface changes - SOCO Performance Optimization for HANA

Symptom
SOCO Performance Optimization for HANA Database


Other Terms
SoCo Optimization, HANA Optimization, CDS, Interface Changes


Reason and Prerequisites
Performance Optimizations for HANA specific DB, HANA DB


Solution
Kindly implement the correction instructions attached with the note.





------------------------------------------------------------------------
|Manual Pre-Implement.                                                 |
------------------------------------------------------------------------
|VALID FOR                                                             |
|Software Component   SRM_SERVER                                       |
| Release 713          SAPK-71301INSRMSRV - SAPK-71303INSRMSRV         |
------------------------------------------------------------------------

Steps to make changes in the CDS View /SAPSRM/SOCO_SRH.
1.Launch ABAP in eclipse
2.Add the system/project where you wish to make the change.
3.Goto the package /SAPSRM/PDO_SO_SEARCH
4.Navigate to Dictionary->ABAP DDL Sources
5.Double click on the CDS View, /SAPSRM/SOCO_SRH
6.Select All (Ctrl+A) and click delete.
7. Copy the below content starting from @AbapCatalog.sqlViewName: '/SAPSRM/SOCO_SRH' and paste it in the CDS view.
8.Save and click on Activate button/icon.(Ctrl+F3 also activates the View)

@AbapCatalog.sqlViewName: '/SAPSRM/SOCO_SRH'

/***********CDS view for SOCO Search Optimization********************************************************************************************************************************************
*This view projects all the fields in Soco Search screen present either as search variants or search results
*Header table crmd_orderadm_h is filtered for Shopping Cart objects and is joined with item table crmd_orderadm_i to project all shopping cart items
*The result is filtered for sourcing relavant items and hierarchy items by joining the result with bbp_pdigp table with relevant filters and join conditions
*The outcome is joined with crm_jest to project items with their statuses.
*The result is combined with bbp_pdorg via crmd_link table to project Purchasing Organization and Purchasing group
*This superset is sequentially left outer joined with crmd_partner, adrc, bbp_pdacc, but000 and bbp_pdbei using crmd_link and applicable filters wherever necessary to project required fields
*********************************************************************************************************************************************************************************************/

define view /sapsrm/soco_srch as select from (((((((((((((((((   crmd_orderadm_h as hdr
                                        left outer join bbp_pdhgp     as hgp              on   hdr.guid = hgp.guid)
                                        inner join crmd_orderadm_i    as itm              on  hdr.guid = itm.header    )
                                        left outer join bbp_pdhss     as hss              on  hdr.guid = hss.guid      )

                                        left outer join bbp_pdigp     as igp               on  itm.guid                    = igp.guid                                                )
                                        inner join crm_jest           as jest              on  (hdr.guid                  = jest.objnr      or  itm.guid = jest.objnr)             )
                                        left outer join crmd_link     as org_link          on  (itm.guid                  = org_link.guid_hi and objtype_set = '21')                )
                                        left outer join bbp_pdorg     as org              on  org_link.guid_set           = org.set_guid                                            )
                                        left outer join crmd_link     as sup_link          on  (itm.guid                  = sup_link.guid_hi and sup_link.objtype_set = '07')       )
                                        left outer join crmd_partner as supplier          on  (sup_link.guid_set          = supplier.guid    and supplier.partner_fct = '00000019') )
                                        left outer join adrc          as adrc              on  supplier.addr_nr            = adrc.addrnumber                                         )
                                        left outer join crmd_link     as acc_link          on  (itm.guid                  = acc_link.guid_hi and acc_link.objtype_set ='31')        )
                                        left outer join bbp_pdacc     as pdacc            on  acc_link.guid_set           = pdacc.set_guid                                          )
                                        left outer join crmd_link     as req_link          on  (itm.guid                  = req_link.guid_hi and req_link.objtype_set ='07')        )
                                        left outer join crmd_partner as requester        on  (req_link.guid_set          = requester.guid   and requester.partner_fct = '00000016'))
                                        left outer join but000        as but000_requester  on  but000_requester.persnumber = requester.addr_np                                       )
                                        left outer join bbp_pdbei     as bei               on  itm.guid                    = bei.guid                                                )
                                        left outer join bbp_pdiss     as iss               on  itm.guid                    = iss.guid                                                )

{


itm.client, //Client number
itm.guid, //Item guid
itm.parent, //Item's Parent guid

hdr.object_id, // number of requisition

hss.ps_complex_ind,

itm.created_by,  //gives i num.
itm.ordered_prod, // product name in search variant
itm.description, // Item Description in search results and search variant
itm.description_uc, // Item Description in upper case
itm.number_int, // item number in document. Displayed in Requisition/ItemNumber
itm.number_ext, // external item number in search results
itm.product_src_sys, // Logical System in Search Results
itm.itm_type,  //Item type

igp.category_id, //category in search results
igp.manu_prod, // Manufacturer Part Number in search results
igp.mfr_no_ext, // Manufacturer External Number
igp.catalogitem, //
igp.catalogid,

igp.hier_check_ind, //Hierarchy Check Indicator

//for delivery range//
igp.deliv_date,
igp.deliv_time,
igp.deliv_days,

igp.quantity, // Quantity in search results
igp.unit, //Item Unit
igp.value, //Value
igp.currency, //Currency
igp.ext_demid, // External Requirement number in search variant
igp.ext_dem_logsys,


igp.source_rel_ind, //temp remove later

igp.doc_priority, //document priority
igp.grouping_level,

//Date range for service items
igp.vper_end,
igp.vper_start,

igp.category, //Item Category


hdr.description as requisition_name, //name of requistion
hdr.description_uc as requisition_name_uc,//for case sensitivity
hdr.guid as header_guid ,  //Shopping Cart guid

jest.stat, //lock entries in search variant
jest.inact, //

org.proc_org, // Purchasing Grp in search variant
org.proc_group, // Purchasing Org in search variant


supplier.partner_no, // Supplier guid
supplier.partner_fct, // Supplier Partner Function



//for acc assignment value in search variant//
pdacc.acc_cat,  //Account Category
pdacc.cost_ctr, //Cost Center
pdacc.asset_no, //Asset Number
pdacc.wbs_elem_e, //Workbreakdown Sturcture element
pdacc.order_no, //Sales order number
pdacc.network, //Network Number
pdacc.grant_nbr, //Grant
pdacc.cmmt_item, //Commitment Item
pdacc.funds_ctr, //Funds Center
pdacc.fund, //Fund


adrc.name1,  //Supplier Name

requester.partner_no as req_partner_no, // Requestor guid
requester.partner_fct as req_partner_fct, // Requester Partner Function
but000_requester.partner, // requester number in search variant
but000_requester.name_first, // requester first name
but000_requester.name_last, //requester last name

bei.be_info_rec,  //info record in search results
iss.ps_hl_item, // for hierarchy tree
iss.ps_handle_itm, // for hierarchy tree
iss.ps_ctrl_key, //for hierarchy tree

hgp.doc_closed,
hgp.version_type,
igp.del_ind
}where ((( igp.grouping_level != '') or ( igp.source_rel_ind = 'X'  or igp.source_rel_ind = 'M'  or igp.source_rel_ind = 'U'  or igp.source_rel_ind = 'C' or igp.source_rel_ind = 'A')) and (igp.del_ind != 'X' ))
and
(hgp.doc_closed = '' and hgp.version_type = '') and hdr.object_type = 'BUS2121';


Steps to create /SAPSRM/S_HANA_SRH_RESULT_PR
1> Launch the se11( Data Dictionary Maintenance) screen
2> Choose the Database element radio button
3> type /SAPSRM/S_HANA_SRH_RESULT_PR and press the create button
4> Choose the structure radio button
5> Enter the short description as "Line of the search result for Purchase Requisitions for HANA"
6> In the components tab enter 2 parameters
7> The first parameter is
  Component : .Include
  Typing Method : Types
  Component Type : /SAPSRM/S_SEARCH_RESULT_PR
8> The second parameter is
  Component : ps_complex_ind
  Typing Method : Types
  Component Type : /SAPPSSRM/PS_COMPLEX_INDICATOR
9> Save, check and Activate

Steps to create /SAPSRM/T_HANA_SRH_RESULT_PR table type
1> Launch the se11( Data Dictionary Maintenance) screen
2> Choose the Database element radio button
3> type /SAPSRM/T_HANA_SRH_RESULT_PR and press the create button
4> Choose the table type radio button
5> Enter the short description "Table type for search result for Purchase Requisition for HANA"
6> In the Line Type tab, choose the Line Type radio button and type /SAPSRM/S_HANA_SRH_RESULT_PR
7> Click enter and it will be linked to the existing structure type
8> Save, check and activate


Header Data

Released On 21.10.2014 15:20:40
Release Status Released for Customer
Component SRM-EBP-SOC Sourcing
Priority Correction with medium priority
Category Program error

No comments:

Post a Comment