How can we create new package with Clio for .Net Core 3.1?

Like 0

Like

3 comments

Hello Ensar, 



To create new package project, use the next command:

 

 clio new-pkg <PACKAGE_NAME>



Best regards,

Bogdan

This command creates .NET Framework solution, not .NET Standard or Core. Is there any way to select this?

Ensar,

 

This article applies to NET Core 3.1 SDK and later versions. 



Please feel free to check the required information. 



Best regards,

Bogdan

Show all comments

Hello community,

 

I have an opportunity section with a lookup field called OpportunityType. I also have a lookup field called Printable in the same section, which the user will use to tag the opportunity record to a particular printable. 

 

The use case here is that since we have many printables, we would like to filter the printable based on OpportunityType. I am assuming we need to replace the Printable object, add a new lookup column referencing the OpportunityType Lookup. We want this field OpportunityType to be visible on the UI where Printables are configured (Please see below image).

 

Please advise.

Like 0

Like

2 comments

Hello Shivani,

I have an article here that shows how to show or hide printables based on a value on the page. Hopefully this helps you get started: 

https://customerfx.com/article/showing-or-hiding-printables-based-on-a-…

Ryan

Hi Ryan,

 

I am looking for something different. I want to override the printable page schema (The page where we add new printable records) to show a new field as seen in the image I posted earlier.

Do you have any approach pls?

 

Thanks

Show all comments

Hi community,

 

Some of our new orders (usually the maintenance orders) need to include some existing products in other orders (the previous maintenance orders or new purchase order) of the same account. I want its behavior like in adding product in order page (all products from another specified existing order were listed already, you can just edit multiple records and save), then these "selected products" (with quantities>0) will be added to this new order.

 

Thanks in advance.

Andrew

Like 0

Like

2 comments

Hi Andrew, 

 

Thank you for the question, but it is quite hard to understand without an example or more details. Can you please provide some test examples (with orders and products) for us to see how you would like to use this functionality? 

 

Best Regards,

Igor

Ihor Skohariev,

For example, I have an account "Streamline Development" that placed an order (ORD-14) in 2019.

This year she wants to place a maintenance order whose products will include some items in ORD-14.

