How to Remove the Endeca application? - Endeca

While removing an Endeca application, do not simply remove the Endeca application directories or delete EAC state directories (ENDECA_CONF/state/eac*) from in the file system.
This leaves application artifacts, which can cause naming conflicts when creating a new project with the same name. Clients running Oracle ATG Commerce, having random Endeca application artifacts can interfere with Commerce Reference Store installation and with indexing functionality.
To completely remove an Endeca application follow below steps:

Step 1:  Remove APP using runcommand
              <Endeca-app-dir>\control\runcommand.sh|bat --remove-app
              CRS\control\runcommand.sh|bat --remove-app

Step 2: Drop the corresponding Record stores from CAS
            Check names of application record stores registered in CAS.
             $CAS_ROOT\bin>component-manager-cmd.bat/.sh list-components
Remove the record stores corresponding to your Endeca application.  The record store names will be prefixed with the application name.
For example:
$CAS_ROOT/bin>component-manager-cmd.bat/.sh delete-component -n myAppName_en_data 
$CAS_ROOT/bin>component-manager-cmd.bat/.sh delete-component -n myAppName_en_schema
$CAS_ROOT/bin>component-manager-cmd.bat/.sh delete-component -n myAppName_en_prules
$CAS_ROOT/bin>component-manager-cmd.bat/.sh delete-component -n myAppName_en_dimvals

Step 3: Finally, remove the Endeca application directory from the file system

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.

What can Partial update do and can't do? - Endeca partial Update

What can Partial update do and can't do ? 

Endeca Property: 
 - Change, Remove, Update the property values.
 - Cannot Add, Remove, Change a property itself 

Dimension:
 - Change, Remove, Update dimension values. 
 - Cannot Add, Remove, Change a dimension itself
 - Cannot Add, Remove something in the hierarchy of dimension values

Endeca Content Acquisition System (CAS) - CMS Connectors

CMS Connectors Provide a means to access and crawl data sources in a wide variety of CMS types. Each CMS data source has a corresponding connector. Endeca Content acquisition System supports nine licensed CMS connectors. 

1) Documentum eRoom
2) Documentum Content Server
3) Lotus Notes (Domino)
4) FileNet P8
5) FileNet Document and Image services
6) JSR -170 compliant repositories
7) Microsoft SharePoint (2003 & 2007)
8) OpenText LiveLink
9) Interwoven TeamSite

Endeca Pipeline - Source Data manipulation

Endeca pipeline support three types of manipulators:  
1) Record Manipulator
- Uses XML expressions
- Very fast and highly scalable but has limited functionality

2) Java Manipulator
- Uses Java language 
- Slower than Record manipulator but most flexible and well-known language in market

3) Perl Manipulator
- Uses Perl language
- Slowest compered to both Record and Java manipulator but very much flexible and convenient for string manipulation

Endeca Pipeline - Forge Supported Join Types

Endeca pipeline supports below join types:
1) Left Join
2) Outer Join
3) Inner Join
4) Switch Join 
5) Switch Sort Join

Less used Join Types:
1) Disjunct
2) First Record
3) Combine

https://docs.oracle.com/cd/E28911_01/PlatformServices.612/pdf/ForgeGuide.pdf  Refer - Page #64

Endeca Search - Filters

Endeca record filters are used to restrict returned records. Endeca has three types of query-based filters:

1) Records Filters
Examples:
N=0&Nr=OR(sku:123,OR(sku:456),OR(sku:789)))
A=2496&An=0&Ar=OR(10001,20099)
D=Hawaii&Dn=0&Dr=NOT(Subject:Travel)

2) Range Filter
Examples:
N=0&Nf=Price|BTWN+9+13|Score|GT+4 
The user is searching for item between $9 and $13 with Product rating greater than 4.

N=0&Nf=Location|GCLT+42.365615,-71.075647+10 
The query will return only those records whose location (in the Location property) is less than 10 kilometers from given location.

3) Endeca Query Language (EQL) filters
Examples:
N=0&Nrs=collection()/record[Author= "James Patterson"]
N=0&Nrs=collection()/record[Record_Type = "document"]

Endeca query types - Endeca Navigation Query, Endeca Record Search, Endeca Dimension Search, Endeca Aggregated Record Query


Basic Query
Returned Object(type)
URL Param
Query Example
Navigation Query

Navigation
N
/endeca_jspref/controller.jsp?enePort=15000&eneHost=localhost&N=4294966668
Record Query
ERec
R
/endeca_jspref/controller.jsp?R=sku790435010109597
Dimension Search Query
DimensionSearchResult
D
/endeca_jspref/controller.jsp?D=red+wine
Aggregated Record Query
AggrERec
A, An, Au
/endeca_jspref/controller.jsp?Au=product.repositoryId&A=sku056009010128567&An=4294947584

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>

Endeca ENEConnectionException - How to Enable backwards compatibility, so that the Dgraph can communicate with previous versions of the Presentation API

ERROR MESSAGE in Endeca JSP reference application: ENEConnectionException com.endeca.navigation.ENEConnectionException: Error establishing connection to retrieve Navigation Engine request

