Hey. I've been working with Creatio for some time already. And I've been facing an issue. The issue is not picking up on changes that were added to the files already added to the package when uploading a new version of a package on any environment. I am talking about .cs files, in other words, the source code type of Creatio files. So, when I finish fixing some bugs with the package locally, I go to the dev env. to upload the package there. I do the uploading via `ApplicationHub` page via `install from file`. So, the issue happens only when the previous package version is installed and I want to update with the newer version. If I remove the previous version and upload a new one, all new changes are picked up.

Like 0

Like

1 comments

Hello!

 

In this case, it could be two possible options as to why it happens:

 

1. It can happen if the schema has a more fresh ModifiedOn date in configuration, for example, if it was recently modified directly on the environment; if so, the schema won't be updated.

2.  Sometimes, the schema updates only after full compilation. so the steps will be install package -> full compilation -> check the schema.

 

If the issue would still reproduce, contact us at support@creatio.com.

Show all comments

Hi community, 

Where can I find the source code responsible for this checkbox (Make the list editable). 

I want to make this detail editable only in one section. Here is my use case : I'm using this detail in two sections A and B. In section A, I want the detail to be editable like this : 

 

But in section B, I don't want this behavior (checkbox must be unchecked) like this : 

Like 0

Like

4 comments

You should create 2 separate details. And add them to the separate edit page for section A and for section B.

Thanks Antonii, isn't there any other way than creating two details ? 

Ismail el lahya,

This is the best way to perform this task

Antonii Viazovskyi,

Thank you!

Show all comments

I'm trying too display the same object as 2 separate details filtered by a type, however I want to be able to make each detail auto set that type dependent on which detail was used to add the new record, ive been trying to find a solution but cant, any recomendations?

Like 1

Like

3 comments
Best reply

Hello Oliver,

To do this (set a different type value based on which detail is being used to add the record), you can set defaultValues in each of the details in the page code. See this article here: https://customerfx.com/article/passing-values-from-a-page-to-a-new-reco…

As far as filtering each detail by the specific type value, you can refer to this article: https://customerfx.com/article/filtering-a-detail-list-in-creatio-forme…

Ryan

Hello,

 

Please be informed that by the system's logic, the details still refer to the same object and even if you create several different details they are still based on the same object and therefore the edit pages will look the same. We already have this problem registered for our R&D department and in future releases this logic may be changed.

Mira Dmitruk,

 

I know they refer to the same object, are you not able to have the different details enter data slightly different? So if you enter it from one detail the type is set to "revenue" and the other "costs", otherwise id need to have a lookup to do it when it shouldn't be necessary.

Hello Oliver,

To do this (set a different type value based on which detail is being used to add the record), you can set defaultValues in each of the details in the page code. See this article here: https://customerfx.com/article/passing-values-from-a-page-to-a-new-reco…

As far as filtering each detail by the specific type value, you can refer to this article: https://customerfx.com/article/filtering-a-detail-list-in-creatio-forme…

Ryan

Show all comments

Hi all,

I am looking for a way to highlight js c# code in a rich text field.

Especially we want to use it in the knowledge base in creatio.

 

 

Is there a way to do this?

 

Regards,

Oliver

Like 0

Like

5 comments

Hi Oliver,

You can possibly do it and here is small instruction on how:

1) At first write an example of a code you want to highlight and do it manually using the options above the text. Save the result.

2) Get the value of this field from the database, it should look something like this:

 <div>hello there&nbsp;</div>  <div>&nbsp;</div>  <div>define(&quot;PrcAcceptanceCertificate777ab4cfSection&quot;, [], function() {<br /> &nbsp;&nbsp; &nbsp;return {<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;entitySchemaName: &quot;PrcAcceptanceCertificate&quot;,<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,<br /> &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;methods: {}<br /> &nbsp;&nbsp; &nbsp;};<br /> });<br /> &nbsp;</div>  <div>&nbsp;</div> 

3) In this value take a look at how the system applies styles, you need to do it automatically in your method.

4) Write a method that will apply needed highlights to your text.

var text = this.get("Notes");

text.DoSomethingToModifyIt();

this.set("Notes", text);

Probably the hardest point would be finding the js code in the whole text because for the system there are no differences between a normal sentence or parts of the code. But if you manage to do it, then applying highlights is not that difficult to do.

 

Hi,

 

phew, that sounds like a lot of work.



I was thinking more of a js library that you can just use.

There must already be something integrated in creatio, because there is the source code area. Couldn't we just use that somehow?

 

Or a component in the editor like here in the community area

 

Regards,

Oliver

Oliver Herzog,

Slightly misunderstood what are you trying to do.

Can you please specify what source code area you are referring to?

Sorry for the misunderstanding!

 

I just want c#, js or html to be displayed "nicely" in the richtext editor. In the first post you can see how it should not look like.

 

No logical check or something like that.



Something like the code snippet function here in the community.

 

Oliver Herzog,

Unfortunately, right now highlighting the code lines like the "Code snippet" function is impossible on the system itself due to a base logic of RICH_TEXT fields.

I registered your suggestion for our R&D team, thank you for your idea.

