Fórum

Custom asset is not displayed in asset publisher in Liferay DXP

Bhavik Shah, modificado 6 Anos atrás.

Custom asset is not displayed in asset publisher in Liferay DXP

Junior Member Postagens: 64 Data de Entrada: 21/05/15 Postagens Recentes
Hello Team,

I am facing issue in liferay DXP enterprise SP3. I have created 2 classes CustomAssetRenderer and CustomAssetRendererFactory which instantiate CustomAssetRenderer object. I have register factory class as component as follows:

@Component(
immediate = true,
property = {"javax.portlet.name=" + EmployeeMasterPortletKeys.EmployeeMaster},
service = AssetRendererFactory.class
)

So I am able to see my custom asset in configuration of Asset Publisher but I can not see my custom asset when viewing Asset Publisher Portlet.
How ever I have also created WorkflowHandler for same and apply out of the box workflow to my custom asset and it is working properly.

I have also registered my own custom Indexer and implement method below:
First I have register my indexer as component as follows:

@Component(
immediate = true,
property = { "indexer.class.name=org.javasavvy.leave.core.model.EmployeeMaster" },
service = Indexer.class
)
public class EmployeeMasterIndexer extends BaseIndexer<EmployeeMaster>{

I override below methods
@Override
protected Document doGetDocument(EmployeeMaster empMaster) throws Exception {
Document doc = getBaseModelDocument(EmployeeMasterPortletKeys.EmployeeMaster, empMaster);

doc.addKeyword(Field.USER_ID, empMaster.getUserId());
doc.addText("firstName", empMaster.getFirstName());
doc.addText("lastName", empMaster.getLastName());
doc.addText("email", empMaster.getEmail());
doc.addText("mobile", empMaster.getMobileNumber());
return doc;
}
@Override
protected void doReindex(EmployeeMaster object) throws Exception {

LOGGER.error("doReIndex method called......");
Document doc = getDocument(object);

IndexWriterHelperUtil.updateDocument(this.getSearchEngineId(), object.getCompanyId(), doc, isCommitImmediately());
}

And in my controller I have called it as follows:

Indexer<EmployeeMaster> indexer = IndexerRegistryUtil.nullSafeGetIndexer(EmployeeMaster.class);
indexer.reindex(employeeMaster); //employeeMaster is my entity's model created through service builder

But still I am not able to see in asset publisher portlet.
Is there anything do I need to do? Please guide and provide me some example.


Please guide what can be done to view in Asset Publisher Portlet.

Regards,
Bhavik
thumbnail
Abre Chase, modificado 6 Anos atrás.

RE: Custom asset is not displayed in asset publisher in Liferay DXP

New Member Postagens: 12 Data de Entrada: 07/02/17 Postagens Recentes
Check to make sure you are getting a record created in the AssetEntry table. If not, you might have missed this part.

https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/adding-updating-and-deleting-assets-for-custom-entities
Bhavik Shah, modificado 6 Anos atrás.

RE: Custom asset is not displayed in asset publisher in Liferay DXP

Junior Member Postagens: 64 Data de Entrada: 21/05/15 Postagens Recentes
Hi,

I have gone through these steps mentioned in
https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/adding-updating-and-deleting-assets-for-custom-entities?_ga=2.261140173.1125681940.1505709985-1038162583.1504511003

I have also created CustomIndexer for my custom entity and I can see doReindex method is calling when I call from my controller how ever it is not displaying in Asset Publisher Portlet.

Regards,
Bhavik
Bhavik Shah, modificado 6 Anos atrás.

RE: Custom asset is not displayed in asset publisher in Liferay DXP

Junior Member Postagens: 64 Data de Entrada: 21/05/15 Postagens Recentes
I can see my custom Asset Render Factory's getAssetRenderer() method is not being called when I select Asset Type = CustomType from configuration of Asset Publisher.

getAssetRenderer(long classPK, int type) throws PortalException{}

The above method is called from My Workflow Task so I am not sure what do i need to do.
Do I need to look into Asset Publisher Portlet's controller code as above method is being called from My Workflow Task portlet.

Please guide.

Regards,
Bhavik
thumbnail
Syed Ali, modificado 6 Anos atrás.

RE: Custom asset is not displayed in asset publisher in Liferay DXP

New Member Postagens: 15 Data de Entrada: 28/05/14 Postagens Recentes
The most common mistake while indexing a document is, it have multiple methods with same name, In your doReindex() you are not using the doGetDocument(EmployeeMaster empMaster) you defined in the indexer class, instead you are using getDocument(object) from BaseIndexer, use doGetDocument(EmployeeMaster empMaster) inside your doReindex() method and test it.
Bhavik Shah, modificado 6 Anos atrás.

RE: Custom asset is not displayed in asset publisher in Liferay DXP

Junior Member Postagens: 64 Data de Entrada: 21/05/15 Postagens Recentes
Hi Syed,

getDocument(object) from BaseIndexer will ultimately call my own indexer's doGetDocument(EmployeeMaster empMaster).
You can take reference from BlogsEntryIndexer for more detail.

Regards,
Bhavik