Hello colleagues,

 

I'm looking for a certified Creatio developer who can help us develop a Creatio addon to provide specific functionality to the Bulk/Trigger email template editor (mainly the ability to insert a photo taken from a provided URL into a field in some detail connected to the contact to whom the email will be delivered and enable that when clicking on the image, it is redirected to a URL provided in another field of this detail...).

 

This is a necessary requirement of a potential client of ours, with this solved (knowing that it is possible to solve it, how much it costs and the time it takes), we can win this client ?

 

Please could someone help us or know who can?

 

You can write to me at JulioFalcon.Nodos@gmail.com to share details or write me a WhatsApp at +34 623 17 46 59

 

I am available in the CET time zone, so I live in Spain

 

Thanks in advance

Like 2

Like

0 comments
Show all comments

Hi all, I have created a web service for parsing a document which is taking two request parameters:

 

  • Header Parameter : 

Key : “Authorization”

Value : (xyz 123456)  // just an example

 

  • Body Parameter :

Key : “file”

Value : (Base64 data)

 

When I test it within the Web Service section by providing both the parameters, it is working fine and giving the expected output in json format.

 

Now, when I use the same web service in Business Process and pass the parameters correctly by storing it in process parameters, the process always gives an error on that web service element.

 

Error is as follows:

 

Terrasoft.Common.UnsupportedTypeException: Type "System.Collections.Generic.List`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" is not supported. 



 

I am getting base64 data correctly from Business Process. Please help regarding this error.

 

Like 0

Like

2 comments

hi Prashant Jha

 

Creatio has its "JSON key parser" in a core assembly that works OOTB in the service section. Usually, it occurs in the Method & Body Parameters of a Web Service.



On looking at the exception, the input types are not matched here and one of the input types is Collection List.



Can we backtrack it by passing the parameters one by one? which means trying to send Parameter A, get the exception and then try passing Parameter A, and B to get the exception.



From the above information, I presume that the error lies in the below factors,

Body Parameter :

Key : “file”

Value : (Base64 data)

 

 

BR,

Bhoobalan Palanivelu

Hello,

 

This error could be due to incorrect handling of an array of parameters in the web service response (Result).

Try to remove parameter array from web service response.

Show all comments

Dear Community,

 

is there any way to block the deletion of records of an object for all users and user groups (including system administrators and the supervisor) depending on a lookup value, such as a status.

Adjusting the object permissions still let's sysadmins delete a record.

 

Like 0

Like

1 comments

Hello Markus,

You can write your own EventListeren on onDeletnig event and if your condition is satisfied, you can call base.OnDeleting(sender, e).

If not, it will block the delete action no matter who is the user.

public override void OnDeleting(object sender, EntityBeforeEventArgs e) {
				var entityOrderProduct = (Entity)sender;
            	var OrderProductid = entityOrderProduct.PrimaryColumnValue;
				string name = entityOrderProduct.GetTypedColumnValue<string>("Name");
				if (name != 'someting'){
					base.OnDeleting(sender, e);
				}
			}

 

Show all comments

Hello Community,

I have a boolean field in my section I want to change that boolean field to a toggle bar .Can someone help?

  

Thanks in Advance 

Like 0

Like

1 comments

At the moment, this functionality can only be implemented using development methods.

Unfortunately, we do not have any sample code that would help you with such an implementation, but we have registered such a request to our development team, and this functionality may appear in future versions of the application.

Show all comments

but i can change "CONTACTS" section

Like 0

Like

1 comments

Dear Arkadiusz,

 

Thanks for your question. To analyze the issue, could you please contact us at support@creatio.com and provide us with external access to the instance? Thanks in advance. 

 

Best regards,

Anastasiia

Show all comments

Hi Team,

 

We have created two case life cycle [DCM] and the initial stage for both the cycle is not the same. So we cant set the stage as a default as the initial stage is different for Both the cycle and we need to write a business process that as soon as the case is created based on of the field selected in the mini field set the first stage.

 

