Dear community,

 

When opening the Owner lookup on the contact page, the list is filtered by employees.

https://prnt.sc/111e40e

when we filter the contact page based on the owner lookup, the list is not filtered. Is this normal? What is the logic behind this, because we are unable to choose any of the non-employees contacts in the owner lookup.

How do we force this to only showing the employees?

https://prnt.sc/111e4qy

 

 

Kind regards,

Yosef

Like 0

Like

1 comments

Dear Yosef,

 

Thank you for your question!

 

It seems that the filter that you have applied is not fully set up.

Please refer to this screenshot as an example on how you can filter all Contacts by the Owner field:

 

In case you would need a separate look-up created for your purposes, we would recommend visiting this Academy Article:

https://academy.creatio.com/docs/user/setup_and_administration/system_s…

 

In addition, you may find some useful information about advanced filtering here:

https://academy.creatio.com/docs/user/platform_basics/business_data/fil…

 

Hope this was useful for you!

 

Thank you!

 

Regards,

Danyil 

Show all comments

Hi Team,

Please help me in hiding chat field and making contact field required in activity section for activity type- Task. I tried using business rule in the section but that does not seem to work.

Like 0

Like

1 comments

Hello Gokul,

 

Hope you're doing well.

 

If I understood your request correctly, you need to filter values visibility upon some conditions. Please find the example in this Community Post and try to check the conditions for the needed detail in the next schemas: ActivityDetailV2 (package UIv2), EntityConnectionsDetailV2 (UIv2), EntityConnectionViewModel (UIv2).

 

Please note that the "Project/task" control and the base "Connected to" detail are connected. So in case you want to create your own detail instead of the base one, please remove the "project/task" field too and create your own control for it. 

 

Best regards,

Roman

Show all comments

Hi,



I wanted to have a button on account page that can open a modal with iframe.



Button was done.

Code for modal was done as well.



I created the following.



(Module)

Ext.define("Terrasoft.controls.UsrIntegrateERPIframeControl", {
    extend: "Terrasoft.Component",
    alternateClassName: "Terrasoft.UsrIntegrateERPIframeControl",
    tpl: [
        '<iframe id="{id}" src="{src}" class="{wrapClass}"></iframe>'
    ],
    id: null,
    src: "https://academy.terrasoft.ru/",
    wrapClass: ["usr-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();
    },
    onAfterReRender: 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
        });
    }
});



(Page View Model)

define("UsrERPModalPage", ["UsrIntegrateERPIframeControl", "css!UsrIntegrateERPIframeControl"], function() {
    return {
        attributes: {
            "TestText": {
                dataValueType: Terrasoft.DataValueType.TEXT,
                type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
            }
        },
        messages: {
        },
        methods: {
            init: function(callback, scope) {
                this.callParent(arguments);
            },
            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": "UsrERPModalPage",
                "values": {
                    "generator": function() {
                        return {
                            "className": "Terrasoft.UsrIntegrateERPIframeControl"
                        };
                    }
                }
            },
            {
                "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": "TestText",
                    "caption": "Test text",
                    "layout": {"column": 0, "row": 0, "colSpan": 10}
                }
            }
        ]
    };
});



(Replacing View Model )

define("AccountPageV2", ["AccountPageV2Resources", "MaskHelper"], function(MaskHelper) {
  return {
    entitySchemaName: "Account",
    methods: {     
      subscribeSandboxEvents: function() {
        this.callParent(arguments);
        this.sandbox.subscribe("GetModuleInfo", this.getGenerateQouteModalBoxConfig, this,
                               [this.getGenerateQouteModalBoxId()]);
 
      },
      getGenerateQouteModalBoxConfig: function() {
        return {
          "schemaName": "UsrERPModalPage",
          "modalBoxSize": {
            "width": "680px",
            "height": "400px"
          }
        };
      },
      getGenerateQouteModalBoxId: function() {
        return this.sandbox.id + "_GenerateQouteModalBox";
      },
      onGenerateQouteButtonClick: function() {
        this.sandbox.loadModule("ModalBoxSchemaModule", {
          id: this.getGenerateQouteModalBoxId()
        });
      }
    },
    diff: [   // Adding the button.
      {
        "operation": "insert",
        "parentName": "LeftContainer",
        "propertyName": "items",
        "name": "GenerateQouteSectionButton",
        "values": {
          itemType: Terrasoft.ViewItemType.BUTTON,
          caption: { bindTo: "Resources.Strings.OpenERPGenerateQouteButtonCaption" },
          click: { bindTo: "onGenerateQouteButtonClick" },
          style: Terrasoft.controls.ButtonEnums.style.BLUE    
        }
      },   
    ]
  };
});

