Hello,

 

I am trying to enable a web service for a portal user. When I try to trigger the service however, I receive a 500 Error. 

When I trigger the service using an internal user account, the service triggers with no issues. My test portal user however receives the error. To me that says portal users are unable to trigger a batch query but I've been unable to find anything that says it for sure. Is there a setting I need to adjust?

Like 0

Like

6 comments

Hello,



Please make sure that portal users have access to your web service.



More details on the academy website:



https://academy.creatio.com/docs/developer/application_components/porta…



https://academy.creatio.com/docs/developer/application_components/porta…

Cherednichenko Nikita,

I have followed the provided academy pages. Though when trying to compile, I receive the errors.

 

" The type or namespace name 'SspServiceAccess' could not be found (are you missing a using directive or an assembly reference?)"

 

"The type or namespace name 'SspServiceAccessAttribute' could not be found (are you missing a using directive or an assembly reference?)"

Try to generate source code for all schemas and run compilation again.

After generating source code for all schemas and compiling again, I am still receiving the same errors. Is there a namespace I am missing?

namespace Terrasoft.Configuration.KeenGlbInterviewService
{
	using System;
	using System.IO;
	using System.Collections.Specialized;
	using System.Globalization;
	using System.Runtime;
	using System.Runtime.Serialization;
	using System.ServiceModel;
	using System.ServiceModel.Web;
	using System.ServiceModel.Activation;
	using System.Threading;
	using System.Threading.Tasks;
	using System.Web;
	using Terrasoft.Core;
	using Terrasoft.Core.Factories;
	using Terrasoft.Configuration.GlbInterviewService;
	using Terrasoft.Web.Common;
    using Terrasoft.Web.Common.ServiceRouting;
 
	#region Class: KeenGlbInterviewService
 
	[DefaultServiceRoute] 
	[SspServiceRoute]
	[SspServiceAccess(nameof(BatchQuery))]
	[ServiceContract]
	[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
	public class KeenGlbInterviewService : BaseService
	{
 
		#region Methods: Public
		private static readonly GlbInterviewService _baseService = new GlbInterviewService();
 
		[OperationContract]
		[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
		public InterviewServiceResponse Start(InterviewServiceRequest request)
		{
			return _baseService.Start(request); 
		}
 
		[OperationContract]
		[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
		public InterviewServiceResponse Complete(InterviewServiceRequest request)
		{
			return _baseService.Complete(request);
		}
 
		#endregion
 
	}
 
	#endregion
 }

 

Please see another community post:

https://community.creatio.com/questions/call-web-service



Perhaps there is an answer to your question.

Cherednichenko Nikita,

Thank you for the recommended page. However I have already looked through this page and it makes no mention of using SspServiceAccess which is the piece I'm having difficulty with.

Show all comments

Hello! In a business process, can I read the environment http address or the IP address from the server using READ DATA activity or is there any other way?

Like 0

Like

1 comments

We use System settings "SiteUrl", but you should set it manualy at every environment

Show all comments

We have cloned the Ext dev(with no internet access) from our internal dev env which is working, but now on external dev, i am not able to log in. 

Like 0

Like

2 comments

Hello Adil,

 

Please double-check all features that are enabled for the machine where IIS server is deployed (according to the Academy article here). Once done, please redeploy on-site application from scratch using clean binary files (which can be received from the support team at support@creatio.com).

It is as a must to use clean binary files (not those that can be provided by support in case you request database backup of some application to deploy it locally, but out-of-the-box files).

Also, please double-check the connection parameters to the database in connection. Since incorrect database connection parameters, the Strings config file can also lead to login issues.

And finally, please check if you haven't specified HTTPS as a redirect method for your application in IIS and if it was appropriately configured in the configuration files.

localhost cannot find ViewModule.aspx after login.

Show all comments

Is there any setting to avoid sending mails to persons outside the company (for example @yahoo.com) on the test environments? We want to avoid sending the test mails to wrong persons or to wrong email addresses.

Like 1

Like

1 comments

You need to create a replacing view module for EmailMessagePublisherPage and EmailPageV2 and add the following replacement of the checkSenderBeforeSend method in both schemas methods:

checkSenderBeforeSend: function() {
				var recipient = this.get("Recepient");
				var copyRecipient = this.get("CopyRecepient");
				var blindCopyRecipient = this.get("BlindCopyRecepient");
				var allRecipientsList = recipient + copyRecipient + blindCopyRecipient;
				var isYahooMailboxPresent = allRecipientsList.indexOf("yahoo.com") != -1;
				if (isYahooMailboxPresent) {
					this.showInformationDialog(this.get("Resources.Strings.YahooMailboxIsInTheRecipients"));
					return;
				}
				this.callParent(arguments);
			},

Additionally you need to create a localizable string in both replaced modules with the YahooMailboxIsInTheRecipients code and the value you need (this will be a popup notification that there is the yahoo.com domain mailbox in the list of email recipients). As a result such email won't be sent (page refresh is required once these changes are applied) and end users will see the popup. 

Show all comments

Hi all,

I am looking for a way to highlight js c# code in a rich text field.

Especially we want to use it in the knowledge base in creatio.

 

 

Is there a way to do this?

 

Regards,

Oliver

Like 0

Like

5 comments

Hi Oliver,

You can possibly do it and here is small instruction on how:

1) At first write an example of a code you want to highlight and do it manually using the options above the text. Save the result.

2) Get the value of this field from the database, it should look something like this:

