classic環境では以下のように簡単にURLハックできたみたいです。
https://xxxx--lightning.my.salesforce.com/_ui/search/ui/UnifiedSearchResults?sen=ka&sen=003&str=[call.cli]&initialViewMode=summary&searchAll=true
では、Lightning環境ではどうでしょうか。ちょうど質問がありましたので調べてみると
url strings appearing in classic rather than lightning
そのそもURLが違います(当然かな)、それとBase64エンコードする必要があるみたいです。
回避策を頼りにコンポーネントを作ってみました。
質問者の検索条件と同じようにしてみます。
以下のコンポーネントでLightningのグルーバル検索用URLが生成されました。
コンポーネント
<aura:component implements="force:appHostable" access="global">
<!-- ここに検索したい単語をセットする -->
<aura:attribute name="search" type="String" default="call.cli"/>
<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
<lightning:layout horizontalAlign="spread" multipleRows="true">
<lightning:layoutItem padding="around-xx-small" flexibility="grow" size="12" mediumDeviceSize="12" largeDeviceSize="12">
<div class="slds-box slds-box_xx-small slds-text-align_left slds-m-around_xx-small slds-theme_default">
<lightning:layout verticalAlign="left" multipleRows="true">
Redirecting to search results for {!v.search}
</lightning:layout>
</div>
</lightning:layoutItem>
</lightning:layout>
</aura:component>
コントローラ
({
doInit : function(component, event, helper) {
// Grab search query from URL
var searchQuery = component.get("v.search");
// Convert search query into SF expected format
// "type":"TOP_RESULTS",,"id":"Product2","entity":"Product2"
//取引先責任者だけを指定。実際には "name":"Contact"だけでもよさそうな感じ
var stringToEncode =
'{"componentDef":"forceSearch:search","attributes":{"term":"'+
searchQuery + '","scopeMap":{"labelPlural":"Contacts","entity":"Contact","name":"Contact" },"context":{"disableSpellCorrection":false,"SEARCH_ACTIVITY":{"term":"'+
searchQuery + '"}}}}';
var encodedString = btoa(stringToEncode);
// Redirect user (this only works from Lightning App, won't work from components)
window.location = "/one/one.app?source=alohaHeader#" + encodedString;
}
})