webservice
xml
Studio_Creatio
8.0

I created a custom web service to accept xml from one of our lead aggregators. However, it is not deserializing the request body, and all I get in response is a Null Object Reference error. Am I missing something?

 

My custom web service:

namespace Terrasoft.Configuration.UsrMyLeadImportNamespace
{
    using System.Collections.Generic;
    using System.IO;
    using System.Xml;
    using System;
    using System.Runtime.Serialization;
    using System.ServiceModel;
    using System.ServiceModel.Activation;
    using System.ServiceModel.Web;
    using System.Xml.Serialization;
    using Core;
    using Core.DB;
    using Terrasoft.Web.Common;
 
    [XmlSerializerFormat]
    [ServiceContract]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    public class UsrMyLeadImport: BaseService
    {
		private SystemUserConnection _systemUserConnection;
		private SystemUserConnection SystemUserConnection
		{
			get
			{
				return _systemUserConnection ?? (_systemUserConnection = (SystemUserConnection)AppConnection.SystemUserConnection);
			}
		}
		// Service operation.
		[OperationContract]
		[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "new")]
		public MyResponse New(LeadInformation leadInformation)
		{
			var response = new MyResponse();
			response.ResponseStatus = "Tracking Number is => " + leadInformation.TrackingNumber;
			return response;
		}
	}
 
 
	[XmlRoot(ElementName = "LeadInformation")]
	public class LeadInformation
	{
		[XmlElement(ElementName = "TrackingNumber")]
		public int TrackingNumber { get; set; }
 
	}
 
	[DataContract(Namespace = "")]
	[Serializable]
	public class MyResponse
	{
		[DataMember]
		public string ResponseStatus { get; set; }
	}
}

Request Body:

<LeadInformation>
    <TrackingNumber>12345</TrackingNumber>
</LeadInformation>

 

Like 0

Like

1 comments
Best reply

I've performed the same setup (additionally to the code you've shared, registered the service as anonymous) and sent the following request in Postman:

As you can see the result is correct so the issue is somewhere in the request you send or in the service settings. You need to double-check them.

I've performed the same setup (additionally to the code you've shared, registered the service as anonymous) and sent the following request in Postman:

As you can see the result is correct so the issue is somewhere in the request you send or in the service settings. You need to double-check them.

Show all comments
Sections
Workpalce
Studio_Creatio
7.12

Is it possible to add an Account section in the same workplace. So there will be 2 Account sections in 1 workplace.

Like 0

Like

3 comments
Best reply

Hello,

 

In order to add the same section to a workplace you ned to run the following script in the database, since it's not possible to do so from a Workplace setup:

 

insert into "SysModuleInWorkplace" ("SysWorkplaceId", "SysModuleId")

values ('_inser_ID_here_', '_inser_ID_here_')

 

So you need to find the ID of the needed section in the SysModuleId table + an ID of the workplace where you want to put add it in the SysWorkplaceId table.

 

It should look like this once you paste the needed IDs (please note that this is only an example):

 

insert into "SysModuleInWorkplace" ("SysWorkplaceId", "SysModuleId")

values ('f4cd2a9b-1312-4d26-9205-c09e8ba56218', '005063c9-8180-e011-afbc-00155d04320c')

 

We would like to warn you, that though it is possible to add the same section to a workplace, we do not recommend doing so as this behavior wasn't tested and may result in unexpected issues. Also, we highly recommend testing it on a dev/test environment first to make sure it works as you need it.

 

Kind regards,

Mira

Hello,

 

In order to add the same section to a workplace you ned to run the following script in the database, since it's not possible to do so from a Workplace setup:

 

insert into "SysModuleInWorkplace" ("SysWorkplaceId", "SysModuleId")

values ('_inser_ID_here_', '_inser_ID_here_')

 

So you need to find the ID of the needed section in the SysModuleId table + an ID of the workplace where you want to put add it in the SysWorkplaceId table.

 

It should look like this once you paste the needed IDs (please note that this is only an example):

 

insert into "SysModuleInWorkplace" ("SysWorkplaceId", "SysModuleId")

values ('f4cd2a9b-1312-4d26-9205-c09e8ba56218', '005063c9-8180-e011-afbc-00155d04320c')

 

