Hey Everyone,


I am trying to change the order of the address in full address field in Accounts section of Customer360 creatio. Instead of Zip + Country + State + City + Address I want it as Address + City + State + ZipCode + Country.

 

I tried overriding the BaseAddressEventListener with my custom event listener but it didn't worked

 

Can someone please guide me on how to do it?

Like 0

Like

0 comments
Show all comments

Hi All,

 

Is it possible to create a detail similar to the detail "delivery address" in Order Section that allow user

  1.  to select specific address and 
  2. add new if one is not available (please see attached example image)

 

And does new Freedom UI have this feature?

 

Many thanks.

Like 0

Like

1 comments

Dear Mid,
 

This detail is developed in schema AddressSelectionDetailV2, where you can find the implementation details.
 

In the Freedom UI, this functionality is implemented by using a Contact/Account address as a data source:


Have a great day!

Show all comments

I am trying to import data into account address object. By default Creatio allows the records to map with account object by name column. I need to map using a custom column. When I manually add the Account ID column(GUID) and map it with the account lookup in account address its creating a new record with Creatio GUID as name and mapping the address records to it. How can this be achieved?

Like 1

Like

2 comments

Hi Sivanesan, 

 

If I am understanding your issue correctly, you are importing from excel and trying to map the the Account.ID column but actually mapping to the Account.Name column, which means you're actually creating new records with the GUID as the name. 



What you need to do is when mapping, click on "related objects", find "Account", then select "Id".  Your map should read like the attached. 



Hope that helps. Don't forget to select the "Id" as the unique field to import by. 



 

Thanks for the response Harry. I have a custom ID column (Text ) in the detail table(Account Address) which I have to map to the main table(Account). I have already tried to follow the step you have mentioned for that custom column and tried to import but the import is not processing. And when I checked in the process log it has failed with the error " Terrasoft.Common.ItemNotFoundException: Column by path (prefix) not found in schema Account"

 

 

Show all comments

Why the City, State/Province, and Country fields are not filled for several (18) accounts?

All these accounts have shipping addresses with the city, state, and country filled.

I tried to change a city in address, but that didn't make a change in the Account's City field.

All other accounts (thousands of accounts) have city, state and country filled.

We need the fields to filter accounts.

Like 0

Like

3 comments
Best reply

Yuriy Konstantinov,

please check if the addresses of the 18 accounts are marked as primary. Only those addresses will be synced to the respective account fields.

 

BR,

Robert

Hello Yuriy,



I'm not sure what your question about is.

Are you not able to fill the field in the communication options detail? 



Best regards,

Bogdan

Bogdan,

How does a communication option connects to address? I think it's a different thing

Yuriy Konstantinov,

please check if the addresses of the 18 accounts are marked as primary. Only those addresses will be synced to the respective account fields.

 

BR,

Robert

Show all comments

Hi Community,

I have this situation where I need to update all the AccountAddress records that belong to my Account and have ImdNumerador "0". In order to do that I added the following query:

var updateQuery = Ext.create("Terrasoft.UpdateQuery", {
	rootSchemaName: "AccountAddress"
});
 
var firstFilter = updateQuery.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "Account", this.get("Id")); 
 
var secondFilter = updateQuery.createColumnFilterWithParameter(this.Terrasoft.ComparisonType.EQUAL, "ImdNumerador", 0); 
 
// Filters will be updated by AND logical operator in query filters collection. 
updateQuery.filters.logicalOperation = Terrasoft.LogicalOperatorType.AND;
 
// Adding created filters to collection. 
updateQuery.filters.add("firstFilter", firstFilter);
updateQuery.filters.add("secondFilter", secondFilter);
 
updateQuery.setParameterValue("Primary", false, this.Terrasoft.DataValueType.BOOLEAN); 
updateQuery.setParameterValue("IsInactive", true, this.Terrasoft.DataValueType.BOOLEAN); 
 
updateQuery.execute(function(result){ 
	if(result.success){
		window.console.log("Update Successfull");
	}
},this);

This query is executed everytime I press a button that I've created in AccountPageV2.js.

When I execute this query I get the error bellow:

I'm not understanding this error because:

  • I don't have any validation or rule for my Country field, so this must be a rule that comes with the default Creatio applications.
  • All the records that I'm trying to update have the country field filled in, so I don't know why I'm getting this.

I would like to know why this is happening and how can I fix it.

Thanks in advance.

 

Best Regards,

Pedro Pinheiro

 

Like 0

Like

1 comments

Hi Pedro,

 

The same code connected to the button on our side worked perfectly:

Try opening all the account addresses records for the account where the update error message is returned, try applying any change to each of those addresses records and check if any of them returns an error (one of them or several records should return an error). Once the error is received you can send a screenshot of such an address record and we can check why the error is received together.

 

Best regards,

Oscar

Show all comments

In order to delete an address on Account page, I need to click Actions first, then press the Delete button.

 

I would like to use a hotkey for this. How could I do it? I've seen this question, but don't know how to adapt it to my needs. Should I modify the code of AccountPageV2 for this? How to get the selected address row?

Or maybe this improvement is already planned in Creatio's next releases?

Like 0

Like

1 comments
Best reply

Hello Yuriy, 



In order to implement the requested functionality please create a replacing module for "AccountAddressDetailV2" and override "onGridDataLoaded" method in it ( It's being called after rendering). 

In this method you can retrieve a detail's grid and get the DOM element from it. You can assign your own handler on it's keydown event whcih will call  "this.deleteRecords()" after pressing the needed button. 



Here is the example for the "Delete" button in "AccountAddressDetailV2":



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

    return {

        entitySchemaName: "AccountAddress",

        diff: /**SCHEMA_DIFF*/ [] /**SCHEMA_DIFF*/,

        methods: {

            onGridDataLoaded: function() {

                this.callParent(arguments);

                var grid = this.getCurrentGrid();

                var wrapEl = grid.getWrapEl();

                wrapEl.on("keydown", this.onKeyDown, this);

            },

            onKeyDown: function(event) {

                if (event.keyCode === event.DELETE) {

                    this.deleteRecords();

                }

            }

        }

    };

});



Kind regards,

Roman 

Hello Yuriy, 



In order to implement the requested functionality please create a replacing module for "AccountAddressDetailV2" and override "onGridDataLoaded" method in it ( It's being called after rendering). 

In this method you can retrieve a detail's grid and get the DOM element from it. You can assign your own handler on it's keydown event whcih will call  "this.deleteRecords()" after pressing the needed button. 



Here is the example for the "Delete" button in "AccountAddressDetailV2":



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

    return {

        entitySchemaName: "AccountAddress",

        diff: /**SCHEMA_DIFF*/ [] /**SCHEMA_DIFF*/,

        methods: {

            onGridDataLoaded: function() {

                this.callParent(arguments);

                var grid = this.getCurrentGrid();

                var wrapEl = grid.getWrapEl();

                wrapEl.on("keydown", this.onKeyDown, this);

            },

            onKeyDown: function(event) {

                if (event.keyCode === event.DELETE) {

                    this.deleteRecords();

                }

            }

        }

    };

});



Kind regards,

Roman 

Show all comments