Hi community,

I'm following the available documentation to achieve this but when I try to create the Replacing view model module the system doesn't find any existing "Parent object" with the code OperatorSingleWindowPage.

I already created a custom package called "Test", as you may notice in the previous screenshots and I can't find anymore information about this problem.

I don't know if the more recent versions of Creatio doesn't support this anymore. I would like to know if I'm doing something wrong and if there is any other way to hide that panel.

The version of the environment I'm using is 8.0.8.4807

Thanks in advance for your help! 

Like 0

Like

2 comments
Best reply

Ryan Farley,

It worked, thank you very much!

Show all comments

Good day! Is there a possibility to save summaries profile data for all users like in 'GridSettingsPage'? Permission for such operation must be available only for system administrators

Like 1

Like

1 comments

Hello Sandra,

 

There is no OOB tool that can help you to achieve your business task but you can do some inserts via SQL tools. The table that you need is called 'SysProfileData' and the Key that you need is called 'Section-Account-MainGrid-Summary'. So having this information you can do the insert for some specific Contacts in the system.

Show all comments

Hello!

 

I have these 3 buttons that I want to hide or remove on a condition.

 

This is the code that removes them. 

 

If the Ownership Status (added in the attributes) is 'Inactive', then these buttons should dissapear.

 

Does anybody know how I can do this on a condition in diff?

Like 0

Like

2 comments
Best reply

First of all, rather than using operation: remove, change that to operation: merge, which will let you modify the properties of the element. Then, you'll bind the visible property of them to an attribute. To show or hide them, you'll set the attribute to true or false. See this article here for more details: https://customerfx.com/article/how-to-enable-or-disable-a-field-on-a-pa…

Also, to set the attribute to true or false, you'll either need to add that to a change event for whatever fields use the conditions or when the page opens, using the onEntityInitialized function. To base it on the selection of fields, you can wire a change event as shown here: https://customerfx.com/article/triggering-an-event-when-a-field-is-chan…

Info on the onEntityInitialized function and other basic info on working with page code here: https://customerfx.com/article/getting-started-with-writing-code-for-bp…

Hope this helps get you started.

Ryan

First of all, rather than using operation: remove, change that to operation: merge, which will let you modify the properties of the element. Then, you'll bind the visible property of them to an attribute. To show or hide them, you'll set the attribute to true or false. See this article here for more details: https://customerfx.com/article/how-to-enable-or-disable-a-field-on-a-pa…

Also, to set the attribute to true or false, you'll either need to add that to a change event for whatever fields use the conditions or when the page opens, using the onEntityInitialized function. To base it on the selection of fields, you can wire a change event as shown here: https://customerfx.com/article/triggering-an-event-when-a-field-is-chan…

Info on the onEntityInitialized function and other basic info on working with page code here: https://customerfx.com/article/getting-started-with-writing-code-for-bp…

Hope this helps get you started.

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

I have this Action Item and onClick of it, want to trigger a Business Process. How can this be achieved?

 

Thanks

Like 0

Like

2 comments

Dear Anu, 



Can you please specify with more details on how exactly would you like to trigger the process? 



Thank you. 

AnuRoman Brown,



Here is the Academy article to call the BP (Business Process) from the Action items menu.

https://academy.creatio.com/docs/developer/integrations_and_api/busines…

 

Sample,

 