In this case, what would you do? (Ususally, the maintenance order will include hundreds of items that from the previous orders' products)

Show all comments

Hello team, 

I have a preconfigured page where there is a detail. The use case is a user will select list of records from the detail and I need to process these records. Is there a way to get the selected list of records from the preconfigured page detail?

 

Like 0

Like

4 comments

Hello,



Unfortunately, there is no opportunity to select a few records on the Auto-Generated page. If you need to add a selection of records to the system, you need to specify some filtering conditions by which the Add data element will work.



We have registered your request for our R&D team to include such functionality in one of the upcoming releases. 



Best regards,

Bogdan

Thanks Bogdan, 

If that is the case, I will switch to a multi select lookup detail. Can you please tell me how to filter a multiselect lookup detail?

Dear Shivani,

 

There was a similar question here about the detail filter.

Bogdan,

Thanks Bogdan, I was looking for something different. I need to get the filter id through sandbox

Show all comments

Hi there,

 

Does anyone have a landing page integration with Gravity Forms using a script?

 

This piece of the script works

 

jQuery(document).ready(initLanding);

$( "#gform_15" ).submit(function( event ) {

 createObject();

 

but always sends the data whenever the Submit button is clicked and I want to find a solution to only send when the form is actually sending correctly.



I cannot use the Marketplace integration as I need the Matomo integration script.

Already asked on the Gravity Forms forum, but no response there.

 

Your help is highly appreciated

Like 0

Like

5 comments

Hello Davey,

 

If you mean that you would like to create some kind of form validation that prevents from sending the form when there are empty fields, you could add some conditions to the function.

 

For example you can get the fields from the form by their Id document.getElementById() , and then verify whether their value is null or undefined. If it is, you can just put a return; statement before the createObject(); function, this way the function won't be executed if the conditions are not met.

 

So it would look somethig like this:

jQuery(document).ready(initLanding);

$( "#gform_15" ).submit(function( event ) {

//get the elements 

document.getElementById()

if(element1 === undefined || element2 === undefined) {

//write something on screen to inform that it needs to be filled

return;

} else {

createObject();

}

}

 

At the moment we do not have a ready example of this functionality, but you are welcome to try your own implementation and share with us the results.

 

Best regards,

Dariy

Dariy Pavlyk,

 

Thank you for the quick comment.



It's not that I need to check the form, but it's more like:

 

A user doesn't fill in the required fields, but clicks on 'Submit'

Then the default form will give an error: There was a problem with your submission. Please review the fields below.



But the script is triggered already and data goes to Creatio.

So what I need is that the script is triggered when the form is actually being submitted (like a validation).

 

Example for contact form 7 that works

document.addEventListener( 'wpcf7submit', function( event ) {

    createObject();

}, false );

 

 

And I know it's not Creatio, but Gravity forms, so I'll keep searching unless someone has an answer.

And I'll definitely look into your code example too.

Hello Davey,

 

The example that I provided would solve this issue, as if there is any required field that is not filled, the  createObject(); function will not be triggered.

 

if(requiredElement1 === undefined || requiredElement2 === undefined) {

return;

-- This return stops the function here, it won't go down 

} else {

createObject();

}

 

This "return" will stop the function, it won't go further, so the function won't execute the other function called "createObject();". So no request will be sent to Creatio.

 

Best regards,

Dariy

Dariy Pavlyk,

 

Thank you Dairy,

 

I really appreciate it.

 

I'll test it and give some feedback

Davey Daemen,


I hope you got it working.
I have a simple checkRequired JS function I created for this scenario.
 

function checkRequired() {
    var valid = true;
    jQuery('[aria-required="true"]').each(
        function () {
            if ((jQuery(this).is(':invalid') || !jQuery(this).val()) &amp;&amp; !jQuery(this).is(':hidden')) {
                console.log(jQuery(this));
                valid = false;
            }
        });
    if (!valid) console.log("error please fill all fields!");
    else console.log('valid');
    return valid;
}
Show all comments

Hi there,

I am studying the user session object in order to make some dashboard.

There I found a column "session end method", where there are 0, 1, 2 ,3 as values.

What do these values mean?

 

Thanks in advance.

 

Like 0

Like

2 comments
Best reply

Hello Andrew, 

 

SessionEndMethod column values:

Not closed - 0

The session was closed as a result of the user logging out. - 1

The session was closed by a timeout on the server side. - 2

The session closed forcibly. - 3

 

Thank you, 

Igor

 

Hello Andrew, 

 

SessionEndMethod column values:

Not closed - 0

The session was closed as a result of the user logging out. - 1

The session was closed by a timeout on the server side. - 2

The session closed forcibly. - 3

 

Thank you, 

Igor

 

Ihor Skohariev,

Thank you Igor!

Show all comments

Hello team,

 

I have a detail call "Proof" in which I need to add custom attachment detail called "UsrProofAttachments".

 

Here are the steps I followed

1. Created an object with Parent Object as "File". Added lookup column that refers to "Proof" detail.

2. Created a detail through the wizard and configured the detail

3. Changed the parent of "UsrProofAttachments" to FileDetailV2.

Here is how my UI looks

 

The error I get in console is the following

 

{message: 'Column by path UsrProofAttachments not found in schema UsrProofAttachments.'}

 

I have seen a similar post but I am not able to find an answer.

https://community.creatio.com/questions/set-custom-detail-attachments-t…

Help would be much appreciated!

 

Edit : I added the CSS and the UI looks good. But the error is still there

Like 0

Like

3 comments

Hi Shivani,

 

Thank you for your question!

 

Regarding the mentioned error in the console, it indicates that the column was either removed from the corresponding object or renamed. We do not recommend deleting any fields, columns or objects as it may lead to unpredictable issues. If some fields are not needed anymore, you can simply change their usage mode to "none". It's hard to identify which column exactly was removed/renamed without accessing the website. Please, contact us at support@creatio.com. We will check the configuration and will try to find out the reason for this issue.

 

Best regards,

Anastasiia

Anastasiia Lazurenko,

 

I got the attachment detail working. I noticed if you name the attachment detail as <SectionName>File it works eg : CustomFile for section named Custom, UsrProofFile for section named UsrProof

Shivani Lakshman,

Hi Shivani, I have a quite similar request as yours. I need to customize the default attachment detail of Order page by adding a lookup field into the attachment detail page.

 

Since the Order's attachment has its own object OrderFile, I created a replacing object of OrderFile and added a new lookup column, say UsrAttachmentType, in the OrderFile object. Then I used this new OrderFile to create a detail through detail wizard and put Name, Description, and UsrAttachmentType columns in the detail page. Then I changed the parent object of the detail with FileDetailV2 and saved the detail.

 

After the above steps, I could use the new attachment detail to upload files as original attachment detail; but when I double click the attachment record in the detail list, it opened with the old attachment detail page with only Name and Description fields, not the new detail page I setup as above, with additional lookup field UsrAttachmentType.

 

Please advise what I shuld do? Thank you!

 

 

Show all comments

Hi

 

I have a working Printable which prints my quotes. However, the formatting of the numbers is not in thousand separators, so I therefore updated the Word mergefield values, but when outputting from Creatio, I get no merge values populated.This is what I have done so far:

  1. Created a new version of the Word doc template
  2. Toggled the field codes to display the full merge values
  3. Changed a field which has a large multi thousand number from the following (note: how I have removed \*MERGEFORMAT):
    1. {MERGEFIELD "Opportunity product.Total, amount" \*MERGEFORMAT }

      to
    2. {MERGEFIELD "Opportunity product.Total, amount" \# #,##0.00 }
  4. Uploaded to replace the working Printable
  5. Generated the quote

In the resulting word doc, the values for this field are missing.

I have also tried the following variations, with none working:

{MERGEFIELD "Opportunity product.Total, amount" \# "#,##0.00" }

{MERGEFIELD Opportunity product.Total, amount \# #,##0.00 }

 

Either I am missing something obvious or Creatio does not like this format override.

 

Any help is greatly appreciated.

 

thanks

Like 0

Like

1 comments

Hi, Mark

 

You can use a macro for these fields in your printable. For example: ColumnName[#NumberDigit|,#] 

More information at the link: https://academy.creatio.com/docs/developer/application_components/repor…

 

Unfortunately, there are no basic application tools to add commas between the digits. It can only be done with the help of the development process. In this community thread, you can find the example of such implementation https://community.creatio.com/questions/how-set-comma-separator-money-f….

 

Show all comments

Hello,

I have a section called Applications which has an Owner field that points to contact lookup. The application section also has a field that points to Company Lookup. I also have a Company section. Inside this section there is a detail called Workers to which contacts are added.

 

I want to filter Owner lookup to show contacts who are added to the Workers detail of the company which is mapped to the Application. Please see below image. Can someone help with the lookup filter?

 

Like 0

Like

3 comments
Best reply

Shivani Lakshman,

 

Change the filter from "[UsrWorkers.UsrWorker].UsrAccount.Id" to "[UsrWorkers:UsrWorker].UsrAccount.Id"

 

My bad, I forgot that in reverse join it work using ":", for example :

[EntityCode:FieldCode]

 

and not [EntityCode.FieldCode]

 

regards,

 

Julien

Hi Shivani,

 

To filter your lookup you need to add this attribute in the application page :

attributes: {
    "Owner": {
        "dataValueType": Terrasoft.DataValueType.LOOKUP,
        "lookupListConfig": {
            "filters": [function() {
                var filters = Ext.create("Terrasoft.FilterGroup");
                filters.add("WorkInThisCompany", 
                    Terrasoft.createColumnFilterWithParameter(
                        Terrasoft.ComparisonType.EQUAL,
                        "[Workers:Worker].Company.Id",
                        this.get("Company").value
                    )
                );
                return filters;
            }]
        }
    }
}

Replace "Workers" by the object code of the workers detail.

 

FYI :

here is the filter breakdown :

"[WorkerObjectCode:WorkerFieldCodeInWorkers].CompanyFieldInWorkers.Id"

 

Watch out that all the codes correspond to your environment, for example, the workers object code can be "UsrWorkers" or whatever you defined it. Check it out in the advanced settings.

 

Kind regards,

 

Julien

Julien Gunther,

Thank you for your response. I tried your code but received the error 

Collection item with name [UsrWorkers not found.

 

 request data: {"rootSchemaName":"Contact","operationType":0,"includeProcessExecutionData":true,"filters":{"items":{"searchFilter":{"items":{"1f59bb71-8f5d-45ed-b4eb...

 

Looks like the system is trying to reach UsrWorkers from Contact table. This is the case with my requirement. There is no direct relation between the 2 tables. Would appreciate any suggestion!

 

Here is the code I used

"UsrOwner": {
        "dataValueType": Terrasoft.DataValueType.LOOKUP,
        "lookupListConfig": {
            "filters": [function() {
                var filters = Ext.create("Terrasoft.FilterGroup");
                filters.add("WorkInThisCompany", 
                    Terrasoft.createColumnFilterWithParameter(
                        Terrasoft.ComparisonType.EQUAL,
                        "[UsrWorkers.UsrWorker].UsrAccount.Id",
                        this.get("UsrAccount").value
                    )
                );
                return filters;
            }]
        }

 

Shivani Lakshman,

 

Change the filter from "[UsrWorkers.UsrWorker].UsrAccount.Id" to "[UsrWorkers:UsrWorker].UsrAccount.Id"

 

My bad, I forgot that in reverse join it work using ":", for example :

[EntityCode:FieldCode]

 

and not [EntityCode.FieldCode]

 

regards,

 

Julien

Show all comments

Hello,

 

I have set up default filters on a section by following these links:



https://customerfx.com/article/programmatically-overriding-or-adding-fi…

https://community.creatio.com/questions/default-filter-section

 

Is there a way to filter records with folders in addition to the default filter made in getFilters?

 

Here is my getFilters method:

			getFilters: function() {
                var filters = this.callParent(arguments);
				filters.logicalOperation = this.Terrasoft.LogicalOperatorType.OR;
				filters.add("FilterByAM", this.Terrasoft.createColumnFilterWithParameter(
					this.Terrasoft.ComparisonType.EQUAL,
					"MQAccountManager.Id",
					Terrasoft.SysValue.CURRENT_USER_CONTACT.value
				));
				if (this.get("CanAssignAccountManager")) {
					filters.add("FilterByManager", this.Terrasoft.createColumnFilterWithParameter(
						this.Terrasoft.ComparisonType.EQUAL,
						"MQManager.Id",
						Terrasoft.SysValue.CURRENT_USER_CONTACT.value
					));
				}
            	return filters;
            }

Kind regards,

 

Julien

Like 0

Like

2 comments
Best reply

Hi Julien,

Yes, the filter from folders will get appended to the filters you set for the section. You just need to add your filters in a filter group so they are properly applied as a whole, in addition to the folder filters - rather than just add the filters individually to the filters returned from callParent. For example:

getFilters: function() {
    var filters = this.callParent(arguments);
 
    // now create a filter group for your filters
    var customFilters = Ext.create("Terrasoft.FilterGroup");
    customFilters.logicalOperation = Terrasoft.LogicalOperatorType.AND;
    customFilters.add("ActiveFilter", 
        Terrasoft.createColumnFilterWithParameter(
            Terrasoft.ComparisonType.EQUAL, "Active", true
        )
    );
    customFilters.add("NoWidgetFilter", 
        Terrasoft.createColumnFilterWithParameter(
            Terrasoft.ComparisonType.NOT_EQUAL, "Type.Name", "Widget"
        )
    );
 
    // now add your filter group to the filters that get returned
    filters.add(customFilters);
    return filters;
}

It does work without a filter group if you're just adding a single condition, however, in your code you're "OR"ing all your new conditions together with the folder conditions. Using a separate group keeps it all grouped with the same conditions and will work as expected.

Ryan

Hi Julien,

Yes, the filter from folders will get appended to the filters you set for the section. You just need to add your filters in a filter group so they are properly applied as a whole, in addition to the folder filters - rather than just add the filters individually to the filters returned from callParent. For example:

getFilters: function() {
    var filters = this.callParent(arguments);
 
    // now create a filter group for your filters
    var customFilters = Ext.create("Terrasoft.FilterGroup");
    customFilters.logicalOperation = Terrasoft.LogicalOperatorType.AND;
    customFilters.add("ActiveFilter", 
        Terrasoft.createColumnFilterWithParameter(
            Terrasoft.ComparisonType.EQUAL, "Active", true
        )
    );
    customFilters.add("NoWidgetFilter", 
        Terrasoft.createColumnFilterWithParameter(
            Terrasoft.ComparisonType.NOT_EQUAL, "Type.Name", "Widget"
        )
    );
 
    // now add your filter group to the filters that get returned
    filters.add(customFilters);
    return filters;
}

It does work without a filter group if you're just adding a single condition, however, in your code you're "OR"ing all your new conditions together with the folder conditions. Using a separate group keeps it all grouped with the same conditions and will work as expected.

Ryan

Thank you Ryan !

Show all comments