Creating Search Sources

Information on what settings from XML search sources that will also be used in the normal search dialog for forms is missing.

Search Sources is a new concept in IFS Enterprise Explorer to search for records via identified attributes. 

Contents

Background

Search Sources are search definitions that describes search behavior, such as what attributes is possible to include in the search criteria.

Search Sources are defined in XML-files that resides in the components. During build these XML-files are compiled into a "Search.xml.gz" file that resides in the application runtime folder (DeployFiles).

The structure of a search source XML-files is: grammar. singular/plural use

<SearchSources>
    <SearchSource>
        <id>Customer</id>
        <url>ifsapf:Ifs.Application.Enterp.frmCustomerInfo</url>
        <columns>
            <column default="yes" prompt="Customer Id" type="Text">CustomerId</column>
            <column default="yes" prompt="Name" type="Text">Name</column>
            <column default="yes" prompt="Association No" type="Text">AssociationNo</column>
            <column prompt="Corporate Form" type="Text" reference="CORPORATE_FORM">CorporateForm</column>
            <column prompt="Country" type="Text" reference="ISO_COUNTRY">Country</column>
            <column prompt="Default Language" type="Text" reference="ISO_LANGUAGE">DefaultLanguage</column>
        <column prompt="Creation Date" type="Date">CreationDate</column>
    </columns>
</SearchSource>

Editing the search source file

  1. Check the URL of your search source. By default this is the URL from the selected form. This is normally correct.
  2. Select what columns should be visible in the search panel by default by adding an attribute default="yes" to those columns.
    All key columns are already marked in that way - remove it if you for some reason do not want the keys to be visible in the search panel.
  3. All the columns without the "default" attribute will not be visible by default, but can be added by the user configuring the search source. If you do not want some columns to be available for that, simply remove them from the file.
  4. The ordering of the columns is the same as in the form. If you want some other ordering, rearrange the file (remember that the user still may change the ordering from the configuration)
  5. The generated reference columns always reference another LU using the base view for that LU for LOVs. If you have specific LOV-views, you have to replace that by editing the "reference" attribute.

Testing the search source

The fastest way to test a search source is to enter the following url:

ifswin:Ifs.Fnd.ApplicationSearch.SearchPage?indexedlocation=<id-from-searchsource>

For example:

ifswin:Ifs.Fnd.ApplicationSearch.SearchPage?indexedlocation=FndEvent

Otherwise use the following steps:

  1. In the Application Search panel (in the left lower corner), activate the menu by pressing the arrow beside the magnifying glass.
  2. Select "Detailed Search…".
  3. Select the search source in the "Locations..." dropdown. If it's not present, select "More locations..." and select it from the dialog. It it's not present either in the dropdown or the dialog, hen it probably has not been merged into the Search.xml file.
  4. The search page should should now show the default fields in your search source.
  5. Enter some search criteria and press on the magnifying glass
    The form specified in the URL should open up and populate with the search result.
  6. If problems occur, compare with the search dialog in the form itself.

 

Search Domain

As a complement to the Search Source where you query on identified fields as described above there is also support for free text search via identified Search Domains.
 

Example of Search Sources

These Search Sources examples are not released in IFS Application:

  1. Supplier
  2. Customer
  3. Customer Order
  4. Person

 

Supplier

  <?xml version="1.0" encoding="UTF-8" ?> 
- <SearchSources>
  - <SearchSource>
      <id>Supplier</id> 
      <url>ifsapf:Ifs.Application.Enterp.frmSupplierInfo</url> 
    - <columns>
        <column default="yes" prompt="Supplier Id" type="Text">SupplierId</column> 
        <column default="yes" prompt="Name" type="Text">Name</column> 
        <column default="yes" prompt="Suppliers Own ID" type="Text">SuppliersOwnId</column> 
        <column default="yes" prompt="Association No" type="Text">AssociationNo</column> 
        <column prompt="Corporate Form" type="Text" reference="CORPORATE_FORM">CorporateForm</column> 
        <column prompt="Country" type="Text" reference="ISO_COUNTRY">Country</column> 
        <column prompt="Default Language" type="Text" reference="ISO_LANGUAGE">DefaultLanguage</column> 
        <column prompt="Creation Date" type="Date">CreationDate</column> 
      </columns>
    </SearchSource>
  </SearchSources


