Hi,

during the creation of a business process, and adding a script task process element (C# code) to it to link a record to an activity section, causes the business process to run several times longer than without C# code.  How can I speed up this process?

I need to speed up the process of sending a notification to the email.  Is there any way to see what slows down this process?

is used Servis enterprise 7.16.3.1473, Interaction with mail by exchange listener.

var EmailSender = new Terrasoft.Configuration.EmailWithMacrosManager(userConnection);
EmailSender.SendEmailFromTo(caseId, templateId, sender0, ContactMail);
return true;

Thank you, 

Elena

Like 0

Like

3 comments

Hi Elena,

 

Most time (up to 10 seconds) will be taken by the actual email sending. This can be only optimized by making the template weight lighter. Additionally you can try running the process in the background (start element should have the enabled "Run process in the background" checkbox) so it couldn't load the page when it's executed.

Oscar Dylan,

The template uses minimal text and macros, there are no images. Runs in the background. It was tested and revealed that when using a process element “send email”, the business process works much faster, but it is not tied to the details of the email. Can I somehow view why it takes so long or view the execution trace?

Gabrielyan Elena Vageevna,

 

If you need to log how much time did the script-task that calls the method takes time to execute then you can display the "Duration, seconds" column in the "Process elements" detail of the process log record. If you need to track the code lines execution time than you need to add additional lines of code between each original code line that will track the current time and log it somewhere (for example using DateTime.Now.ToString("h:mm:ss tt") and logging the result to a string parameter that can be then viewed or in the process trace or can be displayed in the autogenerated page).

Show all comments

Hi Community, 

 

How can I change the LinkedIn field into Hyper instead of plain text? The web link changed to hyperlink but not social media links as they remain plain text.

 

 

As admin I can see any Linkedin link as hyperlink but for others its plain text. I am hopping its a quick fix just adding All-Employee Role to specific object level permission or something similar.

 

Any help is appreciated!

Like 0

Like

1 comments

Hi Irfan,

 

Thank you for your question!

 

Here are the steps you have to perform to switch on clickability of the LinkedIn URL:



1. Go to Lookups

Image.png

2. Search for Communication option types

Image.png


3. Look here for the LinkedIn item and open it



Image.png

4. Click on + and chose Web type from the list.

Image.png



Also, we recommend you delete the type Social network from here because for now LinkedIn can only be recognized as a web link.

 

Best regards,

Anastasiia

Show all comments

Hi All,

I have created a new printable for monthly renewals.

I need to add due date(7 days from the issue date) just next to the issue data, Please find the screenshot below.

I don't need this due date to be stored in DB or Creatio UI. I just need it in the invoice copy.

Please let me know how to get this done.

Like 0

Like

2 comments

Hello, Selva!

 

Unfortunately,  it is not possible to implement your business task by means of basic tools. 

However, you can create your own custom macro that will meet your business goals.

 

More details about the implementation of custom macros you can find on the Academy at the link:

https://academy.creatio.com/docs/node/1696

 

We have created a case for our development team on this issue so that they will implement this functionality in future releases.

 

Best regards,

Kate

Thank you Kate, 

I will try this option.

 

thanks,

Selva

 

Show all comments

I have setup new printable in the lookups. Created all the files and format.

How to see the new template in the Invoice -> VIEW section. The one I created newly is not listed here.

 

 

Like 0

Like

2 comments

Hello Selva,

 

You need to select the following 2 booleans true as shown in below image, based on whether you want to see in section or page or at both places:

 

 

Thanks,

Sourav

Sourav Kumar Samal,

Thank you very much,  I will try the same

 

Thanks,

Selva

Show all comments
Question

Hi All,

There is a business process created to send the renewal emails.

The process failed in the last step due to email account issue.

 

We fixed and trying to run the process (just the last step ) - please find the screenshot.

When I select the step and click on 'Run item' , there is no progress. Not doing anything actually.

 

Is this due to permission issue ? I have system admin access.

Do I need to login as 'supervisor' , the process owner is supervisor.

 

thanks,

Selva

 

Like 1

Like

2 comments

Hello Selva,



This issue looks like the element is restarted with the same error. If you change the business process,  the error will be left the same, because the version of the running business process will be left the same too. You have to create a new process instance in order to use the corrected version of the process.

There may also be a problem with the status of the business process, you can't run elements from a canceled process.

Thanks,

There is no change in the business process. The issue was outside of the process which is fixed now.

All we need is, we just need to execute the 'send email' step alone.

 

 

Show all comments

The monthly renewal emails not sent from Creatio CRM.

The 'Email' step in the process library fails with the below error.

 

Microsoft.Exchange.WebServices.Data.ServiceRequestException: The request failed. The remote server returned an error: (401) Unauthorized. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.

 

Code used in the business process :

---------------------------------------------------

var invoiceId = Get("CreatedInvoiceId");

var userConnection = Get("UserConnection");

//Terrasoft.Configuration.AimCreateMonthlyInvoiceJob.SendEmail(context.UserConnection, invId);

Terrasoft.Configuration.AimCreateMonthlyInvoiceJob.SendEmail(userConnection, invoiceId);

return true;

Like 0

Like

3 comments

Hello,

 

This error means that the mailbox rejected your login and password, which are being sent during adding the email.

To find the reason for this issue you need to contact your mailbox server administrator with the exact date and time of the error.

 

Thank you.

 

Kind regards,

Kate

Thank you,

We fixed the login password issue, and trying to retrigger the 'send email' step.

When we click on 'Run item' there is nothing happening. 

 

Any idea on this ?

 

 

Hello,

 

We can see that you have posted a similar question here: https://community.creatio.com/questions/unable-run-process

Further communications and a possible solution will be posted there.

 

Thank you.

 

Kind regards,

Kate

Show all comments

We have created two new string fields and converted into hyperlink fields to display. (updated the source code)

When we enter the link it works fine. But, when we try to delete its not getting removed.

What I am trying is -> I select the text/hyperlink and press delete, then when I click outside , it appears again.

 

If I save and re-open it, it actually deleted.

 

 

Like 0

Like

7 comments

Can you share what the code looks like that you added to make it a hyperlink? It's hard to say what is wrong without seeing that.

Ryan

Ryan Farley,

Thanks for your reply,

Please find the code below.

 

    {

                "operation": "insert",

                "name": "ReferralForm",

                "values": {

                    "showValueAsLink": true,

                    "controlConfig": {

                        "enabled": true,

                        "href": {

                            "bindTo": "getReferralFormLink"

                        },

                        "linkclick": {

                            "bindTo": "onExternalLinkClick"

                        }

                    },

                    "layout": {

                        "colSpan": 24,

                        "rowSpan": 1,

                        "column": 0,

                        "row": 0,

                        "layoutName": "Tab0fdbdf91TabLabelGridLayout149dcd0a"

                    },

                    "enabled": true,

                    "bindTo": "ReferralForm"

                },

                "parentName": "Tab0fdbdf91TabLabelGridLayout149dcd0a",

                "propertyName": "items",

                "index": 0



            },

 

{

                "operation": "insert",

                "name": "ValueAddedAssessmentForm",

                "values": {

                    "showValueAsLink": true,

                    "controlConfig": {

                        "enabled": true,

                        "href": {

                            "bindTo": "getValueAddedAssessmentFormLink"

                        },

                        "linkclick": {

                            "bindTo": "onExternalLinkClick"

                        }

                    },

                    "layout": {

                        "colSpan": 24,

                        "rowSpan": 1,

                        "column": 0,

                        "row": 1,

                        "layoutName": "Tab0fdbdf91TabLabelGridLayout149dcd0a"

                    },

                    "bindTo": "ValueAddedAssessmentForm",

                    "enabled": true

                },

                "parentName": "Tab0fdbdf91TabLabelGridLayout149dcd0a",

                "propertyName": "items",

                "index": 1

            },

Selva,

Can you post the code to the getReferralFormLink and the onExternalLinkClick functions?

Ryan Farley,

methods: {

            

            getReferralFormLink: function() {

        return this.getLink(this.get("ReferralForm"));

    },

    

       

    onExternalLinkClick: function() {

        return;

    },

    getLink: function(value) {

        if (Terrasoft.isUrl(value)) {

            return {

                url: value,

                caption: value

            };

        }

    }

       

    

            

        },

Actually I have one more field with the name 'ValueAddedAssessmentForm'

so I have updated the functions as below.

 

 

        methods: {

            

            getReferralFormLink: function() {

        return this.getLink(this.get("ReferralForm"));

    },

    

    getValueAddedAssessmentFormLink: function() {

        return this.getLink(this.get("ValueAddedAssessmentForm"));

    },

    

    onExternalLinkClick: function() {

        return;

    },

    getLink: function(value) {

        if (Terrasoft.isUrl(value)) {

            return {

                url: value,

                caption: value

            };

        }

    }

     

    

            

        },

Selva,

Try changing the href part in the diff from this:

"href": {
    "bindTo": "getValueAddedAssessmentFormLink"
}

to this

"href": {
    "bindTo": "ReferralForm",
    "bindConfig": { "converter": "getLink" }
}

That should hopefully solve the issue. 

 

Secondly, so the links open when clicked, add this to the onExternalLinkClick function:

onExternalLinkClick: function(url) {
    var link = document.createElement("a");
    link.href = url;
    link.target = "_blank";
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
    return false;
}

Ryan

Ryan Farley,

Thanks for your support,

I tried the given code, somehow it didn't work

 

Here is the complete code for the two hyperlink fields.

 

            {

                "operation": "insert",

                "name": "ReferralForm",

                "values": {

                    "showValueAsLink": true,

                    "controlConfig": {

                        "enabled": true,

                        "href": {

                            "bindTo": "ReferralForm",

                            "bindConfig": {

                                "converter": "getLink"

                            }

                        },

                        "linkclick": {

                            "bindTo": "onExternalLinkClick"

                        }

                    },

                    "layout": {

                        "colSpan": 24,

                        "rowSpan": 1,

                        "column": 0,

                        "row": 0,

                        "layoutName": "Tab0fdbdf91TabLabelGridLayout149dcd0a"

                    },

                    "enabled": true,

                    "bindTo": "ReferralForm"

                },

                "parentName": "Tab0fdbdf91TabLabelGridLayout149dcd0a",

                "propertyName": "items",

                "index": 0

            },

 

            {

                "operation": "insert",

                "name": "ValueAddedAssessmentForm",

                "values": {

                    "showValueAsLink": true,

                    "controlConfig": {

                        "enabled": true,

                        "href": {

                            "bindTo": "ValueAddedAssessmentForm",

                            "bindConfig": {

                                "converter": "getLink"

                            }

                        },

                        "linkclick": {

                            "bindTo": "onExternalLinkClick"

                        }

                    },

                    "layout": {

                        "colSpan": 24,

                        "rowSpan": 1,

                        "column": 0,

                        "row": 1,

                        "layoutName": "Tab0fdbdf91TabLabelGridLayout149dcd0a"

                    },

                    "bindTo": "ValueAddedAssessmentForm",

                    "enabled": true

                },

                "parentName": "Tab0fdbdf91TabLabelGridLayout149dcd0a",

                "propertyName": "items",

                "index": 1

            },

 

 

 

--------------Methods-------------------

 

 

            getReferralFormLink: function() {

        return this.getLink(this.get("ReferralForm"));

    },

    

    getValueAddedAssessmentFormLink: function() {

        return this.getLink(this.get("ValueAddedAssessmentForm"));

    },

    

    onExternalLinkClick: function() {

        var link = document.createElement("a");

        link.href = url;

        link.target = "_blank";

        document.body.appendchild(link);

        link.click();

        document.body.removeChild(link);

        return false;

            },

    getLink: function(value) {

        if (Terrasoft.isUrl(value)) {

            return {

                url: value,

                caption: value

            };

        }

    }

 

Show all comments

Hello,

 

I am willing to add the attachments detail (available in Case page) to the Case Portal Page. I have created a replacing object on the BaseCase object and tried to add the following code to my client module: 

details: /**SCHEMA_DETAILS*/{
			"Files": {
				"schemaName": "FileDetailV2",
				"entitySchemaName": "CaseFile",
				"filter": {
					"detailColumn": "Case",
					"masterColumn": "Id"
				}
			}
		}/**SCHEMA_DETAILS*/,

and then added the following code on the diff:

diff: /**SCHEMA_DIFF*/[
{
				"operation": "insert",
				"name": "NotesFilesTab",
				"values": {
					"items": [],
					"caption": {
						"bindTo": "Resources.Strings.NotesFilesTabCaption"
					},
					"order": 2
				},
				"parentName": "Tabs",
				"propertyName": "tabs",
				"index": 3
			},
			{
				"operation": "insert",
				"name": "Files",
				"values": {
					"itemType": 2
				},
				"parentName": "NotesFilesTab",
				"propertyName": "items",
				"index": 0
			},
			{
				"operation": "insert",
				"name": "NotesControlGroup",
				"values": {
					"itemType": 15,
					"items": [],
					"caption": {
						"bindTo": "Resources.Strings.NotesGroupCaption"
					}
				},
				"parentName": "NotesFilesTab",
				"propertyName": "items",
				"index": 1
			},
			{
				"operation": "insert",
				"name": "Notes",
				"values": {
					"contentType": 4,
					"layout": {
						"column": 0,
						"row": 1,
						"colSpan": 24
					},
					"labelConfig": {
						"visible": false
					},
					"controlConfig": {
						"imageLoaded": {
							"bindTo": "insertImagesToNotes"
						},
						"images": {
							"bindTo": "NotesImagesCollection"
						}
					}
				},
				"parentName": "NotesControlGroup",
				"propertyName": "items",
				"index": 0
			},
			{
				"operation": "remove",
				"name": "Header"
			}
		]/**SCHEMA_DIFF*/,

but nothing is visible on the portal Case page.

 

Can you please help ?

 

Thank you

Like 0

Like

1 comments
Best reply

Hello,

 

You should add the same code to the replaced PortalCasePage module (not to the BaseCase object) and also don't forget to add localizable strings to the module.

 

Best regards,

Oscar

Hello,

 

You should add the same code to the replaced PortalCasePage module (not to the BaseCase object) and also don't forget to add localizable strings to the module.

 

Best regards,

Oscar

Show all comments

Hello,

We use 'Data binding tool for Creatio' to bind lookups and other data to their 'data package'.

And when we bind data, the tool offers to choose one of packages. By unknown reason there are also 3rd party packages offered. And it is possible accidentally to bind data to them and not possible to delete from such packages after.

What is the filtration condition to display/hide packages in this tool?

 

Thank you!

Like 0

Like

0 comments
Show all comments

Hello,

Maybe someone can give a solution or a hint how to resolve this situation.

We have several processes with starting signal 'Lead added'. Everything works fine when Lead is added manualy. But when Lead comes from Landing page processes are not started and we see following error in BusinessProcess.Log:

Error while running process [ebda75d0-3e3b-4cb9-ac04-2cc30f61d512] for Lead (Id: [071ded65-fe59-4641-b265-2f04c733b509])

System.InvalidOperationException: Failed to get the context for the background operation. For services without authorization it is necessary to call Terrasoft.Web.Common.SessionHelper.SpecifyWebOperationIdentity.

   at Terrasoft.Core.ServiceBus.BusUtils.CreateUserContext(String userName, String sessionId, Guid externalAccessId)

We have tried several solutions:

1. Disabled CSRF protection in web.confing

    

    and even

    

    

    This didn't help

2. Modified starting signal, setting 'Run following elements in the background'. This gave some results, but the process haven't got values from the Lead, so we have tried to add timer. But as there can be a lot of such processes, timer has crashed regulary, so processes were stayed in Running status forever. That's why we have refused to use timer.

3. Than we have created process in the Lead object on message LeadInserted calling usual Process with Lead.Id parameter. This actualy works on our environment, but still raise error 'Failed to get the context for the background operation' on Customer's environments.

So, there is probably some differences in configuration.

Do you have any ideas what this can be? Or any ideas for more workaround solutions?

Thank you!

Like 0

Like

3 comments

Hello,

 

can you please clarify which version of the site do you use as it may affect the process?

 

Also, please, check if the "Run in background" checkbox is on. If it is, please disable it so the process won't run in the background. After that, you can try performing the action again and notify us about the result.

Thanks.

 

Kind regards,

Gleb.

Gleb,

Thank you for your replay.

 

1) Our client uses version 7.16.3 now. We have tested this process on version 7.18.5 (but only on our environment) - it works correctly. Also we have similar process on 7.13.2 - it also works correctly. But I am not sure if environment configurations are the same.

Besides, it would be nice to resolve this issue without upgrade now.

 

2) We've set 'Run in background' to off. In that case process starts correctly, but there is another problem - some values of Lead are not available in the process (e.g. default values from Landing page are not set yet). So, this solution doesn't fit our case. (I've described this in p.2 with timer)

 

Vladimir Sokolov,

 

thank you for the additional information.

 

Unfortunately, there might be quite a lot of reasons for the missing values in Lead (e.g. access rights, configuration, etc).

 

We would recommend you create a separate case for the support team so that we will be able to reproduce the error on the instance.

 

Also, it is recommended to update to the newest version to avoid errors that were fixed in the latest updates.

 

Regards,

Gleb.

Show all comments