Hello,

 

I have created custom sections on the dev environment, and installed the package to the production environment.

When i try to apply object permissions in production, only the existing sections appear and not my custom sections.

Noting that i can see my sections in the workplace management interface.

 

Has anyone encountered this problem before ?

 

Thank you

Maarouf

Like 0

Like

1 comments

Hello,

 

You need to check several options:

- Сheck that the object has no publishing errors, and compile the application. 

- Check the rights to the section/workspace and that the user has the right license.

- Check the mapping in the SysModul table. It is possible that the section was added to the same workplace twice and there are some duplicates at the database level, in this case, the section will simply not show up. You need to delete the entries at the database level and add the section again.

 

If the above tips do not help, it is better to contact technical support.

Show all comments

Good day.

After authorization I get 401 error with loading https://[url]/0/conf/content/_FileContentBootstraps.js

There is file in the same folder _FileContentDescriptors.js which is loading also with problem.

Do you have any ideas what problem it is?

File attachments
Like 0

Like

2 comments

Just a guess, maybe the AppPool identity user does not have permissions for the folder?

Ryan

Hello,



Try to remove the static content and generate it again.



To do this, delete the \Terrasoft.WebApp\conf\content folder and start compilation.

Show all comments

Dear colleagues

 

I'm trying the connector, but have several doubts, please anybody can help me?

 

  1. Sent (confirmed) SMS didn't updated on Creatio, Delivery status remains Queued forever. Is that a limitation of the integration or a limitation of the Trial Twilio account?
  2. Also didn't receive responses from sent SMS, if a user answer a received SMS on Creatio this SMS is not received
  3. When I sent an SMS from a process if I want to connect the SMS with another object than the contact I didn't find how to get the id of the sent SMS, so the User task the connector provides, hasn't provided the id of the sent SMS, the only id or lookup I can get is the contact id. How can I determine the id of the sent SMS?

Thanks in advance

 

Best regards

Like 1

Like

6 comments
Best reply

Hi Julio,

The responsible team released the updated version of the connector where issues 1 and 4 have been fixed. This package is already available on Creatio Marketplace. Please install the new package version and check the updates.

I have no news regarding the third issue. I will keep you updated.

sorry I forgot another problem I'm having. When I sent the same message from a process, 2 SMS were sent, if I send one from the contact, just send one. Some idea what could be wrong?

With this process 2 SMS are received

Hi Julio,

We have updates regarding your questions:

1. We reproduced the issue with Queued Delivery status and submitted it to the responsible developer.

2. We require more information to investigate the second issue. Please check whether the sent SMS appeared on the 'Messages log' tab in your Twilio account.

3. This feature is not supported in the user task. I have forwarded your feedback to the responsible developer.

4. We require more information to investigate the issue with 2 SMS sent by the process as well. Please make sure that only one instance of the business process was run in the Process log.

Thank you and we await your reply.

Irina Lazorenko,

Hi Irina,

 

Thanks for your reply, and please confirm us as soon questions 1 and 3 were resolved.

  • Regarding question 4, the sent SMS's were managed by an internal from the connector, the User Task called “Send SMS through Twilio”.
  • Additional info regarding what was happening here is:
    • When sent an SMS from a user process using this User Task, we receive the most of times the SMS twice, but always two SMS records are created on Creatio Section DlbSmsMessage
    • When sent an SMS from the communication panel of a contact it works OK, and just one SMS is delivered, so this symptom reinforces the suspect the culprit of the 2 sent SMS and created records, was the User task “Send SMS through Twilio
  •  Regarding question 2: We won't need to solve this "problem" for now because:
    • The client confirms that he will not need to receive SMS, only send.
    • The problem could be related with a numbering issue due to the Twilio provided phone number to send SMS. Current provided number is from the USA/Arizona, and we need to send SMS to Spanish numbers, so could be there some restriction to Spanish numbers to send/answer SMS to a foreign number…
    • When our customer needs to receive SMS, we will be back to determine where the problem is: The provided numeration, some Twilio restriction or whatever

 

