Hello, how can i hide these two inputs in the minipage?

Like 0

Like

2 comments

Hello,

 

The method you've used is correct and in case the column is not removed from the minipage using this code after the page was refreshed it means that either these columns have a different name or the incorrect parent module was selected when replacing the module.

 

Best regards,

Oscar

Hi,

 

there is a syntax error: there should not be a comma at the end of the row with the "name" property (lines 9 and 13)

 

BR,

Robert

Show all comments

Hi Community,

 

I installed a clean 7.17.0 Oracle version and wanted to import a package from another environment. I tried several times to install it (deleting it, regenerating schemas, compiling, getting back to the VM Snapshot) and it doesn't work.

 

The installation log prints the following message for almost any of the package's objects (you can find here an example for the "Case" object) :

 

2022-03-28 16:31:20,550 Error occurred while saving schema database structure "Case" in package "". UId 00000000-0000-0000-0000-000000000000: Error "Invalid parameter binding
Parameter name: NEW" occurred when updating schema structure. SQL script text: "CREATE OR REPLACE TRIGGER "CREATIO"."TR117D32F98275453484111C6611BI"
BEFORE INSERT ON "Case" REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
    IF (:NEW."Id" IS NULL) THEN
        :NEW."Id" := "tspkg_Utilities"."fn_CreateGuid"();
    END IF;
END "TR117D32F98275453484111C6611BI";"

 

Do you have an idea from where this issue can come from ? The base environment where I exported this specific package is working fine.

 

"Case" in package "". UId 00000000-0000-0000-0000-000000000000 --> This part seems really strange. It seems like it doesn't find the package where he must install the related object.

 

Thanks a lot for your help.

 

Best regards,

Jonathan

Like 0

Like

2 comments

Hello Jonathan,

 

Thank you for your Question. First of all, it would be useful to follow the basic checklist to be sure nothing is missed:
1) Versions of the exporter and importer environments should be the same. (In this case, both should be 7.17.0)
2) The product bundle should be the same (For example both should be Service Enterprise)
3) Check the Dependent packages. All of the dependent packages should exist in the final environment.

(More info regarding packages is available in the below article:
https://academy.creatio.com/docs/developer/development_tools/packages/p…)

If all of the above was checked and the issue still exists - there is one more thing that will be true only for specific Oracle versions.
ODAC v.12 support is planned as part of Oracle support for .Net Core in future Creatio versions.

Workaround - use ODAC v.11:
At the moment, we are seeing similar problems when using the 12th version of ODAC.
To solve the problems we recommend installing it on the 11th:
1) Remove ODAC v.12
2) Install ODAC v.11 x64 and test the case.
3) If the error persists, install ODAC version 11 x32, in the properties of the application pool setting "Enable 32-bit programs" to "true" and check the case.

 

Please perform the above actions and let me know the results.

 

Best Regards,
Dan

Denis Bidukha,

 

Thanks for your reply. I tried all of the steps listed above but nothing works.

 

When I try to use ODAC v.11, (64 or 32 bits) it prints that "OraOps12.dll" is missing and I can't even connect no more to the CRM.

 

The only way to make it work is with ODAC v.12. Although, when importing the package it does this "Invalid Paramteter binding" error...

 

Best regards,

Jonathan

Show all comments

Hi there,

I'm trying to UPLOAD a picture that I took from the camera of my Iphone, into the CRM.

Ideally, that picture would be connected to :

- an Account

- a Contact

- a custom list of competitors

- a description

 

How would you do that ?

 

Like 0

Like

0 comments
Show all comments

Hello,

There are fields that ONLY Admin users have the rights to modify.

 

Using a Business Rule, we can Identify WHO can Edit the field.

 

When I'm hardcoding the Email of the Admin...it works.

But If I try to use the Role (System Administrators)...it doesn't work.

 

Is this a limitation or something that is not properly configured in our roles ?

 

Like 0

Like

2 comments

Hello Francois,

 

As of now, the business rules don't work with roles. You can only use users instead of roles, but in this case, you'll have to create each business rule for each user. 
 

We already have a query registered for our responsible R&D team to implement the described functionality in the upcoming versions of the application. 