define("AccountPageV2", ["ProcessModuleUtilities"], function(ProcessModuleUtilities) {
    return {
        entitySchemaName: "Account",
        methods: {
            // Проверяет, заполнено ли поле [Основной контакт] страницы.
            isAccountPrimaryContactSet: function() {
                return this.get("PrimaryContact") ? true : false;
            },
            // Переопределение базового виртуального метода, возвращающего коллекцию действий страницы редактирования.
            getActions: function() {
                var actionMenuItems = this.callParent(arguments);
                actionMenuItems.addItem(this.getActionsMenuItem({
                    Type: "Terrasoft.MenuSeparator",
                    Caption: ""
                }));
                actionMenuItems.addItem(this.getActionsMenuItem({
                    "Caption": { bindTo: "Resources.Strings.CallProcessCaption" },
                    "Tag": "callCustomProcess"                
                }));
                return actionMenuItems;
            },
            // call you porcess
            callCustomProcess: function() {
                var contactParameter = this.get("PrimaryContact");
                var args = {
                    // Process name
                    sysProcessName: "UsrCustomProcess",
                    // parameters process
                    parameters: {
                        ProcessSchemaContactParameter: contactParameter.value
                    }
                };
                // run process
                ProcessModuleUtilities.executeProcess(args);
            }
        }
    };
});





BR,

Bhoobalan Palanivelu

Show all comments

Hello Comunity! 

 

I know in the last version is restricted the replace of the modules. There is a way to create a new module for LeftPanelTopMenuModule? where is calling this module to remplace the client schema with the new module?

 

Regards,

 

Like 0

Like

4 comments

Hello Frederico,

 

I have the steps written up to override a module here: https://customerfx.com/article/overriding-modules-in-creatio-formerly-bpmonline/

 

Ryan

Ryan Farley,

Thanks Rayan. Regards,

Hello Frederico,

 

Hope you're doing well.

 

Thanking Ryan for creating and sharing the useful article. We can confirm that the steps described in the mentioned instruction can be used for overriding the needed module.

 

At the same time, we don't recommend this way because in the case when you have more than 2 overriding modules, it will not work properly or won't work at all.

 

Best regards,

Roman

Roman Rak,



Since you don't recommend this way, may I know any other way to do this?



Regards,

Solem.

Show all comments

I have read this article regarding adding multiple value to a detail.

Link - https://academy.creatio.com/documents/technic-sdk/7-15/adding-multiple-records-detail

 

 

But I do not understand these variable values. The opportunity and contact are the sections that are already created in the system. I want to know what values should I put in custom detail schema.

 

Details of Objects (every object is custom) -

  1. Client section with a detail of Partners
  2. Partners detail is made from Partner section

I want to change the Partner detail in Client to add multiple records. But I do not understand what should be the values of rootEntitySchemaName, rootColumnName, relatedEntitySchemaName, relatedColumnName.

 

Can anyone please help in this matter?

 

Thanks 

Ram

Like 0

Like

4 comments
Best reply

Hello Ramnath,

 

rootEntitySchemaName is the name of the parent object. This is likely the object for the page where the detail is located, so if the detail is on the Account page, this would be Account

 

rootColumnName is the name of the column on the detail object that relates it to the parent object. In the example of being on the Account page, this would be the name of the column on the detail object that is the account lookup, such as UsrAccount

 

relatedEntitySchemaName is the name of the object you're looking up to add to the detail. So, if the lookup is looking up contacts, this would be Contact

 

relatedColumnName is the name of the column on the detail object that the result from the lookup is stored in. So in the example of looking up contacts, this would be a contact lookup on the detail object, such as UsrContact.

 

Maybe this article will help? https://customerfx.com/article/adding-to-a-detail-from-a-lookup-in-crea…

 

Ryan

Hello Ramnath,

 

rootEntitySchemaName is the name of the parent object. This is likely the object for the page where the detail is located, so if the detail is on the Account page, this would be Account

 

rootColumnName is the name of the column on the detail object that relates it to the parent object. In the example of being on the Account page, this would be the name of the column on the detail object that is the account lookup, such as UsrAccount

 

relatedEntitySchemaName is the name of the object you're looking up to add to the detail. So, if the lookup is looking up contacts, this would be Contact

 

relatedColumnName is the name of the column on the detail object that the result from the lookup is stored in. So in the example of looking up contacts, this would be a contact lookup on the detail object, such as UsrContact.

 