 <div>hello there&nbsp;</div>  <div>&nbsp;</div>  <div>define(&quot;PrcAcceptanceCertificate777ab4cfSection&quot;, [], function() {<br /> &nbsp;&nbsp; &nbsp;return {<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;entitySchemaName: &quot;PrcAcceptanceCertificate&quot;,<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;methods: {}<br /> &nbsp;&nbsp; &nbsp;};<br /> });<br /> &nbsp;</div>  <div>&nbsp;</div> 

3) In this value take a look at how the system applies styles, you need to do it automatically in your method.

4) Write a method that will apply needed highlights to your text.

var text = this.get("Notes");

text.DoSomethingToModifyIt();

this.set("Notes", text);

Probably the hardest point would be finding the js code in the whole text because for the system there are no differences between a normal sentence or parts of the code. But if you manage to do it, then applying highlights is not that difficult to do.

 

Hi,

 

phew, that sounds like a lot of work.



I was thinking more of a js library that you can just use.

There must already be something integrated in creatio, because there is the source code area. Couldn't we just use that somehow?

 

Or a component in the editor like here in the community area

 

Regards,

Oliver

Oliver Herzog,

Slightly misunderstood what are you trying to do.

Can you please specify what source code area you are referring to?

Sorry for the misunderstanding!

 

I just want c#, js or html to be displayed "nicely" in the richtext editor. In the first post you can see how it should not look like.

 

No logical check or something like that.



Something like the code snippet function here in the community.

 

Oliver Herzog,

Unfortunately, right now highlighting the code lines like the "Code snippet" function is impossible on the system itself due to a base logic of RICH_TEXT fields.

I registered your suggestion for our R&D team, thank you for your idea.

Show all comments

Hi Team,

 

I am trying to read the current user's role by using the following custom logic.

GetCurrentUserRole: function(){
				var scope = this;
				var esq = Ext.create("Terrasoft.EntitySchemaQuery", {rootSchemaName: "SysUserInRole"});
				esq.addColumn("SysRole");
				esq.filters.add("UserFilter", Terrasoft.createColumnFilterWithParameter(
    				Terrasoft.ComparisonType.EQUAL, "SysUser", Terrasoft.SysValue.CURRENT_USER.value
				));
				esq.getEntityCollection(function(result) {
					if (!result.success || result.collection.getItems().length === 0) {return;}
					result.collection.each(function(item) { 
						var role = item.get("SysRole");
						var roleName = role.displayValue;
						var roleId = role.value;
						this.console.log("roleName: ",roleName);
					});
				}, this);
				return true;
			},

