7.16
Studio_Creatio

Hello

 

When typing some string on a lookup field, at the bottom of the field there is this option to add the value as a new value to the lookup if it doesn't exsitis in the lookup table.

 

I understand that this option can be blocked via permissions but how can I remove this option completely from a lookup field.

Remove it in a manner that the user will not see this option to add new.

 

 

 

 

Like 1

Like

2 comments
Best reply

Hi Oren,



Thank you for contacting us!



Sure, there is an option to block such functionality. However, please note that the development process should be applied.



1. Firstly, you need to create a replacing client module schema for BasePageV2 client module. Please find the information about it in the article by the link below:



https://academy.creatio.com/documents/technic-sdk/7-16/creating-custom-client-module-schema



2. In a new replacing client schema, please insert the code below:

 

define("BasePageV2", [], function() {
return {
methods: {
/**
* @inheritdoc Terrasoft.model.BaseViewModel#onLookupDataLoaded
* @override
*/
onLookupDataLoaded: function(config) {
config.isLookupEdit = false;
this.callParent(arguments);
},
}
};
});



3. Save the changes and hard-reload the page.



Regards,

Anastasiia

Hi Oren,



Thank you for contacting us!



Sure, there is an option to block such functionality. However, please note that the development process should be applied.



1. Firstly, you need to create a replacing client module schema for BasePageV2 client module. Please find the information about it in the article by the link below:



https://academy.creatio.com/documents/technic-sdk/7-16/creating-custom-client-module-schema



2. In a new replacing client schema, please insert the code below:

 

define("BasePageV2", [], function() {
return {
methods: {
/**
* @inheritdoc Terrasoft.model.BaseViewModel#onLookupDataLoaded
* @override
*/
onLookupDataLoaded: function(config) {
config.isLookupEdit = false;
this.callParent(arguments);
},
}
};
});



3. Save the changes and hard-reload the page.



Regards,

Anastasiia

Anastasiia Markina,

Thanks Anastasiia

Show all comments
7.15
Studio_Creatio

Hi;

I Run the Creatio proces using ProcessEngineService.svc

and from time to time we get responce

"The remote server returned an error: (400) Bad Request."

the request looks like that

{"ParameterValues":[{"Name":"ClaimQuotationId","Value":"fb805d29-20cb-4148-08f1-08d82c03864d"}],"SchemaName":"UsrManualCostEdit"}



Process starts,  reach to the end but still has status "Running"



where can i Find logs showing the problem?

 

Regards

Tomek

 

File attachments
Like 0

Like

5 comments
Best reply

Tomasz Branicki,

Hello,

 

Please share BusinessProcess.log and Error.log files from your local app (can be found in C:\Windows\Temp\Creatio folder) and also specify the exact time when the process should've been completed. And also please share the name of this process and its UID from SysSchema table.

 

Best regards,

Oscar 

Can you try 'open'ing the process instance from process log, check if any elements show 'error' status. If yes, click on that and then click on the 'show error description' button.

KrishnaPrasad,

Hi;

thanks for replay

all steps have completed status.reason why ProcessEnginService return 

I just looking for the reason why ProcessEnginService return response 400 Bad request.

Mayority of similar requests looks fine

 

Regards Tomek

 

Tomasz Branicki,

Hello,

 

Please share BusinessProcess.log and Error.log files from your local app (can be found in C:\Windows\Temp\Creatio folder) and also specify the exact time when the process should've been completed. And also please share the name of this process and its UID from SysSchema table.

 

Best regards,

Oscar 

Oscar Dylan,

thanks Oscar

I find the deadlock errors so i think that was an reason

But i still wonder why this process anyway starts and has running status even he reach the termination step.

here are the dates

2020-07-22 10:15:25.703

2020-07-22 10:05:24.043

2020-07-22 07:50:28.773

2020-07-22 07:46:50.083

2020-07-22 07:39:57.850

2020-07-22 07:31:23.590

 

 

 

Tomasz Branicki,

 

Hello Tomasz,

 

It will be almost impossible to say without direct access to the database and the application. Please email us at support@creatio.com and we will take a look at the deadlock problem more closely.

 

Thank you!

 

