Hi Community,

 

I am trying to create a new freedom UI section from the application hub. After giving a name "Requests" for the section, the section gets created with the name. But in the backend the code of the object and its associated pages are auto generated in the format "UsrApp_qbm8q4f". 

 

 

Is there a way to generate the code as "Usr[SectionName]", every time I create a new section instead of some random auto generated text which is not a developer friendly code?

 

Regards,

Sourav

Like 3

Like

3 comments

Hello,

 

There is no possibility to change its code.

 

We've registered it in our R&D team backlog for consideration and implementation in future application releases. Thank you for helping us to improve our product.

Definitely needed for 8.1 ?

Hi Everyone,



Is this issue sorted? is there a way to stop the random code?



Regards

Deshan

Show all comments

Hi,

 

is there a way to change to name of the browser tab depending on which page you're in?

Example: You're in a case and want to have the case number displayed in the browser tab name for a better overview.

Like 0

Like

1 comments

Hello,

 

You can customize only the favicon and the company's name in the browser tab. Detailed instruction can be found in the Add corporate logo Academy article

Unfortunately, there are no ways to customize tabs according to your business task at the moment. The idea to extend the possibility of browser's tab customization is already accepted by our R&D team. 

Show all comments

 Hi community,

I'm trying to disable the columns of an editable detail to make them read only and I have read many articles about it, but I'm still having a problem that I can't fix.



I wrote this code in the GridDetail to disable the fields but I noticed that for some of the columns of the detail is not working.

getCellControlsConfig: function(entitySchemaColumn) {
    if (!entitySchemaColumn) {
        return;
    }
    var columnName = entitySchemaColumn.name;
    var enabled = (entitySchemaColumn.usageType !== this.Terrasoft.EntitySchemaColumnUsageType.None) &&
        !this.Ext.Array.contains(this.systemColumns, columnName);
    var config = {
        itemType: this.Terrasoft.ViewItemType.MODEL_ITEM,
        name: columnName,
        labelConfig: {visible: false},
        caption: entitySchemaColumn.caption,
        enabled: enabled
    };
    if (!this.values.IsEnabled) {
        config.enabled = false;
        //config.labelConfig.enabled = false;
        //this.set("Is"+columnName+"enabled", false);
    }
    if (entitySchemaColumn.dataValueType === this.Terrasoft.DataValueType.LOOKUP) {
        config.showValueAsLink = false;
    }
    if (entitySchemaColumn.dataValueType !== this.Terrasoft.DataValueType.DATE_TIME &&
        entitySchemaColumn.dataValueType !== this.Terrasoft.DataValueType.BOOLEAN) {
        config.focused = {"bindTo": "Is" + columnName + "Focused"};
    }
    console.log(config);
    return config;
},

Debugging I have discovered that the detail adds to the labelConfig the property "enabled" which is binded to an attribute ("isProductenabled").

I tried to force the property writing it in the method and I also tried to set the attribute manually, but it's not working... do you have any idea?



Let me know.

Thanks in advance.



Best regards,

Luca

Like 0

Like

5 comments
Best reply

Luca Tavasanis,

While I was debugging I have noticed that the properties of the labelConfig that enabled some of the fields where added in the method: "applyBusinessRulesForActiveRow: function(id, gridLayoutItems)" and to fix the issue I just added this method in the client module.

You can lock the fields in the editable detail using business rules on the page for the detail, rather than in code. On the page for the detail, add a business rule to make the field not editable. Something like 

Condition: Boolean true = Boolean false (something that is never true)

Then: Make field editable (the condition is never true, so field is never editable)

The business rule will apply to the detail list and the fields will not be editable in the detail list.

Ryan

Hi Ryan,

I'm actually working with the BaseGridDetail so I can't lock it with a business rule... do you have any other idea?

 

Thanks anyway.

Luca

Luca Tavasanis,

IIRC to do it in code I usually do it like this (but unable to verify if this is correct at the moment)

getCellControlsConfig: function(entitySchemaColumn) {
    // get config from base 
    var config = this.callParent(arguments);
    var columnName = entitySchemaColumn.name;
 
    // if this is the column I want to disable
    if (columnName === "UsrMyColumn") {
        Ext.apply(config, {
            enabled: false
        });
    }
 
    return config;
}

Hopefully that gets you closer, of course, if you're wanting to disable all, you could just remove the if to check the column it's for.

Ryan

Ryan Farley,

I just tried what you suggested but unfortunately it's not working... it returns an error when I use this.callParent(arguments);.

Thank you anyway.



Luca

Luca Tavasanis,

While I was debugging I have noticed that the properties of the labelConfig that enabled some of the fields where added in the method: "applyBusinessRulesForActiveRow: function(id, gridLayoutItems)" and to fix the issue I just added this method in the client module.

Show all comments

Hi community,

I'm trying to read the value of a custom system setting in creatio from the client-side, but I noticed that even if my setting has the flag "Cached" it results undefined when I try to get the value using this code:

var test = Terrasoft.SysSettings.cachedSettings.UsrSysSettingTest;





while when I use the asynchronous way it works fine.