The above code works perfectly fine while logged in as a Normal user, but the same doesn't work for Portal users. For portal users, the "roleId" variable gives the correct Id but the variable "roleName" shows as a blank string("") because it is not reading the displayValue.

 

To address the issue, I have added "SysUserInRole" and "SysAdminUnit" in the lookup named "List of objects available for portal users". Also the Object permissions for both the tables are default. But still no luck in getting the desired output.

 

Request any suggestions or additional steps that I need to perform to get the displayValue of current user role while logged in as a portal user.

 

Regards,

Sourav Kumar Samal

Like 0

Like

1 comments
Best reply

Hi Sourav,

 

I was able to achieve the result needed by adding the "System administration object" schema to the "List of objects available for portal users" lookup and relogin under the portal user. Try the same approach on your side, it should work.

Hi Sourav,

 

I was able to achieve the result needed by adding the "System administration object" schema to the "List of objects available for portal users" lookup and relogin under the portal user. Try the same approach on your side, it should work.

Show all comments

Hello Community!

I'm testing a Soap Service in Creatio, but I'm getting the following error when trying to do the Test inside the webservice:

 

No Action header was found with namespace 'http://www.w3.org/2005/08/addressing' for the given message

 

Has anybody got this?  How can I "include" this in the service?

 

Thank you!

Like 0

Like

1 comments

Dear Cesar,

 

Thanks for your question.

 

To find the root cause of the issue, please contact us at support@creatio.com, and we'll help you out!

 

Best regards,

Anastasiia

Show all comments

Hello,

 

I am trying to build a business process that runs when a new SMS message is received. However, the Twilio SMS connector uses direct insert statements in the DlbSmsService source code object instead of the EntitySchema (ORM). Is there another way of firing off this business process without having to duplicate the entire SMS connector and changing out the method myself?

 

Thanks in advance.

Like 0

Like

2 comments
Best reply

Hi Josh,

 

I've not had an issue with processes triggering the signal on record added to DlbSmsMessage. I also saw the code in the DlbSmsService using the direct Insert, but that is for a record in DlbSmsConnectorMessageLog, not the SMS message itself. The code starts a background task to a class in the Files of the package (assuming). Have you not been able to trigger the start signal on record added SMS message? (That *is* working for me)

Ryan

Hi Josh,

 

I've not had an issue with processes triggering the signal on record added to DlbSmsMessage. I also saw the code in the DlbSmsService using the direct Insert, but that is for a record in DlbSmsConnectorMessageLog, not the SMS message itself. The code starts a background task to a class in the Files of the package (assuming). Have you not been able to trigger the start signal on record added SMS message? (That *is* working for me)

Ryan

You were absolutely right! Thank you very much for your help.

Show all comments

Is there a way to hide the button on a detail page when the parent page status has changed upon checking on initialize?

 

I tried to create an attribute that will be set to true when the parent status is 'order processing' and bind it to the visible property of the button but it doesn't work.

 

"className": "Terrasoft.ConfigurationGrid",
"generator": "ConfigurationGridGenerator.generatePartial",
"generateControlsConfig": {"bindTo": "generateActiveRowControlsConfig"},
"changeRow": {"bindTo": "changeRow"},
"unSelectRow": {"bindTo": "unSelectRow"},
"onGridClick": {"bindTo": "onGridClick"},
"activeRowActions": [
	{
		"className": "Terrasoft.Button",
		"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
		"tag": "save",
		"markerValue": "save",
		"imageConfig": {"bindTo": "Resources.Images.SaveIcon"},
		"visible": {"bindTo": "IsOrderProcessing"}
	},...
init: function() {
	debugger;
	this.callParent(arguments);
 
	var orderId = this.$MasterRecordId;
	var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
		rootSchemaName: "Order"
	});
 
	esq.addColumn("Status", "Status");
	esq.getEntity(orderId, function (result) {
		debugger;
		if (!result.success) {
			this.showInformationDialog("Data query error");
			return;
		}
		if (result.entity) {
			var orderStatus = result.entity.get("Status");
 
			if (orderStatus.value === "3f7523c5-f066-4bb6-bfd8-b2156fb42f13") { // Order Processing
				this.set("IsOrderProcessing", true);
			}
			else {
				this.set("IsOrderProcessing", false);
			}
		}
 
	}, this);
}

 