Best regards,

Oscar

Show all comments
devlabs
customize
Surveys
error
7.16
Studio_Creatio

Hello,

 

I am facing the following error when clicking on "Complete interview" using the "Conducting surveys for Creatio" from devlabs.

 

42883: operator does not exist: boolean = integer

 

I am using a creatio cloud demo site.

Please advise.

 

Thank you.

Maher.

Like 0

Like

4 comments

Hello Maher,



Thank you for your notification.

We have reproduced the issue and forwarded it to the responsible team. We hope to receive their feedback until the end of the current week.

 

Will keep you informed.

Have a good day!

Hello,

 

Any update on this case?

Please note that we are planning to use it in a project in an SQL environment, is it compatible with SQL Database?

 

Thank you.

Maher.

Hello,

 

Kind reminder!

 

Regards,

Maher.

Hello Maher,



We have published the updated package on Creatio Marketplace. Please re-install the add-on from Creatio Marketplace and check for updates.



The updated package is compatible with both MS SQL and PostgreSQL.

Show all comments
EJB
integration
7.16
Studio_Creatio

I have a legacy system built using EJBs in java on a JBoss app server. I need to integrate it with Creatio. What's the best way of integrating EJBs with Creatio? Are there any specific gotchas that I have to keep in mind around, JRE, cloud vs on-prem, etc?

 

Thanks in advance...

Like 0

Like

1 comments

Dear Amanthena, 

 

Here is an academy article with all possible integration options with Creatio: 

https://academy.creatio.com/documents/technic-sdkmp/7-16/integration-creatio-and-public-api

You can use base Java methods to integrate Creatio wit your application. 

Here is an academy page on calling custom web services from within Creatio in business process: 

https://academy.creatio.com/documents/administration/7-16/calling-web-services-business-processes

Unfortunately, we don't have any examples of integrating Creatio specifically with EJB applications. 

 

Best regards, 

Dennis 

Show all comments
navigation
CSS
7.16
Studio_Creatio

Is there a clean way to hide the left and right navigation menus in Creatio without resorting to CSS hacks? I am building a scenario where an external app loads Creatio in an iframe and I need to restrict the user from navigating away from the screen that is shown in the Creatio iframe.

 

Thanks in advance...

Like 0

Like

2 comments

Dear Amanthena,

 

I think that adding custom css is the most appropriate approach in your case. Since it is impossible to make the left and right menus invisible only for some specific page. You can modify these menus, however these changes will affect all pages in the application.

 

Please find more information about how to add a custom css style in the article by the link below:

 

https://community.bpmonline.com/questions/how-add-custom-style-control-page-based-condition

 

Best regards,

Norton

Norton Lingard,

​​​​​​Thanks! 

Show all comments

Hello, 

 

I have a custom section that has a field that only shows cities where country is the US. When I'm in the page and click on the look up I only get the US cities.  However if I am on the section and I add a Simple filter and I select the field for the city, the cities are not filtered out by the US, and all cities in the database are listed (see attachments)

 

How do I filter that look up when the user decides to add a simple filter and chooses the city as the column?

 

Thanks in advance,

Jose

 

 

Like 0

Like

9 comments

Hello Jose,

 

This filtering on the edit page can be either a result of:

1) filtering business rule on the page (see this Academy article for more information)

2) custom filtration rule logic stored in the edit page itself

 

The same filtration logic cannot be deployed using standard business rules in the section list, but you can use additional development so to create a custom filter in the section based on some contidions and it can be achieved via ESQ filtration methods (simial to the one described here).

 

But you need to define some logic that could control this filtration (for example which cities should be displayed in the section list filter?) and then deploy this logic in the ESQ parameters.

 

Best regards,

Oscar

Oscar Dylan,

Hi Oscar, 

 

I read the link that you provide for the section list, but unfortunately it does not say which function I have to override in order to call the logic with the ESQ parameters. 

 

Can you tell me where I need to put the ESQ logic that will filter the cities look up values in the section list? The ESQ logic, I know how o write to get the only cities where the country is the Unites States.

 

Thanks,

Jose

 

Jose Hernandez,

 

Hello,

 

