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<Guid>("CreatedInvoiceId");
var userConnection = Get<UserConnection>("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
    <add key="DisableCsrfTokenValidationForPaths" value="/AuthService.svc/SsoLogin,AuthService.svc/Login,EntityDataService.svc/SysModuleReportCollection,GeneratedWebFormService.svc/SaveWebFormLeadData" />
    and even
    <add key="UseCsrfToken" value="false" />
    
    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

Hi community!

We have created replacing schema - VisaNotificationsSchema. In VisaNotificationsSchema we added code to hide "Reject" and "Change approver" buttons. We want to apply it for specified objects . To do it we need to retrieve object Id from Approval. Any suggestions how can we do it?

Best regards, 

Jana

 

Like 0

Like

1 comments

Hi Yana,

 

I just prepared working example so You can adopt it to Your case

 define("VisaNotificationsSchema", function() {
   return {
      methods: {
 
         getVisaActionButtonMenu: function() {
            var menu = this.get("VisaActionButtonMenu");
            if (!Ext.isEmpty(this.values) ? this.values.SchemaName=='Opportunity' : false) {
               menu.removeByIndex(1);
               menu.removeByIndex(1);
               menu.removeByIndex(1);
            }
            return menu;
         }
      },
      diff: [
         {
            "operation": "merge",
            "name": "VisaActionButton",
            "parentName": "NotificationItemTopContainer",
            "propertyName": "items",
            "values": {
               "itemType": Terrasoft.ViewItemType.BUTTON,
               "style": Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
               "classes": {"wrapperClass": ["visaActionButtonWrap-class"]},
               "caption": {"bindTo": "Resources.Strings.VisaActionButton"},
               "prepareMenu": {"bindTo": "selectNotificationItemOnActionButtonClick"},
               "menu": {
                  "items": {"bindTo": "getVisaActionButtonMenu"}
               }
            }
         }
      ]
   };
});

Best regards,

Marcin

Show all comments

Hi, community.

When you click an activity on dashboard within Case, you get mini page where you can complete the activity or cancel it. I need to remove the "cancel activity" button for specific type of case service.

I have found how to remove 'Cancel activity' from all  mini pages,

diff: 
/**SCHEMA_DIFF*/[ 
{ "operation": "remove", "name": "CopyButton" }, 
{ "operation": "remove", "name": "DeleteButton" }, 
{ "operation": "remove", "name": "OpenButton" } }

but need to add extra condition to apply it only for cases with specific Service.

 

Best regards,

Jana

 

Like 0

Like

2 comments

Hello Jana,

 

You can try replace ActivityMiniPage view model by this code. Inside canCancelActivity method You can implement Your logic.

 define("ActivityMiniPage", [], function() {
	return {
		entitySchemaName: "Activity",
		messages:{
				"GetColumnsValues": {
				mode: Terrasoft.MessageMode.PTP,
				direction: Terrasoft.MessageDirectionType.PUBLISH
			},
		},
		methods: {
			canCancelActivity: function() {
				var stage = this.sandbox.publish("GetColumnsValues", ["Stage"], [this.values.MiniPageSourceSandboxId]);
				return stage.Stage.displayValue=='Presentation'? true : false;
			},
		},
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "merge",
				"name": "CancelButton",
				"values": {
					"visible": {"bindTo": "canCancelActivity"},
					"tag": "Cancel"
				}
			}
		]/**SCHEMA_DIFF*/,
		rules: {}
	};
});

Best regards,

Marcin

Marcin Kott,

Thank you!

Show all comments

There is an item was purchased by this customer.

But when we search the accounts -> Solutions, The Asset Named 'The one they purchased' is not listed in the ‘Software-Licenses’ list.

Like 0

Like

1 comments

Hello Selva,

Please contact our support team (support@creatio.com). Please provide us with more details on the issue.

 

Best regards,

Bogdan

Show all comments

Hi community!

I enabled Approvals in the case section and added Approval in the business process. The problem is that counter is not increased in the notification panel but approval itself is shown in the "Approval notification".

Best regards, 

Jana

Like 0

Like

1 comments

Hello Jana,

 

As we replied in your case, the most likely reason for this behavior is a missing piece of code that marks your notifications as read.

 

Please check if you have MarkNotificationAsRead in your custom code in order for notifications to properly display.

 

You can copy the code from the NotificationService object in configuration files.

 

Thank you,

Artem.

Show all comments