Show all comments

Hi there,

 

I have a requirement to trigger a business process with a parameter value from an anonymous web service and get errors while publishing the code in the Creatio environment. Below I have mentioned the complete code of the web service and the error screenshot of the error.

 

Note: I have pre-created the business process with the parameter and written the web service.

I referred other community articles such as 

https://community.creatio.com/articles/web-service-without-authorizatio…

https://community.creatio.com/questions/calling-business-process-parame…

These codes currently seem to be outdated and not working in the Atlas version of creatio. Please give me suggestions to resolve this issue.

 

Code :

 

/* The custom namespace. */

namespace Terrasoft.Configuration.WSO2WSConfirmationServiceNamespace

{

    using System;

    using System.ServiceModel;

    using System.ServiceModel.Web;

    using System.ServiceModel.Activation;

    using Terrasoft.Core;

    using Terrasoft.Web.Common;

    using Terrasoft.Core.Entities;

    using Terrasoft.Core.Process;

    using Terrasoft.Core.Process.Configuration;

    [ServiceContract]

    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]

    public class WSO2WSConfirmationService : BaseService

    {

        /* The link to the UserConnection instance required to access the database. */

        private SystemUserConnection _systemUserConnection;

        private SystemUserConnection SystemUserConnection

        {

            get

            {

                return _systemUserConnection ?? (_systemUserConnection = (SystemUserConnection)AppConnection.SystemUserConnection);

            }

        }

        /* The method that returns the confirmation of buttons. */

        [OperationContract]

        [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,

        ResponseFormat = WebMessageFormat.Json)]

        public string ConfirmationService(string guid, bool status)

        {

            new Guid(guid);

            string result = "Guid is missing";

            if (!string.IsNullOrEmpty(guid)) {

                if (status == false)

                {

                    var manager = UserConnection.ProcessSchemaManager;

                    var processSchema = manager.GetInstanceByName("WSO2Process_3c0d24a");

                    var moduleProcess = processSchema.CreateProcess(UserConnection);

                    if (processSchema.Parameters.ExistsByName("ProcessSchemaConfirmationId"))

                    {

                        moduleProcess.SetPropertyValue("ProcessSchemaConfirmationId", guid);

                    }

                    moduleProcess.Execute(UserConnection);

                    /*ProcessSchema schema = UserConnection.ProcessSchemaManager.GetInstanceByName("WSO2Process_3c0d24a");

                    //schema = UserConnection.ProcessSchemaManager.GetInstanceByUId(leadManagementProcessUId);

                    //different engines for interpretable and compiled BP

                    bool canUseFlowEngine = ProcessSchemaManager.GetCanUseFlowEngine(UserConnection, schema);

                    if (canUseFlowEngine)

                    {

                        var flowEngine = new FlowEngine(UserConnection);

                        var param = new Dictionary();

                        param["ProcessSchemaConfirmationId"] = guid.Id.ToString();

                        flowEngine.RunProcess(schema, param);

                        

                    }

                    else

                    {

                        Process process = schema.CreateProcess(UserConnection);

                        process.SetPropertyValue("ProcessSchemaConfirmationId", guid.Id);

                        process.Execute(UserConnection);

                    }*/

                    result = "Response posting is cancelled, You can close this tab";

                }

                else {

                    result = "WSO2 endpoint intergration is pending";

                

                }

            }



            

            return result;

        }

    }

}

File attachments
Like 0

Like

1 comments

Found the answer for this mentioned issue, Please refer to the code below. Using IProcessExecutor, this can be simply achieved in the 8.0 version.

/* The custom namespace. */

namespace Terrasoft.Configuration.WSO2WSConfirmationServiceNamespace

{

    using System;

    using System.ServiceModel;

    using System.Collections.Generic;

    using System.ServiceModel.Web;

    using System.ServiceModel.Activation;

    using Terrasoft.Core;

    using Terrasoft.Web.Common;

    using Terrasoft.Core.Entities;

    using Terrasoft.Core.Entities.Events;

    using Terrasoft.Core.Process;

    using Terrasoft.Core.Process.Configuration;

    [ServiceContract]

    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]

    public class WSO2WSConfirmationService : BaseService

    {

        /* The link to the UserConnection instance required to access the database. */

        private SystemUserConnection _systemUserConnection;

        private SystemUserConnection SystemUserConnection

        {

            get

            {

                return _systemUserConnection ?? (_systemUserConnection = (SystemUserConnection)AppConnection.SystemUserConnection);

            }

        }

        /* The method that returns the confirmation of buttons. */

        [OperationContract]

        [WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,

        ResponseFormat = WebMessageFormat.Json)]

        public string ConfirmationService(string guid, bool status)

        {

            try

            {

                new Guid(guid);

                string result = "Guid is missing";

                if (!string.IsNullOrEmpty(guid))

                {

                    if (status == false)

                    {

                        {

                            // getting  IProcessExecutor

                            IProcessExecutor processExecutor = SystemUserConnection.ProcessEngine.ProcessExecutor;

                            // List of input parameters

                            var inputParameters = new Dictionary<string, string>

                            {

                                ["ConfirmationId"] = guid.ToString(),

                            };

                            //code of the process

                            string processSchemaName = "WSO2Process_3c0d24aCustom1";

                            //execute the process

                            ProcessDescriptor processDescriptor = processExecutor.Execute(processSchemaName, inputParameters);

                            //return processDescriptor;

                        }

                        

                        result = "Response posting is cancelled, You can close this tab";

                    }

                    else

                    {

                        result = "WSO2 endpoint intergration is pending";

                    }

                }

                return result;

            }

            catch (Exception ex)

            {

                return "GUID error - " + ex.Message; 

            }

            

        }

    }

}

 

 