Please see this article https://community.creatio.com/articles/setting-custom-section-filters-section. The ESQ should be placed in your overwritten section schema (like AccountSectionV2 or ContactSectionV2) in the methods of the schema. You can create a separate filter field in the fast filter already available in your section and then display only those cities that ESQ will return.

 

Or you can achieve your task without development and in this case you can create several folders in your section list - one for each city like on the screenshot below:

 

Best regards,

Oscar

Oscar Dylan,

Thanks Oscar. The instructions are for Quick filters, but I was looking for a solution where I could filter the data when the user decides to add a simple filter for a field that is a cities look up. We have several city fields on that custom section (Enrollee City , Rep City, Plan City, etc. ) and it is not practical to put that many Quick filters on the section list. We also have other fields based on the Contact lookup and I was hoping to filter those to when the user adds a simple filter for those fields to list just the users in the roles that are allowed for that custom section. 

 

In short, I was looking for a way to filter the data displayed to the user when they add a simple filter that is based on a Creatio lookup.

 

Thanks,

Jose

Jose Hernandez,

 

The result that is needed is to display not all the cities, but serveral cities in the fast filter based on some conditions (like on the screenshot below where the condition is that they start with "De" combination). So you need to override the base filter https://community.creatio.com/articles/setting-custom-section-filters-section and add your custom ESQ-methods https://community.creatio.com/questions/filteration-lookup-based-detail. As a result not all the cities will be displayed, but only those that you specify in the ESQ-method.

 

If your business task is to simply display records that are related to some city it is better to create dynamic folders that could show you the correspondent data and that will be dynamically updated.

 

Otherwise you need to overwrite the basic fast filter and add your condition that could return possible variants of cities:

Best regards,

Oscar

 

Oscar Dylan,

Thanks Oscar, but the link you provided to override the base filter applies to Fixed filters, not the simple filters the users adds on demand.

Jose Hernandez,

these simple filters are part of fixed filters. For example if you remove this part from the code:

 

