Dear community,

 

How do I add a new custom drop down button (like action button) in activity section?

The idea is to group functionalities under each button so as to have a clean UI.

 

Thanks in advance!

Like 0

Like

1 comments

Dear Shivani,

 

Thank you for your question!

You may visit these links below in order to achieve the result you are looking for:

1. https://academy.creatio.com/documents/technic-sdk/7-16/adding-action-ed…

2. https://community.creatio.com/questions/add-new-button-action-button-me…



Hope this helps!



Thank you and have a great day!



Regards,

 

Danyil

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

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, I've used this application before and my understanding is that it should create an activity per each account that is part of the selected segmentation (account folder). 

I did so, but when I activate the process, it only creates 1 activity for just1 account. I tried several different folders, and the result is the same. Am I missing something or is this an issue? Thanks for any suggestions! 

Like 0

Like

2 comments

Diego,

 

Can you please give a bit more details on your actions? Can you please share some screenshots of the issue?

 

Thanks.

 

Dean

Thanks Dean and sorry the delay responding. Here's a link to the video https://www.dropbox.com/s/g23lwhtykzbxuy6/Visit%20Campaign.mp4?dl=0

You will see that I use a filter of 2 accounts but when I activate Campaign Visits for this filter, only the first account receives the first account "Realway" receives the activity, not the second. No matter how many accounts the filter has, it does always the same. Thank you! 

Show all comments

Dear community

 

I tried to import the Account.Parent column the import is finished without error, but in the "connect to" tab of page account no relationship between the two account imported is showed.

I checked in the RelationshipConnection table and no records are imported.

In the past on a environment with 7.16 version everything worked fine.

What Do I'm doing wrong?

 

Like 0

Like

5 comments

The new Connected To tab in 7.17 doesn't use the Parent column on the account - it has a new table structure that works for both accounts and contacts. You can add the previous Connected To detail on the page and it will show the account relationships using the Parent column. 

Ryan

Dear Stefano,

 

Thank you for your question!

 

