Hi

I need to show events in which account contacts have participated in the Account History tab.

The idea is to create a database view that extracts the required data and links as details to the account page.

What do you think?

Like 0

Like

2 comments

Hi Stefano, 

 

We don't have practical examples of such implementation because  Events are basically working specifically with contacts.

 

So I'm not sure it's possible to link.

You can try to implement your idea.

 

Please check the logic of "Events" detail in Contact section.

Alternatively, you can try to create own detail and fill the data manually, it will work. (Just in case you have couple events and you need to mark it in Account history) like that.

 

Here is the test detail I created to put some info about Events to the Account section(History tab):

 

Best Regards, 

 

Bogdan L.

 

Bogdan Lesyk,

Thank you Bogdan.

If I add the account on the attendee's event response, I need to synchronize this field every time a contact changes the account they belong to

Show all comments

When trying to initiate a new WhatsApp chat with a customer, more than 24 hours after the last message on the past chat, we get the alert: "Unable to send the message, the conversation ended more than 24 hours ago"

How can we bypass this to send an verified and approved HSM message to the customer?

Like 0

Like

3 comments

Hello Julian, 

 

The error message indicates that more than 24 hours passed after the last incoming message and prevents you from initiating the chat once again from your side, such limitation is done in order to prevent Spam messages (so your messages sent after 24 hours from last incoming message won't be delivered to a client).

However, you will be able to continue the same chat with no error message once there is a new incoming message from a client.

 

Best regards, 

Anastasiia

Anastasiia Zhuravel,

WhatsApp allows sending of pre-approved HSM messages after 24 hrs. We have seen that if we (manually) reopen the chat and send a correctly pre-approved HSM message, this is successfully sent even after 24 hrs. Is this the correct/supported method of sending approved HSM messages in Creatio, or should we send some method?

julian hatteea,

 

Hello, 

 

We have double-checked this information and so far, this functionality is not implemented in our system. We have already registered the corresponding query for our R&D team and will be waiting for implementation of pre-approved HSM messages functionality in the upcoming versions. 

 

Thank you for helping us to make our Application better. 

 

Best regards, 

Anastasiia

Show all comments

Hi! Version 7.18.3

We configured email sending using explicit email credentials (as described here https://academy.creatio.com/documents/technic-sdk/7-16/sending-emails-u…)

When trying to send test email error "No address found" is received:

 

All required parameters for credentials config are set.  Those parameters were tested (email address added in Your profile => Email accounts => New and test email sent)

 

Can you help with this issue? 

Thanks!

Like 0

Like

3 comments

Hi,

 

According to the stack of the error the problem is in the email recipient email address that can be missing during the process execution in the script task. Please debug the code of this process in Visual Studio and check which values are passed to which variable of the script task and check which particular parameter is not being filled in.

 

Best regards,

Oscar

Oscar Dylan,

thanks for the suggestion. I made sure that all parameters that are specified in guige as required are passed. Specifically when calling  EmailSender.Send method for EmailContract.DTO.Credentials these fields are set:  ServiceUrl, Port, UseSsl, UserName, SenderEmailAddress, ServerTypeId,Password. 

In stack trace you can see that this call is the last call that we are controlling, everything past it is inner platfrom code:

 

I cant'd dubug inner platform code, unfortnatelly (or can I? If yes, can you help me to set up debug for this case? )

Also, checking properfies that could be additionally set for EmailContract.DTO.Credentials i cant figure out what should be additionally set ( taking into account message of the error, which says about address):

Maybe you can suggest what I am missing here? 

Thanks, Iuliia

 

Юлія Дяків,

 

You can debug the server code and the article I sent previously describes how to connect to the server code and how to connect to the IIS w3wp.exe process that runs the application pool to debug the code. All you need to do is simply open the root/Terrasoft.WebApp/Terrasoft.Configuration/Terrasoft.Configuration.sln file in the visual studio and connect to the IIS process as described in the article. Then you need to find the process schema and set breakpoints to the code. Also you will need to download all symbols (in the Visual Studio Debug->Options->Debugging->Symbols->Load all symbols).

 

Also as I already mentioned the problem is with the recipient of the email. It can either be not filled in or filled in incorrectly. That's why the sending script task code should be debugged.

 

Best regards,

Oscar

Show all comments

Hello team! 

Verison 7.18.3. 

We have a strange behaviour for case, when portal user follows direct link to record that has no section- it's redirected to PortalMainPageModule. (not even to Home page that is set for current user). No errors in console.

EntitySchema for mentioned page has Operation permissions, and Record permissions configured. Entity added to SysSSPEntitySchemaAccessList. All access rights for user are correct. 

User CAN open mentioned record not by direct link link (eg, following Some section => Some record => Approval record ) but cannot open the record by direct_link_to_approval_record.

 

Functionality worked good in version 7.14.0

If following direct link to page that has section such issue wasn't reproduced. Issue also is not reproduced for license users.

 

Can you advice where to look for solution?

Thanks in advance 

Like 1

Like

9 comments

Hello,

 

Hope you're doing well.

 

If I understood your question correctly, it seems there is some issues with permissions, on this demand we would like to suggest you update Organizational and Functional roles, Object permissions as well to apply the latest changes.

 

Regards,

Roman

Roman Rak,

thank you for your unswer. We did all that, but the issue wasn't resolved. This seems line an issue with routing. Can you help with which js module is responcible for routing? So we can try to debug this. 

Thanks!

 

Юлія Дяків,

 

Thanks for your prompt response.

It's still a bit unclear what you mean under "when portal user follows direct link to record that has no section". Could you please provide us with screenshots or with a recording of the issue reproduction? If it's not possible, please contact us via email (support@creatio.com) so we will be able to review your request with more details.

 

Regards,

Roman

Roman Rak,

 

when I say "when portal user follows direct link to record that has no section" I mean that this linl is link to edit page of detail records. So we have section for Entity1, open edit page1 from there. And inside of the page1 there is detail with list of connected records - Entity2, when we open some record from detail we open edit page2. There is no section for Entity2, only detail. But we can construct direct link to Edit page2 and give it to user. When licence user follows it all works correctly - edit page 2 is opened. But when portal user opens it - he is redirected to PortalMainPageModule.

Does this clarify a bit the problem? 

Regards, Iuliia

Hello Юлія,

 

Thank you for rephrasing the issue description.

 

At first, in case you are on the record page (let it be Activity page) trying to open the record from the detail on that page (let it be related to Account record), the link in the address bar is not being changed, so if you copy this URL and pass it to the portal user who doesn't have access to the Activity section, the behavior will be the same — user will be redirected to the home portal page. So in case, you want to provide the link for the Account detail record, you will need to open this detail record in a new tab/window, after that there will be available the proper link (this is OOTB logic and for now can not be changed, but we already have created a functional request for our developers on this topic).

 

Also if you shared the proper link to the needed record and the portal user still faces the same issue, please check access settings exactly for this record (at least there should be added this portal user or all needed portal users, user roles), because it looks like that user doesn't have the appropriate access to that record or section in general (we have tested, and it looked exactly how you described the issue).

 

Regards,

Roman

Roman Rak,

thanks for taking time to explain all those details.

But the case is that user has all rights that he needs to see this record. Portal user can see data in record Activity when he follows Activity Section => Activity page => Account detail => Account page (taken as example from your explanation)  but when opening direct link to Account page he is redirected to  PortalMainPageModule. (in our system Account object from example does not have section, only detail. We think this is important detail because when portal user follows direct link to some page that has section - no issue reproduced. )

 The link itself is correct and leads to correct edit page for licence users.

I was able to record video of described behaviour, but unfortunatelly can't attach gif file here.

As there is no error in console, we can't debug this issue, to find the cause. So we need some hint what part of routing behaviour to check for issues. 

Thanks.

 

 

Hi, I have the same issue. This PORTAL user has the all access rights and in v.7.14 can open url. But after update to v.7.18.3 - redirect to Main Page. Why? Do you have some ideas?

Hello,

 

If the issue appeared after the upgrade to the latest version, we suggest checking upgrade logs as far there could appear some issues that affected the access rights. Also, the website can be restarted and re-licensed, after that please flush Redis and check all the needed updated licenses.

 

Regards,

Roman

Show all comments

I configured my local Creatio environment to work in file system mode and setup Visual Studio 2019 as described in Creatio documentation.

I Created a package from Creatio UI setting to be compiled in a separate assembly.

I see that in Pck folder the Package folder has been created with a visual studio project file (csproj file) in "Files" package subfolder.

I created a Business Process in Creatio with a script task and I see that the corresponding "cs" file is created in "Autogenerated/Src" package subfolder and it appears on visual studio.

If I update that cs file, changing something in the script task method the changes are not replicate to Creatio.

I used the "Update Packages from file system" action but the "No changes found" popup appears. I tried compiling the project in Visual Studio, using the external tools to run "WorkspaceConsole" as described in Creatio Documentation but nothing goes from file system to Creatio.. actually I see the Creatio script task version to overwrite my file system file. 

Am I doing something wrong? How can I correctly work with my custom package in file system mode and let my changes to be seen from Creatio?

Thanks

Like 0

Like

1 comments

Dear Massimiliano,

 

Thank you for your question!

 

We have checked this information with our developers and they have confirmed that there is no ability of editing a Business Process in a file system mode.

 

Hope this clarifies!

 

Thank you!

 

Danyil

Show all comments

Hi community,

 

I try to trigger a business process that take one argument when I click on a button. When I click on my button the pop-up (as defined in my code below) shows up but I have an error via the console in chrome dev tools.

 

Here is the error that occurs (XML parse error: not well formatted):

 

Here is my schema :

define("ContactSectionV2", ["ProcessModuleUtilities", "ContactSectionV2Resources"], function(ProcessModuleUtilities, resources) {
	return {
		entitySchemaName: "Contact",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "BtnCreateCandidat",
				"parentName": "CombinedModeActionButtonsCardLeftContainer",
				"propertyName": "items",
				"values": {
					itemType: Terrasoft.ViewItemType.BUTTON,
					style: Terrasoft.controls.ButtonEnums.style.BLUE,
					classes: {
						"textClass": ["actions-button-margin-right"],
						"wrapperClass": ["actions-button-margin-right"]
					},
					click: { bindTo: "OnClickCreateCandidat" },
					tag: "CombinedModeActionButtonsCardLeftContainer",
					caption: { bindTo: "Resources.Strings.BtnCreateCandidatCaption" },
					hint: { bindTo: "Resources.Strings.BtnCreateCandidatHint" },
					enabled: true,
				},
			},
		]/**SCHEMA_DIFF*/,
		methods: {
			OnClickCreateCandidat: function(){
				var contactId = this.getActiveRow().get("Id");
				var args = {
					parameters: {
                        ProcessSchemaContactStr: contactId
                    },
					sysProcessName: "MTF_CreateCandidatIfNotExists",
					callback: function(){
						this.showInformationDialog(contactId);
						return true;
					},
					// scope: this
				};
				ProcessModuleUtilities.executeProcess(args);
				return true;
			},
		}
	};
});