Maybe this article will help? https://customerfx.com/article/adding-to-a-detail-from-a-lookup-in-crea…

 

Ryan

Ryan,

 

Thanks for helping me out.

 

Please guide me in this situation more.

Overview of whole scenario

I created a custom detail in a custom section.  I have created a Section Contacts (neither base object nor replacing object, It is custom made) and Clients Section. Clients section has a detail Contacts. The detail's object name is the Contacts section.

 

Section Page - UsrClients

Detail object - UsrContacts (has lookup of UsrClient for connecting record to UsrClients with other inherited columns present in UsrContacts)

 

Now the name will be

rootEntitySchemaName - UsrClients (section page object name)

rootColumnName - UsrClient  (the referencing lookup present in UsrContacts)

relatedEntitySchemaName - UsrContacts (Section page from where records will be read)

relatedColumnName - UsrContact (lookup present in detail)

 

Now the problem is how can I create a lookup pointing to the same object on which detail is build.

Lookup points to UsrContacts and detail is also created on UsrContacts.

 

RAMNATH SHARMA,

 

The detail should be a separate object. Like in the example on the academy, OpportunityContact object on which the detail is built on contains Opportunity and Contact columns. In your case, you would need to create a separate object for the detail that would contain UsrClients and UscrContacts columns, and build the detail on this object. 

Dennis Hudson,

 

Yes, you are right. I have created a new object with 2 looks fields to add this functionality. And it works.

Thanks

Show all comments

I'm just wondering how to remove the customer need (LeadType) on the opportunity mini-page. The problem is that this customer need field is getting dynamically set with a method on a third-party module. With that being said I can not edit the module and take out the code where it is being set. It is part of the CoreLeadOpportunity package. It is getting set in this code.

			addQueryColumns: function(insertQuery) {
				this.addLookupQueryColumn(insertQuery, {
					columnName: "Account",
					entityColumnName: "QualifiedAccount"
				});
				this.addLookupQueryColumn(insertQuery, {
					columnName: "Contact",
					entityColumnName: "QualifiedContact"
				});
				this.addLookupQueryColumn(insertQuery, {
					columnName: "LeadType",
					entityColumnName: "LeadType"
				});

Any help would be appreciated. Thanks!

Like 0

Like

1 comments

Please create a replacing client module for the OpportunityMiniPage schema. Then remove the fields which aren't needed in the diff block in the newly created replacing client module. Please feel free to use the example below. Note that the isRequired property of the LeadType attribute must be set to false.

define("OpportunityMiniPage", [],

        function() {

    return {

        entitySchemaName: "Opportunity",

        mixins: {

        },

        attributes: {

            "LeadType": {"isRequired": false}

        },

        methods: {

        

        },

        diff: /**SCHEMA_DIFF*/[

            {

                "operation": "remove",

                "name": "LeadType"

            },

            

        ]/**SCHEMA_DIFF*/

    };

});

 

Show all comments

Hi all,

I follow the document in academy to create a custom marketing element https://academy.bpmonline.com/documents/technic-sdk/7-13/adding-custom-transition-flow-new-campaign-element

  • In the section 6 (CREATING THE CAMPAIGNCONNECTORMANAGER REPLACING MODULE FOR ADDING THE FLOW OPERATION LOGIC), it said “create a new module schema replacing the CampaignConnectorManager”
  • I can’t create a “replacing client module“ with another name “TestSmsCampaignConnectorManager”
  • And I can’t inherit that module when I create a module, system said “Substitution of modules is not allowed”. After saved, the parent object “CampaignConnectorManager” will remove when refresh page.

So, what can I do?

Like 0

Like

1 comments

Hi!

In order to override the CampaignConnectorManager module you can create a new module and use "override" as it showed on the screenshot by the link below 

http://prntscr.com/o1pibh



In order to activate the newly created module, you need to define it according to the documentation by the link below.

https://requirejs.org/

Best regards,

Angela

Show all comments