name: "PeriodFilter",
                            // Filter header.
                            caption: this.get("Resources.Strings.PeriodFilterCaption"),
                            // The data type – date.
                            dataValueType: this.Terrasoft.DataValueType.DATE,
                            // Start date of the filtering period.
                            startDate: {
                                // Filter the data from the [Date] column.
                                columnName: "StartDate",
                                // Default value.
                                defValue: this.Terrasoft.startOfWeek(new Date())
                            },
                            // Date of the filtering period completion.
                            dueDate: {
                                columnName: "StartDate",
                                defValue: this.Terrasoft.endOfWeek(new Date())
                            }
                        },
                        // Owner filter.
                        {
                            // The name of the filter.
                            name: "Owner",
                            // Filter header.
                            caption: this.get("Resources.Strings.OwnerFilterCaption"),
                            // Filter the data from the [Owner] column.
                            columnName: "Owner",
                            // Current user contact is specified as default value.
                            // Value is received from the system setting.
                            defValue: this.Terrasoft.SysValue.CURRENT_USER_CONTACT,
                            // The data type – lookup.
                            dataValueType: this.Terrasoft.DataValueType.LOOKUP,
                            // Filter.
                            filter: BaseFiltersGenerateModule.OwnerFilter

from the code in this article https://academy.creatio.com/documents/technic-sdk/7-16/adding-quick-filter-block-section (that describes adding this block of filters to the section) the filters will be formed with quick filters\folders and tags selection.

 

Best regards,

Oscar

Oscar Dylan,

Thanks Oscar, but I was asking for a way to do it without having to add Quick Filters or dynamic folders  to the section. Is it not possible to display only certain values when the user adds a field on a simple filter?  e,g Click Filters/Folders, select Add Filter, Select Enrollee City, (custom code filters out any city where country is not Unites States).

 

Thanks,

Jose

Jose Hernandez,

 

Such a feature of custom filters in not present out-of-the-box, but can be added via additional development (by replacing the existing fixed filter in the section by a custom one and specifying the ESQ for the filter).

 

It is also possible to add such a filtration without development by creating a separate lookup where only specific cities will appear. In this case when users want to create a filter they will only see specific cities in the lookup and as a result the task will be achieved. You will only need to fill this lookup in for all existing records. The fastest way to do that is to export existing section records and their actual cities and import this data back, but specifying the city value for the custom column we've added.

 

Best regards,

Oscar

Show all comments
7.16
Studio_Creatio

Hello

 

Is it possible in Creatio to add System Setting as a parameter to the email body?

 

Couldn't find any example of that.

 

Like 0

Like

3 comments

Hi!

Can you please give some more details on your business task? 

 

Regards,

Dean

Dear Oren,

 

In general you can input the system setting as the parameter into the subject of the email, but if you want to use it as kind of macros in the email body - that will not work. The parameter doesn't work in the same way as marcos, therefore it will not be recognized.

 

Regards,

Dean 

Thanks Dean

Show all comments
ProcessElement
webservice
UserTask
7.16
Studio_Creatio

Hello Community!

 

I would like to call a web service using a soap request, but in this case I want to use the UserTask "Call Web Service" for that. Anyone have some sample of how to build it?

 

Thanks!

Like 0

Like

3 comments

Hello Federico,

 

You can find detailed instructions on how to call any web services from a business process in the Calling web services from business processes Academy article. Also, you can take a look at the Studying Web service documentation article that describes how to call the web service and what kind of response it will return.

 

Please, let us know in case any further information is required. 

 

Best regards, 

Olga. 

Hello Olga,

In my understand the web service element is not supporting soap request. If that is the case can you please give me a example of that?

 

Hello Federico,

 

Please, refer to the previously created Community post about SOAP Service Call: https://community.creatio.com/questions/soap-service-call

 

Please, inform us in case you require any additional assistance. 

 

Thank you in advance!

Olga. 

Show all comments
Studio_Creatio

Hi Community!

 

I'm having an issue with the Gravity Forms plugin for Wordpress that was provided by citizens developers to send data to BPM from a web site from our side. Currently we have this set for the Contact-Us page in order to register Leads information into this platform. 

 

Everything was set as it was indicated in this tutorial:

https://community.creatio.com/articles/bpmonline-plugin-wordpress-gravi…-

 and we're receiving constantly an email that there was an error with the 3rd party service:

cURL error 28: Operation timed out after 10000 milliseconds with 0 out of -1 bytes received.

 

Ironically, the Lead is being saved normally as nothing has ever happened. And still receiving the error email.



Please let me know any useful information that could help to avoid this issue. 

Like 0

Like

1 comments

Hi Ramon,



Sorry for the belated reply.

 

Kindly let us know your settings for the Global values ( the Troubleshooting part of the tutorial), namely the Email, Email Sender, the Debug Mode (whether it is set or not set). This information will assist us in identifying why you receive the emails.

 

Thank you for your feedback.

Show all comments
7.16
Studio_Creatio

Hi

 

I can create an iFrame inside a page / tab.

I can create a button to do things.

 

How can I make the button open floating page in which I can show my iFrame ?

 

And please do not refer me to this article: https://community.creatio.com/articles/add-iframe-modalbox , it is not working.

 

Thanks

Like 0

Like

7 comments

Hello Oren,

 

Could you please provide detailed answers to the following questions: 

1) What is the current version of your system? 

2) What exactly is not working according to the article?

 

Thank you in advance!

Olga. 

Olga Avis,

 

Hi Olga

 

Thanks for trying to help.

 

The three callings to the Sandbox Subscribe inside the subscribeSandboxEvents function are preventing the page from working. They are causing error.

 

I guess there are some parameters inside such as 

 

IntEntitySchemaName,

IntRelatedSchemasDetail,

IntUploadFileClick

 

That needs to be replaced with something unclear.

 

 

Hello Oren,

 

Thank you for your reply! 

 

Could you please provide a screenshot of the developer console of what kind of error you exactly faced?

Please, do not hesitate to provide as many details as possible.

Also, it will be useful for us to know the current version of your system.

 

Thank you beforehand!

Olga. 

Olga Avis,

Hi Olga

 

Just to make sure I am not mistaken.

On stage 2 in the article, creating IntDonateModalPage, it says to create a page. 

Should I create this page as a "Replacing Client Module" ?

