I have following impex for product sync jobs and search restriction:
-------------------------------------------------------
$sourceVersion=sourceVersion(catalog(id),version)[unique=true]; $targetVersion=targetVersion(catalog(id),version)[unique=true]; $Staged=Staged $Online=Online
$ROOTTYPESCONTENT=CMSRelation,Media,CMSItem
$ROOTTYPESPRODUCT=Product,Category,Media,Keyword,PriceRow,DiscountRow,MediaContainer
NSERT_UPDATE CatalogVersionSyncJob;active;code[unique=true];$sourceVersion;$targetVersion;createNewItems;removeMissingItems;rootTypes(code);dependentSyncJobs(code) ;true;cv_product_sync;cvacceleratorplusProductCatalog:$Staged;cvacceleratorplusProductCatalog:$Online;true;true;$ROOTTYPESPRODUCT;;
nsert_update User;uid[unique=true];name;sessionLanguage(isocode)[default=en] ;syncUser;sync user;en
$START_USERRIGHTS;;;;;;;;; Type;UID;MemberOfGroups;Password;Target;read;change;create;remove;change_perm User;syncUser;;1234; ;;;;Item;+;+;+;+;+ $END_USERRIGHTS;;;;;
nsert_update searchRestriction;code[unique=true];name[lang=en];active;restrictedType(code);principal(uid);query;generate ;syncRestriction_SAP_BaseProductFeed;Sync User Restriction;true;ApparelProduct;syncUser;"{PK} IN ({{ Select {ap:pk} from {ApparelProduct as ap JOIN Gender as gd ON {ap:genders} LIKE CONCAT( '%', CONCAT( {gd:PK} , '%' ) ) JOIN CategoryProductRelation as rel ON {ap:PK}={rel:target} } where {ap:code} IS NOT NULL AND ({gd:code}='MALE' OR {gd:code}='FEMALE') AND {rel:source} IS NOT NULL }})";false
INSERT_UPDATE CatalogVersionSyncJob;active;code[unique=true];sessionUser(uid) ;true;cv_product_sync;syncUser
And When I run the sync from hmc, it gives following error:
FATAL [00000U3K::de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncJob] [192.168.231.1] (00000U3K) [Job] Caught throwable de.hybris.platform.jalo.flexiblesearch.FlexibleSearchException: no default language provided[HY-0] de.hybris.platform.jalo.JaloSystemException: de.hybris.platform.jalo.flexiblesearch.FlexibleSearchException: no default language provided[HY-0][HY--1] at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncJob.configureFullVersionSync(CatalogVersionSyncJob.java:410) at de.hybris.platform.catalog.hmc.SynchronizeCatalogVersionWizard$FullSyncConfigurator.configureCronjob(SynchronizeCatalogVersionWizard.java:867) at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncJob.performCronJob(CatalogVersionSyncJob.java:723) at de.hybris.platform.cronjob.jalo.Job.execute(Job.java:1297) at de.hybris.platform.cronjob.jalo.Job.performImpl(Job.java:815) at de.hybris.platform.cronjob.jalo.Job.access$1(Job.java:772) at de.hybris.platform.cronjob.jalo.Job$JobRunable.run(Job.java:677) at de.hybris.platform.util.threadpool.PoolableThread.run(PoolableThread.java:198) Caused by: java.util.concurrent.ExecutionException: de.hybris.platform.jalo.flexiblesearch.FlexibleSearchException: no default language provided[HY-0] at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252) at java.util.concurrent.FutureTask.get(FutureTask.java:111) at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncJob.scheduleRemovalOfMissingItems(CatalogVersionSyncJob.java:613) at de.hybris.platform.catalog.jalo.synchronization.CatalogVersionSyncJob.configureFullVersionSync(CatalogVersionSyncJob.java:372) ... 7 more Caused by: de.hybris.platform.jalo.flexiblesearch.FlexibleSearchException: no default language provided[HY-0] at de.hybris.platform.persistence.flexiblesearch.ParsedQuery.getDefaultLanguageValueIndex(ParsedQuery.java:255) at de.hybris.platform.persistence.flexiblesearch.ParsedType.addTableConditions(ParsedType.java:1514) at de.hybris.platform.persistence.flexiblesearch.ParsedType.orderTables(ParsedType.java:1455) at de.hybris.platform.persistence.flexiblesearch.ParsedType.assembleTables(ParsedType.java:1312) at de.hybris.platform.persistence.flexiblesearch.ParsedType.translate(ParsedType.java:650) at de.hybris.platform.persistence.flexiblesearch.JoinExpression.translate(JoinExpression.java:95) at de.hybris.platform.persistence.flexiblesearch.ParsedText.translate(ParsedText.java:290) at de.hybris.platform.persistence.flexiblesearch.FromClause.translate(FromClause.java:48) at de.hybris.platform.persistence.flexiblesearch.ParsedQuery.translate(ParsedQuery.java:431) at de.hybris.platform.persistence.flexiblesearch.ParsedQuery.translate(ParsedQuery.java:409) at de.hybris.platform.persistence.flexiblesearch.ParsedQuery.translate(ParsedQuery.java:409) at de.hybris.platform.persistence.flexiblesearch.ParsedQuery.getTranslatedQuery(ParsedQuery.java:181) at de.hybris.platform.persistence.flexiblesearch.QueryParser.translateQuery(QueryParser.java:229) at de.hybris.platform.jalo.flexiblesearch.FlexibleSearch.translate(FlexibleSearch.java:2006) at de.hybris.platform.jalo.flexiblesearch.FlexibleSearch.search(FlexibleSearch.java:1411) at de.hybris.platform.catalog.jalo.synchronization.SyncSchedulerCallableBase.callImpl(SyncSchedulerCallableBase.java:112) at de.hybris.platform.catalog.jalo.synchronization.SyncSchedulerCallableBase.call(SyncSchedulerCallableBase.java:96) at de.hybris.platform.catalog.jalo.synchronization.SyncSchedulerCallableBase.call(SyncSchedulerCallableBase.java:1) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at de.hybris.platform.core.TenantAwareThreadFactory$1.run(TenantAwareThreadFactory.java:160)
Please help me creating the custom sync job with some restrictions.
Thanks in advance.