Customer

  <?xml version="1.0" encoding="UTF-8" ?> 
- <SearchSources>
  - <SearchSource>
      <id>Customer</id> 
      <url>ifsapf:Ifs.Application.Enterp.frmCustomerInfo</url> 
    - <columns>
        <column default="yes" prompt="Customer No" type="Text">CustomerId</column> 
        <column default="yes" prompt="Name" type="Text">Name</column> 
        <column default="yes" prompt="Association No" type="Text">AssociationNo</column> 
        <column prompt="Corporate Form" type="Text" reference="CORPORATE_FORM">CorporateForm</column> 
        <column prompt="Country" type="Text" reference="ISO_COUNTRY">Country</column> 
        <column prompt="Default Language" type="Text" reference="ISO_LANGUAGE">DefaultLanguage</column> 
        <column prompt="Creation Date" type="Date">CreationDate</column> 
      </columns>
    </SearchSource>
  </SearchSources>


Customer Order

  <?xml version="1.0" encoding="UTF-8" ?> 
- <SearchSources>
  - <SearchSource>
      <id>CustomerOrder</id> 
      <url>ifsapf:Ifs.Application.Order_.frmCustomerOrder</url> 
    - <columns>
        <column default="yes" prompt="Order No" type="Text">OrderNo</column> 
        <column default="yes" prompt="Customer No" type="Text" reference="CUST_ORD_CUSTOMER">CustomerNo</column> 
        <column default="yes" enum="CUSTOMER_ORDER_API.ENUMERATE_STATES__" prompt="State" type="Text">Objstate</column> 
        <column prompt="Agreement ID" type="Text" reference="CUSTOMER_AGREEMENT">AgreementId</column> 
        <column default="yes" prompt="Authorize Code" type="Text" reference="ORDER_COORDINATOR">AuthorizeCode</column> 
        <column prompt="Bill Addr No" type="Text" reference="CUST_ORD_CUSTOMER_ADDRESS">BillAddrNo</column> 
        <column prompt="Cancellation Reason" type="Text" reference="ORDER_CANCEL_REASON">CancelReason</column> 
        <column prompt="Site" type="Text" reference="SITE">Contract</column> 
        <column prompt="Contract Item No" type="Text" reference="CONTRACT_ITEM">ContractItemNo</column> 
        <column prompt="Country Code" type="Text" reference="APPLICATION_COUNTRY">CountryCode</column> 
        <column prompt="Currency Code" type="Text" reference="ISO_CURRENCY">CurrencyCode</column> 
        <column prompt="Customer No Pay" type="Text" reference="CUST_ORD_CUSTOMER">CustomerNoPay</column> 
        <column prompt="Customer No Pay Addr No" type="Text" reference="CUST_ORD_CUSTOMER_ADDRESS">CustomerNoPayAddrNo</column> 
        <column prompt="Delivery Terms" type="Text" reference="ORDER_DELIVERY_TERM">DeliveryTerms</column> 
        <column prompt="District Code" type="Text" reference="SALES_DISTRICT">DistrictCode</column> 
        <column prompt="Forward Agent ID" type="Text" reference="FORWARDER_INFO">ForwardAgentId</column> 
        <column prompt="Language Code" type="Text" reference="APPLICATION_LANGUAGE">LanguageCode</column> 
        <column prompt="Market Code" type="Text" reference="SALES_MARKET">MarketCode</column> 
        <column prompt="Order Code" type="Text" reference="CUSTOMER_ORDER_CODE">OrderCode</column> 
        <column prompt="Order Type" type="Text" reference="CUST_ORDER_TYPE">OrderId</column> 
        <column prompt="Payment Terms" type="Text" reference="PAYMENT_TERM">PayTermId</column> 
        <column prompt="Print Control Code" type="Text" reference="CUST_ORD_PRINT_CONTROL">PrintControlCode</column> 
        <column prompt="Project ID" type="Text" reference="PROJECT">ProjectId</column> 
        <column prompt="Region Code" type="Text" reference="SALES_REGION">RegionCode</column> 
        <column prompt="Route ID" type="Text" reference="CUSTOMER_ORDER_ROUTE">RouteId</column> 
        <column prompt="Salesman Code" type="Text" reference="SALES_PART_SALESMAN">SalesmanCode</column> 
        <column prompt="Ship Addr No" type="Text" reference="CUST_ORD_CUSTOMER_ADDRESS">ShipAddrNo</column> 
        <column prompt="Ship Via Code" type="Text" reference="MPCCOM_SHIP_VIA">ShipViaCode</column> 
        <column prompt="Task ID" type="Text" reference="CC_CASE_TASK">TaskId</column> 
        <column prompt="Addr Flag" type="Enumeration" enum="GEN_YES_NO_API">AddrFlag</column> 
        <column prompt="Blocked for Unpaid Advance Invoices" type="Enumeration" enum="FND_BOOLEAN_API">AdvPayBlock</column> 
        <column prompt="Backorder Option" type="Enumeration" enum="CUSTOMER_BACKORDER_OPTION_API">BackorderOption</column> 
        <column prompt="Calc Disc Bonus Flag" type="Enumeration" enum="CALCULATE_DISCOUNT_BONUS_API">CalcDiscBonusFlag</column> 
        <column prompt="Check Sales Group Setting" type="Enumeration" enum="FND_BOOLEAN_API">CheckSalesGrpDelivConf</column> 
        <column prompt="Confirm Deliveries" type="Enumeration" enum="FND_BOOLEAN_API">ConfirmDeliveries</column> 
        <column prompt="Credit Stop" type="Enumeration" enum="CUSTOMER_CREDIT_BLOCK_API">CrStop</column> 
        <column prompt="Delay Cost of Sold Goods to Delivery Confirmation" type="Enumeration"
          enum="FND_BOOLEAN_API">DelayCogsToDelivConf</column> 
        <column prompt="Internal Delivery Type" type="Enumeration" enum="ORDER_DELIVERY_TYPE_API">InternalDeliveryType</column> 
        <column prompt="Intrastat Exempt" type="Enumeration" enum="INTRASTAT_EXEMPT_API">IntrastatExempt</column> 
        <column prompt="Jinsui Invoice" type="Enumeration" enum="FND_BOOLEAN_API">JinsuiInvoice</column> 
        <column prompt="Order Conf" type="Enumeration" enum="ORDER_CONFIRMATION_PRINTED_API">OrderConf</column> 
        <column prompt="Order Conf Flag" type="Enumeration" enum="PRINT_ORDER_CONFIRMATION_API">OrderConfFlag</column> 
        <column prompt="Pack List Flag" type="Enumeration" enum="PRINT_PACK_LIST_API">PackListFlag</column> 
        <column prompt="Pick Inventory Type" type="Enumeration" enum="PICK_INVENTORY_TYPE_API">PickInventoryType</column> 
        <column prompt="Pick List" type="Enumeration" enum="PRINT_PICK_LIST_API">PickListFlag</column> 
        <column prompt="Prepayment Approved" type="Enumeration" enum="FND_BOOLEAN_API">PrepaymentApproved</column> 
        <column prompt="Released From Credit Check" type="Enumeration" enum="FND_BOOLEAN_API">ReleasedFromCreditCheck</column> 
        <column prompt="Scheduling Connection" type="Enumeration" enum="SCHEDULE_AGREEMENT_ORDER_API">SchedulingConnection</column> 
        <column prompt="Shipment Creation" type="Enumeration" enum="SHIPMENT_CREATION_API">ShipmentCreation</column> 
        <column prompt="SM Connection" type="Enumeration" enum="SERVICE_MANAGEMENT_CONNECT_API">SmConnection</column> 
        <column prompt="Staged Billing" type="Enumeration" enum="STAGED_BILLING_TYPE_API">StagedBilling</column> 
        <column prompt="Summarized Source Lines" type="Enumeration" enum="GEN_YES_NO_API">SummarizedSourceLines</column> 
        <column prompt="Use Pre Ship Del Note" type="Enumeration" enum="FND_BOOLEAN_API">UsePreShipDelNote</column> 
        <column prompt="Pay Tax" type="Enumeration" enum="PAY_VAT_API">Vat</column> 
        <column prompt="Date Entered" type="Date">DateEntered</column> 
        <column prompt="Expected Prepayment Date" type="Date">ExpectedPrepaymentDate</column> 
        <column prompt="Pay Term Base Date" type="Date">PayTermBaseDate</column> 
        <column default="Yes" prompt="Wanted Delivery Date" type="Date">WantedDeliveryDate</column> 
        <column prompt="Additional Discount" type="Text">AdditionalDiscount</column> 
        <column prompt="Blocked Reason" type="Text">BlockedReason</column> 
        <column prompt="Case ID" type="Text">CaseId</column> 
        <column prompt="Contract Line No" type="Text">ContractLineNo</column> 
        <column prompt="Contract Rev Seq" type="Text">ContractRevSeq</column> 
        <column default="yes" prompt="Customer PO No" type="Text">CustomerPoNo</column> 
        <column prompt="Cust ref" type="Text">CustRef</column> 
        <column prompt="Default Charges" type="Text">DefaultCharges</column> 
        <column prompt="External Transport Lead Time" type="Text">DeliveryLeadtime</column> 
        <column prompt="External Ref" type="Text">ExternalRef</column> 
        <column prompt="Internal PO No" type="Text">InternalPoNo</column> 
        <column prompt="Label Note" type="Text">LabelNote</column> 
        <column prompt="Note ID" type="Text">NoteId</column> 
        <column prompt="Note" type="Text">NoteText</column> 
        <column enum="CUSTOMER_ORDER_API.ENUMERATE_STATES__" prompt="State" type="Text">Objstate</column> 
        <column prompt="Pre Accounting ID" type="Text">PreAccountingId</column> 
        <column prompt="Priority" type="Text">Priority</column> 
        <column prompt="Required Prepayment Amount" type="Text">ProposedPrepaymentAmount</column> 
        <column prompt="Sales Contract No" type="Text">SalesContractNo</column> 
        <column prompt="Vat No" type="Text">VatNo</column> 
      </columns>
    </SearchSource>
  </SearchSources>