And if so, what is the parrent object ?

 

Anwering to your question.

 

These lines:

 

this.sandbox.subscribe("GetMasterEntitySchema", function() {
    return this.get("IntEntitySchemaName");
    }, this, [this.getDetailId("IntRelatedSchemasDetail") + "_DetailModalBox"]);
this.sandbox.subscribe("IntUploadFileClick", this.onFilesSelected, this, [this.sandbox.id]);
this.sandbox.subscribe("GetModuleInfo", this.getDonateModalBoxConfig, this,
    [this.getDonateModalBoxId()]);

 

Cause this error on the console:

 

 message: Uncaught Terrasoft.UnsupportedTypeException: Message GetMasterEntitySchema is not defined in CardModuleV2 (CardModuleV2_aca24ae1-319c-4e8c-94b5-a7ca7bd5cc07_UsrApplications1Page) module 

 

 

Thanks

Hello Oren,

 

Here is a detailed instruction on how to create an Iframe module:

 

1. Create an Iframe module (Module)

(GlbIframeControl)

 

Ext.define("Terrasoft.controls.GlbIframeControl", {

            extend: "Terrasoft.Component",

            alternateClassName: "Terrasoft.GlbIframeControl",

            tpl: [

                        /*jshint quotmark:true */

                        '<iframe id="{id}" src="{src}" class="{wrapClass}"></iframe>'

                        /*jshint quotmark:false */

            ],

            id: null,

            src: null,//"https://academy.terrasoft.ru/",

            wrapClass: ["glb-iframe"],

            setIframeSrc: function(value) {

                        value = value || "";

                        if (this.src !== value) {

                                    this.src = value;

                                    this.safeRerender();

                        }

            },

            init: function() {

                        this.callParent(arguments);

                        var selectors = this.selectors = this.selectors || {};

                        selectors.wrapEl = selectors.wrapEl || "#" + this.id;

            },

            LoadPageBySrc: function() {

                        var iframe = this.getWrapEl();

                        iframe.dom.src = this.src;

            },

            onAfterRender: function() {

                        this.callParent(arguments);

                        this.LoadPageBySrc();

            },

            getBindConfig: function() {

                        var bindConfig = this.callParent(arguments);

                        return Ext.apply(bindConfig, {

                                    src: {

                                                changeMethod: "setIframeSrc"

                                    }

                        });

            },

            getTplData: function() {

                        var tplData = this.callParent(arguments);

                        return Ext.apply(tplData, {

                                    src: this.src,

                                    wrapClass: this.wrapClass

                        });

            }

});

In less tab create your css class

.glb-iframe {

            width: 643px;

            height: 400px;

}

 

2. Create a page that will contain Iframe and will be displayed in Modal Box

(GlbIframeModalPage)

 

Parent object: Base modal box page schema ( NUI )

 

define("GlbIframeModalPage", ["GlbIframeControl", "css!GlbIframeControl"], function() {

    return {

        attributes: {

            "UsrLink": {

                dataValueType: Terrasoft.DataValueType.TEXT,

                type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN

            }

        },

        messages: {

        },

        methods: {

            init: function(callback, scope) {

//get system settings value which is responsible for the site link

                this.callParent([function() {

                                                            var sysSettingsNameArray = ["UsrLink"];

                                                            Terrasoft.SysSettings.querySysSettings(sysSettingsNameArray, function(values) {

                                                                        this.set("UsrLink", values.UsrLink);

                                                                        callback.call(scope);

                                                            }, this);

                                                }, this]);

            },

                                    getSource: function() {

                                                return this.get("UsrLink");

                                    },

            getHeader: function() {

                return this.get("Resources.Strings.PageCaption");

            },

            onRender: function() {

                this.callParent(arguments);

                var moduleInfo = this.get("moduleInfo");

                var boxSizes = moduleInfo.modalBoxSize;

                var width = boxSizes.width;

                var height = boxSizes.height;

                this.updateSize(width, height);

            }

        },

        //Insert already existed Iframe

        diff: [

            {

                "operation": "insert",

                "parentName": "CardContentContainer",

                "propertyName": "items",

                "name": "IntDonateIframe",

                "values": {

                    "generator": function() {

                        return {

                            "className": "Terrasoft.GlbIframeControl",

//set the link

                            "src": {"bindTo": "getSource"}

                        };

                    }

                }

            },

            {

                "operation": "insert",

                "name": "MyContainer",

                "propertyName": "items",

                "values": {

                    "itemType": Terrasoft.ViewItemType.CONTAINER,

                    "items": []

                }

            },

            {

                "operation": "insert",

                "parentName": "MyContainer",

                "propertyName": "items",

                "name": "MyGridContainer",

                "values": {

                    "itemType": Terrasoft.ViewItemType.GRID_LAYOUT,

                    "items": []

                }

            },

            {

                "operation": "insert",

                "parentName": "MyGridContainer",

                "propertyName": "items",

                "name": "TestText",

                "values": {

                    "bindTo": "UsrLink",

                    "caption": "Test text",

                    "layout": {"column": 0, "row": 0, "colSpan": 10}

                }

            }

        ]

    };

});