Like 0

Like

1 comments

Hello all,

 

I am trying to enable access for a portal user to trigger a service within Creatio. I'm following the steps as listed in this academy page but when I try to declare _baseService and publish, I receive an error saying that GlbInterviewService is "'GlbInterviewService' is a namespace but is used like a type"

 

namespace Terrasoft.Configuration.KeenGlbInterviewService
{
	using System;
	using System.IO;
	using System.Collections.Specialized;
	using System.Globalization;
	using System.Runtime;
	using System.Runtime.Serialization;
	using System.ServiceModel;
	using System.ServiceModel.Web;
	using System.ServiceModel.Activation;
	using System.Threading;
	using System.Threading.Tasks;
	using System.Web;
	using Terrasoft.Core;
	using Terrasoft.Core.Factories;
	using Terrasoft.Web.Common;
    using Terrasoft.Web.Common.ServiceRouting;
 
	#region Class: KeenGlbInterviewService
 
	[DefaultServiceRoute, SspServiceRoute]
	[ServiceContract]
	[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
	public class KeenGlbInterviewService : BaseService
	{
 
		#region Methods: Public
		private static readonly GlbInterviewService _baseService = new GlbInterviewService();
 
		[OperationContract]
		[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
		public InterviewServiceResponse Start(InterviewServiceRequest request)
		{
			return _baseService.Start(request); 
		}
 
		[OperationContract]
		[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
		public InterviewServiceResponse Complete(InterviewServiceRequest request)
		{
			return _baseService.Complete(request);
		}
 
		#endregion
 
	}
 
	#endregion
 
	#region DataContract
 
	[DataContract]
	public class InterviewServiceResponse : ConfigurationServiceResponse
	{
		[DataMember(Name = "isSuccess")]
		public bool IsSuccess {get; set;}
	}
 
	[DataContract]
	public class InterviewServiceRequest
	{
		[DataMember(Name = "interviewId")]
		public Guid InterviewId { get; set; }
	}
 
	#endregion
 
}

From what I can tell I've set everything up exactly as the article says but I still receive the error. Though they declare _baseService the same way. Any suggestions as to what I could be doing wrong?

Like 0

Like

3 comments
Best reply

Kevin Brady,

 

Ok, according to the error you should have the Terrasoft.Configuration.GlbInterviewService namespace in your system, but you try to create a new method that has the same name as the namespace (as well as your current class KeenGlbInterviewService has the same name as your namespace Terrasoft.Configuration.KeenGlbInterviewService). So theoretically adding "using Terrasoft.Configuration.GlbInterviewService" to your code should fix this issue, but still you need to rename either classes or namespaces since they shouldn't have the same name.

Hello Kevin,

 

I used the same exact code and created a source code in my local app and it didn't return error messages. Try recreating it and also check if the error message is returned from the source code you've shared.

Oleg Drobina,

I recreated the code and also tried pasting the above code directly back into Creatio to ensure that there weren't any changes that occurred in creating this post and I still received the error.

Kevin Brady,

 

Ok, according to the error you should have the Terrasoft.Configuration.GlbInterviewService namespace in your system, but you try to create a new method that has the same name as the namespace (as well as your current class KeenGlbInterviewService has the same name as your namespace Terrasoft.Configuration.KeenGlbInterviewService). So theoretically adding "using Terrasoft.Configuration.GlbInterviewService" to your code should fix this issue, but still you need to rename either classes or namespaces since they shouldn't have the same name.

Show all comments