We would like to warn you, that though it is possible to add the same section to a workplace, we do not recommend doing so as this behavior wasn't tested and may result in unexpected issues. Also, we highly recommend testing it on a dev/test environment first to make sure it works as you need it.

 

Kind regards,

Mira

Mira Dmitruk,

Thank you. It works..

I have already put the same section in 1 Workpalce. So there will be 2 section in 1 Workplace. Next question is, can we change on of section Account to another name?

Ahmad Bagus Ariyanto,

 

Please note that it is not possible to change the name only for one of them since this is the same object shown twice and if you change the name of one of them, the other one will change too.

 

Kind regards,

Mira 

 

Show all comments
Studio_Creatio
8.0

Hi community,

I have a standard package and would like to migrate it to the new assembly-type package.

I know it is possible to move a single package element to another package, but I have never done it.

Do you have any suggestions?

 

Like 0

Like

4 comments

Hello,

 

Please note there's a useful article on Creatio Academy on Package conversion that should help with your need. Make sure to check it and lt us know if questions appear!

 

Kind regards,

Mira

Mira Dmitruk,

Thank you Mira

I will give you a feedback

Stefano Bassoli,

Hi Mira,

I have a standard package installed in the production environment.

What happens if I migrate to an assembly package and then try to install it in my production environment.

Is this a supported scenario?

A technical youtube video going in more details about uses cases, best practice and advantages of this new feature would be great :)

Show all comments

Hi,

 

I have some Case Stages grouped and in some scenarios of all the stages only one is available. Is there a way to default to that one instead of the user click on the drop down and select the only stage available?

 

In the attached example, I'd would like the 'Validate Provider File' stage on the bar so the user does not have to click the drop down and select it.

 

Thanks,

Jose

File attachments
Like 1

Like

3 comments

Hello,

You can automatically fill in the required fields using business rules.



More about business rules on the academy website:

https://academy.creatio.com/docs/user/customization_tools/ui_and_busine…

Thanks Cherednichenko, but that is not what I need. I don't need to default a field on the actual page. I need to make visible the only stage available on a case where stages are grouped. What stage is enabled depends on a previous stage. In the screenshot attached to the question, If the previous stage was Confirm Provider File Received', then the only option available for the user is Validate Provider File. But because that stage is grouped with 'Validate Patient File', that is what is shown in the bar and the user has to make an extra click to select 'Validate Provider File' even though that is the only option available.

Hello Jose,

 

Thank you for the explanation.

Unfortunately, such functionality can be only achieved by the means of development.

We will create a request for our R&D team in order to bring this functionality in future releases.

 

Best regards,

Artem.

Show all comments
Studio_Creatio
8.0

Hi All

 

Anyone know how to add or custom button in the list ?



PS. i create this list use freedom builder

Like 1

Like

1 comments

Hello,

 

Unfortunately, there are no such basic tools to add the button to the mentioned dropdown. 

We've registered it in our R&D team backlog for consideration and implementation in future application releases.



Thank you for helping us to improve our product. 

Show all comments
Client-side
attributes
required
Studio_Creatio
7.18

Hello community!

I need to set fields required based in values of a lookup at client side.

I was trying to test how isRequired works in attributes , but I found that the only way to work with it, is declaring the explicit value to True or False.

Tried to use a virtual column, and a method function, but it behaves weird.  

Here are my examples:

and this how it looks on screen:

 

It's showing the "Enter a Value" warning but they are supposed not to be required (* is missing).

 

Is there any way to workaround with this?

 

Thank you for your help.

Like 0

Like

3 comments
Best reply

Cesar Jaramillo,

Let's see what method of making fields required* dynamically actually works good – it is using rules/businessRules.

You can create a rule for your field, the condition can be any value of the page and its related lookups.

Like here:

But if you have to do this for several fields, it will take much time to set them for each field. 

And if there are many conditions or they are too complex, "businessRules" abilities can be not enough.

But we can set an attribute (boolean) to be a condition for each of these rules, like here:



The attribute value can be changed dynamically using "methods".

 

So here's what i'd advise you to do:



In my example the fields "Email" and "Preferred language" become required, if the contact Type is "Customer" and the "Owner" field is not empty.

1. Add an attribute of type BOOLEAN