And here is my business process :

 

It takes one argument as input :

 

"parse contactId" is a simple line to transform a string to a Guid :

Guid.Parse([#ContactStr#])

and I set the value returned to the ContactId argument.

 

then I try to read a candidate with the Contact Guid that I just set (a Candidate has a lookup field to a Contact object).

 

It just check if the candidate was found, if not it will create it. The BP returns the Candidate Guid.

 

The business process runs, the Candidate object is created (empty for some reason, not even with the Contact lookup filled) each it needs but I always have the XML parse error.

 

Do you know how can I debut this and how can I resolve this ?

 

Best regards,

 

Julien G.

Like 0

Like

7 comments

Hello Julien,

 

Please find this request in the network tab of the browser and send the complete response to this request. Also what is being written in the server logs?

 

Best regards,

Oscar 

Oscar Dylan,

 

The button send a POST request.

Request (json) :

{
  "collectExecutionData": true,
  "parameterValues": [
    {
      "name": "ProcessSchemaContactStr",
      "value": "afbdee02-d829-4cd6-aef9-74c719e3d169"
    }
  ],
  "schemaName": "MTF_CreateCandidatIfNotExists",
  "resultParameterNames": []
}

and the response (json) :

{
  "processId": "a78bff89-c553-43bc-9d3a-210302be2c25",
  "processStatus": 2,
  "resultParameterValues": null,
  "executionData": null,
  "success": true,
  "errorInfo": null
}

Here is the IIS log when I click my button :

(I replaced Creatio's IP, Creatio's FQDN and my IP address)

2021-10-27 08:30:42 CreatioFQDN POST /0/ServiceModel/ProcessEngineService.svc/RunProcess - 443 julien.gunther myIPAddress Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64;+rv:93.0)+Gecko/20100101+Firefox/93.0 https://CreatioFQDN/0/Nui/ViewModule.aspx 200 0 0 624

I don't have any other logs..

Julien Gunther,

 

This error somehow prevents the data from saving or something is not working in the system when you receive this error to the client-side? If not, please ignore it.

 

Best regards,

Oscar

Oscar Dylan,

This prevents the data from being saved correctly. The newly created object is saved but it is an empty object. No data is saved in the saved object.

 

Another problem is that when I click on this button, a pop-up window appears with the Guid of the selected contact (as specified in the section diagram), then it loads indefinitely. The only way to get out of this state is to reload the page.

 

Best regards,

 

Julien

Julien Gunther,

 

Issues like this are not possible to be solved in the community. Please share the backup of the app if this is deployed locally and provide steps to reproduce the problem in the email sent to support@creatio.com and I will take a look.

 

Best regards,

Oscar

Julien Gunther,



Could you go to the process library, select your business process and click the property. In the open page, check the "Trace enabled" option. 

 

After that, you can find the trace log in the business process log. From there, you can check what is the parameter value and if the value is correct or not before/after the certain step.

 

According to what you described, it sounds like the contactId parameter is not setup correctly. So it is important to ensure the contactId after your Guid.Parse is correct.

 

On the other hand, have tried to set the contactId directly from button click scripts?

 

regards,

 

Cheng Gong

Cheng Gong,

 

Sorry for my late reply,



I checked the trace, the contactId has been defined successfully. I have no trace for the formulas, only for "Create Candidate" and "Try Read Candidate".

 

Try Read Candidat trace :

{
	"Paramètres de l'élément": [
		{
			"Paramètre": "Sources de données des filtres",
			"Valeur": {
				"Avant exécution": "{\"className\":\"Terrasoft.FilterGroup\",\"serializedFilterEditData\":\"{\\\"className\\\":\\\"Terrasoft.FilterGroup\\\",\\\"items\\\":{\\\"c46e04a9-f961-4607-8585-9eb58c49d628\\\":{\\\"className\\\":\\\"Terrasoft.InFilter\\\",\\\"filterType\\\":4,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"className\\\":\\\"Terrasoft.ColumnExpression\\\",\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"MTFContactCandidat\\\"},\\\"isAggregative\\\":false,\\\"key\\\":\\\"c46e04a9-f961-4607-8585-9eb58c49d628\\\",\\\"dataValueType\\\":10,\\\"leftExpressionCaption\\\":\\\"Candidat\\\",\\\"referenceSchemaName\\\":\\\"Contact\\\",\\\"rightExpressions\\\":[{\\\"className\\\":\\\"Terrasoft.ParameterExpression\\\",\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"className\\\":\\\"Terrasoft.Parameter\\\",\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Parameter:{e8e60615-91be-40a0-a225-2922d2a98f23}]\\\",\\\"displayValue\\\":\\\"ContactId\\\",\\\"Id\\\":\\\"e2c00489-34d4-4d18-a703-39f3c30e7543\\\"}}}]}},\\\"logicalOperation\\\":0,\\\"isEnabled\\\":true,\\\"filterType\\\":6,\\\"rootSchemaName\\\":\\\"MTF_Candidat\\\",\\\"key\\\":\\\"\\\"}\",\"dataSourceFilters\":\"{\\\"items\\\":{\\\"c46e04a9-f961-4607-8585-9eb58c49d628\\\":{\\\"filterType\\\":4,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"MTFContactCandidat\\\"},\\\"rightExpressions\\\":[{\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Parameter:{e8e60615-91be-40a0-a225-2922d2a98f23}]\\\",\\\"Id\\\":\\\"e2c00489-34d4-4d18-a703-39f3c30e7543\\\"}}}]}},\\\"logicalOperation\\\":0,\\\"isEnabled\\\":true,\\\"filterType\\\":6,\\\"rootSchemaName\\\":\\\"MTF_Candidat\\\"}\"}",
				"Après exécution": "{\"className\":\"Terrasoft.FilterGroup\",\"serializedFilterEditData\":\"{\\\"className\\\":\\\"Terrasoft.FilterGroup\\\",\\\"items\\\":{\\\"c46e04a9-f961-4607-8585-9eb58c49d628\\\":{\\\"className\\\":\\\"Terrasoft.InFilter\\\",\\\"filterType\\\":4,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"className\\\":\\\"Terrasoft.ColumnExpression\\\",\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"MTFContactCandidat\\\"},\\\"isAggregative\\\":false,\\\"key\\\":\\\"c46e04a9-f961-4607-8585-9eb58c49d628\\\",\\\"dataValueType\\\":10,\\\"leftExpressionCaption\\\":\\\"Candidat\\\",\\\"referenceSchemaName\\\":\\\"Contact\\\",\\\"rightExpressions\\\":[{\\\"className\\\":\\\"Terrasoft.ParameterExpression\\\",\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"className\\\":\\\"Terrasoft.Parameter\\\",\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Parameter:{e8e60615-91be-40a0-a225-2922d2a98f23}]\\\",\\\"displayValue\\\":\\\"ContactId\\\",\\\"Id\\\":\\\"e2c00489-34d4-4d18-a703-39f3c30e7543\\\"}}}]}},\\\"logicalOperation\\\":0,\\\"isEnabled\\\":true,\\\"filterType\\\":6,\\\"rootSchemaName\\\":\\\"MTF_Candidat\\\",\\\"key\\\":\\\"\\\"}\",\"dataSourceFilters\":\"{\\\"items\\\":{\\\"c46e04a9-f961-4607-8585-9eb58c49d628\\\":{\\\"filterType\\\":4,\\\"comparisonType\\\":3,\\\"isEnabled\\\":true,\\\"trimDateTimeParameterToDate\\\":false,\\\"leftExpression\\\":{\\\"expressionType\\\":0,\\\"columnPath\\\":\\\"MTFContactCandidat\\\"},\\\"rightExpressions\\\":[{\\\"expressionType\\\":2,\\\"parameter\\\":{\\\"dataValueType\\\":26,\\\"value\\\":{\\\"value\\\":\\\"[IsOwnerSchema:false].[IsSchema:false].[Parameter:{e8e60615-91be-40a0-a225-2922d2a98f23}]\\\",\\\"Id\\\":\\\"e2c00489-34d4-4d18-a703-39f3c30e7543\\\"}}}]}},\\\"logicalOperation\\\":0,\\\"isEnabled\\\":true,\\\"filterType\\\":6,\\\"rootSchemaName\\\":\\\"MTF_Candidat\\\"}\"}"
			}
		},
		{
			"Paramètre": "Lire d'abord",
			"Valeur": {
				"Avant exécution": true,
				"Après exécution": true
			}
		},
		{
			"Paramètre": "Ordre des colonnes",
			"Valeur": {
				"Avant exécution": "Name:1:1",
				"Après exécution": "Name:1:1"
			}
		},
		{
			"Paramètre": "Premier élément de la collection résultante",
			"Valeur": {
				"Avant exécution": {},
				"Après exécution": {}
			}
		},
		{
			"Paramètre": "Lire les données non validées",
			"Valeur": {
				"Avant exécution": true,
				"Après exécution": true
			}
		},
		{
			"Paramètre": "Considérez l'heure dans le filtre",
			"Valeur": {
				"Avant exécution": true,
				"Après exécution": true
			}
		}
	],
	"Paramètres du processus": [
		{
			"Paramètre": "Candidat",
			"Valeur": {
				"Avant exécution": "00000000-0000-0000-0000-000000000000",
				"Après exécution": "00000000-0000-0000-0000-000000000000"
			}
		},
		{
			"Paramètre": "ContactId",
			"Valeur": {
				"Avant exécution": "42a4317d-1712-41b2-994c-11b6fc64b199",
				"Après exécution": "42a4317d-1712-41b2-994c-11b6fc64b199"
			}
		},
		{
			"Paramètre": "ContactStr",
			"Valeur": {
				"Avant exécution": "42a4317d-1712-41b2-994c-11b6fc64b199",
				"Après exécution": "42a4317d-1712-41b2-994c-11b6fc64b199"
			}
		}
	]
}

 

Create Candidat Trace :

{
	"Paramètres de l'élément": [
		{
			"Paramètre": "Objet",
			"Valeur": {
				"Avant exécution": "106e3cde-5534-4cac-a87d-37c23359b9ef",
				"Après exécution": "106e3cde-5534-4cac-a87d-37c23359b9ef"
			}
		},
		{
			"Paramètre": "Filtres des sources de données",
			"Valeur": {
				"Avant exécution": "",
				"Après exécution": ""
			}
		},
		{
			"Paramètre": "Module d'ajout d'enregistrement",
			"Valeur": {
				"Avant exécution": "0",
				"Après exécution": "0"
			}
		},
		{
			"Paramètre": "Objet",
			"Valeur": {
				"Avant exécution": "00000000-0000-0000-0000-000000000000",
				"Après exécution": "00000000-0000-0000-0000-000000000000"
			}
		},
		{
			"Paramètre": "Définir la valeur des colonnes",
			"Valeur": {
				"Avant exécution": {
					"Values": {
						"b8993e82-0840-410a-82a7-386a3295755c": "00000000-0000-0000-0000-000000000000"
					},
					"FetchMetaPathes": {}
				},
				"Après exécution": {
					"Values": {
						"b8993e82-0840-410a-82a7-386a3295755c": "00000000-0000-0000-0000-000000000000"
					},
					"FetchMetaPathes": {}
				}
			}
		},
		{
			"Paramètre": "L'Id de l'enregistrement a été créé",
			"Valeur": {
				"Avant exécution": "00000000-0000-0000-0000-000000000000",
				"Après exécution": "3bb08bf6-abc8-4385-9b99-957c2aaa6d8c"
			}
		},
		{
			"Paramètre": "Considérez l'heure dans le filtre",
			"Valeur": {
				"Avant exécution": true,
				"Après exécution": true
			}
		}
	],
	"Paramètres du processus": [
		{
			"Paramètre": "Candidat",
			"Valeur": {
				"Avant exécution": "00000000-0000-0000-0000-000000000000",
				"Après exécution": "00000000-0000-0000-0000-000000000000"
			}
		},
		{
			"Paramètre": "ContactId",
			"Valeur": {
				"Avant exécution": "42a4317d-1712-41b2-994c-11b6fc64b199",
				"Après exécution": "42a4317d-1712-41b2-994c-11b6fc64b199"
			}
		},
		{
			"Paramètre": "ContactStr",
			"Valeur": {
				"Avant exécution": "42a4317d-1712-41b2-994c-11b6fc64b199",
				"Après exécution": "42a4317d-1712-41b2-994c-11b6fc64b199"
			}
		}
	]
}

 

As you can see, the ContactStr parameter was successfully parsed into a Guid object.



I have no errors and, according to the trace, my Candidate object was created successfully.



When I click on the button, it gives me the contact ID in a string, that's why I had to convert it into a Guid.



Best regards,



Julien

Show all comments

Hi community,

 

I'd like to add button on a active row in a data grid :

 

For that I found posts on the community that explain how to achieve that :

https://community.creatio.com/questions/alteradd-row-buttons-newly-crea…

https://community.creatio.com/questions/add-button-row-section

https://community.creatio.com/articles/add-button-active-row-detail

https://community.creatio.com/questions/override-section-open-record-bu…

 

I tried to follow them. Here is my code :

define("ContactSectionV2", ["ProcessModuleUtilities"], function(ProcessModuleUtilities) {
	return {
		entitySchemaName: "Contact",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "BtnRowCreateCandidature",
				"parentName": "DataGrid",
				"propertyName": "activeRowActions",
				"values": {
					"className": "Terrasoft.Button",
					"style": Terrasoft.controls.ButtonEnums.style.BLUE,
					"tag": "DataGridCandidature",
					"caption": { "bindTo": "Resources.Strings.BtnRowCreateCandidatureCaption" },
					"hint": { "bindTo": "Resources.Strings.BtnCreateCandidatureHint" },
				}
			}
		]/**SCHEMA_DIFF*/,
		methods: {
			onActiveRowAction: function(buttonTag, primaryColumnValue){
				this.callParent(arguments);
				switch(buttonTag){
					case "DataGridCandidature":
						this.myCustomFunction(primaryColumnValue);
						break;
				}
			},
			myCustomFunction: function(primaryColumnValue){
				this.showInformationDialog(primaryColumnValue);
			},
		}
	};
});