Then I compiled (my package) but I got this error.

{ message: "Message GetModuleInfo is not defined in CardModuleV2 (SectionModuleV2_AccountSectionV2_CardModuleV2) module" }



Then I log-out, flush Redis, login again, compile all but still received the same error.



References:

https://community.creatio.com/articles/add-iframe-modalbox

https://community.creatio.com/questions/open-iframe-floating-page



Best Regards,

Solem

Like 0

Like

1 comments
Best reply

Hi Solem,

 

In the AccountPageV2 schema you do also need to create several messages were not mentioned in the original community post https://community.creatio.com/articles/add-iframe-modalbox since Excel report builder marketplace app was chosen as a page for an example where I think these messages are declared:

 

{
				"GetMasterEntitySchema": {
                        direction: Terrasoft.MessageDirectionType.SUBSCRIBE,
                        mode: Terrasoft.MessageMode.PTP
                                    },
     			 "UsrUploadFileClick": {
						direction: Terrasoft.MessageDirectionType.SUBSCRIBE,
                        mode: Terrasoft.MessageMode.PTP
                 },
          		"GetModuleInfo": {
                         direction: Terrasoft.MessageDirectionType.SUBSCRIBE,
                         mode: Terrasoft.MessageMode.PTP
                                    }
 
      },

As a result the button started to display the IFrame as needed:

Best regards,

Oscar

Hi Solem,

 

In the AccountPageV2 schema you do also need to create several messages were not mentioned in the original community post https://community.creatio.com/articles/add-iframe-modalbox since Excel report builder marketplace app was chosen as a page for an example where I think these messages are declared:

 

{
				"GetMasterEntitySchema": {
                        direction: Terrasoft.MessageDirectionType.SUBSCRIBE,
                        mode: Terrasoft.MessageMode.PTP
                                    },
     			 "UsrUploadFileClick": {
						direction: Terrasoft.MessageDirectionType.SUBSCRIBE,
                        mode: Terrasoft.MessageMode.PTP
                 },
          		"GetModuleInfo": {
                         direction: Terrasoft.MessageDirectionType.SUBSCRIBE,
                         mode: Terrasoft.MessageMode.PTP
                                    }
 
      },

As a result the button started to display the IFrame as needed:

Best regards,

Oscar

Show all comments

Hi Community,

In mobile application I have a button "Terminar" that when I press it I want run a process from my process library in Creatio.

To implement this button I created the following component and a function "onClickMeButtonClick", that is responsable for executing the process after pressing the button. To execute the process I used "Terrasoft.configuration.ProcessModuleUtilities", but I'm not sure if this is the best way to implement this example.

Any idea on how to develop this logic?

 

Thanks an advance.

 

Best Regards,

Daniel Longo

Like 0

Like

2 comments

Hello Daniel,

 

The mobile application UI doesn't support working with business processes and processes are only triggered on the server side in real-time once the record is modified in the mobile application or record is added (and correspondent start signals are present in some process).

 

Our core R&D team already has a task to make it possible to work with business processes from the UI directly and I will also let them know about your post so to prioritize the task for them.

 

Thank you for helping us in making the app better!

 

Best regards,

Oscar

Thank You Oscar.

I think it is a important feature for the application, so that the actions of the buttons can be dynamic and don't just give it "Message Alerts".

 