Person

  <?xml version="1.0" encoding="UTF-8" ?> 
- <SearchSources>
  - <SearchSource>
      <id>PersonInfo</id> 
      <url>ifsapf:Ifs.Application.Enterp.frmPersonInfo</url> 
    - <columns>
        <column default="yes" prompt="Person ID" type="Text">PersonId</column> 
        <column default="yes" prompt="Name" type="Text">Name</column> 
        <column default="yes" prompt="First Name" type="Text">FirstName</column> 
        <column default="yes" prompt="Last Name" type="Text">LastName</column> 
        <column default="yes" prompt="Country" type="Text" reference="ISO_COUNTRY">Country</column> 
        <column prompt="Middle Name" type="Text">MiddleName</column> 
        <column prompt="Title" type="Text">Title</column> 
        <column prompt="Default Language" type="Text" reference="ISO_LANGUAGE">DefaultLanguage</column> 
        <column prompt="User ID" type="Text" reference="APPLICATION_USER">UserId</column> 
        <column prompt="Creation Date" type="Date">CreationDate</column> 
        <column prompt="Alias" type="Text">Alias</column> 
        <column prompt="Birth Name" type="Text">BirthName</column> 
        <column prompt="External Display Name" type="Text">ExternalDisplayName</column> 
        <column prompt="Initials" type="Text">Initials</column> 
        <column prompt="Internal Display Name" type="Text">InternalDisplayName</column> 
        <column prompt="Prefix" type="Text">Prefix</column> 
        <column prompt="Protected" type="Text">Protected</column> 
      </columns>
    </SearchSource>
  </SearchSources>