But for some reasons, the newly created button never showed up.

Is this the right way to create a button in a datagrid row ?

 

Best regards,

 

Julien Gunther

Like 1

Like

2 comments
Best reply

Hello Julien,

 

I've used the following approach:

define("ContactSectionV2", ["ContactSectionV2Resources"], function(resources) {
	return {
		entitySchemaName: "Contact",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
        		"operation": "insert",
        		"name": "DataGridActiveRowTestButtonAdding",
				"parentName": "DataGrid",
				"propertyName": "activeRowActions",
        		"values": {
                                "className": "Terrasoft.Button",
                                "style":this.Terrasoft.controls.ButtonEnums.style.BLUE,
                                "markerValue": "TestButtonAddingAction",
                                "tag": "call",
                                "caption": resources.localizableStrings.TestButtonAddingRowButtonCaption
        		}
			}
		]/**SCHEMA_DIFF*/,
		methods: {
			onActiveRowAction: function(buttonTag, primaryColumnValue) {
				switch (buttonTag) {
					case "call":
						this.testClick(primaryColumnValue);
						break;
					default:
						this.callParent(arguments);
						break;
				}
			},
			testClick: function(recordId) {
				this.console.log("The button is clicked!");
			}
		}
	};
});

Using localizable resources of the schema. It seems that in your code the module doesn't load the localizable string for "BtnRowCreateCandidatureCaption" key. In my code the string value was loaded and the button is present in active row:

Best regards,

Oscar

Hello Julien,

 

I've used the following approach:

define("ContactSectionV2", ["ContactSectionV2Resources"], function(resources) {
	return {
		entitySchemaName: "Contact",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
        		"operation": "insert",
        		"name": "DataGridActiveRowTestButtonAdding",
				"parentName": "DataGrid",
				"propertyName": "activeRowActions",
        		"values": {
                                "className": "Terrasoft.Button",
                                "style":this.Terrasoft.controls.ButtonEnums.style.BLUE,
                                "markerValue": "TestButtonAddingAction",
                                "tag": "call",
                                "caption": resources.localizableStrings.TestButtonAddingRowButtonCaption
        		}
			}
		]/**SCHEMA_DIFF*/,
		methods: {
			onActiveRowAction: function(buttonTag, primaryColumnValue) {
				switch (buttonTag) {
					case "call":
						this.testClick(primaryColumnValue);
						break;
					default:
						this.callParent(arguments);
						break;
				}
			},
			testClick: function(recordId) {
				this.console.log("The button is clicked!");
			}
		}
	};
});

Using localizable resources of the schema. It seems that in your code the module doesn't load the localizable string for "BtnRowCreateCandidatureCaption" key. In my code the string value was loaded and the button is present in active row:

Best regards,