I will add this case to the query in order to increase its priority.

 

Best regards,

Anastasiia

 

Hello Francois,

 

The better way to achieve Your requirement is Object Permission settings (Use column permission). Have a look following printscreen as a example how to grand access to "All employees " to only read Account Name and for "System administrators" to read and edit.

https://ibb.co/n0TCVBP

 

Best regards,

Marcin

Show all comments

Hello everyone,

i got some trouble here and the message is :

Server Error in '/0' Application.
Instance of workspace item with type "Terrasoft.Configuration.TgAcceptanceCoverageAndObjectSchema" cannot be obtained from server metadata
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
 
Exception Details: Terrasoft.Common.NullOrEmptyException: Instance of workspace item with type "Terrasoft.Configuration.TgAcceptanceCoverageAndObjectSchema" cannot be obtained from server metadata
 
Source Error:
 
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
 
Stack Trace:
 
 
[NullOrEmptyException: Instance of workspace item with type "Terrasoft.Configuration.TgAcceptanceCoverageAndObjectSchema" cannot be obtained from server metadata]
   Terrasoft.Core.Entities.EntitySchemaManager.InitializeSchema(ISchemaManagerItem schemaManagerItem, Assembly assembly) +221
   Terrasoft.Core.SchemaManagerItem`1.get_Instance() +208
   Terrasoft.Core.Manager`2.GetInstanceByUId(Guid uid) +96
   Terrasoft.Configuration.ConfigurationSectionHelper.InnerGetEntitiesStructure(UserConnection userConnection, IEnumerable`1 entityNames) +4871
   Terrasoft.Configuration.ConfigurationSectionHelper.GetConfigurationStructuresScripts(UserConnection userConnection) +80
   Terrasoft.Configuration.ConfigurationSectionHelper.GetConfigurationScript(UserConnection userConnection) +202
   Terrasoft.WebApp.Nui.ViewModuleHelper.CreateModulesConfigScript(UserConnection userConnection, HttpResponseBase response) +160
   Terrasoft.WebApp.Nui.ViewModule.SetupModulesConfig() +76
   Terrasoft.WebApp.Nui.ViewModule.Page_Load(Object sender, EventArgs e) +171
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +154
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4082

Do you have any idea guys for solve this error? thank you

Like 1

Like

0 comments
Show all comments

Hi,

 

I am trying to set up a print template for [Contact section]. 

One of the details I want to print out is the phone number which is listed in the field 'communication option' of [Contact section]

I am trying to find that info in 'set up report data' in the printables reports but can not see the data

 

Any one can help please

 

Thanks

Like 0

Like

1 comments
Best reply

Hello Minh,

Try do not to use the "contact communication option" object.
You can find the phone number directly in the contact object:

Best regards,

Bogdan

Hello Minh,

Try do not to use the "contact communication option" object.
You can find the phone number directly in the contact object:

Best regards,

Bogdan

Show all comments

Hello, I created a lookup in the Contact section. I added data into it from the Lookups section. I got a foreign key error while selecting the data entered in the Contact section. I updated the table I created from the Configuration section. Again nothing happened. I deleted Lookup. I removed the relevant column from the contact table. I wanted to delete the relevant section in Configuration, but I got the error "Unable to delete item, because there are items that depend on it". I think I removed the relevant dependencies. How can I learn? Now the system is constantly logout.

Like 0

Like

3 comments

Hello, 

 

Please provide us with a screenshot of the full error message, so we'll be able to advise you accordingly. 

 

Best regards, 

Anastasiia

 When I try to open it or the update, it crashes and logout of the system. 

Aygen Ergen,

 

 

Please try to Update the DB structure for the object that has an error as shown on the screenshot below:

 

And after that generate the source code for all schemas and "Compile all" from the Configuration section. It should resolve the issue. 

Best regards, 

Anastasiia

Show all comments

 

Hi Team,

 

We are trying to configure the organisational structure and need to understand how the hierarchy [access] will be passed on in the structure, whether the access/configured from higher level to lower level in the organisational structure or the opposite needs to be set up.

 

For example, consider the below structure for a bank from higher level to lower level.

 

GM’s

BM’s

HOPO’s

HOCO’s

RM’s

RO’s

 

We would like to understand on how the structure needs to be designed in the Organisation role page, so that the GM’s can view all the activity performed below his role and similarly the role below the GM’s can only get access to the role below them.

 

GM’s

         BM’s

                  HOPO’s

                               HOCO’s

                                            RM’s

                                                     RO’s

 

Do we design it in the above way, were GM division/organisation is created followed by the other division within the others.

 

For example,  we assigned one workspace to RO role and another workplace to RM. Ideally, the workplace associated to RO should be accessible to RM as they’re higher in level to RO’s but the opposite happens. The RO is able to view his/her workplace associated and also the work place associated to RM’s. Whereas the RM’s are able to view only their workplace but not the work place associated to the RO’s who are below in the organisational structure.

 

Or for example, say Ro’s have access to 10 contacts and RM’s have access to 10 different contacts but based on the above structure, RM’s should be able to see the 10 contacts associated to RO’s but it is not viewable but instead the RO’s are able to view the 10 contact associated to RM’s.

 

So, our confusion here is then the organisation structure design needs to be from lower level to higher level as 

 

RO’s

         RM’s

                  HOCO’s

                                HOPO’s

                                              BM’s

                                                       GM’s

 

By the above design, the GM’s will be ale to view all the values/access provided to the other roles and accordingly the other roles are able to view the respective roles above them.

Like 0

Like

0 comments
Show all comments

Hi Team,
We have a business use-case like enabling the MiniPage (View Mode) in the activity section based on conditions. I have enabled the view mode of the MiniPage, now I am able to see the mini page for all the records. But I need to show it for the records based on some conditions like (Eg: Title = "Appointment").

How to achieve this kind of implementation?

Regards,
Adharsh S

Like 0

Like

4 comments
Best reply

Hi Adharsh,

 

The logic below will make a mini page in view mode not appear on the page in case the title of the activity contains the "Visit" word.

 

Create a replacing view model for the ActivitySectionV2 and add the following code there:

define("ActivitySectionV2", [],
	function() {
		return {
			entitySchemaName: "Activity",
			attributes: {
				"ResultGridSet": {
					"dataValueType": this.Terrasoft.DataValueType.TEXT,
					"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
					"value": ""
				}
			},
			mixins: {},
			methods: {
				onGridDataLoaded: function(response){
					this.callParent(arguments);
					var subjectsToExclude = "";
					Terrasoft.each(response.collection.getItems(),function(item){
						var activityTitle = item.values.Title;
						var activityId = item.values.Id;
						if (activityTitle.indexOf("Visit")!= -1){
							subjectsToExclude = subjectsToExclude + activityId +",";
						}
					});
					subjectsToExclude = subjectsToExclude.substring(0, subjectsToExclude.length - 1);
					this.set("ResultGridSet", subjectsToExclude);
				},
				prepareMiniPageOpenParameters: function(options, entityInfo){
					var rowId = options.rowId;
					var gridSet = this.get("ResultGridSet");
					if (gridSet.indexOf(rowId)!=-1){
						return;
					}
					this.callParent(arguments);
				}
			},
			diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
		};
	}
);

The logic is simple:

 

1) onGridDataLoaded method is always called when the grid is loaded in the section. It contains the response argument which contains actual data that is stored in the grid (and we can use it).

 

2) Once onGridDataLoaded is called we take the response and check if the activity title contains the "Visit" word and perform this check for each item in the grid. If the activity title contains the "Visit" word we take an Id value for this activity and add it to the string subjectsToExclude parameter.

 

3) subjectsToExclude parameter result will be then passed to the ResultGridSet attribute that will be then used inside the prepareMiniPageOpenParameters method.

 

4) prepareMiniPageOpenParameters method is the method from base MiniPageUtilities mixin and we need to override its logic in the Activities section. prepareMiniPageOpenParameters has the options argument that is primary data regarding the activity on which the mouseover event was called. We can get the activity id from the options argument and use it further.

 

5) Inside the prepareMiniPageOpenParameters method we get the ResultGridSet attribute value and then check if the Id that was received from options can be found inside the ResultGridSet string. If it can be found the prepareMiniPageOpenParameters does nothing (and as a result the minipage is not opened), else - perform the parent method execution.

 

Feel free to create your own logic based on this example.

 

Best regards,

Oscar

Hi Adharsh,

 

The logic below will make a mini page in view mode not appear on the page in case the title of the activity contains the "Visit" word.

 

Create a replacing view model for the ActivitySectionV2 and add the following code there:

define("ActivitySectionV2", [],
	function() {
		return {
			entitySchemaName: "Activity",
			attributes: {
				"ResultGridSet": {
					"dataValueType": this.Terrasoft.DataValueType.TEXT,
					"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
					"value": ""
				}
			},
			mixins: {},
			methods: {
				onGridDataLoaded: function(response){
					this.callParent(arguments);
					var subjectsToExclude = "";
					Terrasoft.each(response.collection.getItems(),function(item){
						var activityTitle = item.values.Title;
						var activityId = item.values.Id;
						if (activityTitle.indexOf("Visit")!= -1){
							subjectsToExclude = subjectsToExclude + activityId +",";
						}
					});
					subjectsToExclude = subjectsToExclude.substring(0, subjectsToExclude.length - 1);
					this.set("ResultGridSet", subjectsToExclude);
				},
				prepareMiniPageOpenParameters: function(options, entityInfo){
					var rowId = options.rowId;
					var gridSet = this.get("ResultGridSet");
					if (gridSet.indexOf(rowId)!=-1){
						return;
					}
					this.callParent(arguments);
				}
			},
			diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
		};
	}
);

The logic is simple:

 

1) onGridDataLoaded method is always called when the grid is loaded in the section. It contains the response argument which contains actual data that is stored in the grid (and we can use it).

 

2) Once onGridDataLoaded is called we take the response and check if the activity title contains the "Visit" word and perform this check for each item in the grid. If the activity title contains the "Visit" word we take an Id value for this activity and add it to the string subjectsToExclude parameter.

 

3) subjectsToExclude parameter result will be then passed to the ResultGridSet attribute that will be then used inside the prepareMiniPageOpenParameters method.

 

4) prepareMiniPageOpenParameters method is the method from base MiniPageUtilities mixin and we need to override its logic in the Activities section. prepareMiniPageOpenParameters has the options argument that is primary data regarding the activity on which the mouseover event was called. We can get the activity id from the options argument and use it further.

 

5) Inside the prepareMiniPageOpenParameters method we get the ResultGridSet attribute value and then check if the Id that was received from options can be found inside the ResultGridSet string. If it can be found the prepareMiniPageOpenParameters does nothing (and as a result the minipage is not opened), else - perform the parent method execution.

 

Feel free to create your own logic based on this example.

 

Best regards,

Oscar

Oscar Dylan,

Thanks for the reply.

One small change in the code,
Instead of , var rowId = options.rowId;
You can choose  var rowId = entityInfo.recordId;

Because, options.rowId returns "undefined".

Regards,
Adharsh S

Adharsh,

 

You are welcome.

 

This is strange, in my code options.rowId returned values and entityInfo was always undefined:

Maybe it behaves differently in different sections... Anyway, debugging will always provide a correct way to get the data needed:)

 

Best regards,

Oscar

Oscar Dylan,
 

It is interesting. Might be it behaves differently in different sections. But I see your screenshot, you have debugged in the ActivitySection right. I have implemented the functionality on the same schema page. It seems to be weird behaving different across instances!

Regards,
Adharsh S

Show all comments

Very strange occurance with our instance.  activities that were created during a 'make recurring' process are not visible in Schedule view when logged in and attempting to look at their own activities.  When others set the owner in the Schedule view in the activity section to the activity owner, the activities are visible.  Has anyone else seen this with this Marketplace add-on?

Like 0

Like

2 comments

Hello Stephen,

 

Kindly note that the add-on was developed for and tested on Creatio desktop.

 

That said, please send us the following details:

 

1. Creatio desktop product and version.

2. Mobile app version and operating system.

 

This information will help us to reproduce the issue and get back to you with feedback.

Thank you:

 

our desktop is Sales Creatio, enterprise edition Version 7.17.1.1363

Mobile OS and app version are Android and v7.18.5

Show all comments