Thanks again and best regards

 

Hi Julio,

The responsible team released the updated version of the connector where issues 1 and 4 have been fixed. This package is already available on Creatio Marketplace. Please install the new package version and check the updates.

I have no news regarding the third issue. I will keep you updated.

Irina Lazorenko,

Thanks Irina, we will check it right now

Show all comments

Hello,

 

I'm trying to install the "GlbOpenPopupWindowUserTask" package on a local machine which is installed on my client's server but it shows the error I attached.

Anyone, can help me understand why I can't install it?

 

Thank you!

 

Kind regards,

Andreia

File attachments
Like 0

Like

1 comments

Hi Andreia,

 

The log file contains no errors. Could you please check the application logs and specify the errors?

Show all comments

Hi,

I have installed the BPM'online word plugin and the tab appears in word application, but on connect the printable appears empty and the printable items don't appear, also any fake data in username and pwd are accepted 

Like 0

Like

1 comments

Hello Ali, 

 

Please contact us at support@creatio.com with a detailed description of the issue, as we'll need more details and what is more important access to your instance where the issue occurs in order to proceed with investigation and provide you with a solution. 

 

We'll be waiting for your email. 

Thank you in advance!



Best regards,

Anastasiia

Show all comments

Two issues re. using pre-configured pages.

 

I enabled debug mode using the browser console.  I then pressed Ctrl-F5 (cache reload) on an open process designer page, and tried to load the setup area of a pre-configured page element in the right hand panel.  It wouldn't load, the cursor just hung loading.  I then disabled debug mode and pressed Ctrl-F5 in the process designer window again.  The setup area of the pre-configured page element then loaded fine.

 

More problematic was the following while adding a button to run a process that opened a pre-configured page.  Using the debugger to step through a function that called the process with 'ProcessModuleUtilities', the configuration of the process call itself having a callback function for when the process had finished.  The debugger reported that the callback function was being called before the process had run and pre-configured page closed, not after.

define("ContactPageV2", ["ProcessModuleUtilities", "MaskHelper"], function(ProcessModuleUtilities, MaskHelper) {
	return {
		entitySchemaName: "Contact",
		attributes: {},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
			onProcessCallbackTestButtonClick: function () {
				debugger;
				const config = {
				    sysProcessName: "UsrPreconfiguredPage",
				    callback: function() {
				    	debugger;
				        Terrasoft.showInformation("The process has completed.");
				        MaskHelper.HideBodyMask();
				    },
				    scope: this
				};
				ProcessModuleUtilities.executeProcess(config);
			}
		},
		dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "ProcessCallbackTestButton",
				"values": {
					"itemType": 5,
					"caption": "Process Callback Test",
					"style": "blue",
					"click": {
						"bindTo": "onProcessCallbackTestButtonClick"
					}
				},
				"parentName": "LeftContainer",
				"propertyName": "items",
				"index": 7
			},
			{
				"operation": "merge",
				"name": "JobTabContainer",
				"values": {
					"order": 2
				}
			},
			{
				"operation": "merge",
				"name": "HistoryTab",
				"values": {
					"order": 5
				}
			},
			{
				"operation": "merge",
				"name": "NotesAndFilesTab",
				"values": {
					"order": 6
				}
			},
			{
				"operation": "merge",
				"name": "ESNTab",
				"values": {
					"order": 7
				}
			}
		]/**SCHEMA_DIFF*/
	};
});

 

Like 0

Like

3 comments

Text book technique to implement the second of these issues would probably be using messages as outlined How to Refresh a Page from a Process in Creatio (formerly bpm’online) | Customer FX.

Hello Gareth,

 

And have you received any error message when trying to open the pre-configured page in the "Debug" mode? This can point to the reason for the issue.

 

Best regards,

Oscar

Oscar Dylan,

I didn't think to look, apols...