ADD localizable string PageCaption

 

3. Insert a button on a page.

 

After button click, Modal Dialog with Iframe should appear. 

define("UsrCarPage", ["UsrCarPageResources","MaskHelper"], function(resources, MaskHelper) {

            return {

                        entitySchemaName: "UsrCarSection",

                        messages: {

                                    "GetModuleInfo": {

                                                direction: Terrasoft.MessageDirectionType.SUBSCRIBE,

                                                mode: Terrasoft.MessageMode.PTP

                                    }

                        },

                        attributes: {

                        },

                        modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,

                        details: /**SCHEMA_DETAILS*/{

                        }/**SCHEMA_DETAILS*/,

                        businessRules: /**SCHEMA_BUSINESS_RULES*/{

                        }/**SCHEMA_BUSINESS_RULES*/,

                        methods: {

                        subscribeSandboxEvents: function() {

                this.callParent(arguments);

                this.sandbox.subscribe("GetModuleInfo", this.getDonateModalBoxConfig, this,

                    [this.getDonateModalBoxId()]);

            },

                            donateButtonClick: function() {

                this.sandbox.loadModule("ModalBoxSchemaModule", {

                    id: this.getDonateModalBoxId()

                });

            },

            getDonateModalBoxConfig: function() {

                return {

                    "schemaName": "GlbIframeModalPage",

                    "modalBoxSize": {

                        "width": "643px",

                        "height": "400px"

                    }

                };

            },

            getDonateModalBoxId: function() {

                return this.sandbox.id + "_DonateModalBox";

            }

                        },

                        dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,

                        diff: /**SCHEMA_DIFF*/[

                                    {

                "operation": "insert",

                "name": "DonateButton",

                "values": {

                      "layout": {

                                                                        "colSpan": 6,

                                                                        "rowSpan": 1,

                                                                        "column": 18,

                                                                        "row": 1,

                                                                        "layoutName": "Header"

                                                            },

                    "itemType": Terrasoft.ViewItemType.BUTTON,

                    "style": Terrasoft.controls.ButtonEnums.style.RED,

                    "caption": {

                        "bindTo": "Resources.Strings.DonateButton"

                    },

                    "click": {

                        "bindTo": "donateButtonClick"

                    }

                },

                "parentName": "Header",

                "propertyName": "items",

                "index": 1

            }

            ]/**SCHEMA_DIFF*/

    };

});

 

Add localizable string

 

 

Please, let us know in case any additional information is required.

 

Best regards,

Olga.

Olga Avis,

 

Thanks Olga.

 

Did all according to your instructions but the button is not responding at all.

 

Maybe I should fix the getDonateModalBoxId function ?

 

Like this,

 

            getDonateModalBoxId: function() {

                

                return this.sandbox.id + "_GlbIframeModalPage";;

            },

When GlbIframeModalPage stands for the name of the page instead of  DonateModalBox

 

 

Hello Oren,

 

Thank you for your reply!

 

Unfortunately, there is not enough information to provide you with a proper solution. Could you please send your request with a detailed description of the issue to the support team (support@creatio.com) and your personal Creatio manager?

 

Thank you in advance.

Olga. 

Show all comments