Question : is it possible to set the first stage based on the field value selected in mini page without writing a business process. How do we set default value for the case life cycle based on the field value selected.

 

Thanks in advance!

 

Regards,

Mayan

Like 0

Like

1 comments

Hello,

 

As for now, there is no option to automatically change the DCM version for all records. 

 

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

I was creating a button that runs a simple business process that sends a mail.

The problem is after altering the schema of the Portal user profile and adding a button the business process doesn't run nor gets mentioned in the process logs for tracing.

here are the codes used in the schema to run a bp in the portal contact page :

 

define("SspProfileContactPage", ["ProcessModuleUtilities","css!UsrCSSPortalProfile"], function(ProcessModuleUtilities) {

    return {

....

methods: {

            OnClickTest: function(){

                var args = {

                    sysProcessName: "UsrProcess_e179057",

                    parameters: { 

                        test: "testing" 

                    }

                };

                ProcessModuleUtilities.executeProcess(args); 

                this.showInformationDialog("Busniess process triggered");

            },

...

diff...

...

"operation": "insert",

                "name": "UpdateButton",

                "parentName": "Tabc34c9c60TabLabelGroup654f02cd",

                "propertyName": "items",

                "values": {

                    "itemType": Terrasoft.ViewItemType.BUTTON,

                    "caption": "Update Info",

                    "style": Terrasoft.controls.ButtonEnums.style.BLUE,

                    "click": {

                        "bindTo": "OnClickTest"

                    },

                    //"tag": "OnClickTest",

                    "hint": "TEST BUTTON"

                },

Like 0

Like

4 comments

Hello,

 

I've used the same code in the demo application and the process was triggered. Maybe the process is not logged in the process log ("Enable logging" in the process settings in the process designer) or you receive some actual error in the console when starting the process. You need to check if the code of the schema doesn't contain duplicates of methods or errors as well. The complete code from my side:

define("SspProfileContactPage", ["ProcessModuleUtilities", "css!UsrCSSPortalProfile"], function(ProcessModuleUtilities) {
	return {
		mixins: {},
		entitySchemaName: "Contact",
		messages: {},
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
                "name": "UpdateButton",
                "parentName": "GeneralInfoTab",
                "propertyName": "items",
                "values": {
					"itemType": Terrasoft.ViewItemType.BUTTON,
					"caption": "Update Info",
                    "style": Terrasoft.controls.ButtonEnums.style.BLUE,
                    "click": {
                        "bindTo": "OnClickTest"
                    },
					"hint": "TEST BUTTON"}
			},
		]/**SCHEMA_DIFF*/,
		attributes: {},
		methods: {
				OnClickTest: function(){
					var args = {
						sysProcessName: "UsrProcess_b0eee32",
						parameters: { 
							test: "testing" 
						}
					};
                ProcessModuleUtilities.executeProcess(args); 
                this.showInformationDialog("Busniess process triggered");
            },
		},
		rules: {},
		userCode: {}
	};
});

 

Hey Oleg,

 

I also made sure that the logging was already enabled and the process did not start. 

And made sure that all portal users can run this process from the process properties in the process library.

 

I am trying to add this button in the portal user profile page. After altering the page it created a schema where the entitySchemaName  is empty by default.

 

...

entitySchemaName: "",

        attributes: {},

...

 

Serge,

 

When replacing a schema I usually take the content of the original schema and make it empty (mean empty methods, empty attributes and so on). For the SspProfileContactPage the entitySchemaName is Contact and you can see it in the SspProfileContactPage schemas from base packages. This can be also an issue in case you have this entitySchemaName empty. Also try using the code I sent that worked on my side (but modify the process code).

Oleg, 

I have used your code and modified the process code 

and also tried it a new replacing view model with empty method and empty attributes ... 

even used the "debugger;" to check if the code is running and it is.

 

still the same issue.

I am using Creatio version 8.0.6.3429

what version did you use your code on ?

Show all comments

I want to build an 'add' client wizard for our customer service to make it easy for them and also to prevent mistakes.

 

The first step would be to insert zipcode and housenumber, then it will make an API call to see how many adresses match these two parameter. 

 

The list that is returned, if the list is > 1 it should show you the information from the array and make you able to choose 1 of the options. 

 

If the list is 1 it should automatically pick the only available option.

 

I understand how to create the business process but combining this with a user interface is still difficult for me, is this even possible? 

Like 1

Like

3 comments

Hi, take a look at this article, I believe that there you can find a piece of useful information. It is written for the Freedom UI page, however, in earlier versions, you can just use XMLHttpRequest for sending the request, wait for a response, and process it.

The link somehow is broken now.

Pascal,

Here you are - link

Show all comments

Hi,

How can I use esq or a business process to determine a user's organizational role and its associated functional role from the employee section?

 

File attachments
Like 0

Like

3 comments
Best reply

This article will show you how to retrieve a user's roles using an ESQ. See https://customerfx.com/article/determining-if-a-user-has-a-specific-rol…

Ryan

This article will show you how to retrieve a user's roles using an ESQ. See https://customerfx.com/article/determining-if-a-user-has-a-specific-rol…

Ryan

This solution does not take into account Functional Roles. If a Role has a Functional role assigned, and a user has that functional role, there is no direct link between the user and the functional role. Don't we have a SDK Creatio function for this?

Hello,
 

If a user has an assigned functional role or an organizational role directly, this information will be stored in the "SysUserInRole" table.
If it is an organizational role that has a functional role, then you need to refer to the "SysFuncRoleInOrgRole" table.
The "SysAdminUnit" table contains a list of all users and roles (both organizational and functional). It has a column SysAdminUnitTypeValue, which can be used to determine the type of record.
All types of records are described in the "SysAdminUnitType" table.

All these entities are available for reading data in the business process. Therefore, on the basis of one user, you can view all the roles that have been assigned directly in the "SysUserInRole" table and through organizational roles in the "SysFuncRoleInOrgRole" table.

Show all comments

Hi Team,

We want to retrieve a specific record by Id along with all the related elements (eg - Retrieve Account A with all of its related Contacts). 

What we already know:

We can retrieve the account record itself along with related records that are linked with lookupfields, like the PrimaryContact

 

Account(0001111-1111-1111-1111-111111231123)?$expand=PrimaryContact($select=Name)

This works, but it returns only one contact, the primary one.

 

Instead, we need an embedded list of contacts, like

{
    "@odata.context": myurl.creatio.com/0/odata/$metadata#Account(PrimaryContact(Name))/$entity,
    "Id": "22222-222222-2222-222222-22222207ba6",
    "Name": "somename",
    "OwnerId": "111111-11111-11111-11111-1111111",
    "CreatedOn": "2022-11-16T21:11:57.214167Z",
    "Contacts“ : [
{object}, {object}
]
}

Given the first URL in the response, we expected that all NavigationProperties would behave the same:

But this collection:

Is not accessible. If we call for :

Account(0002204c-d255-46c0-bea6-0f32e2e07ba6)?$expand=ContactCollectionByAccount

 

We get this error in return:

{
    "error": {
        "code": "",
        "message": "An error has occurred."
    }
}

If we use other expand values, we retrieve meaningful errors like „Could not find a property named xy“, but this error is not self explaining. How can we return an object with an embedded list of children? I know that in this example we also could ask for a list of Contacts filtered by their account, but we cannot do that in all scenarios we have in mind.

Thank you

Petrika

Like 3

Like

1 comments

Hello Petrika,

 

This property cannot be used to retrieve all contacts related to the account and can be used in filtration only. To retrieve related contacts you need to perform the GET query to the Contact object with the correspondent AccountId filter. Using this approach you will be able to get contacts needed.

Show all comments