Code for the asynchronous way:

Terrasoft.SysSettings.querySysSettingsItem("UsrSysSettingTest", function(sysSettingTest) { 

       var test = sysSettingTest; //here is defined

}, this);



Do you know why this is happening?

 

Let me know.

Thanks in advance,

Luca

Like 0

Like

5 comments
Best reply

Hi everyone,

I discovered that the problem with the cached setting was the type of it. To fix the issue I simply had to change the type from Text (500) to Text (250), I tried to do the same in other environments and I had the same result.

Hope it can help.

 

Best regards,

Luca

Hi Luca,

 

I was able to reproduce this behavior using the following steps:

 

1) Create a system setting

2) Don't relogin to the app and execute both commands you've shared in the developer console

 

As a result synchronous call returns undefined, async call returns value.

 

You need to relogin to the app to start using the setting value synchronously (if it won't help try flushing Redis).

 

Best regards,

Oscar

Hi Oscar,

I've actually logged into the app many times, I even closed the browser and flushed Redis, but I still have this issue.

 

Is there anything else I can do?

Thanks.

 

Best regards,

Luca

Luca Tavasanis,

 

Does this issue occur in another browser? In my case cached system setting was fetched properly after relogin and the issue is not in the rights for the setting since you can fetch it asynchronously.

 

Best regards,

Oscar

Oscar Dylan,

Yes, I have this problem also in other browsers.

 

Best regards,

Luca

Hi everyone,

I discovered that the problem with the cached setting was the type of it. To fix the issue I simply had to change the type from Text (500) to Text (250), I tried to do the same in other environments and I had the same result.

Hope it can help.

 

Best regards,

Luca

Show all comments

Hi everyone,

I'm looking for a way to customize the Add order based on opportunity BP.

I added some fields to the 'product in opportunity' object, like: discount amount, discount %, semester and schoolyear. Added semester and schoolyear to the product in order object too (discount amount, discount % fields are already exist there).

Now, I want these values to be copied when creating an order from an opp, just like the other fields of the product in order do.

I found this process does the order and creates the products  

https://beable.creatio.com/0/Nui/ViewModule.aspx?vm=SchemaDesigner#process/be82d4e0-4638-4058-975d-050a3dcff8b5

but don't know how to extend the script there (the script that adds the products in on the Adding opportunity products to order  element. 

Is there a way to get to the function that are being executed in that script?

Adding the element's script here.

Thanks in advance,

Chani

if (ProductItems.ToString() != "" || IsCopyAllProduct) {
	var copyProductsOperation = Factories.ClassFactory.Get<
		Terrasoft.Configuration.CopyOrderProductsFromOpportunityOperation>(
		new Factories.ConstructorArgument("userConnection", UserConnection));
	copyProductsOperation.Execute(new Terrasoft.Configuration
		.CopyOrderProductsFromOpportunityOperation
		.CopyOrderProductsArgs {
			OpportunityId = CurrentOpportunity,
			OrderId = NewOrder,
			IsCopyAllProducts = IsCopyAllProduct,
			ProductItems = ProductItems
	});
}
return true;

 

Like 0

Like

4 comments

Hi Chani,

 

You can create your own process and modify the script-task in the way you need or you can copy products from the opportunity to the created order using the "Add data" process element and the sub-process that will receive a collection of OpportunityProduct records.

 

Now step-by-step:

 

1) In the OpportunityOrderUtilities schema there is the CreateOrderFromOpportunity method that is called upon clicking the "New order" button on the opportunity page:

 

this is the code of the button:

and here is the method itself:

As we can see here the method reads the value for the system setting with "CreateOrderFromOpportunityProcess" code. By default the value for this system setting is "Add order based on opportunity":

So we can place any process with the simple start signal there.

 

2) You can either create your own script task in the newly created process (use the code from the original OOB process as an example or paste it and extend in the new process). Or in the new process you can use the collection of records read from the OpportunityProduct object and if the number of records is greater than 1 you can pass this collection to the sub-process that will add data to the created order (the object is OrderProduct).

 

So you need to select one of these two options: either extend the script-task or use the collection of records and a sub-process.

 

Best regards,

Oscar

Oscar Dylan,

Thank you.

But I do want to use the option of selecting products (see pic), how can I have that and get the products list to use in the add data element?

I tried looking in the  Add order based on opportunity BP, but I only see a text parameter for products list.

 

Chani Karel,

 

This is a part of the showProductDialog method of the same OpportunityOrderUtilities module. This will be called regardless of if the process is changed or not. Once products are selected, they are passed to the runProcessCreateOrder method. The list of selected products will be passed as an array of ID's to the process:

 

Best regards,

Oscar

Oscar Dylan,

Thanks

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've this situation where I need to add a new tab "Preview" and the main objective is have a iframe with a preview of the documents in the attachments, however we try first implement the logic if was a website, because we think that the article that we found on academy "https://academy.creatio.com/documents/technic-sdk/7-13/integration-third-party-sites-iframe"partially satisfies what we want to implement;

  1. First, based on the Web field, we were able to do the preview of the website, as you can see on the image below.
  2. Then, we try to call and access to the storage of the pdf that we have on the attachments (image below), but the only link that we have of the pdf is the link/method to download the file, for example: https://..../0/rest/FileService/GetFile/Id.

