Showing posts with label Experience Manager. Show all posts
Showing posts with label Experience Manager. Show all posts

Keyword Redirects - Endeca Best Practices

Use keyword redirects to drive users who are searching on common self-service terms to the appropriate pages, rather than searching the data set for related entries.

Ex: https://www.shopmyexchange.com

It Redirect a user who searches on shipping to the Shipping and Delivery page instead of returning catalog results with that term in the title

Thesaurus - Endeca Best Practices

1) Examine search reports regularly
2) Both most popular search terms and most commonly failed searches should be used as sources for thesaurus entries

When not to create Thesaurus entries:
a) Spelling correction
b) One-way subsets of words, e.g., Elvis to Elvis Presley
c) Plurals
d) Word breaks, e.g., Firefly to Fire fly
e) Capitalization
f) Special characters like & or $

Old Dimension Values in Endeca XM Editor ( legacy Workbench state files) - Endeca Workbench

Problem Statement:

Endeca Workbench user finds stale dimension values in the Editor and gets confused on which Dimension values to be selected.




Solution:

To manually clear the legacy Workbench state files:
1. Stop the Endeca Tools Service.
2. Take a back up of  /opt/app/endeca/ToolsAndFrameworks/11.1.x/server/workspace/state/emanager/instances/app_name/resources
3. Remove the full contents of the/opt/app/endeca/ToolsAndFrameworks/11.1.x/server/workspace/state/emanager/instances/app_name/resources  directory.
4. Start the Endeca Tools Service.
5. Run the following two commands to push your current (good) config back to Workbench:

- /control/update_web_studio_config.sh
(this pushes the XML files from /opt/app/endeca/app_name/data/cas_output up to Workbench. Workbench may still use some of the dimension settings from here.)

- the post-CAS dimension file, which pushes the dimension values generated by CAS to Workbench (here is working example from Discover, where you can switch out the app name references for your own):


/opt/app/endeca/PlatformServices/11.x/bin
emgr_update --host localhost:8006 --action set_post_forge_dims --post_forge_file C:\apps\Discover\data\workbench\temp\Discover.dimensions.xml --prefix Discover --app_name Discover

If you clear the browser cache, the next time you go back to the location dialogue, the stale dimension values should be gone and it should be functioning with current data. 


How to find the list of all published projects status on the Authoring Instance? - Endeca Experience manager

This will help to find the list of projects saved on Authoring Dgraph using Endeca Experience manager and also who made those changes.

http://localhost:8006/ifcr/system/endeca/publishStatus?environment=Authoring&group=rules&site=ENDECA-APP-NAME
[{"status":"success","env":"Authoring","message":"Publish succeeded
AuthoringDgraph","id":"[PUBSERV4]",
"tool":["content"],"app":"CRS","time":"Tue Jan 19 2016 16:28:39 GMT-0600",
"timestamp":1453242519554,"user":["rhonakamble"]},
 
{"status":"success","env":"Authoring","message":"Publish succeeded
AuthoringDgraph","id":"[PUBSERV3]",
"tool":["content"],"app":"CRS","time":"Tue Jan 19 2016 16:27:11 GMT-0600",
"timestamp":1453242431229,"user":["admin"]}]

Endeca Workbench EAC admin console disappeared from Workbench for ADMIN user - Endeca Workbench

Problem Statement:  EAC admin console disappeared from Workbench for ADMIN user 
Solution:
 1. Replace the following jar files in the production instance with the ones from your working environment in $ENDECA_TOOLS_CONF/state/sling/_ifcr/startup/25:
workbench-container-3.1.1.jar
ExperienceManagerContent-3.1.1-xmgr.jar
workbench-legacy-tools-definitions-3.1.1.jar

2. Reload the jar files -  To reload the jars, use the following Workbench URL:

http://host:port/ifcr/system/console/bundles 


The bundles with the names of the jars needed to be located and updated by clicking the "Install/Update" button, selecting the "Start Bundle" check box,
Ensure that the "Start Level" value is the same as the value displayed when you expand the specific jar (ie: "25") and browsing for the specific jar file.This needs to be repeated for each specific jar.

3. Stop and restart the jar files 
In the same console windows, in the "Actions" column for each bundle that was updated, click the "Stop" button for each row. The "Status" for that bundle will change to "Resolved". Click the "Start" button for the bundle and the "Status" will say "Active".
At this point the missing components should become visible in Workbench.


4. Stop and restart Tools & Frameworks services

ATG-Endeca Site Crashed due to Endeca content repository Corruption - v3.1.1