Oscar

Oscar Dylan,

 Thank you very much it works !

Show all comments

Hi folks, 

 

Does Creatio have the ability to link email templates to the web-hosted version of them? The use case is to help recipients who either can't view HTML emails, or have image downloading switched off, to view the full version of an email.

Like 2

Like

9 comments

Hello Kavian,

 

Sorry for re-asking, but could you please provide more examples or re-phrase the request?

 

Thank you in advance.

 

Best regards,

Roman

Hi Roman,

 

This feature is a small piece of hyperlinked text usually found in the header of an email to offer the recipient an online version of the email, for reasons such as trouble viewing HTML messages or have image loading turned off.

 

 

Kavian Abhari,

 

Thank you for specifying!

 

The only solution on how to make a link in the template is to input that link to the text.

 

You can find more information on it here:

https://academy.creatio.com/docs/user/marketing_tools/email_marketing/e…

 

Hope this helps!

 

Thank you!

 

Danyil

 

 

Thanks Danyil,

 

actually what we are looking for is not how to add link to the email body, and more where that link leads us.

The question is, if Creatio has the ability to store the web-hosted version of the emails? The use case is to help recipients who either can't view HTML emails, so they can click on "View in browser" link and view the full version of an email.

 

Thanks,

Dear Kavian,

 

