Our company would like to have this Customer field use the Accounts lookup as default instead of the contacts lookup being show first. I would like to 1. remove the contacts lookup, OR 2. simply move the accounts lookup to be first so it is open by default. The problem we are trying to solve is that users are selecting a contact on accident because they don't realize they can toggle over to accounts, and we want them to only use an account for this field.

 

I found this in the OpportunityPageV2 schema and tried to copy this code and paste it in the copy of the scheme that is in the custom package, then I switched positions between Contact and Account so Account was first. This worked temporarily until the next time the system compiled, and now it is back to how it was. How else could I REMOVE the contact part of this lookup or make accounts appear first?

 

        attributes: {

            

            "Client": {

                    "caption": {"bindTo": "Resources.Strings.Client"},

                    "dataValueType": this.Terrasoft.DataValueType.LOOKUP,

                    "isLookup": true,

                    "referenceSchemaName": "Contact, Account",

                    "isRequired": true,

Like 2

Like

1 comments

Dear Mitch,

 

In order to implement the required functionality please do the following:

1. Create a replacing client module for the “OpportunityPageV2” schema. Please find more 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. Add the following code to the schema:

 

define("OpportunityPageV2", [], function(){

    return {

        attributes: {

            "Client": {

                    "multiLookupColumns": ["Account"]

            }

        }    

    };    

});

 

3. Save the schema and enjoy the result:

 

 

Best regards,

Norton

Show all comments

Hello,

How do i remove the "Add link to knowledgebase" menu item on the tools menu of the Attachments detail?

 

Thank you,

Allen

File attachments
Like 0

Like

3 comments
Best reply

Hi Allen, 

 

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 the "FileDetailV2" 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("FileDetailV2", [],
	function(ViewUtilities, ConfigurationConstants, ConfigurationEnums, RightUtilities, DefaultProfileHelper) {
	return {
		methods: {
			/**
			 * ########## ######## ########### ###### ############## ######.
			 * @return {Array} ######## ########### ###### ############## ######.
			 */
			generateButtonMenuItems: function() {
				let itemsConfig = this.callParent();
				const itemsConfigUpdated = (itemsConfig = []);
 
				return itemsConfigUpdated;
		},
	}};
});

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

 

Regards,

Anastasiia

Hi Allen, 

 

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 the "FileDetailV2" 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("FileDetailV2", [],
	function(ViewUtilities, ConfigurationConstants, ConfigurationEnums, RightUtilities, DefaultProfileHelper) {
	return {
		methods: {
			/**
			 * ########## ######## ########### ###### ############## ######.
			 * @return {Array} ######## ########### ###### ############## ######.
			 */
			generateButtonMenuItems: function() {
				let itemsConfig = this.callParent();
				const itemsConfigUpdated = (itemsConfig = []);
 
				return itemsConfigUpdated;
		},
	}};
});

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

 

Regards,

Anastasiia

Anastasiia Markina,

 

Why would you still want to call the parent method? Wouldn't it make more sense to just re-write the method to just return an empty array? e.g.:

define("FileDetailV2", [],
	function() {
	return {
		methods: {
			/**
			 * ########## ######## ########### ###### ############## ######.
			 * @return {Array} ######## ########### ###### ############## ######.
			 */
			generateButtonMenuItems: function() {
				return [];
		},
	}};
});

 

Hi Harvey, 

 

Sure, such a solution is appropriate, too. However, it's always better to use this.callParent method to avoid any issues through future updates. 

 

Thus, this.callParent calls the parent method firstly instead of re-writing or breaking its logic, so this is a safer approach for a client module schema replacement.

 

Regards,

Anastasiia

Show all comments

Users are receiving 2 notifications in the notification center when they should only be receiving one, for example when a new message is received on a case they are following.

 

 

I believe this is because there are two columns on the Notification object called "Created By", one is inherited from Base Object being the parent. Another one is named "Author" with the title "Created By"

 

 

I believe this object was set up like this out of the box, the package and schema is locked. So has anyone else run into this issue? Any suggestions on how I can safely resolve it?

Like 0

Like

0 comments
Show all comments

I added an "Open Edit Page" element to my process. When I got to select which page, the one I am looking for is not an option. I want to open an edit page for my custom section, Change Orders. I have tried having the current package set to Custom, and I've set the current package to my Custom package with the schema I want to use. But I cannot get it to show up in this menu. Can anyone advise what makes certain pages available for this process element?

 

Like 0

Like

3 comments

Hello Mitch,

 

It seems that you have added custom section by development tools, but not via out-of-the-box tools like Section Wizard. For example, I have created new section via standard tools and was able to choose custom section in the process settings:

 

unfortunately, at the moment there is no possibility to choose the Section/Page implemented by development in the Open Edit Page business process element. You can find more information about Open edit page element in the following link:

https://academy.creatio.com/documents/technic-bpms/7-16/open-edit-page-process-element

 

As a workaround we suggest try to use Pre-configured page element and set code of the edit page created using section designer in "Source code" of pre-configured page settings:

 

 

More detailed information about Pre-configured page element in the next link:

https://academy.creatio.com/documents/technic-bpms/7-16/pre-configured-page-process-element

 

Best regards,

Roman

Roman Rak,

Is there a way to get the edit page to automatically open for the user instead of the user needing to click on the business process task?

 

Dear Mitch,

 

Please double check the signal element. Most likely it has active "Run the following element in the background" checkbox. It sets the whole process to the background and that's why the page is not getting opened automatically.

Apart from that, please disable the debug mode. It can influence the proper page loading.

 

Regards,

Dean

Show all comments

Hello,

I have a detail area on a section which lists documents from an external system via a call to a Creatio configuration service.

How do I set up a grid column(like "DocumentName") such that it can be clicked on and can make a call to a configuration service via service helper?

Thanks for you help.

 

Like 0

Like

1 comments

Dear Allen, 

 

You can do it by extending or overriding class Terrasoft.Grid (you can find it in the web console, you won't be able to find it in configuration) and changing the method formatCellContent to call formatCellLink, forming the link in a way that it would call the needed service with needed parameters when you need it to do so. You can debug method formatCellContent and see how it works in OOB version and create your own based on that. Unfortunately, we don't have examples of such implementation. 

Please see the following articles on how to override modules: 

https://community.creatio.com/questions/substitutionreplacing-modules

https://community.creatio.com/questions/change-task-displayed-fields

 

Best regards, 

Dennis 

Show all comments

Does anyone know the purpose of the overriding of the deleteRecords method in Step 3 of the following Academy article on using a modal lookup window to populate a detail? https://academy.creatio.com/documents/technic-sdk/7-15/creating-detail-selection-lookup

 

When I remove this, it doesn't seem to have any impact on deleting records from the detail, and I can't tell what it's trying to achieve by lookup at the code and the vanilla deleteRecords method.

Like 0

Like

1 comments

Dear Harvey, 



This part of the code is needed for the correct work of multi-select in the grid of the detail. I would not recommend removing it as various issues with multi-select may occur. 

 

Best regards, 

Dennis 

Show all comments

Hello,

How do we remove or disable the following menu items for a grid in detail area?

  • Select multiple records
  • Apply filter
  • Sort by(i.e. disable all sort options)

 

Like 0

Like

1 comments
Best reply

Hi Allen, 

 

In order to remove "Select multiple records", "Apply filter", "Sort by" you can do the following: 

 

1. Create a replacing client module schema for the detail schema. Here is the article on how you can do it:



https://academy.creatio.com/documents/technic-sdk/7-16/creating-custom-…

 

2. In a replaced client schema, please override method addGridOperationsMenuItems as in the example below:

 

define("UsrSchemac2207388Detail", [], function() {
  return {
    entitySchemaName: "UsrPets",
    details: /SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
    diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
    methods: {
      addGridOperationsMenuItems: function(toolsButtonMenu) {
        const switchGridModeMenuItem = this.getSwitchGridModeMenuItem();
        if (!switchGridModeMenuItem) {
          toolsButtonMenu.addItem(this.getButtonMenuSeparator());
          toolsButtonMenu.addItem(switchGridModeMenuItem);
        }
        const exportToExcelMenuItem = this.getExportToExcelFileMenuItem();
        if (exportToExcelMenuItem) {
          toolsButtonMenu.addItem(exportToExcelMenuItem);
        }
        const fileImportMenuItem = this.getDataImportMenuItem();
        if (fileImportMenuItem) {
          toolsButtonMenu.add("FileImportMenuItem", fileImportMenuItem);
        }
        Terrasoft.each([
          this.getGridSettingsMenuItem(),
          this.getRecordChangeLogMenuItem(),
          this.getObjectChangeLogSettingsMenuItem()
        ], function(buttonConfig) {
          if (buttonConfig) {
            toolsButtonMenu.addItem(this.getButtonMenuSeparator());
            toolsButtonMenu.addItem(buttonConfig);
          }
        }, this);
      },
    },
  };
});



If you want to do that in all details you can override BaseGridDetailV2 and override the method in the same way. 



Best regards, 

Anastasiia

Hi Allen, 

 

In order to remove "Select multiple records", "Apply filter", "Sort by" you can do the following: 

 

1. Create a replacing client module schema for the detail schema. Here is the article on how you can do it:



https://academy.creatio.com/documents/technic-sdk/7-16/creating-custom-…

 

2. In a replaced client schema, please override method addGridOperationsMenuItems as in the example below:

 

define("UsrSchemac2207388Detail", [], function() {
  return {
    entitySchemaName: "UsrPets",
    details: /SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
    diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
    methods: {
      addGridOperationsMenuItems: function(toolsButtonMenu) {
        const switchGridModeMenuItem = this.getSwitchGridModeMenuItem();
        if (!switchGridModeMenuItem) {
          toolsButtonMenu.addItem(this.getButtonMenuSeparator());
          toolsButtonMenu.addItem(switchGridModeMenuItem);
        }
        const exportToExcelMenuItem = this.getExportToExcelFileMenuItem();
        if (exportToExcelMenuItem) {
          toolsButtonMenu.addItem(exportToExcelMenuItem);
        }
        const fileImportMenuItem = this.getDataImportMenuItem();
        if (fileImportMenuItem) {
          toolsButtonMenu.add("FileImportMenuItem", fileImportMenuItem);
        }
        Terrasoft.each([
          this.getGridSettingsMenuItem(),
          this.getRecordChangeLogMenuItem(),
          this.getObjectChangeLogSettingsMenuItem()
        ], function(buttonConfig) {
          if (buttonConfig) {
            toolsButtonMenu.addItem(this.getButtonMenuSeparator());
            toolsButtonMenu.addItem(buttonConfig);
          }
        }, this);
      },
    },
  };
});



If you want to do that in all details you can override BaseGridDetailV2 and override the method in the same way. 



Best regards, 

Anastasiia

Show all comments

Hi Community,

 

Is there any place where I can get the information of all the methods written in BasePage schemas (Record page + Section page)?

Like : onEntityInitialized(), getIncrementCode(), getSectionActions(), getActions(), etc..

Thanks : )

 

Like 0

Like

1 comments

Hi Akshit, 

 

Thank you for contacting us!

 

The link below contains client core library where you are welcome to check BasePage schema methods described:

https://academy.creatio.com/api/jscoreapi/7.15.0/index.html

 

Best regards,

Anastasiia

Show all comments

I created this detail that uses a lookup using this academy article. It is ideal because the case column is a link you can click to go to the case record. However users cannot edit the notes column if I use this approach.

So then, I customized the detail so the list is editable using this academy article. However now as you can see below, the case column IS NOT a link so users cannot click on it to visit the record. The only column I need to be editable is the "Notes" column.

Is there a way I can make the Notes column editable, and still have the case column a link like it was originally?

 

I know one solution would be to use the Detail Wizard to make a standard detail with an edit page instead of customizing it to use a lookup, but are there other options so I can still use the lookup AND allow users to edit the notes? Is there a button I can add to the grid that will allow users to go to an edit page to edit the notes column?

Like 0

Like

1 comments

Dear Mitch,

 

You can use SupplyPaymentDetailV2 as an example of how such functionality can be implemented (for example methods linkClicked and "useLinks").

 

Best regards,

Angela

Show all comments

I think the obvious answer is no, but maybe someone can offer an alternative solution?

My use case:

I have a process with a signal start with a "record deleted" signal (shown in the image below). I would like for the process to read two columns from the deleted record and delete all other records that have those two columns in common. It's not working, trace data shows all 0s for the ids and I'm assuming its because the record is already deleted so it cannot read the columns of the record that started the process? Is that my issue?

 

I have another process (Related Dev Request Added) that starts when a record is added to a detail object that shows relation between two Change (Dev Request) records. For example if you add CR-1000 to a detail on the page of CR-1001, then another record is added by a process to show the inverse relationship (on the record page for CR-1000, the detail will show the relation to CR-1001 also). I want my process below to delete the inverse record that was created by the process if a user manually deletes one, that way the user doesn't have to know they should go and delete the other record on the other page. Since my process below doesn't work, is there an alternative solution anyone can think of?

 

Like 0

Like

2 comments

Hi, I have the same need.

If the process is triggered just BEFORE he record is actually deleted, It could be possible... but I am not sure...

An alternative is to use a "delete" button that actually does not delete the record, but triggers a process instead. This process then does all the cleanup needed, and eventually deletes the record...

Hello Mitch, 



Unfortunately, there is no possibility of using the information from the record deleted to trigger the business process signal.  

This is the known issue when the process created upon deleting some object cannot use the information from the deleted object in it's further elements in the flow.



However, If you want to have process triggered before the record deletion please check this community article: https://community.creatio.com/questions/deleting-process 



Kind regards,

Roman

 

Show all comments