Problem Statement:
Site got crashed and not able to import backed-up Experience Manager rules.

Error when you Import rules:
Nov 5, 2015 3:25:32 PM com.endeca.soleng.eac.toolkit.utility.IFCRUtility importNode
INFO: Uploading contents to: http://localhost:8006/ifcr/sites/APP_NAME/configuration/tools/xmgr
Nov 5, 2015 3:25:33 PM com.endeca.soleng.eac.toolkit.utility.IFCRUtility importNode
INFO: Finished uploading contents.
Caused by: com.endeca.soleng.eac.toolkit.utility.IFCRUtility$HttpStatusException: Internal Server Error (500): javax.jcr.ItemNotFoundException: 731f7677-dc43-47d3-968e-3d1
6c49970c2/{}contentCollectionReferences

        at com.endeca.soleng.eac.toolkit.utility.IFCRUtility.execute(IFCRUtility.java:724)
        at com.endeca.soleng.eac.toolkit.utility.IFCRUtility.httpPost(IFCRUtility.java:671)
        at com.endeca.soleng.eac.toolkit.utility.IFCRUtility.httpPost(IFCRUtility.java:653)
        at com.endeca.soleng.eac.toolkit.utility.IFCRUtility.deleteNode(IFCRUtility.java:261)
        at com.endeca.soleng.eac.toolkit.component.IFCRComponent.importXml(IFCRComponent.java:195)
        at com.endeca.soleng.eac.toolkit.component.IFCRComponent.importXmlWithPrompt(IFCRComponent.java:144)
        ... 7 more


Solution:
1) Make sure you have a good copy of content repository export. To do this, execute export_site on an working environment.
 Ex: /opt/app/endeca/APP_NAME/control>./export_site.sh  XMRules.xml
2) Stop workbench.
3) Go to $ENDECA_TOOLS_CONF/state/
4) Rename sling and jackrabbit directory in here to anything other than sling and jackrabbit, or back them up to a different directory.
5) Restart workbench, this will cause the sling IFCR repository to be cleaned up.
   Note: If you have multiple apps, then all of them will be cleaned up. In this situation, run 6) and 7) below for each app.
6) Then run initialize_services./sh|bat --force from the app

         Ex: /opt/app/endeca/APP_NAME/control>./initialize_services./sh|bat --force 
7) Then import_site <export file>
       Ex: /opt/app/endeca/APP_NAME/control>./import_site.sh XMRules.xml
8) Execute a baseline_update from dyn/admin followed by a promote_content

Endeca ResultsList Boost and Bury or Endeca Record Spotlight cartridge editor grayed out - Endeca Boost and Bury

Problem Statement:
A common problem developers run into with the ResultsList editor's Boost and Bury controls or the Record Spotlight cartridge is the record selection editor being grayed out. 

Solution:
This happens when your Endeca application's dataservice.json file is not configured with the correct hostname - i.e. one that matches the URL used to access Workbench.

To properly configure and fix this, you need to do two things:
  1. Update the hostname and port in the /opt/app/endeca/APPN_NAME/config/editors_config/services/dataservice.json file with the correct authoring MDEX hostname
  2. Run the set_editors_config.sh script under /opt/app/endeca/APPN_NAME/control directory to push out the update to Experience Manager.

Endeca promote_content.sh script fails with Exception - SEVERE: Caught an exception while invoking method 'run' on object 'PromoteAuthoringToLive'. Releasing locks.

ERROR Message #1: 
/opt/app/endeca/apps/CRS/control]
$ ./promote_content.sh
[08.02.15 11:20:18] INFO: Checking definition from AppConfig.xml against existing EAC provisioning.
[08.02.15 11:20:19] INFO: Updating definition for custom component 'IFCR'.
[08.02.15 11:20:19] INFO: Updating provisioning for host 'ITLHost'.
[08.02.15 11:20:19] INFO: Updating definition for host 'ITLHost'.
[08.02.15 11:20:20] INFO: Definition updated.
[08.02.15 11:20:20] INFO: Promoting IFCR content...
[08.02.15 11:20:20] SEVERE: null
Occurred while executing line 3 of valid BeanShell script:
[[

1|
2|
3|    IFCR.promoteFromAuthoringToLive();
4|
5|
]]