Best Regards,

Daniel Longo

Show all comments

Dear Community,

 

I am using EntityEventListener to update a connected record of a records before deleting it using the following method:

public override void OnDeleting(object sender, EntityBeforeEventArgs e)

But when deleting the record it says there is connected records, I think this is linked to the count I am doing to check the number of records that match a condition.

 

Here the full code :

[EntityEventListener(SchemaName = "Activity")]
public class ActivityEventListener : BaseEntityEventListener
{
 
        public override void OnDeleting(object sender, EntityBeforeEventArgs e)
        {
                base.OnDeleting(sender, e);
                Entity activity = (Entity)sender;
                var userConnection = activity.UserConnection;
	        var accountId = activity.GetTypedColumnValue<Guid>("AccountId");
                var activityId = activity.GetTypedColumnValue<Guid>("Id");
                int count = CountNumberOfActivityRdv(accountId, userConnection);
	        Guid ContactClientOuRepresentantNon = new Guid("f550b45d-093e-43ba-bdd1-bc0bd43c8e16");
 
	        if (count > 0)
	        {
                        var update = new Update(userConnection, "Account")
                            .Set("ContactClientOuRepresentantId", Column.Parameter(ContactClientOuRepresentantNon))
                            .Where ("Id").IsEqual(activityId.ToString());
                        update.Execute();
	        }
        }
 
        public int CountNumberOfActivityRdv(Guid accountId, UserConnection userconnection)
        {
	        int count = 0;
                var select = new Select(userconnection)
                        .Column(Func.Count("Id"))
                    	.From("Activity")
                        .Where("ActivityCategoryId").IsEqual("42c74c49-58e6-df11-971b-001d60e938c6")
                	.And("AccountId").IsEqual(accountId.ToString()) as Select;
 
                count = select.ExecuteScalar<int>();
 
	        return count;
        }

 

Do I have to clear the cache or set the select to null ?

Like 0

Like

8 comments
Best reply

Oscar Dylan,

 

I've done it differently, when deleting the activity I send a message with the accountId linked to the activity deleted, and I catch it in the account edit page to do the necessaries processing. I had no problem with this method. Here is the code I've made for the sake of it.

onActivityDeletedReceived: function(scope, message) {
                var sender = message &amp;&amp; message.Header.Sender;
                // make sure the message received is the one you sent
                if (sender === "ActivityDeleted") {
                 	 // if you sent some data with the message you can get it from the message Body
                    var MessageText = message.Body;
					var array = [];
                    var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
                    rootSchemaName: "Activity"
                    });
                    // Add column with account name that refers to given account.
                    esq.addColumn("Id", "Id");
                    esq.addColumn("Account.Id", "AccountId");
 
                  	esq.filters.logicalOperation = Terrasoft.LogicalOperatorType.AND;
                  	var esqAccountFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Account.Id", MessageText);
                  	var esqRdvFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "ActivityCategory.Id", "42c74c49-58e6-df11-971b-001d60e938c6");
					var esqRealiseFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Status.Id", "4bdbb88f-58e6-df11-971b-001d60e938c6");
 
 
                  	esq.filters.add("esqAccountFilter", esqAccountFilter);
                  	esq.filters.add("esqRdvFilter", esqRdvFilter);
					esq.filters.add("esqRealiseFilter", esqRealiseFilter);
                    // Get entire record collection
                    esq.getEntityCollection(function (result) {
                        if (!result.success) {
                            // error processing/logging, for example
                            this.showInformationDialog("Data query error");
                            return;
                        }
                        result.collection.each(function (item) {
                           array.push(item.get("AccountId"));
                        });
                      	if(array.length === 0)
                        {
							this.set("ContactClientOuRepresentant", {value:"f550b45d-093e-43ba-bdd1-bc0bd43c8e16" , displayValue:"Non"});
							this.save({isSilent:true});
                        }
                    }, this);
				}
            },

Regards,

 

Arthur