You may feel free to refer to Ryan`s answer above.

 

Ryan, thank you very much for your dedication!

 

Have a great day team!

 

Regards,

Danyil

Danyil Onoprienko,

 

thank you all,

If I would like to use the new features which tables should I import ?

This is an sql script that creates for an account with parent column set the right records in the new relationship tables.

DO $$ 
declare
  SchemaId uuid;
  AuthorId uuid := '410006e1-ca4e-4502-a9ec-e54d922d2c00'; -- supervisor
  RelationTypeId uuid;
begin 
    -- Get Schema Account
    SELECT "UId"
    FROM "SysSchema"
    WHERE "Caption" = 'Account'
        AND "ExtendParent" = false
    INTO SchemaId;
 
    -- Get relation
    SELECT "Id"
    FROM "RelationType"
    WHERE "Name" = 'Holding company'
    INTO RelationTypeId;
 
    CREATE TEMP TABLE "Entities" (
        "EntityIdA" uuid
        , "EntityIdB" uuid
        , "RelationshipDiagramId" uuid
        , "AuthorId" uuid
        , "RelationshipEntityAId" uuid
        , "RelationshipEntityBId" uuid
        );
 
    INSERT INTO "Entities" (
        "EntityIdA"
        , "EntityIdB"
        , "RelationshipDiagramId"
        , "AuthorId"
        , "RelationshipEntityAId"
        , "RelationshipEntityBId"
        )
    SELECT a."ParentId" AS "EntityIdA"
        , a."Id" AS "EntityIdB"
        , uuid_generate_v4() AS "RelationshipDiagramId"
        , AuthorId AS "AuthorId"
        , NULL AS "RelationshipEntityAId"
        , NULL AS "RelationshipEntityBId"
    FROM "Account" a
    WHERE a."ParentId" IS NOT NULL
        AND NOT EXISTS (
            SELECT 1
            FROM "RelationshipConnection" rc
            JOIN "RelationshipEntity" ea
                ON rc."RelationshipEntityAId" = ea."Id"
            JOIN "RelationshipEntity" eb
                ON rc."RelationshipEntityBId" = eb."Id"
            where ea."RecordId" = a."ParentId"
            and eb."RecordId" = a."Id"
            );
 
    INSERT INTO "RelationshipDiagram" (
        "Id"
        , "CreatedById"
        , "ModifiedById"
        )
    SELECT ee."RelationshipDiagramId"
        , ee."AuthorId" AS CreatedById
        , ee."AuthorId" AS ModifiedById
    FROM "Entities" ee;
 
    -- Entity A
    INSERT INTO "RelationshipEntity" (
        "RecordId"
        , "CreatedById"
        , "ModifiedById"
        , "SchemaUId"
        )
    SELECT ee."EntityIdA"
        , AuthorId AS CreatedById
        , AuthorId AS ModifiedById
        , SchemaId
    FROM "Entities" ee
    WHERE NOT EXISTS (
            SELECT 1
            FROM "RelationshipEntity" re
            WHERE re."RecordId" = ee."EntityIdA"
            );
 
    -- Entity B
    INSERT INTO "RelationshipEntity" (
        "RecordId"
        , "CreatedById"
        , "ModifiedById"
        , "SchemaUId"
        )
    SELECT ee."EntityIdB"
        , AuthorId AS CreatedById
        , AuthorId AS ModifiedById
        , SchemaId
    FROM "Entities" ee
    WHERE NOT EXISTS (
            SELECT 1
            FROM "RelationshipEntity" re
            WHERE re."RecordId" = ee."EntityIdB"
            );
 
    -- Update data in temp table
    UPDATE "Entities" ee
    SET "RelationshipEntityAId" = re."Id"
    FROM "RelationshipEntity" re
    WHERE ee."EntityIdA" = re."RecordId";
 
    UPDATE "Entities" ee
    SET "RelationshipEntityBId" = re."Id"
    FROM "RelationshipEntity" re
    WHERE ee."EntityIdB" = re."RecordId";
 
    -- RelationEntInDiagram
    INSERT INTO "RelationEntInDiagram" (
        "CreatedById"
        , "ModifiedById"
        , "RelationshipDiagramId"
        , "RelationshipEntityId"
        )
    SELECT ee."AuthorId" AS CreateById
        , ee."AuthorId" AS ModifiedBy
        , ee."RelationshipDiagramId"
        , ee."RelationshipEntityAId"
    FROM "Entities" ee;
 
    -- RelationEntInDiagram
    INSERT INTO "RelationEntInDiagram" (
        "CreatedById"
        , "ModifiedById"
        , "RelationshipDiagramId"
        , "RelationshipEntityId"
        )
    SELECT ee."AuthorId" AS CreateById
        , ee."AuthorId" AS ModifiedBy
        , ee."RelationshipDiagramId"
        , ee."RelationshipEntityBId"
    FROM "Entities" ee;
 
    -- RelationshipConnection
    INSERT INTO "RelationshipConnection" (
        "RelationshipEntityAId"
        , "RelationshipEntityBId"
        , "RelationTypeId"
        )
    SELECT ee."RelationshipEntityAId"
        , ee."RelationshipEntityBId"
        , RelationTypeId AS RelationTypeId
    FROM "Entities" ee;
 
DROP TABLE "Entities";
 
end $$;

 

Stefano Bassoli,

This is fantastic! Thanks for sharing this Stefano!

Ryan

Show all comments

Hello,

 

I want to open a webpage in browser in mobile application by tapping on a custom string field but could not find any solution in academy or community.

 

Regards,

Malay

Like 1

Like

4 comments

Dear Malay,

 

In detail Communication option for accounts and contacts, you can find the communication option Web - after the link is added to it you will be able to click it. To add this logic to your field check the code of this detail in OOB mobile application and mimic it for your field. 

 

Best regards,

Angela

Hello Angela,

 

I have seen this field, but in the advanced settings it is hidden from me as it is a out of the box field. I cannot find it in any lead mobile page or lead edit page v2.

If you have source code for this, please provide me so that I can implement that on my field.

 

Regards,

Malay

Malay,

Check MobileAccountCommunicationModelConfig schema or simular schema for contact section. 

 

Best regards,

Angela

Angela Reyes,

 

I have checked all the schemas related to account and contact, but could not find the definition for that "Web" field which is clickable in mobile.

I have checked the MobileAccountCommunicationModelConfig  also but could not find anything.

 

Regards,

Malay

Show all comments

Dear Community,

 

We have a status lookup in a section edit page. If the value of the look up becomes "Queued" , the INFORMATION_BUTTON must appear. Any other status must make not make the button visible.

 

I have the following code to insert this INFORMATION_BUTTON in Diff array

    {

                "operation": "insert",

                "name": "QueuedInfoChat",

                "values": {

                    "layout": {

                        "colSpan": 7,

                        "rowSpan": 1,

                        "column": 2,

                        "row": 1,

                        "layoutName": "Header"

                    },

                    "itemType": Terrasoft.ViewItemType.INFORMATION_BUTTON,

                    "content": {

                        "bindTo": "Resources.Strings.QueuedStatusChat"

                    },

                    "visible": {

                        "bindTo": "QueuedToolTipChat"

                    }

                },

                "parentName": "Header",

                "propertyName": "items",

                "index": 8

            }

And the attribute

"QueuedToolTipChat": {

                "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,

                "dataValueType": Terrasoft.DataValueType.BOOLEAN,

                "value": true

            }

When I tried setting this attribute to false, the button is still visible. Please see image attached for reference

Any suggestion would help.

 

Thanks in Advance!

Like 0

Like

2 comments

Hello Shivani,

 

"visible" parameter doesn't work for the INFORMATION_BUTTON item type, but I found a workaround. This function was called in the onEntityInitializedFunction:

          	onEntityInitialized: function(){
				this.callParent(arguments);
              	this.checkCondition();
            },

and

checkCondition: function(){
			if (this.get("Name")=="123 2"){
				document.getElementById("ContactPageV2SimpleInfoButtonButton-imageEl").style.display = "none";
            } else {
			return;
            }
          },

where ContactPageV2SimpleInfoButtonButton-imageEl was received from the HTML of the page (this particular Id remains static on the contact page for all contact records):

As a result button successfully disappears in case the name of a contact is "123 2" so you can test the following code on your side.

 

Best regards,

Oscar

Oscar Dylan,

Thank you for your response Oscar. We were able to achieve this through another way as well. Adding the snippet for those who might need it.

The following code is added to Diff array where Resources.Images.QueueInfo - QueueInfo is an image added

{

                "operation": "insert",

                "name": "QueuedInfoChat",

                "values": {

                    "layout": {

                        "colSpan": 2,

                        "rowSpan": 1,

                        "column": 8,

                        "row": 1

                    },

                    "itemType": 5,

                    "hint": {

                        "bindTo": "Resources.Strings.QueuedStatusChat"

                    },

                    "tips": [],

                    "canExecute": {

                        "bindTo": "canBeDestroyed"

                    },

                    "imageConfig": {

                        "bindTo": "Resources.Images.QueueInfo"

                    },

                    "markerValue": "Update-button-QueuedInfoChat",

                    "tag": "Update-button-QueuedInfoChat",

                    "visible": {

                        "bindTo": "QueuedChatVisibility"

                    }

                },

                "parentName": "Header",

                "propertyName": "items",

                "index": 5

            }

The following is added to attributes

"QueuedChatVisibility": {

                "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,

                "dataValueType": Terrasoft.DataValueType.BOOLEAN,

                "value": false

            }

 

Last piece is the method that checks the status. This method is called in onEntityInitialized function

 

    checkChatStatus :function()

            {

                var chatStatus="";

                

                try 

                    {

                        chatStatus = this.get("UsrChatStatus").displayValue;

                    }

                 catch (e) {

                     this.console.log("Chat status not set");

                    

                }

            

                if(chatStatus!==undefined && chatStatus!=="")

                {

                    if(chatStatus==="Queued")

                    {

                        this.set("QueuedChatVisibility",true);

                        this.console.log("Setting tooltip chat true");

                        return true;

                    }

                }

                this.set("QueuedChatVisibility",false);

                this.console.log("setting chat to false");

                return true;

            }

 

Thanks again!

 

Show all comments

Hello,

 

I am trying to get the count of records that are only appearing more than once in a section. I have made the chart dashboard for this but, it is showing single values also which I do not want to be shown. I have attached the dashboard setting page below.

 

In this, the chart is also showing single count values which needs to be hidden. I have searched for a filter condition but could not find anything.

 

Hoping for an early response. 

Like 0

Like

3 comments
Best reply

malay garg,

You need to go to the higher object in the hierarchy to check this connection. The resulting filter depends on where those records appear. In the system, you will be able to check the number of records in a specific section/record, like the number of contacts in one account. 

 

Best regards,

Angela

Dear Malay,

 

Try adding the "Count" filter to the dashboard to show only values that appear more than once. 

 

Best regards,

Angela

I have already tried this, but function 'count' is not available in any condition. I have attached the screenshots of the filters at both places.

 

 

malay garg,

You need to go to the higher object in the hierarchy to check this connection. The resulting filter depends on where those records appear. In the system, you will be able to check the number of records in a specific section/record, like the number of contacts in one account. 

 

Best regards,

Angela

Show all comments

Hello!

 

I am trying to make a boolean field editable based on  another boolean.

Can anyone provide me a code format of business rules for mobile and correct file where to put them.

 

Thanks.

Like 0

Like

6 comments

Hello,

 

You need to create a separate module and then add it to the mobile application manifest (PagesExtensions property of the object model) as described here or here. In this community post, I've provided an example of a business rule that activates a field based on conditions.

 

Best regards,

Oscar

Thanks Oscar,

 

I have got it working.

Hello,

 

I also applied same business rule for a string which needs to be permanently read-only in Order section. So, I have put in the condition column Total amount as negative which will never be true. But, this is not working in mobile.

I have attached that business rule below. I have added this module in the page extensions of Order section also.

 

Terrasoft.sdk.Model.addBusinessRule("Order", {

    ruleType: Terrasoft.RuleTypes.Activation,

    events: [Terrasoft.BusinessRuleEvents.Load, Terrasoft.BusinessRuleEvents.ValueChanged],

    triggeredByColumns: ["JFLOrderOneOffTotal" ],

    conditionalColumns: [

       

      {name: "JFLOrderOneOffTotal", value: "-1.00"} 

    ],

    dependentColumnNames: ["JFLPaymentMandateLink"]

});

 

I want to make "JFLPaymentMandateLink" field read only.

 

Hoping for an early reply.

 

malay garg,

 

Hello,

 

You need to install the emulator to debug the logic (can be found here). You need to check which value if passed for the JFLOrderOneOffTotal column and if the rule is triggered. Also you will need to recycle the application pool after creating a new rule and adding it to the page extensions in the manifest.

 

Best regards,

Oscar

Oscar Dylan,

 

Thanks for the information.

I am looking for a logic to make a Date, String, Integer field read only in mobile.

The column JFLOrderOneOffTotal was chosen because it can never be negative in my implementation, so the affected field would be always read only. 

But, as this is not working , can you please suggest me proper logic to make these fields read only always.

Hoping for an early reply.

 

Regards,

 

Malay.

 

Malay,

 

You are welcome!

 

Yes, you can do it! See the example of my business rule below:

Terrasoft.sdk.Model.addBusinessRule("Account", {
    ruleType: Terrasoft.RuleTypes.Activation,
    events: [Terrasoft.BusinessRuleEvents.Load, Terrasoft.BusinessRuleEvents.ValueChanged],
    triggeredByColumns: ["UsrInteger"],
    conditionalColumns: [
        {name: "UsrInteger", value: 1}
    ],
    dependentColumnNames: ["UsrWaranty","UsrDate","UsrDelivery"]
});

Please note that the business rule name should be the same as the object for which the rule is created (not the module name, but the rule name ("Account" in my case, one of the arguments for the Terrasoft.sdk.Model.addBusinessRule method)). The module itself can have any name you want (in my case it is "UsrAccountReadOnly" that was then added to the manifest:

).

 

As a result all three columns became read-only: UsrWaranty - integer column, "UsrDate" - date column and "UsrDelivery" - string column:

The condition is that columns become unlocked when the UsrInteger column value is 1. Once this rule was created and the application pool restarted and relogin to the mobile app executed the rule started to work as expected. So you need to double-check your rule.

 

Best regards,

Oscar

Show all comments

Hello,

 

I am trying to get a link in Activity section to redirect to Order section directly by tapping on it. I have attached a screenshot ahead.

 

Please let me know how to implement this.

Like 0

Like

1 comments

Hello Malay,

 

Please open the mobile application wizard and simply add the "Orders" section to it:

And relogin to the mobile app.

 

Best regards,

Oscar

Show all comments