[08.02.15 11:20:20] SEVERE: Caught an exception while invoking method 'run' on object 'PromoteAuthoringToLive'. Releasing locks.
Caused by java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl invoke0 - null
Caused by com.endeca.soleng.eac.toolkit.exception.AppControlException
com.endeca.soleng.eac.toolkit.script.Script runBeanShellScript - Error executing valid BeanShell script.
Caused by java.lang.NullPointerException
com.endeca.soleng.eac.toolkit.utility.IFCRUtility extractIfcrErrorMessage - null


Error Message #2:
Running Promote script from Endeca Experience Manager fails
Solution:
Check if workbench admin password got changed. If admin password got changed through Endeca Administrative Console then make sure you update WorkbenchConfig.xml  file with latest password

Ex:  /opt/app/endeca/apps/CRS/config/script/WorkbenchConfig.xml
 <!--
    ########################################################################
    # IFCR - A component that interfaces with the Workbench repository.
  -->
  <custom-component id="IFCR" host-id="ITLHost" class="com.endeca.soleng.eac.toolkit.component.IFCRComponent">
    <properties>
      <property name="repositoryUrl" value="http://localhost:8006/ifcr" />
      <property name="username" value="admin" />
      <property name="password" value="admin123" />

      <property name="numExportBackups" value="3" />
    </properties>
  </custom-component>

FileNotFound Error message in JBOSS log and site is not showing Endeca Experience Manager pages - Endeca Experience Manager

Problem Statement:
FileNotFound Error message in JBOSS log and web site is not showing Endeca Experience Manager pages

2015-07-25 12:51:40,317 INFO  [nucleusNamespace.atg.endeca.assembler.AssemblerPipelineServlet] (ajp-0.0.0.0-10209-2) No country specific page found. Attempting to assemble non country specific page
2015-07-25 12:51:40,319 ERROR [nucleusNamespace.atg.endeca.assembler.AssemblerTools] (ajp-0.0.0.0-10209-2) A problem occured assembling requested content. Response from the assembler was {contentUri=/pages/browse/_/N-100972, @type=ContentInclude, @error=FileNotFound}
2015-07-25 12:51:40,319 WARN  [nucleusNamespace.atg.endeca.assembler.AssemblerPipelineServlet] (ajp-0.0.0.0-10209-2) Country specific and non-country specific page could not be found. If the url attempting to be served is not meant to be an XM page, consider adding this path to ignore list to avoid unnecessary Endeca assembling. This request will now pass to next servlet in pipeline.

Solution:
Endeca Experience Manager content is not accessible from ATG store instances. ATG and Endeca talks over port 8007 for XM content.
Try below options:
1) Check if 8007 port is opened or not
2) Manually promote content 
       a) Go to control Directory of Endeca application
              /opt/app/endeca/app/CRS/control
       b) Run promote script ./promote_content.sh

Assembler Code to fetch Endeca Experience Manager and Endeca GuidedSearch content - Endeca Assembler API

Code snippet to invoke Endeca Experience Manager Content:

<dsp:droplet name="/atg/endeca/assembler/droplet/InvokeAssembler">
            <dsp:param name="includePath" value="/pages/browse" />
            <dsp:oparam name="output">
               <dsp:getvalueof var="contentItem" vartype="com.endeca.infront.assembler.ContentItem"         param="contentItem" />
            </dsp:oparam>
</dsp:droplet>

Code snippet to invoke Endeca Guided Search content:

 <dsp:droplet name="/atg/endeca/assembler/droplet/InvokeAssembler">
            <dsp:param name="includePath" value="/services/guidedsearch" />
            <dsp:oparam name="output">
               <dsp:getvalueof var="contentItem" vartype="com.endeca.infront.assembler.ContentItem" param="contentItem" />
            </dsp:oparam>
  </dsp:droplet>

Input Parameters
The InvokeAssembler servlet bean has two input parameters, includePath and contentCollection.

includePath
Use the includePath parameter for a page request.
For example, to assemble content for a browse page, specify /pages/browse for the includePath (passing in a /browse path will not match because it is missing the /pages prefix).

contentCollection
Use the contentCollection parameter for a content collection request.
For example,  Search Box Auto Suggest Content. InvokeAssembler parses the contentCollection into a ContentSlotConfig component.

The includePath and contentCollection parameters are mutually exclusive but one of them must be passed when using the InvokeAssembler servlet bean.

ruleLimit
This optional parameter is used in conjunction with the contentCollection parameter to specify the number of items that should be returned from the specified content collection.

Output Parameters
The InvokeAssembler servlet bean has one output parameter, contentItem. This parameter contains the root ContentItem returned by the Assembler. If this content item is empty, the request was not an Assembler request.