Dear community

In the account section I need to show a link to a connected contact with a specific role.

I added a virtual column and using the following link How to make an URL String field into a clickable hyperlink | Community Creatio,

I convert it to a hyperlink.

In the onEntityInitialized page event I get the contact to show in the hyperlink.

The problem is that onEntityInitialized is raised after the virtual column has been converted to hyperlink, so the hyperlink does not show the desired data.

What do you suggest me?

Like 0

Like

1 comments

Dear community,

I found the solution, I followed Kirill Krylov's suggestion in the following post Select datasource for custom lookup control | Community Creatio.

 

Thank you Kirill!

Show all comments

Hello. I'm working with the Multiple choice field setup for Creatio (https://marketplace.creatio.com/app/multiple-choice-field-setup-creatio) add-on but I'm not getting it to save the selected values.

 

I've followed the guide here: https://marketplace.creatio.com/sites/marketplace/files/app-guide/Multi…

 

I have the Lookup object that I select. I have the link table (which is equivolent to ActivityParticipant which is used in the guide-example)

 

I get the values correctly on the page, and they are selectable. But nothing is saved to the database when i Save the record

 

Object: Contact

Lookup: ChessInterest

Link-object: ChessContactInterest

define("ContactPageV2", ["MultiChoiceMixin"], function() {
	return {
      entitySchemaName: "Contact",
      attributes: {
        "ChessInterests": {"dataValueType": Terrasoft.DataValueType.LOOKUP}
      },
      mixins: {MultiChoiceMixin: "Terrasoft.MultiChoiceMixin"},
      modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		}
 
...
methods: {
		init: function() {
          this.callParent(arguments);
          this.mixins.MultiChoiceMixin.init.call(this, arguments);
        },
        getMultiChoiceEntitiesConfig: function () {
          const items = {
            ChessInterests: {
              mainEntitySchemaName: "ChessContactInterest",
              mainColumnName: "Contact",
              relatedEntitySchemaName: "ChessInterest",
              relatedColumnName: "ChessInterest"
            }
          };
          return items;
        }
      },
 
...
 
      diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "ChessInterests",
				"values": {
					"className": "Terrasoft.MultiChoiceCombobox",
					"bindTo": "ChessInterests",
					"dataValueType": 11,
					"layout": {
						"colSpan": 12,
						"rowSpan": 1,
						"column": 0,
						"row": 5
					},
					"labelConfig": {
						"caption": "Select interests"
					}
				},
				"parentName": "Header",
				"propertyName": "items",
				"index": 0
			},
}



 

Like 0

Like

9 comments
Best reply

Fixed it with another one. Last one was wrong

              mainEntitySchemaName: "ChessContactInterest",
              mainColumnName: "ChessContact",
              relatedEntitySchemaName: "ChessInterest",
              relatedColumnName: "ChessInterest"

Explanation as I understand it:

mainEntitySchemaName: "My Link Table",
mainColumnName: "Property in Link table matching current record Id (In my case ContactId)", 
relatedEntitySchemaName: "Object to select", 
relatedColumnName: "Objects column name in Link table"

Bumping this

Hi Julius,

 

I recommend double-checking the following parameters: mainEntitySchemaName, mainColumnName, and relatedColumnName. They all are responsible for data storage.

 

Also, could you please provide a screenshot of the settings for the 'ChessContactInterest' object with added fields? This would help investigate the issue further.

Alexander Demidov,

Alexander Demidov,