Thank you for your question!

 

We have checked this option with our RnD and they have advised us that currently there is no such option in the system as Creatio has massive mailings with millions of audiences and it is not possible to store a letter template for each recipient.

 

Hope this clarifies!

 

Danyil

 

I'll try to explain. We have the same question. The question is not to store each email instance sent, because they are the same per email template. The idea is to automatically upload the template to name_of_company.creatio.com/bulk_emails/bulk1.html and embed the link into the email automatically. Like "unsubscribe" link is provided automatically. Because currently, we do it manually to the site of our company. And that's annoying. Someone in our company starts proposing to change the email provider to something like Klavio. Not very pleasant. It's not something exotic to make. Should I start the new "Idea" thread or you will share the proposal to RnD?

Yuriy Konstantinov,

 

Hello!

Sorry for a delayed reply! Unfortunately, as of now,  there is no such basic functionality. 

For this functionality Creatio should know the link to the email itself while sending it, however, Creatio generates the content and sending it to the email provider, who saves the email and then perform the delivery. This way email is not being saved in a system, Creatio only saves some kind of log (activity) and doesn't know the link to the email itself while generating the content.

But if you are using ElasticEmail provider, there is a way to use "View in browser/View online" link in the email body to form the link to a web version. In order to do so, the <a href="{view}">View On Web</a> construction should be added to the HTML-code of the text element. 