attributes: {
	"FullInfoRequired": {
		"dataValueType": Terrasoft.DataValueType.BOOLEAN,
		"dependencies": [
			{
				"columns": ["Owner", "Type"],
				"methodName": "setFullInfoRequired"
			}
		]
	}
},

Each time any of the columns ("Owner" or "Type") is changed, the method "setFullInfoRequired" is called.

2. Add the method

setFullInfoRequired: function() {
	var type = this.get("Type");
	// ContactType.Client is a GUID for "Customer" type
	if (type.value === confConsts.ContactType.Client &amp;&amp; this.get("Owner")) {
		this.set("FullInfoRequired", true);
	}
	else this.set("FullInfoRequired", false);
}

To set the attribute on page loading, immediately after the page loaded its data, you should also call this function in "onEntityInitialized":

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

3. Add the rules using Page designer, as in my 2nd screenshot, for each field that should become required.

 

If the conditions are simple, just use businessRules as in the 1st screenshot.

 

Hello Cesar,

 

The isRequired attribute that uses the value that method returns works correctly in my local app (using bindTo: {"method name here"}). It seems that there is either some other custom logic related to these columns in the ContactPageV2 or maybe custom CSS that hides these * symbol. You need to look through all the logic related to these columns where you need to have the * symbol.

 

Best regards,

Oscar

Oscar Dylan,

Hi Oscar,  In my case, when the method returns True it works fine, but when it returns False, the * is gone, but the warning remains and it doesn't allow to save.  In what version did you try it?

Thanks!

Cesar Jaramillo,

Let's see what method of making fields required* dynamically actually works good – it is using rules/businessRules.

You can create a rule for your field, the condition can be any value of the page and its related lookups.

Like here:

But if you have to do this for several fields, it will take much time to set them for each field. 

And if there are many conditions or they are too complex, "businessRules" abilities can be not enough.

But we can set an attribute (boolean) to be a condition for each of these rules, like here:



The attribute value can be changed dynamically using "methods".

 

So here's what i'd advise you to do:



In my example the fields "Email" and "Preferred language" become required, if the contact Type is "Customer" and the "Owner" field is not empty.

1. Add an attribute of type BOOLEAN

attributes: {
	"FullInfoRequired": {
		"dataValueType": Terrasoft.DataValueType.BOOLEAN,
		"dependencies": [
			{
				"columns": ["Owner", "Type"],
				"methodName": "setFullInfoRequired"
			}
		]
	}
},

Each time any of the columns ("Owner" or "Type") is changed, the method "setFullInfoRequired" is called.

2. Add the method

setFullInfoRequired: function() {
	var type = this.get("Type");
	// ContactType.Client is a GUID for "Customer" type
	if (type.value === confConsts.ContactType.Client &amp;&amp; this.get("Owner")) {
		this.set("FullInfoRequired", true);
	}
	else this.set("FullInfoRequired", false);
}

To set the attribute on page loading, immediately after the page loaded its data, you should also call this function in "onEntityInitialized":

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

3. Add the rules using Page designer, as in my 2nd screenshot, for each field that should become required.

 

If the conditions are simple, just use businessRules as in the 1st screenshot.

 

Show all comments
dashboard
Studio_Creatio
7.16

Hi Team,

 

I am looking for workaround in which I need to attach the Dashboard List (Excel Report) in attachments of any custom section and then further used in Business Process. So, please help me to figure out the steps to follow.

 

Thanks

Like 0

Like

3 comments

Hello colleagues,

To solve your business task you need to use the business process element "Process file". Set the "Generated report" mode, choose a report template, and in the column "What to do with file?" specify the next: "Save to "Attachments and notes" of the object".

Then choose the object.

Best regards, Alex.

Hi Aleksei, 

 

Thanks for responding. But in my case, I need to attach a list view of Dashboard, which I think is not feasible through "Process File" element. Can you please suggest some other solution or please correct me if I am wrong.

 

Thanks and Regards, Prashant

Prashant Jha,

Hello!

If you need to create an Attachment and notes object for your custom section or object - you can find a useful information in this article:

https://community.creatio.com/articles/adding-attachment-and-notes-tab-…

Show all comments
dashboard
Email
Studio_Creatio
7.16

Hi Team,

 

I need to send the dashboard list via Email. I am looking for a work around for the same. Please help. 