Enable backwards compatibility, so that the Dgraph can communicate with previous versions of the Presentation API. In addition to the currently supported version of the Presentation API, the following previous full versions are supported: 6.0.x, 5.1.x, 5.0.x and 4.8.x. Therefore, the value for <api-version> must be one of the following:
  • 601 for all 6.0.x versions of the API.
  • 510 or 500 for all corresponding versions of the API, 5.1.x and 5.0.x.
  • 480 for the 4.8.x versions of the API, including the Perl API. 
<dgraph-defaults>
    <properties>
     ...
    <directories>
     ...
    </directories>
    <args>
       <arg>--back_compat</arg> 
       <arg>601</arg> 
       ...
        </args>
    <startup-timeout>120</startup-timeout>
  </dgraph-defaults>


Note: Starting with version 6, the Endeca Presentation API is part of the Platform Services package. For the version of the Platform Services that is compatible with the current version of the MDEX Engine.

How to Migrate Dimension Value IDs between environments - (Forgeless) - Endeca commerce 11.1

Move Dimension Value IDs from UAT to production:
1. Run the export command on the UAT environment:
/opt/app/endeca/CAS/11.1.0/bin>cas-cmd.sh exportDimensionValueIdMappings -m <APP_NAME>-dimension-value-id-manager -f UAT_DIMVALS.txt 

2. Move the file UAT_DIMVALS.txt, to the PRODUCTION environment

3. Run the import command on the PRODUCTION environment: 
/opt/app/endeca/CAS/11.1.0/bin>cas-cmd.sh importDimensionValueIdMappings –m <APP_NAME>-dimension-value-id-manager –f  UAT_DIMVALS.txt
     
      4. Move dvalid_mappings_archive from UAT to PRODUCTION 
       location:  <APP_NAME>/data/dvalid_mappings_archive

ATG-Endeca Site outage: Front End application goes down when baseline_update.bat|sh or promote_content.bat|sh script is triggered (Endeca v3.1.0, Endeca v3.1.1 and Endeca 3.1.2)

Problem Statement: 
ATG-Endeca Site goes down when baseline_update.bat|sh or promote_content.bat|sh script is triggered. This happens on applications which uses Endeca v3.1.0, Endeca v3.1.1 and Endeca 3.1.2 

Solution:
User may not see any error message when baseline_update.bat|sh or promote_content.bat|sh script is triggered but ERROR message will be logged in IFCR log file with failed rule which is created in Experience Manager with a specific location.

Ex: *ERROR*  POST /ifcr/system/endeca/mdexPublisher HTTP/1.1] com.endeca.ifcr.publish.impl.PublishService Unable to publish config documents com.endeca.ifcr.configService.ConfigServiceException: Config service error: Validation failed with 1 error [Unknown DVAL_ID 100972 specified for MERCH_RULE_TRIGGER in rule with id 21. Ignoring this MERCH_RULE element.]
Quick fix will be Correct all invalid rule(s) by modifying the problem rule(s) and set a valid location for each using Experience Manager and re-promote the content using promote_content.bat|sh script

Permanent fix: 
Apply below patch which is strongly recommended by ORACLE.
16761103: PUBLISH ACTION FOR EXPERIENCE MANAGER FAILS ON INVALID DVAL IDS
 OR
upgrading to MDEX 6.4.1.2 or later which contains these fixes 

This patch alters the MDEX behavior so that if an Experience Manager rule is ignored due to a missing dimension value used as the trigger, the MDEX publish action will still proceed with the valid rules and succeeds instead of failing.   After applying the patch, you will need to re-promote the content to the engines so that the MDEX's will end up with a good set of rules/content.

Endeca Record Aggregation - Rollup key and Benefits

Endeca Record Aggregation (Rollup) allows developers to do below two things:         
       1)  On Listing page, results can be rolled up based on a shared property or dimension value
       2)  On Product Details Page,  all aggregated records can be requested

Benefits of Record Aggregation (Rollup):
        1)  Avoid multiple records that are essentially same
              Ex: On search item with 5 sizes and 5 colors will return 25 results instead of 1 record
        2)  Organize a record list based on a common value
               Ex: A list of unique SKU’s grouped by Product
        3)  Avoid losing precision from consolidation
               Ex: Each unique SKU has a Unique inventory state 

How to define Rollup key?  
Refer -  http://ravihonakamble.blogspot.com/2015/07/oracle-commerce-11x-how-to-define.html

Endeca aggregated records in JSP reference application:

Recommended Installation order for Endeca components - Endeca Commerce

Recommended Installation order for Endeca components

Recommended order
Installer
1
MDEX Engine
      Dgidx
      Dgraphs
2
Platform Services
Forge
Endeca HTTP service (8888)
Endeca Reference Application
EAC Components
Endeca Logging and Reporting
CADK
3
Tools and Frameworks
Endeca Tools Service (8006)
Workbench
Endeca Reference App
Discover Electronics Ref. App
Deployment Template
Assembler API
4
Additional Installers
     Developer Studio
     Search Engine Optimization 
     CAS