I managed to solve it.

        getMultiChoiceEntitiesConfig: function () {
          const items = {
            ChessInterests: {
              mainEntitySchemaName: "ChessContactInterest",
              mainColumnName: "ChessContact",
              relatedEntitySchemaName: "ChessContactInterest",
              relatedColumnName: "ChessInterest"
            }
          };

Now my next issue is that I don't have a Displayed Value on my link-object (ChessContactInterestChess). I can't select one in the drop-down

Fixed it with another one. Last one was wrong

              mainEntitySchemaName: "ChessContactInterest",
              mainColumnName: "ChessContact",
              relatedEntitySchemaName: "ChessInterest",
              relatedColumnName: "ChessInterest"

Explanation as I understand it:

mainEntitySchemaName: "My Link Table",
mainColumnName: "Property in Link table matching current record Id (In my case ContactId)", 
relatedEntitySchemaName: "Object to select", 
relatedColumnName: "Objects column name in Link table"

Hi Julius,

 

It's great to hear that you resolved these issues! We will add your findings to the app description to help streamline the field setup.

Hi,

I get this problem too, that values are not being saved.

I checked the above elements and they are good!

What else can cause that issue?

 

I managed to solve it.

I deleted the name field that was automatically created when I create the object through the detail wizard. It's required and probably that couldn't be save missing that field.

Hello. I'm working with the Multiple choice field setup for Creatio (https://marketplace.creatio.com/app/multiple-choice-field-setup-creatio) add-on but I'm not getting it to save the selected values.

I've followed the guide here: https://marketplace.creatio.com/sites/marketplace/files/app-guide/Multi…

I get the values correctly on the page, and they are selectable. But nothing is saved to the database when i Save the record

Object: UsrContactLabels

Lookup: UsrLabels

Link-object: UsrContact

Show all comments

Dear team,

 

I am getting below error when installing  Aspose.PDF connector for Creatio in free trial full-bundle demo instance, version 7.17.1. Please advise:

 

2021-03-21 13: 25: 30,703 Compilation of the configuration DLL

2021-03-21 13: 27: 42,510 Errors and / or warnings when compiling the configuration DLL

2021-03-21 13: 27: 42,510 Autogenerated \ Src \ GlbAsposePDFHelper.GlbWordToPdfConverter.cs (5,8) Error CS0246: The type or namespace name 'Aspose' could not be found (are you missing a using directive or an assembly reference ?)

Like 0

Like

1 comments

Fixed the issue by manually installing Aspose Word dll. I haven't noticed issue happening in 7.17.3 

Show all comments

Dear community

 

I tried to import the Account.Parent column the import is finished without error, but in the "connect to" tab of page account no relationship between the two account imported is showed.

I checked in the RelationshipConnection table and no records are imported.

In the past on a environment with 7.16 version everything worked fine.

What Do I'm doing wrong?

 

Like 0

Like

5 comments

The new Connected To tab in 7.17 doesn't use the Parent column on the account - it has a new table structure that works for both accounts and contacts. You can add the previous Connected To detail on the page and it will show the account relationships using the Parent column. 

Ryan

Dear Stefano,

 

Thank you for your question!

 

You may feel free to refer to Ryan`s answer above.

 

Ryan, thank you very much for your dedication!

 

Have a great day team!

 

Regards,

Danyil

Danyil Onoprienko,

 

thank you all,

If I would like to use the new features which tables should I import ?

This is an sql script that creates for an account with parent column set the right records in the new relationship tables.

DO $$ 
declare
  SchemaId uuid;
  AuthorId uuid := '410006e1-ca4e-4502-a9ec-e54d922d2c00'; -- supervisor
  RelationTypeId uuid;
begin 
    -- Get Schema Account
    SELECT "UId"
    FROM "SysSchema"
    WHERE "Caption" = 'Account'
        AND "ExtendParent" = false
    INTO SchemaId;
 
    -- Get relation
    SELECT "Id"
    FROM "RelationType"
    WHERE "Name" = 'Holding company'
    INTO RelationTypeId;
 
    CREATE TEMP TABLE "Entities" (
        "EntityIdA" uuid
        , "EntityIdB" uuid
        , "RelationshipDiagramId" uuid
        , "AuthorId" uuid
        , "RelationshipEntityAId" uuid
        , "RelationshipEntityBId" uuid
        );
 
    INSERT INTO "Entities" (
        "EntityIdA"
        , "EntityIdB"
        , "RelationshipDiagramId"
        , "AuthorId"
        , "RelationshipEntityAId"
        , "RelationshipEntityBId"
        )
    SELECT a."ParentId" AS "EntityIdA"
        , a."Id" AS "EntityIdB"
        , uuid_generate_v4() AS "RelationshipDiagramId"
        , AuthorId AS "AuthorId"
        , NULL AS "RelationshipEntityAId"
        , NULL AS "RelationshipEntityBId"
    FROM "Account" a
    WHERE a."ParentId" IS NOT NULL
        AND NOT EXISTS (
            SELECT 1
            FROM "RelationshipConnection" rc
            JOIN "RelationshipEntity" ea
                ON rc."RelationshipEntityAId" = ea."Id"
            JOIN "RelationshipEntity" eb
                ON rc."RelationshipEntityBId" = eb."Id"
            where ea."RecordId" = a."ParentId"
            and eb."RecordId" = a."Id"
            );
 
    INSERT INTO "RelationshipDiagram" (
        "Id"
        , "CreatedById"
        , "ModifiedById"
        )
    SELECT ee."RelationshipDiagramId"
        , ee."AuthorId" AS CreatedById
        , ee."AuthorId" AS ModifiedById
    FROM "Entities" ee;
 
    -- Entity A
    INSERT INTO "RelationshipEntity" (
        "RecordId"
        , "CreatedById"
        , "ModifiedById"
        , "SchemaUId"
        )
    SELECT ee."EntityIdA"
        , AuthorId AS CreatedById
        , AuthorId AS ModifiedById
        , SchemaId
    FROM "Entities" ee
    WHERE NOT EXISTS (
            SELECT 1
            FROM "RelationshipEntity" re
            WHERE re."RecordId" = ee."EntityIdA"
            );
 
    -- Entity B
    INSERT INTO "RelationshipEntity" (
        "RecordId"
        , "CreatedById"
        , "ModifiedById"
        , "SchemaUId"
        )
    SELECT ee."EntityIdB"
        , AuthorId AS CreatedById
        , AuthorId AS ModifiedById
        , SchemaId
    FROM "Entities" ee
    WHERE NOT EXISTS (
            SELECT 1
            FROM "RelationshipEntity" re
            WHERE re."RecordId" = ee."EntityIdB"
            );
 
    -- Update data in temp table
    UPDATE "Entities" ee
    SET "RelationshipEntityAId" = re."Id"
    FROM "RelationshipEntity" re
    WHERE ee."EntityIdA" = re."RecordId";
 
    UPDATE "Entities" ee
    SET "RelationshipEntityBId" = re."Id"
    FROM "RelationshipEntity" re
    WHERE ee."EntityIdB" = re."RecordId";
 
    -- RelationEntInDiagram
    INSERT INTO "RelationEntInDiagram" (
        "CreatedById"
        , "ModifiedById"
        , "RelationshipDiagramId"
        , "RelationshipEntityId"
        )
    SELECT ee."AuthorId" AS CreateById
        , ee."AuthorId" AS ModifiedBy
        , ee."RelationshipDiagramId"
        , ee."RelationshipEntityAId"
    FROM "Entities" ee;
 
    -- RelationEntInDiagram
    INSERT INTO "RelationEntInDiagram" (
        "CreatedById"
        , "ModifiedById"
        , "RelationshipDiagramId"
        , "RelationshipEntityId"
        )
    SELECT ee."AuthorId" AS CreateById
        , ee."AuthorId" AS ModifiedBy
        , ee."RelationshipDiagramId"
        , ee."RelationshipEntityBId"
    FROM "Entities" ee;
 
    -- RelationshipConnection
    INSERT INTO "RelationshipConnection" (
        "RelationshipEntityAId"
        , "RelationshipEntityBId"
        , "RelationTypeId"
        )
    SELECT ee."RelationshipEntityAId"
        , ee."RelationshipEntityBId"
        , RelationTypeId AS RelationTypeId
    FROM "Entities" ee;
 
DROP TABLE "Entities";
 
end $$;

 

Stefano Bassoli,

This is fantastic! Thanks for sharing this Stefano!

Ryan

Show all comments

Dear, In account, there is the visual schema in the ConnectedTo tab: https://prnt.sc/10q02hg How can I add a relation in this schema from a business process? I cannot find the existing connections in any object and if I try to add a new relationship to the Relationship object, nothing is changed. Kind regards, Vincent

Like 0

Like

1 comments

Hello Vincent,

 

Hope you're doing well.

 

To be able to add or modify relationships via business process please use the object Relationship. It contains a connection for both contacts and accounts and can be used for adding any possible relations between those objects.

 

Also, the links below can be useful for further working with relationships:

Best regards,

Roman

Show all comments

Hello,

 

I want to open a webpage in browser in mobile application by tapping on a custom string field but could not find any solution in academy or community.

 

Regards,

Malay

Like 1

Like

4 comments

Dear Malay,

 

In detail Communication option for accounts and contacts, you can find the communication option Web - after the link is added to it you will be able to click it. To add this logic to your field check the code of this detail in OOB mobile application and mimic it for your field. 

 

Best regards,

Angela

Hello Angela,

 

I have seen this field, but in the advanced settings it is hidden from me as it is a out of the box field. I cannot find it in any lead mobile page or lead edit page v2.

If you have source code for this, please provide me so that I can implement that on my field.

 

Regards,

Malay

Malay,

Check MobileAccountCommunicationModelConfig schema or simular schema for contact section. 

 

Best regards,

Angela

Angela Reyes,

 

I have checked all the schemas related to account and contact, but could not find the definition for that "Web" field which is clickable in mobile.

I have checked the MobileAccountCommunicationModelConfig  also but could not find anything.

 

Regards,

Malay

Show all comments

Hi,



I'm working on Activities right now and I created my own activity.

I wanted to insert a New Activity with a press of a button which is located in the MainHeader. Question, what's the best way to insert my own activity?



I am currently trying to insert it via custom web service through

Insert insert = new Insert(UserConnection)
                .Set("","")
                .Into("Activity")

I'm afraid there are events, computations that won't be triggered.



Any comments?

Like 0

Like

6 comments
Best reply

Solem Khan Abdusalam,

After you call activity.Save() you can get the created record Id using 

// get primary Id value
var id = activity.PrimaryColumnValue;
// or get any of the column values using 
var title = activity.GetTypedColumnValue<string>("Title");
var start = activity.GetTypedColumnValue<DateTime>("StartDate");
// etc

Ryan

Using the Insert class does not trigger process events, etc. Instead, you can use the Entity class. Something like this: 

var schema = UserConnection.EntitySchemaManager.GetInstanceByName("Activity");
// Create a new Activity object
var activity = schema.CreateEntity(UserConnection);
// Set any any default column values 
activity.SetDefColumnValues();
// Now set the column values as needed
activity.SetColumnValue("Title", "This is a new activity");
activity.SetColumnValue("StartDate", DateTime.Now);
// etc
// Save when done
activity.Save();

Hope this helps.

Ryan

Ryan Farley,



Is there a way to fetch the Id of the created Activity?

Solem Khan Abdusalam,

 

One of possible ways is to create a SELECT query to the database using or the script task process element (if you are going to use a business process) or in the custom web service that is triggered upon clicking the button and select the last created activity (top 1 and ORDER BY CreatedOn conditions). Also the created activity can have some marker in its subject (like "created via web service" or so) that could be used in the filtering condition as well.

 

Insert query you've proposed won't return an Id of the record, but you can select it once the record is created.

 

Best regards,

Oscar

Solem Khan Abdusalam,

After you call activity.Save() you can get the created record Id using 

// get primary Id value
var id = activity.PrimaryColumnValue;
// or get any of the column values using 
var title = activity.GetTypedColumnValue<string>("Title");
var start = activity.GetTypedColumnValue<DateTime>("StartDate");
// etc

Ryan

Is there any way to trigger the Creatio processes that happen when using the Entity class to insert data when using something like the Insert class/other operations that happen on the database more directly?

 

We have a need to do some atomic data operations in the table (create a record where it doesn't already exist, and with a high chance of 2 processes attempting to do so at the same time) which would be much simpler/actually possible to implement in SQL, but we still want the Creatio processes to occur after the record has been created.

 

The problem with the Creatio data operations, definitely in BPs but also in C# as well, is that the data checks happen and then a record is created, but in the meantime another process may have already created the record, so you get 2+ processes trying to create the same record. We can make it fail with a unique index, but this will just break a BP instance (cause it to error out and not be recoverable) and isn't the most ideal way of doing things in general.

Harvey Adcock,
 

In this case, you can call the business process through C# code using the IProcessEngine Interface from the Terrasoft.Core.dll namespace

Example of starting a process without transferring parameter values:

UserConnection userConnection = Get<UserConnection>("UserConnection");
IProcessEngine processEngine = userConnection.ProcessEngine;
IProcessExecutor processExecutor = processEngine.ProcessExecutor;
processExecutor.Execute("UsrProcess2Custom1");
return true;


The relevant documentation can be found at this link - https://academy.creatio.com/api/netcoreapi/7.18.0/api/Terrasoft.Core.IProcessEngine.html


Or you can also make a GET call to the endpoint 
0/ServiceModel/ProcessEngineService.svc

The corresponding documentation can be found at this link - 
https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…
 

 

 

 

 

Show all comments

Hi,



I am not sure if it is okay to leave the warning be.

But I tried to follow that I needed to declare esversion, just not sure if I've done it properly.



Any comments?



Like 0

Like

3 comments
Best reply

Solem Khan Abdusalam,

 

Hi,

 

Thank you! This is a warning message that the arrow function is supported in Ecma Script 6 only. Here is the list of browsers and their versions that support arrow functions (information copied from here):

There is a low probability that a client will have an older browser version so you can ignore this warning or use function declaration to create a method.

 

Best regards,

Oscar 

Hi Solem,

 

Unfortunately the image wasn't loaded properly, can you please reupload it or share the code itself?

 

Thank you!

 

Best regards,

Oscar

Hi,



I edited my question.

Solem Khan Abdusalam,

 

Hi,

 

Thank you! This is a warning message that the arrow function is supported in Ecma Script 6 only. Here is the list of browsers and their versions that support arrow functions (information copied from here):

There is a low probability that a client will have an older browser version so you can ignore this warning or use function declaration to create a method.

 

Best regards,

Oscar 

Show all comments

Hi,

 

I do have a use case that needs to create a bridge between Numerical prediction and Campaign designer for Leads.

The use case is as follow:

 

The lead enters + 20 Score

The lead unsubscribes -100 Score

The contact click on a link in email + 15 Score

so on and so forth.

 

Is there any possibility this can be done using ML models? What do you suggest?

 

Thanks

Like 0

Like

3 comments

Dear Kavian,



Unfortunately, it is not possible to implement these using ML Models as they do not work this way.

Still, you can check Data entry compliance Lookup and use this as an example to implement your logic.



Best Regards,

Ivanna.

Ivanna Yatsura,

Thanks for your reply. However, is it possible to set 'Data entry compliance' for Leads? Or even custom objects?

Kavian Abhari,

Hello,

 

Please check the answer to your separate community question here - https://community.creatio.com/questions/data-entry-compliance-leads

 

Best regards,

Oscar

Show all comments

Hello,

 

I am trying to get the count of records that are only appearing more than once in a section. I have made the chart dashboard for this but, it is showing single values also which I do not want to be shown. I have attached the dashboard setting page below.

 

In this, the chart is also showing single count values which needs to be hidden. I have searched for a filter condition but could not find anything.

 

Hoping for an early response. 

Like 0

Like

3 comments
Best reply

malay garg,

You need to go to the higher object in the hierarchy to check this connection. The resulting filter depends on where those records appear. In the system, you will be able to check the number of records in a specific section/record, like the number of contacts in one account. 

 

Best regards,

Angela

Dear Malay,

 

Try adding the "Count" filter to the dashboard to show only values that appear more than once. 

 

Best regards,

Angela

I have already tried this, but function 'count' is not available in any condition. I have attached the screenshots of the filters at both places.

 

 

malay garg,

You need to go to the higher object in the hierarchy to check this connection. The resulting filter depends on where those records appear. In the system, you will be able to check the number of records in a specific section/record, like the number of contacts in one account. 

 

Best regards,

Angela

Show all comments