Is there a way to add the tags in the Excel report section . For example, I have created a tag in the opportunity section. Is there a way to add that tag field in the excel reports too.
I believe I got around this one time by selecting multiple sections to add to the workplace, one of them being Excel Reports. Then it added, and I could remove the other section.
I get this often as well, always with this specific add-on (the Excel reports package). I always play around with it and eventually get it to work where I can add it to a workspace, but never really sure how to get it to work. Hoping to se reply on this.
please specify the Creatio product and version to reproduce the issue. Try to add first any basic section to the workplace and after that the 'Excel reports' section.
An option how you can do it is to send it as an email instead of downloading it. You can create a process that would start on a timer and email you (or any person needed) the report. Here is the community article on how to do that:
The only thing that is modified here is an Id of the "items" parameter in the "filters" part. I guess that you can generate a random GUID here using Guid.NewGuid(). Other key parameters here are:
1) \"rootSchemaName\":\"Contact\" - report on which section record should be generated
2) "value\":\"c4ed336c-3e9b-40fe-8b82-5632476472b4\" - Id of the record itself
3) \"columns\" - list of columns of the report, can remain static for each report, but should be updated in case the columns set in the report setup is modified.
Please test the following approach of adding the random GUID to the filter items and let us know in case you face some issues with it.
The Script Task receive the reportId from the process parameter. This parameter is changed depending on which report we want to store in the attachments.
The main goal is to update the \"columns\" list based on the reportId received, because each report has its own structure. Finaly, we generate and store the correct report.
This whole process cannot have user interaction, we need to find a way to get the columns list from a specific report inside the process.
Then you need to check the IntExcelreportMixin. The columns list and the EsqString is formed inside getIntExcelReport function that receives esq as an argument:
var requestData ={
EsqString: esq.serialize(),
ReportId: reportId,
RecordCollection: recordCollection
};
and esq itself is formed in two methods: addCustomProfileColumns and prepareProfileColumns:
prepareProfileColumns: function(profileSettings){
var profileColumns =[];
var profile = profileSettings && profileSettings.DataGrid;if(!profile){return profileColumns;}
var gridsColumnsConfig = profile.isTiled? profile.tiledConfig: profile.listedConfig;if(gridsColumnsConfig){
var columnsConfig =this.Ext.decode(gridsColumnsConfig);this.Terrasoft.each(columnsConfig.items, function(item){
profileColumns.push({
aggregationType: item.aggregationType,
caption: item.caption,
dataValueType: item.dataValueType,
path: item.path|| item.bindTo,
subFilters:this.Terrasoft.deserialize(item.serializedFilter),
type: item.type||this.Terrasoft.GridCellType.TEXT});}, this);}return profileColumns;},
addCustomProfileColumns: function(esq, profile){
var allColumns = Boolean(profile && profile.DataGrid&& profile.DataGrid.allColumns);
esq.allColumns= allColumns;if(allColumns){return;}
var profileColumns =this.prepareProfileColumns(profile);this.Terrasoft.each(profileColumns, function(column){
var columnName = column.caption;if(!esq.columns.contains(columnName)){if(column.aggregationType){this.addProfileAggregationColumn(esq, column, columnName);}else{
esq.addColumn(column.path, columnName);}
var newColumn = esq.columns.get(columnName);
newColumn.caption= column.caption;}}, this);},
And once esq is formed and serialized it becomes a correct Esq.String that we need:
So you need to copy the logic of the mixin using C#.
I'm trying to implement the logic of the mixin on my script task as you said. But I'm having trouble understanding the profile argument. Can you please explain me how do I get/generate the profile data that is being used by addCustomProfileColumns method as argument on my script task?
I think I found the solution to my problem. The object IntExcelReport contains a specific column that has the ESQ String as you can see in the image bellow.
I've check the values and it matches the query inside the requestData. Now I can get this value with a simple db query and use it to generate my ExcelReport.
Most likely it is not possible to use password protected excel file as a template in the application. I would suggest you to contact the developer of this extension by email for more details - bpmonlinelabs@bpmonline.com.