In this way we want to know if there is any way to acess a link or storage of the file, with objective to implement something like preview of the document with the iframe on the edit page.

Anyone?

 

Best Regards,

Daniel Longo

Like 0

Like

2 comments

Hello Daniel, 



While it is technically possible to open pdf files using iframe tag, it'd require considerable amount of custom development to implement such preview. 

The link you're referring to is the direct link to the attachment file. 



Unfortunately, we don't have examples of such implementation. 

I'll register your idea and it may be implemented in future releases. 

Best regards,

Yurii.

Hello Yurii,

Is there any progress on this implementation?

 

What are the options that FileService gives us beyond the download file link?

Is there any way of call this link and get Data from response?

 

Best Regards,

Igor Matos

Show all comments

Dear Community,

 

I have found multiple posts on how to remove the "+" button on the event audience detail in the event section.

We have created a process where people can add an audience but they're not supposed to use the + (add) button on the detail itself.

 

Does anyone have a solution/experience with removing the "+" from the event audience detail? I have succeeded in removing the "+" from other details, but this one seems to be different.

 

Any help or info will be appreciated!

 

Kind regards,

Yosef

Like 0

Like

2 comments
Best reply

Hello Yosef,

To remove the add button on the event audience detail, add the following to the diff in EventTargetDetailV2

diff: /**SCHEMA_DIFF*/[
	{
		"operation": "remove",
		"name": "AddTypedRecordButton"
	}
]/**SCHEMA_DIFF*/

Ryan

Hello Yosef,

To remove the add button on the event audience detail, add the following to the diff in EventTargetDetailV2

diff: /**SCHEMA_DIFF*/[
	{
		"operation": "remove",
		"name": "AddTypedRecordButton"
	}
]/**SCHEMA_DIFF*/

Ryan

Hello Ryan,

 

This seems to work perfectly, thank you!

Show all comments

Hi, 

 

Is there a a way to debug business processes in version 7.16.4.1473?

 

I found this but it doesn't work: 

https://academy.creatio.com/documents/technic-sdk/7-13/server-code-debu…

 

I found this too: https://academy.creatio.com/documents/technic-sdk/7-16/overview

But in this case, the business process does not generate a file .cs in the schema folder. 

 

Im using Clio to generate the packages projects, but the cs code of the bps its never generated in the packages. 

 

Looking forward to your comments. 

 

Best regards, 

 

Javier

Like 0

Like

3 comments

Dear Javier,

 

Thank you for your question!

The best way to monitor the Business Process error messages is to turn on the Traces parameter of a particular BP.

But please note that this may impact the system`s performance.

 

You may find these Academy Articles useful:

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

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

 

In addition, you may turn on the Debug mode of the whole Creatio itself by typing in this string in the browser`s console:

Terrasoft.SysSettings.postPersonalSysSettingsValue("IsDebug", true)

 

But please make sure to turn it off as you are finished as it impacts the system performance.

 

Hope this helps!

 

Regards,

 

Danyil

 

 

Hi Danyil, 

 

Thank you for your response, I know about Traces parameter, but actually I'm trying to debug server side business process' c# code(script task) in visual studio. 

 

Isn't that possible? 

 

Best regards, 

Javier

 

Javier Collazo,

 

Hi Javier,

 

This is only possible using C# interactive tools like dnSpy (can be downloaded from here) where you need to connect to w3wp.exe process of your application pool and debug the logic in real time.

 

As for connecting the app to Visual Studio - you can do it, but this feature was developed to allow development in the File system, but not debugging.

 

Best regards,

Oscar

Show all comments

Dear Community,

 

This article shows us how to create a detail with an editable list.

The next step for us is to add an option to open this record like how you can open a page in the City lookup: https://prnt.sc/x79h2l

How do we add this functionality? 

 

Thank you in advance!

 

Kind regards,

Yosef

Like 0

Like

3 comments
Best reply

Hello Yosef,

I have an article outlining how to do this here https://customerfx.com/article/adding-an-edit-button-to-the-selected-ro…

Hope this helps. 

Ryan

Hello Yosef,

I have an article outlining how to do this here https://customerfx.com/article/adding-an-edit-button-to-the-selected-ro…

Hope this helps. 

Ryan

Ryan Farley,

Works like a charm!

I do however recommend adding the following for consistency:

{
  "className": "Terrasoft.Button",
  "style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
  "tag": "edit",
  "markerValue": "edit",
  "imageConfig": {"bindTo": "Resources.Images.CardIcon"}
},

This way you get the same icon as the other details.

 

Kind regards,

Yosef

Yosef,

That is true, I do have that in the article as well (it's at the end of the article), however at the time I was doing this for a system where they wanted the "edit" action more obvious to users. However, for consistency with the rest of Creatio, I'd go the route of using the icon as well.

Glad it worked for you.

Ryan

Show all comments