Hello Arthur,

 

And which connected records does the system show you? Also what happens when you drop the select result to null?

 

Best regards,

Oscar

Oscar Dylan,

 

When the screen of the connected records pop-up and I click to check the records there is nothing.

 

Also, when I set the result to null the same thing happen.

 

Regards,

 

Arthur

Arthur Hertz,

 

What is the result of the 

 

select top 5 * from MultiDeleteQueue

order by CreatedOn desc

 

right after trying to delete a record (message column values needed)? Also what error message do you receive in the application logs?

 

Best regards,

Oscar

Oscar Dylan,

 

I've put the csv file of the request in the post and also in the application logs in the "MultiDelete.log" file it's telling me this :

 

Terrasoft.Common.DbOperationException: L'instruction DELETE est en conflit avec la contrainte SAME TABLE REFERENCE "FKPkYRMonMU4O22bg1UtAWBnc3Y8". Le conflit s'est produit dans la base de données "MetropoleGestion", table "dbo.Activity", column 'ActivityConnectionId'.

 

File link : https://linkintouch-my.sharepoint.com/:x:/g/personal/ahertz_linkintouch_fr/ETEWcqG_sjxBtWFBLG7w0N8B5kXRMSIcl8gmZNvtBY-UKw?e=GhYepw

 

Regards,

 

Arthur

Arthur Hertz,

 

And can you please perform this select:

 

select ActivityConnectionId from Activity where Id = 'Id of the activity you delete'

 

and

 

select Id from Activity where ActivityConnectionId = 'Id of the activity you delete'

 

?

 

Seems that this column is not empty for some activity and uses its value as a reference for the activity you delete. 

 

Best regards,

Oscar 

Oscar Dylan,

 

 

The first request ActivityConnectionId is equal to NULL and for the second one there are no records.

 

Regards,

 

Arthur

Arthur Hertz,

 

Then you need to connect your local app to the IDE and debug the execution of deletion in the Visual Studio. There is something with the delete that is provoked by the code you've developed and you need to debug this logic.

 

Best regards,

Oscar

Oscar Dylan,

 

I've done it differently, when deleting the activity I send a message with the accountId linked to the activity deleted, and I catch it in the account edit page to do the necessaries processing. I had no problem with this method. Here is the code I've made for the sake of it.

onActivityDeletedReceived: function(scope, message) {
                var sender = message &amp;&amp; message.Header.Sender;
                // make sure the message received is the one you sent
                if (sender === "ActivityDeleted") {
                 	 // if you sent some data with the message you can get it from the message Body
                    var MessageText = message.Body;
					var array = [];
                    var esq = Ext.create("Terrasoft.EntitySchemaQuery", {
                    rootSchemaName: "Activity"
                    });
                    // Add column with account name that refers to given account.
                    esq.addColumn("Id", "Id");
                    esq.addColumn("Account.Id", "AccountId");
 
                  	esq.filters.logicalOperation = Terrasoft.LogicalOperatorType.AND;
                  	var esqAccountFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Account.Id", MessageText);
                  	var esqRdvFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "ActivityCategory.Id", "42c74c49-58e6-df11-971b-001d60e938c6");
					var esqRealiseFilter = esq.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Status.Id", "4bdbb88f-58e6-df11-971b-001d60e938c6");
 
 
                  	esq.filters.add("esqAccountFilter", esqAccountFilter);
                  	esq.filters.add("esqRdvFilter", esqRdvFilter);
					esq.filters.add("esqRealiseFilter", esqRealiseFilter);
                    // Get entire record collection
                    esq.getEntityCollection(function (result) {
                        if (!result.success) {
                            // error processing/logging, for example
                            this.showInformationDialog("Data query error");
                            return;
                        }
                        result.collection.each(function (item) {
                           array.push(item.get("AccountId"));
                        });
                      	if(array.length === 0)
                        {
							this.set("ContactClientOuRepresentant", {value:"f550b45d-093e-43ba-bdd1-bc0bd43c8e16" , displayValue:"Non"});
							this.save({isSilent:true});
                        }
                    }, this);
				}
            },

