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.
I am building a BPM'Online application that is using SSO integration for authentication. I also need to integrate this application with another external system. The external system will use the BPM'online public API to communicate with the application. My question is around the user credentials that need to be used to authenticate the external system during the integration. Does the user need to be an SSO user or can it be a new forms login that can be created in BPM'Online specifically for the integration? In other words, will the /ServiceModel/AuthService.svc/Login API that is used for web service authentication accept only SSO users when SSO integration is enabled or can it also process an OOTB forms login?
AuthService will not accept SSO users. At the same time, the service will accept regular users even after enabling SSO. Please create a regular user for the integration. If the integration worked when SSO was disabled then it will continue working after enabling SSO.
I have a custom section called "KYC". I have added a new button called "Add doc to SharePoint " in the section record page. When this button is clicked, it triggers a business process that opens up a preconfigured page. This page has a file control which is used to select a file from the local file system. It also has a "Save" button, the click of which calls a SharePoint API in the background to upload this document in SharePoint. I am able to make this work in the desktop website.
Now, I need to implement this on the mobile app. Will this functionality work out of the box on the mobile without any changes? Or do I have to do a lot of customization to make this work on mobile? Appreciate all the help. Thanks in advance...
Unfortunately, implementation of such functionality for mobile application requires a lot of advanced development within the system. This is due to the necessity of creating entire mobile functionality from scratch.
If you want to proceed with the development please find the mobile development guide by the link below:
Thank you for the reply, Alina! Could you give me a sense of the quantum of work involved, say to upload files through mobile? Is the file upload out of the box(OOTB) on Mobile? Going back to the use case that I have mentioned above, I am thinking if there is a way on the server to listen to any OOTB file upload event that occurs on the mobile and perform the sharepoint integration on the server? Please confirm. Also, in general, is the bpm'online mobile platform flexible and extensible to accommodate any kind of complex development or are there any restriction with the development that you can do?
There is no out of the box functionality that would allow to filter assignee values lookup. However, it can be achieved with the development tools. Here is the example:
1. Create a new object and use it as a source for a new lookup. The object should contain information about the lookup values that should be visible for user groups.
Like object,schemas, can dashboards be a part of package. so that if the package extracted and installed to other link, will the dashboard changes appear?
As per the below link , people said this is possible. but I tried. only schema changes are copied, dashboard changes are not appearing.
The data for dashboards is stored in the SysDashboards for dashboards on analytics and SysWidgetDashboard for dashboards in the section pages. You can transfer this data using data bindings or on the DB level (merge for existing on the target instance and insert for non-existing). Data for filters, folders and column setup is stored in the SysProfileData. You can transfer it similarly to the dashboard's data.
Please check if you've transferred data with correct binding.
I am trying to replace the bpm'online section icons with branded ones.
I see that with most you navigate to View > Open Section Wizard and replace the image. However, some sections do not have the View dropdown. How do I change the icon for these?
Also, I am replacing them with a PNG of the new icon, but it is not working or showing up as a big white block. Do I need to upload it in a certain format?
Yes, I am talking about the dashboard section as well as agent desktop & feed. I can find their section wizard by going through Workplace Setup, but get this error when trying to access it:
I have created a custom [Connected entity profile] on the accounts section that is a duplicate of the primary contact connected entity, except the text displays: Billing Contact:
But am unable to set the default image ?? (I.e. I want the billing contact to have the same icon as the primary contact when an entity is not yet selected for the field ...):
Please feel free to set any default image in the configuration section. In order to do it open the billing profile schema and upload the needed image in the BlankSlateIcon property. Save the schema and clean the cashe.