Like 0

Like

1 comments

Hello,

 

Unfortunately, there is no such functionality in our system to export dashboards.

 

We have already registered the idea for our R&D team to implement this functionality in further releases. I will assign your case to this project in order to increase its priority.  

 

Thank you,

Artem.

Show all comments
Studio_Creatio
8.0

Hi community,

 

Is it possible to add a fixed filter for a text field ?

Like 0

Like

6 comments

Hello Stefano,

 

Fixed filter in section cannot be added with a help of basic system tools, but only with a help of development.

I would suggest to check  the below post for guidance and implementation example:

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

 

Best regards,

Anastasiia

Anastasiia Zhuravel,

Hello Anastasiia,

I would like to add a text box filter field that the user can compile or not 

Stefano Bassoli,

 

Hi, 

Could you please elaborate a bit on your business task? Can you share a screenshot of the desirable result or an example of such filter in a system?

If I may refer to the subject of your post "FIXED FILTER ON SECTION", then this functionality can be achieved with a help of development as described in the post shared in my previous comment.

 

Best regards,

Anastasiia

 

Anastasiia Zhuravel,

Hi,

I attached a screenshot.

The end-user uses frequently a quick filter on a text field, is it possible to make fixed ?

Hi Community! How are you? 

Could you solve this problem? On our side we need to do something similar.

Thank you in advance

Uriel Nusenbaum,



The below can be added to your schema to have a custom Fixed Filter (and customize based on the filter need).



https://academy.creatio.com/docs/developer/interface_elements/section/set_up_quick_filter_block

define("ContactSectionV2", [], function() {
    return {
        entitySchemaName: "Contact",
        methods: {
            initFixedFiltersConfig: function () {
                var fixedFilterConfig = {
                    entitySchema: "ContactType",
                    filters: [
                        {
                            name: "TypeFilter",
                            columnName: "Type",
                            caption: this.get("Resources.Strings.ContactTypeFilterCaption"),
                            dataValueType: this.Terrasoft.DataValueType.LOOKUP,
                            appendCurrentContactMenuItem: false,
                            addNewFilterCaption: this.get("Resources.Strings.SelectContactTypeCaption"),
                            hint: this.get("Resources.Strings.SelectContactTypeCaption"),
                            buttonImageConfig: this.get("Resources.Images.ContactTypeFilterImage")
                        }
                    ]
                };
                this.set("FixedFilterConfig", fixedFilterConfig);
            }
        }
    };
});

 

 

BR,

Bhoobalan Palanivelu.

Show all comments
approval
Validation
visa
Studio_Creatio
7.18

Hi Community,

 

I wanted to implement a funtionality where a validation should happen on click of Approve button. If the valiation fails the approval should not happen.

 

To achive the above task I tried with the following approaches, on the "UsrReturns" custom object.

  1. Tried to implement "asyncValidate" on "UsrReturnsVisaPageV2", but it didn't work (Seems the approval is happening outside the context of this page). Also not sure what is the use of this page.
  2. Tried to implement validation using Entity Events Layer on the object "UsrReturnsVisa". Although it didn't approve the request, but it didn't throw the exception as well with the following code,
    if(true){
    	throw new Exception("Can not approve");
    }
    return true;
  3. Tried to implement a custom approval logic using "ApprovalDashboardItemViewModel", but I can not create a replacing schema with this.

So need a way to implement such funtionality. Any suggestions will help.

 

Thanks & Regards,

Sourav Kumar Samal

Like 0

Like

3 comments

Hello,

 

Can you please screenshot the exact button you click, clicking which should start the validation process?

 

Thank you!

 

Best regards,

Oscar

Oscar Dylan,

While clicking Approve on notification panel as shown below,

 

 

Also while clicking under DCM & from Approvals section, same error shows on the console, but popup doesn't come.

 

Regards,

Sourav

Sourav Kumar Samal,

 

this is a bad request response returned by the app and we need to see the actual response (from the "Response" tab of the request in the "Network" tab).

 

To add some logic upon approval you need to replace the "approve" method in the "VisaNotificationsSchema" module (for "reject" actions its "reject" method). You will be in the context of the approval record and you can use data from there to process further with the approval\rejection. So you need to override the logic of these two methods.

 

Best regards,

Oscar

Show all comments