Regards,

 

Arthur

Show all comments

Hi Community?

I want to hide some column filters, like I show in image below, since I have many columns in this object.

Does anyone know if there's any way to hide it? I'm not finding any documentation about it.

Thanks in Advance.

 

Best Regards, 

Daniel Longo

Like 0

Like

1 comments

Hello Daniel,

 

This is a core application logic and it's not possible to hide these columns. However you can use the "Search for filter column" option that was developed to find the needed filter column fast.

 

Best regards,

Oscar

Show all comments

Hi,

I have installed the Template " Calculation of  .... Business Days" .

I want to use it to calculate the end date from a start date + 10 Business days. How to install this in a business process as I want to work with  a Calendar based on Dutch Business Days. If possible some additional insight in the business process to be made.

The 'Get number of business days' user task helps to define how many working days passed between two dates. The mandatory parameters are as follows:

  • Calendar - calendar used to determine days off; How to settle the correct days off for The Netherlands
  • Start date; 
  • End date.
Like 0

Like

4 comments

Hi, Guido.

 

 

Please go to the "Lookups" section, find the "Calendars" lookup and add your calendar with Dutch business days. After that go to the "Process library" section, add a new "User task" element to your business process and select the respective user task in the element settings.

Ivan Leontiev,

Dear Ivan,

We have the following process:

1. Calculate the Determination date out of the "collection date" (each Month of a year).

2. The determination date is always 11 days after the Collection date. 

3. I have changed the Calendar including Bank Holidays

4. I have used the User Task element.

Please have a look at the screen shot

 

 

Overview process

Hi Guido,

 

 

Please update the 'User task' element as follows:

 

1. Populate the 'Calendar' parameter with a lookup value. 

2. Leave the 'End date' parameter empty. This parameter will be calculated and populated after the element completion.

 

You also need to make sure the 'Modify determination date' element reads the 'End date' parameter from the 'User task' element. Configure the 'Modify determination date' element as follows:

 

Thank you. The solution works ok.

Show all comments

Dear community,

 

How do you import data without creating any records? The main goal is to only update records.

 

Example:

We import a list of contacts with upated emails but it's possible that someone has changed their names. These people shouldn't be created in creatio but rather ignored. (matching column is name)

Is this possible and what's the best practice?

 

 

Kind regards,

Yosef

Like 0

Like

4 comments

Hello Yosef, 



Your request can be done properly in case you have 1 stable and unique column for records in the excel file and in a system as well.

Let’s imagine the following situation: 

You have an excel file that contains “Full name”, “Email” and (some kind of unique identifier) “Birth name/Birth time” column and other columns which we may disregard. And we save the conditions described in your message: you need to update the email address and you know that some Contact names are different from the one you have in a system (ex. Alex instead of Alexander). In order to perform the import, follow the steps below:

1.  Data import – Select the needed file – Where do you want the date imported to? – Contact – Next

2.  Specify column mapping between Excel file and the system: Full name – Full name; Email – Email; Birth time - Birth time. And un-press other columns in case no update is requested for them. 

3.  Specify the duplicates search rule for data import to the system.

Important! Here you should choose only your column with unique identifier (“Birth time”), so no duplicates will be created and the existing records will be updated with information from the file. And one more thing to mention, the “Full name” column will be updated along with the “Email” column as well, but as it’s same contact and based on your comments I can assume that it’s not an issue if the changes in name are minor and relevant (Alex instead of Alexander). 

 You can consider this as an example, it can be applied to a very specific case as yours, described in detail, but I do understand that it’s a bit hard to apply to a very a general occasion. 

As of now there is no mechanism to make the system blind to the records with minor changes or implement a set of rules for AI to choose which records to ignore.

Hope, this helps.



Best regards, 

Anastasiia

Anastasiia Zhuravel,

Hi Anastasiia,

 

