Baggrund
En af vores kunder oplevede dårlig ydeevne ved søgning efter materialer i SAP ECC. Det skyldtes, at kunden havde ca. 275 mio. datarækker for materialeklassificering. For at gøre det muligt for ikke-SAP-brugere at søge i databasen havde kunden en webbaseret front-end i hele virksomheden, som medarbejderne gerne ville beholde.
Da kunden introducerede UNSPSC-materialeklassifikation, blev problemet med den dårlige ydeevne kritisk: Søgning og sourcing blev obstruktivt vanskeligt.
Begrænsninger af SAP standard søgeværktøjer
SAP leverer tre out-of-the-box løsninger til søgning efter materialer:
For den nyudviklede og optimerede søgning er svartiden uafhængig af datasættets størrelse!
I gennemsnit er svartiden for den optimerede søgning 0.29 sekunder – dette er hurtigt nok til, at brugeren ikke genkender nogen ventetid.
Hvordan gjorde vi det?
På grund af ovenstående begrænsninger byggede vi en løsning, der kunne bruges med kundens eksisterende webbaserede brugergrænseflade og sørgede for, at den var aktiveret for eksisterende SAP-brugere såvel som for andre potentielle brugere, f.eks. Windchill.
Det blev bygget som en RFC-aktiveret funktionalitet til at understøtte det ældre webbaserede søgeværktøj, men blev også aktiveret til at blive brugt med oData-baseret gateway-service i SAP til fremtidige integrationer med f.eks. Windchill.
Søgefunktionaliteten var baseret på SAP-standardanbefalede API’er mod Enterprise Search Engine (TRex). Dette vil også være i stand til at “overleve” en migrering til Hana S / 4, hvor søgemaskinen kan ændres fra TRex-indeksbaseret til CDS-visningsbaseret.
De vigtigste byggesten var følgende ABAP-klasser:
- SAP GUI klassifikationssøgning
- SAP Gui avanceret materialesøgning
- Netweaver Business Client (NWBC)

- CL_ESH_IF_SEARCH_REQUEST-SET_SEARCH_MODE til indstilling af søgetilstand (Exact, Fuzzy osv.)
- CL_ESH_IF_SEARCH_REQUEST-ADD_SEARCH_ATTRIBUTE til at fodre søgemaskinen med de ‘simple’ standardkriterier for materialesøgningsfelter.
- CL_SDQ_USMD_SEARCH_DATA_IMPL-ADD_COMPLEX_CRITERIA til fodring af søgemaskinen med klassificeringssøgekriterierne.
- CL_ESH_IF_SEARCH_REQUEST-SET_SORT_ATTRIBUTES til at indføre sorteringsattributterne i søgemaskinen.
- CL_ESH_IF_SEARCH_REQUEST-SØG for den faktiske søgning, der skal udføres.
- CL_ESH_IF_SEARCH_RESPONSES- GET_CONNECTOR_STATISTICS for at få søgestatistikker returneret, såsom det samlede antal hits og søgetid.
- CL_ESH_IF_SEARCH_RESP_CONNECT- GET_RESULTS_DATA_RAW for at få søgeresultatet returneret.