SPScriptedFacetService - Scoped

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:3分
  • Generates a multi-choice or single-choice facets object for an advanced search source.

    The SPScriptedFacetService API can only be used in a facet generation script in a Service Portal search source. The facet generation script is only visible when Is scripted source is selected.

    There is no constructor for this class. Instead, use the createFacet() or createMultiChoiceFacet() methods to generate a facets object.

    SPScriptedFacetService - createFacet(String label, String id)

    Creates a single choice facets object.

    After creating the facets object, add facet items or mapped queries to the facet using the addFacetItem() method of the SPScriptedFacet class.

    表 : 1. Parameters
    Name Type Description
    label String Label for the facet.
    id String ID for the facet.
    表 : 2. Returns
    Type Description
    Object Single choice facets object. Returns an error when:
    • A duplicate label or ID is found.
    • A label or ID is not defined.

    Can only be used in a facet generation script in a Service Portal advanced search source.

    var stateFacet = facetService.createFacet("State", "state");

    SPScriptedFacetService - createMultiChoiceFacet(String label, String id)

    Creates a multi choice facets object.

    After creating the facets object, add facet items or mapped queries to the facet using the addFacetItem() method of the SPScriptedFacet class.

    表 : 3. Parameters
    Name Type Description
    label String Label for the facet.
    id String ID for the facet.
    表 : 4. Returns
    Type Description
    Object Multi choice facets object.

    Returns an error when:

    • A duplicate label or ID is found.
    • A label or ID is not defined.
    function createMultiChoiceFacetFromKB(label, variable, values, orderBy){
      if(!values || values.length == 0)
        return;
    
      var kbFacet = facetService.createMultiChoiceFacet(label, variable);
      var kbMap = {};
      for(var i in values) {
        var key = values[i].label;
        var value = values[i].id;
        var parent = new KBParentData().getParentCategory(value, key);
        key = parent.join(' > ');
        kbMap[key] = value;
      }
    
      var labels = Object.keys(kbMap).sort();
      for (i = 0; i < labels.length; i++) {
        var currentLabel = labels[i];
        kbFacet.addFacetItem(currentLabel, kbMap[currentLabel]);
        //adds facet search options for each kbMap entry
      }
    }