Thank you for your reply but in this case people with the same birth time(?) will be considered as the same person I think.

 

 

And this doesn't cover contacts that never existed in the system before.

So another example would be:

- Creatio has 3 000 contacts

- Import file has 20 000 contacts

goal = Update 3 000 contacts without creating 17 000 other contacts

 

The only solution I can think of would be to export all contacts, make a match in excel and then import only the ones that matched. 

 

 

Kind regards,

Yosef

 

 

Dear Yosef, 



That’s why I have emphasized that the column chosen for “Duplicate search” should be stable and unique identifier for the records and yes, that’s the point of a Duplicate search - the records with same value in the column will be considered as the same record so it’ll prevent system from creating duplicates and the information in other columns will be simply updated. 

Based on your second example I would agree that the most appropriate way is first to “cut off” the irrelevant 17000 contacts and after that import only the needed records to the system to update the information.

 

Best regards, 

Anastasiia

Anastasiia Zhuravel,

Hi,

I try importing data to Creatio, I checked the ID for the duplicate but I get an error - Row 117: Violation of PRIMARY KEY constraint 'PKM6wloFxzp2AiW27IF5551t48'. Cannot insert duplicate key in object 'dbo.Product'.

why is this not modifying the record?

Thanks, Chani

Show all comments

Hello

 

I have made a custom action in a custom section which opens the Employee section as pop-up and the selected Employee will be having an activity assigned to him(through business process whose Code is put in the action's On click attribute).

This is done for assignment of Field Sales agent a bulk of addresses for visit.

But I want only activities assigned to a particular Employee visible to him, other Employee's activities should not be visible to him. Only administrator should be able to see all the activities.

I have also used Access Rights element in process but not working as expected.

I have attached screenshots for more understanding.

 

Custom Action:

 

Open Employee section pop-up:

 

Created Activity Records:

 

Access rights element in process:

In this, the signal is set to when an activity record is added.

The access rights element removes permission from all Employees and then grants permissions to that assigned Employee.

Like 0

Like

3 comments

Hi Malay,

So what seems to be the issue? The process doesn't remove the rights from activity or doesn't assign them to the required employee?

 

Thanks.

Dean

dean parrett,

 

Thanks for the reply.

Yes, It is not working as it should. Right now, all employees can see and edit the records assigned to other employees.

 

Thanks,

 

Malay

Hi Malay,

 

I suggest you to approach the support team. It is necessary to look through the all rights settings as well as the process. You will get the solution faster in this case.

 

Regards,

Dean

Show all comments

Hi,



So have this default Opportunity Section which we edited to change the UI for creating a New Record (see image for reference). Then we change it in a way that choosing customer can only be through accounts, which we are having the prompt error actually.







Question

After checking all the previous version of OpportunityPageV2, I can't find anything that prompts this error, any thoughts/comments?

Like 0

Like

2 comments
Best reply

Hi,



I'm able to afford to fix my problem via the following code segment. I both declared this in minipage and pagev2 of opportunity.

          "Client": {
            "caption": {"bindTo": "Resources.Strings.Client"},
            "dataValueType": Terrasoft.DataValueType.LOOKUP,
            "multiLookupColumns": ["Account"],
            "isRequired": false
          },

Thanks a lot!

Hello Solem,

 

Hope my message finds you well.

 

You can check the Opportunity object and find the 'Customer' column, then disable the requirement for this field to be populated. Also, you can use Section Wizard / Page Designer to find the configuration for the mentioned column. Additionally, if you use the mini-page for the Opportunity section, there also need to disable the requirement for the Customer field.

 

Best regards,

Roman

Hi,



I'm able to afford to fix my problem via the following code segment. I both declared this in minipage and pagev2 of opportunity.

          "Client": {
            "caption": {"bindTo": "Resources.Strings.Client"},
            "dataValueType": Terrasoft.DataValueType.LOOKUP,
            "multiLookupColumns": ["Account"],
            "isRequired": false
          },

Thanks a lot!

Show all comments