core-base.js:711 
 
       user: *********/5ef2a5b8-b3de-4790-90fa-d2ae501290bf
 file: https://**********.creatio.com/0/core/hash/ng-core/src/polyfills-es5.js?hash=0076eaccde25431d9d2d73f8f01c29c5
 line: 1
 column: 16730
 message: Uncaught Terrasoft.ItemNotFoundException: Property useBackgroundMode is not defined in class Terrasoft.manager.ClientUnitSchemaParameter 
 date: Wed May 25 2022 16:10:27 GMT+0100 (British Summer Time)
 stack: undefined

This error appears when debug mode is both true and false.

 

The sequence to reproduce the (alleged) bug that I am using is, 1) Set debug mode true in the browser console with 'Terrasoft.SysSettings.postPersonalSysSettingsValue("IsDebug", true);', I am doing this  pressing F12 in a Contacts section record, 2) Return to the process designer and press Ctrl-F5 to reload the cache, 3) click on the pre-configured page element.

 

I am using Edge browser and have tested this in an incognito window.

Show all comments

Hi community,

is it possible to hide the register link in SSP login page ?

 

Like 1

Like

3 comments

+1 for this

Hello Stefano,

 

If user self-registration is not required, you can remove the “Register” button from the portal login page:



change the ShowPortalSelfRegistrationLink parameter in the Web.config file to:

 

<add key="UseStaticFileContent" value="false" />



Best regards,

Bogdan

Bogdan,

thank you bogdan

So, if my instance is on  cloud I have to open a case for the support 

Show all comments

I'm optimising a query attempting to use a filter with 'Terrasoft.ComparisonType.EXISTS', I'm guessing at the syntax and it isn't working.  If anyone could point out where I'm going wrong here:

...
const subFilter = Terrasoft.createFilterGroup();
subFilter.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "UsrRefundItem", true));
const esqSecondFilter = Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EXISTS, subFilter);
esq.filters.add("esqSecondFilter", esqSecondFilter);
...

Thanks,

 

Like 0

Like

8 comments

Hello Gareth,

 

Terrasoft.ComparisonType.EXISTS is not used in the client-side system logic anymore since it was replaced with the createExistsFilter function. So you need to use it instead of EXISTS comparison type.

 

Best regards,

Oscar

Oscar Dylan,

I have tried the following but it is returning more than one record:

const caseId = this.get("MasterRecordId");
const esq = this.Ext.create(Terrasoft.EntitySchemaQuery, {
	rootSchemaName: "UsrItemInOrder"
});
esq.addAggregationSchemaColumn("Id", Terrasoft.AggregationType.COUNT, "RefundCount", Terrasoft.AggregationEvalType.ALL);
const esqFirstFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "UsrCase", caseId);
esq.filters.addItem(esqFirstFilter);
var subFilter = Terrasoft.createFilterGroup();
subFilter.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "UsrRefundItem", true));
const esqSecondFilter = Terrasoft.createExistsFilter("Id", subFilter);
...

I am not filtering with a subquery here, just on the one table.

Gareth Osler,

Hi Gareth. Here is a sample of how to get a count (this gets a count of all accounts with a type of "Customer", however, to just get a count of the entire table you'd just omit the filter):

var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
    rootSchemaName: "Account"
});
esq.addAggregationSchemaColumn("Id", Terrasoft.AggregationType.COUNT, "AccountCount");
esq.filters.add(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Type.Name", "Customer"));
esq.getEntityCollection(function(result) {
    console.log("Total customers", result.collection.first().get("AccountCount"));
});

With an exists sub-filter like in your code, it would look like this:

// get a count of all accounts with a "UsrClientSystem" record that has a system type of "Creatio"
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
    rootSchemaName: "Account"
});
esq.addAggregationSchemaColumn("Id", Terrasoft.AggregationType.COUNT, "AccountCount");
 
var subFilter = Terrasoft.createFilterGroup();
subFilter.addItem(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "UsrSystemType.Name", "Creatio"));
esq.filters.addItem(Terrasoft.createExistsFilter("[UsrClientSystem:UsrAccount].Id", subFilter));
 
esq.getEntityCollection(function(result) {
    console.log("Total accounts with Creatio system", result.collection.first().get("AccountCount"));
}, this);