Let me just mention, that this option works only for ElasticEmail provider as it's their macros. 

Also, we have already registered the corresponding query 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.

Thank you!

Best regards,

Anastasiia

 

 

 

Anastasiia Zhuravel,

Hi Anastasiia,

Does the html page generated by ElasticSearch have an expiration date?

Is it possible to know what "macros" like {view} ElasticEmail provides ?

Stefano Bassoli,

Hi

I've found this article on ElasticEmail How to use merge fields | Elastic Email Help Center

Show all comments

We have several processes using the popup element addon (https://marketplace.creatio.com/template/popup-element-business-processes).  The popup does not consistently display.  I can see the process runs correctly and shows the popup should display but it does not actually display in the UI in a Creatio hosted 7.18.4 environment.

 

In comparison, on a locally hosted instance of 7.18.2.1236, the popup does consistently display.

 

Please advise how we can get popups to consistently display.

Like 3

Like

9 comments

Hello Melanie,

 

Please keep the following best practices in mind when working with the popup element:

 

1. We recommend using the element after the elements of the User actions block. For example, Perform task, Pre-configured page, etc.

2. Avoid using several popup elements in a row. In this case, the user will see only the last element.

 

If you are already following the best practices, please send us a screenshot of the relevant popup element in the business process.

Hi Ivan,

We are following the best practices.  Here is a screen shot of the successfully executed process (though popup did not display), which is called when a user attempts to complete an activity.  We need to validate if information is filled out, and if not, display a popup of the missing information.

Again, this does consistently display in a locally hosted environment but does not consistently display on a cloud hosted environment.

 

Hello,

 

I am also having this problem with this popup element, same situation, element does not consistently display. It is also situation that it display locally but not in cloud environment.

Did you find solution for this problem?

 

Thank you in advance!

 

Best regards,

Marijana

 

 

Hello again,

 

Just found out solution for my problem. The problem was with the WebSockets ( there were not working on this cloud system). When I tried on other system it is working good. 

I am trying to utilize this plugin and am having the same problem. The process log shows that it run, but nothing appears on the front end for the user. We are using a cloud-based system. 

Has anyone found a solution for this yet?  We are still experiencing inconsistent popups in a cloud environment.

Still looking for a solution on this.  Please advise.

This is happening again for us.  Any updates yet?

Hi to all,

 

I recommend checking your browser extensions. Some of them, ad blockers in particular, could block pop-up windows in Creatio

Show all comments

Hi community,

 

I try to trigger a business process from a custom button. I in the post that I need the ProcessModuleUtilities to achieve that. Here is my code :

 

define("MTF_Candidat1Page", ["MultiChoiceMixin", "ProcessModuleUtilities"], function(ProcessModuleUtilities) { 
	return {
		entitySchemaName: "MTF_Candidat",
		...
		methods: {
			OnClickCreateInterview: function(){
				var args = {
					sysProcessName: "MTFtestbtn" // this is the name of my business process. It simply send me a mail for now.
				};
				ProcessModuleUtilities.executeProcess(args);
 
				this.showInformationDialog("Busniess process triggered"); // just to show something to let me know the function triggered properly the busniess process
			},
		},
		...
		diff: /**SCHEMA_DIFF*/[
				...
				{
				"operation": "insert",
				"name": "BtnCreateInterview",
				"values": {
					"layout": {
						"colSpan": 24,
						"rowSpan": 1,
						"column": 0,
						"row": 7
					},
					"itemType": 5,
					"classes": {
						"textClass": [
							"actions-button-margin-right"
						],
						"wrapperClass": [
							"actions-button-margin-right"
						]
					},
					"click": {
						"bindTo": "OnClickCreateInterview"
					},
					"tag": "OnClickCreateInterview",
					"caption": {
						"bindTo": "Resources.Strings.BtnCreateInterviewCaption"
					},
					"hint": {
						"bindTo": "Resources.Strings.BtnCreateInterviewHint"
					}
				},
				"parentName": "ProfileContainer",
				"propertyName": "items",
				"index": 7
			}
			...
		]/**SCHEMA_DIFF*/
}

 

Now when I click on the button on my candidate page I have this error :

 

"Uncaught TypeError: ProcessModuleUtilities is undefined"

 

Do you have other docs to trigger business processes on custom button press ?

 

Best regards,

 

Julien

Like 0

Like

2 comments
Best reply

Hi Julien,

 

Could you change your schema definition as the following (swap "MultiChoiceMixin" and "ProcessModuleUtilities")?

define("MTF_Candidat1Page", ["ProcessModuleUtilities", "MultiChoiceMixin"], function(ProcessModuleUtilities) 

regards,

 

Cheng Gong

Hi Julien,

 

Could you change your schema definition as the following (swap "MultiChoiceMixin" and "ProcessModuleUtilities")?

define("MTF_Candidat1Page", ["ProcessModuleUtilities", "MultiChoiceMixin"], function(ProcessModuleUtilities) 

regards,

 

Cheng Gong

Cheng Gong,

 It works, thank you !

Show all comments