I'll share here the answer that I provided regarding the approvals case so the community has access to this information as well.
In order to be able to use approvals in the mobile app you would need to follow these steps:
1) You need to run the 3 scripts that will be at the end of the message. This will enable some features needed for this functionality.
2) Then you need to flush (clear) the cache of the Redis server and restart the pool application of the site.
3) Before adding the approval detail to a section in the Mobile application wizard, you need to make sure that approvals are enabled for this section in the main Creatio site. In order to do that, you need to open the Section wizard at the desired section, and you will see the possibility to enable approvals for this section.
4) Then you can open the Mobile application wizard and open the desired workplace. There you can open the desired section, select "Details setup" and click on "New detail". There you will be able to select the Type, and here is where you can select the approval that you desire.
After that you can log out and log in at the mobile app, and verify the changes.
Unfortunately, we are unable to investigate this issue without having access to the instance. We have requested external access from you but never heard back. Kindly get back to us with the external access provided so that we could look into this.
the notifications weren't working because the feature UseMobilePushNotifications wasn't enabled. After activating it, I have tested the business process and I could succesfully receive a push notification.
I'll share here the answer that I provided regarding the approvals case so the community has access to this information as well.
In order to be able to use approvals in the mobile app you would need to follow these steps:
1) You need to run the 3 scripts that will be at the end of the message. This will enable some features needed for this functionality.
2) Then you need to flush (clear) the cache of the Redis server and restart the pool application of the site.
3) Before adding the approval detail to a section in the Mobile application wizard, you need to make sure that approvals are enabled for this section in the main Creatio site. In order to do that, you need to open the Section wizard at the desired section, and you will see the possibility to enable approvals for this section.
4) Then you can open the Mobile application wizard and open the desired workplace. There you can open the desired section, select "Details setup" and click on "New detail". There you will be able to select the Type, and here is where you can select the approval that you desire.
After that you can log out and log in at the mobile app, and verify the changes.
I have a requirement to restrict the user from uploading or deleting attachments once a particular date is reached. I have tried to remove access rights for attachment object in a business process but still the user is able to upload attachments.
You can create a sub-process on the correspondent object to restrict adding new records or deleting records based on some conditions. For example here is the code I created for the AccountFile records:
1) Created a sub-process:
2) Specified the following code in the "Methods" tab of the subprocess:
The logic in the code will compare the date\time value specified in the UsrRestrictUploadDateTime column of the main account record where the "Account attachments" detail is located, and it the current date and time is greater than the UsrRestrictUploadDateTime column value then the save and delete will fail:
As for deleting the file: custom exception doesn't work here and the standard message is returned:
Didn't figure out why, but it won't let deleting a record anyway. Also if this logic should be applied to specific users then you will also need to create an additional logic of checking if the current user (information on the user can be received from UserConnection) can or cannot add\delete files.
I am encountering the same issue. Did you find a solution to the problem ?
I would really appreciate it, thanks !
Best regards,
Jonathan
EDIT : I found a solution to the problem :
You must activate the mini page visualisation in the section wizard. Then, you can edit the mini page to display the important fields that you want. You should now be able to double click on the object box in the kanban view and jump to the related object !
Tested on the AccountPageV2 schema and it worked properly:
1) Enable the feature via the database:
DECLARE @allEmpoyeeGroupName nvarchar(max)='All employees';
DECLARE @featureName nvarchar(max)='CompleteCardLockout'
DECLARE @featureStatus bit =1;
IF (NOT EXISTS (SELECT NULL FROM Feature WHERE Code = @featureName))
BEGIN
INSERT INTO Feature (Name, Description, Code, ProcessListeners)
VALUES (@featureName, @featureName, @featureName, 0)
END
IF(EXISTS (SELECT NULL FROM AdminUnitFeatureState
WHERE FeatureId =(SELECT Id FROM Feature WHERE Code = @featureName) AND
SysAdminUnitId =(SELECT Id FROM SysAdminUnit WHERE Name = @allEmpoyeeGroupName)))
BEGIN
UPDATE AdminUnitFeatureState SET FeatureState = @featureStatus WHERE FeatureId =(SELECT Id FROM Feature WHERE Code = @featureName) AND
SysAdminUnitId =(SELECT Id FROM SysAdminUnit WHERE Name = @allEmpoyeeGroupName)
END
ELSE
BEGIN
INSERT INTO AdminUnitFeatureState (ProcessListeners, SysAdminUnitId, FeatureState, FeatureId) VALUES
(0,
(SELECT Id FROM SysAdminUnit WHERE Name = @allEmpoyeeGroupName),
@featureStatus,
(SELECT Id FROM Feature WHERE Code = @featureName))
END
2) In the AccountPageV2 added the following code to the diff array:
Tested on the AccountPageV2 schema and it worked properly:
1) Enable the feature via the database:
DECLARE @allEmpoyeeGroupName nvarchar(max)='All employees';
DECLARE @featureName nvarchar(max)='CompleteCardLockout'
DECLARE @featureStatus bit =1;
IF (NOT EXISTS (SELECT NULL FROM Feature WHERE Code = @featureName))
BEGIN
INSERT INTO Feature (Name, Description, Code, ProcessListeners)
VALUES (@featureName, @featureName, @featureName, 0)
END
IF(EXISTS (SELECT NULL FROM AdminUnitFeatureState
WHERE FeatureId =(SELECT Id FROM Feature WHERE Code = @featureName) AND
SysAdminUnitId =(SELECT Id FROM SysAdminUnit WHERE Name = @allEmpoyeeGroupName)))
BEGIN
UPDATE AdminUnitFeatureState SET FeatureState = @featureStatus WHERE FeatureId =(SELECT Id FROM Feature WHERE Code = @featureName) AND
SysAdminUnitId =(SELECT Id FROM SysAdminUnit WHERE Name = @allEmpoyeeGroupName)
END
ELSE
BEGIN
INSERT INTO AdminUnitFeatureState (ProcessListeners, SysAdminUnitId, FeatureState, FeatureId) VALUES
(0,
(SELECT Id FROM SysAdminUnit WHERE Name = @allEmpoyeeGroupName),
@featureStatus,
(SELECT Id FROM Feature WHERE Code = @featureName))
END
2) In the AccountPageV2 added the following code to the diff array:
I have tried this and able achieve my objective. Apparently what I was missing was, I have not added the code in diff array. Thank you so much for your time & effort.
we have Creatio Installed in our environment and confined to saving files in S3 instead of the database, now how I can get a stream of files saved in S3 inside the process script
I used the below code when I saved the file in the Database :
I'm trying to compile the code below from a package set as a a separate assembly but I'm getting the error attached even though the object mentioned on the error is part of the package.
What am I missing?
Thanks,
Jose
Error:
Object exists on package
Code generating the error:
using System;
using System.Collections.Generic;
using System.Linq;
using Terrasoft.Core;
using Terrasoft.Core.Entities;
using Terrasoft.Configuration;
public class UsrPPDRCorrespondenceHelper
{
private UserConnection UserConnection { get; }
public UsrPPDRCorrespondenceHelper(UserConnection userConnection) {
UserConnection = userConnection;
}
public Guid GetStatus(Guid corrId) {
var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "UsrPPDRCorrespondence");
According to the error UsrPPDRCorrespondence is not located at the same folder (directory to which assembly files were exported) as the source code that is being compiled.
Unfortunately, it's not possible to align columns to the right in a tile view - all the fields are located to the left.
We have already registered the idea for our R&D team to implement this functionality in further releases. I will assign your case to this project in order to increase its priority.
That was not my requirement. Apologies if I was not clear before. Let me try to state the use case again.
In the lookup section, I have a Lookup table as follows
The highlighted column is a Lookup pointing to SysModule table. I need to filter out certain sections and not show all the sections that comes in the pick list by default. Since the lookup section is different from other sections like Contact or Leads, I cannot use the solution you provided.
I believe I need to create a client module to override BaseLookupConfigurationSection. It would be great if you could give me an example.
unfortunately this functionality is not possible at the moment. We will create a request for the R&D department so they can develop this functionality in future releases.
I'm not sure where to add that code as I cannot make changes or replace the SectionActionsDashboard. Also, I need to unable or disable the bar based on the schema page IsModelItemsEnabled attribute that is set true or false on the onEntityInitialized function based on conditions on the page (e.g. Locked by field populated and equal to current user, status != 'Processed', etc. )
You can replace the SectionActionsDashboard module for your section and you can put the code in the replaced module (every OOB section with actions dashboard has its own SectionActionsDashboard, like OpportunityActionsDashboard or CaseSectionActionsDashboard, take a look at the app configurations please). In case you have a custom section and you need some additional logic in the action dashboard of this section your can create your section actions dashboard based on the SectionActionsDashboard (selected as a parent) and then this custom actions dashboard can be connected to the page (see how it's developed for the LeadSectionActionsDashboard and added to the BaseLeadPage).
Secondly, you can create a logic of sending sandbox messages between modules as described in this example (in your case it should be SectionActionsDashboard module and your record page module) or you can see that a message is used in the base LeadSectionActionsDashboard.