Thanks

Show all comments

Hello community,

I'm working on an assembly package and I'm dealing with some problems due to some customizations, in fact I tried to modify the replacing object of the Account, in particular the 'AccountInserting' event.

After this operations I noticed that the source code of the object remains empty and that the changes don't work, while doing the same operations in a "simple" package the source code is filled in and the changes work.

 

Do you have any idea why this is happening and how to fix this issue?

Let me know.

 

Thanks,

Luca

Like 0

Like

4 comments
Best reply

Hello Luca,

 

As stated in the Academy article here

  • It is not possible to implement object business logic via event sub-processes in the Object Designer. Use EntityEventListener to work with the event model. The EntityEventListener event set does not entirely match the event model in Creatio IDE. Learn more about the Entity event layer: Objects business logic.

And enabling the event on the object is needed for the sub-process in the object designer only. Please use the EntityEventListener instead.

 

Best regards,

Oscar

Hello Luca,

 

As stated in the Academy article here

  • It is not possible to implement object business logic via event sub-processes in the Object Designer. Use EntityEventListener to work with the event model. The EntityEventListener event set does not entirely match the event model in Creatio IDE. Learn more about the Entity event layer: Objects business logic.

And enabling the event on the object is needed for the sub-process in the object designer only. Please use the EntityEventListener instead.

 

Best regards,

Oscar

Hi Oscar,

I actually enabled the event on the object just to use it (as you said) in the sub-process in the object designer, but the customizations that I made there didn't work in an assembly package,  instead worked in a simple one.

Let me know if I have made myself clear or if you need other explanations.



Thank you.

Best regards,



Luca

Luca Tavasanis,

 

Hi,

 

As you said, you've enabled the event on the object to use in the sub-process in this object and did it in the assembly package. As stated on the Academy - it's impossible to use sub-processes on the object in the assembly package (and as a result the source code for the object won't be updated in case you are designing this sub-process in the assembly package). Can you please clarify what exactly is expected here?

 

Best regards,

Oscar

Hi Oscar,

sorry but I didn't understand that you were talking about the assembly package, my fault.

I will try the solution that you suggested with the EntityEventListener.

 

Thank you for your help!

Best regards,

 

Luca

Show all comments

Hello,

 

I've implemented some code because of the changes on the new version which is coming and do not support DB.Executor.

 

But when i'm executing my source code, the json result is dynamic : i've only the fields which are not empty.

In order to have a great code i've parse the json. So the format is correct that's a great json but I don't know how can I include empty field/value.

 

Is there somebody who can explain me how can I do in order to include all fields in the object to the json return list?

 

Thanks a lot.

Like 0

Like

0 comments
Show all comments

we have a custom button on the section page that triggers a process.

When the business process returns to the section page code, is it possible to capture a return parameter from the process  ? how ?

Like 0

Like

1 comments

The issue is that the process will execute asynchronously. The only way to get the value back from the process is, instead of using it as an output param, to send it as a message using a script task in the process that you will retrieve with client-side code on the page. 

You can see an article outlining how to do this here: https://customerfx.com/article/sending-a-message-from-server-side-c-to-…

 

Basically, at the end of your process, you'll add a script task. In that script task you'll get the param value, then send it as a message (as outlined in the article). Then, in your page code, you'll listen for that message, check to make sure it's the message sent from your process, and then read the value and do whatever is needed with it.

Ryan

Show all comments



Dear mates,

I used to access object source code from advanced settings but since few weeks i can just open a window with readonly feature:

 

i can still access by the page designer but it is a longuer way to made development.

Does anyone know why i can not reach the source code from the advanced settings ?

thank you,

Nicolas

Like 0

Like

2 comments
Best reply

Hello Nicolas,

 

There was no possibility to edit the source code of the object ever in the Creatio app using the object "Source code" option. The window with the source code is always opened in the read-only mode. The only thing that you can edit and save is the content of the "Modification package" tab of the object metadata.

 

Best regards,

Oscar

Hello Nicolas,

 

There was no possibility to edit the source code of the object ever in the Creatio app using the object "Source code" option. The window with the source code is always opened in the read-only mode. The only thing that you can edit and save is the content of the "Modification package" tab of the object metadata.

 

Best regards,

Oscar

Oscar Dylan,



Hello Oscar,

 

I apologize for disturbing you.

I was trying to access the orderpage by the order object... mistake.

Novice i am.

 

 

Have a nice day and thank you again

Best regards,

 

Nicolas

 


 

 

Show all comments