Ryan

Ryan Farley, Thank you for the reply.  I am querying with an exists filter on the same table as the esq query, the esq query is on table UsrItemInOerder, for an exist filter of there exists a record with a UsrRefundItem column value of true.  What would the column path be for a createExistsFilter() call in that situation?

Gareth Osler,

I'm not 100% sure I follow. So you want to know if there's a UsrItemInOrder record for the parent Order that has a value of true for the UsrRefundItem column? If that's the case, you can just simplify the query (no need for the exists sub filter):

var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
    rootSchemaName: "UsrItemInOrder"
});
// get a count of items with a refund
esq.addAggregationSchemaColumn("Id", Terrasoft.AggregationType.COUNT, "RefundCount");
// for all UsrItemInOrder rows for the parent Order
esq.filters.add(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Order", this.get("MasterRecordId"));
// add filter for refund items only
esq.filters.add(Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "UsrRefundItem", true);
// get result, this will return 1 row with a count of refund items in RefundCount column
esq.getEntityCollection(function(result) {
    var hasRefunds = (result.collection.first().get("RefundCount") &gt; 0);
});

Ryan

Ryan Farley,

That is essentially what I have done.  But could that query be optimized with an exists query, it is being run on a database with circa 1.5 million records.

 

Gareth Osler,

What I was trying to do is illustrated in SQL terms in this stackexchange question,

SELECT TOP (1) id 
  FROM dbo.table
  WHERE price IS NULL
    AND category = 'hardware';

which I am arriving at the conclusion is not possible with a Creatio ESQ query.  The solution counting the records matching the case Id and 'UsrRefundItem'

flag true conditions is probably the fastest otherwise.

Gareth Osler,

The only way to do a "top" or "limit" that I know of via ESQ is like this:

var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
	rootSchemaName: "UsrEntity"
});
// get only first row in results
esq.rowCount = 1;
esq.addColumn("Id");
// add any filters
esq.getEntityCollection(function(response) {
	// only one row returned
}, this);

To be honest, I've never ran profiler to see if rowCount=X actually does translate to TOP X or LIMIT X, but I assume it does. However, I think the previous method of getting the count would be a more efficient way. The ESQ I posted earlier is the equivalent of:

select count(Id) as RefundCount from UsrItemInOrder where OrderId = 'SOMEID' and UsrRefundItem = 1

Ryan

Show all comments

What is the easiest way to call a method defined in the client module source code of one detail from the client module source code of another detail?  The details are in different tabs.

Like 0

Like

1 comments

You can do this using the sandbox. See https://academy.creatio.com/docs/developer/front_end_development/sandbo…

Basically, if detail1 needs to call a function defined in detail2, in detail1 you'd define a message with mode PTP and direction PUBLISH. In detail2, you'd define the same message with mode PTP and direction SUBSCRIBE. Detail1 would publish the message via the sandbox when it wants to invoke the function in the other detail. Then in detail2, when the message is received, it would execute the function. 

Hope this helps get you started. Here's a sample from an older post of sending messages between details: https://community.creatio.com/articles/implementing-messages-sandbox-de…

Ryan

Show all comments

I am developing an application using a Creatio trial (before implementing on the development server).  I have saved the application as a package, and have imported back into another Creatio trial.  Everything works fine.

 

The problem I have is I am not able to edit the JavaScript I have developed in the package's replacing client modules.  When I view the client module from the Configuration page, I can see the JavaScript that I have developed, but when I try to edit the JavaScript from the section wizard, there is only a 'define' function with empty sections, not the JavaScript that I developed.

 

Is it possible to continue developing client module JavaScript from one trial of Creatio to another?

 

Thanks in advance,

Like 0

Like

1 comments

Dear Gareth, 



The logic behind this behavior is that when any changes comes in the package they should not be directly changed since packages can be distributed by third-party publishers. 

Only way to change functionality installed is to re-define the code or add new methods within the new replacing module in your custom packages. 



Kind regards,

Roman

 

Show all comments