Hello Everyone,

 

We have an Orders page from which our invoices are generated. The rate of Invoices depends upon the Day of the Week. (Different rate for weekdays & Weekends). However, one key thing is missing which are UK Holidays. Is there any way to define UK holidays in the system or in my process, so that the system knows that this day is a holiday and the rate should be the holiday rate?

Like 1

Like

3 comments
Best reply

Hello Hassan,

 

You can achieve this in the following manner:

 

1) Create a custom object (parent object should be "BaseLookup") where two integer columns should be added: UsrDayOfHoliday and UsrMonthOfHoliday. They will be used to store the day and the month of holiday respectfully.

 

2) Create a lookup in the "Lookups" section based on the object from step 1 and fill it in:

3) Your business process that generates orders should be modified and additional check for the current day to be UK holiday should be added. Like in the example below:

The logic here is simple: get current day and month and set it as process integer parameters, then use these integer parameters in the "Read data" filtration. Then we have the "It's holdiday!" conditional flow with the following condition:

 

[#Get possible UK holiday.First item of resulting collection.Id#] != Guid.Empty

 

It will check if any record was found in the "Read data" element and if so the "It's holiday today!" autogenerated page will be displayed. Otherwise the process will be terminated. 

 

In your process you need to use the same approach but instead of the autogenerated page you need to trigger the logic you need to be triggered when it's holiday in UK. Otherwise trigger regular logic for other days.

 

Hope it helps!

Hi Community, Any Ideas for this?

Hello Hassan,

 

You can achieve this in the following manner:

 

1) Create a custom object (parent object should be "BaseLookup") where two integer columns should be added: UsrDayOfHoliday and UsrMonthOfHoliday. They will be used to store the day and the month of holiday respectfully.

 

2) Create a lookup in the "Lookups" section based on the object from step 1 and fill it in:

3) Your business process that generates orders should be modified and additional check for the current day to be UK holiday should be added. Like in the example below:

The logic here is simple: get current day and month and set it as process integer parameters, then use these integer parameters in the "Read data" filtration. Then we have the "It's holdiday!" conditional flow with the following condition:

 

[#Get possible UK holiday.First item of resulting collection.Id#] != Guid.Empty

 

It will check if any record was found in the "Read data" element and if so the "It's holiday today!" autogenerated page will be displayed. Otherwise the process will be terminated. 

 

In your process you need to use the same approach but instead of the autogenerated page you need to trigger the logic you need to be triggered when it's holiday in UK. Otherwise trigger regular logic for other days.

 

Hope it helps!

Oleg Drobina,

 

Hi Oleg,

 

This looks promising really! Will try this and update. Thanks for you help!!

Show all comments

Good day, colleagues!

Please help me understand the issue. On the OpportunitySection (and similarly on the LeadSection ), the system does not allow any changes to be made, not even adding a simple comment. I'm making changes to the schema that was automatically created when modifying in the section wizard. It's in my own package.

23505: duplicate key value violates unique constraint "IUSysSchemaUIdSysPackageId"



 

Like 1

Like

5 comments
Best reply

I get that in recent versions when I create a package and then set that as the current package. Once I log out and back in again the issue goes away (assuming that what you're getting is the same issue that I've experienced). Have you logged out and back in again since creating the package?

Ryan

I get that in recent versions when I create a package and then set that as the current package. Once I log out and back in again the issue goes away (assuming that what you're getting is the same issue that I've experienced). Have you logged out and back in again since creating the package?

Ryan

Ryan Farley,

The package was created a long time ago, but your advice helped me :)) That's strange. Thank you very much!

Hi! 

I'm getting the same message when I try to save a new Entity. Do we have an update on the possible cause of the issue?



Thanks,

Ignacio.

I had this error recently, except for it was within the business process table. It was trying to save another record with an empty Guid (one existed already). 



Couldn't get an answer on how this happened. My belief was that when you copy a business process, it creates an empty record whilst at the same time, my browser was not allowing the copied business process to open in the new tab. (only logical reason I could think of)



I would check the values in the table you mentioned to see where there is a duplicate key and then delete one of them. 

Same issue here. Someone has this resolve?

Show all comments

Hi Community,

Is it possible to add a new System Variable to be used in the Object level, so that we can use it as a default value?

Thank you

Sasori

Like 1

Like

3 comments
Best reply

Hello Sasori,



These values are hardcoded and you can't change them.

Hello,

 

It's possible. Default values can be set via configuration for all replaced objects. For example, if I want to set the default Account for Orders I create replaced object for Order and specify it in the default value field. It can be selected from existing values, system settings, or variables.



Please note that if the selected default value is removed or the type of system variable and lookup is different it can lead to different issues so do not select values that can or will be deleted. 

Hi Bogdan,

Thank you for the explantion but my question was a little bit different.

The question is how/where to configure a new System Variable beside the existing ones:

New ID

New Sequential Id

Current User

Current User Contact

 

Thank you,

Sasori

Hello Sasori,



These values are hardcoded and you can't change them.

Show all comments

Hello,

I need to alter the file upload so that certain attachments are saved to an external system rather than the Creatio database. I need to know the schema and methods that handle the upload and download of files in the freedom UI so that I can modify it as needed.

Any help is appreciated. Thank you!

Allen

Like 0

Like

2 comments

Hello,

 

You can set up an S3 integration to complete your task.

More information is available here: https://academy.creatio.com/docs/user/setup_and_administration/base_int…

 

Best regards,

Yuliya

In our case the need is to implement an integration with a third party document storage solution which has its own API.

 

Is it recommended to use the Creatio File API(reference below) for such a use case? . And if so, how do I configure Creatio to make it  use the custom developed File API instead of the out of the box attachment functionality?

 

https://academy.creatio.com/docs/developer/back_end_development/api_for…

 

Show all comments

Hi Everyone,

 

We have 2 different types of rates for Customers. One is when the Order date is within Weekdays (Monday-Friday) and the other is for Weekends (Sat-Sun). We have an Order date/time field in our orders. Now is it possible to write a formula that finds out that using that date/time field to determine if the day is Weekday, then it uses the Weekday rate in the business process otherwise it uses the weekend rate?

 

I am looking into DayOfWeek() function but am unsure how to use it in the process. Also, this page is created in Freedom UI if that makes any difference. Thanks in advance!

Like 1

Like

4 comments

Bump!

Any help with writing this Formula? I need to write a formula that differentiates my Order Pickup time (Date/Time field) from Weekdays and weekends

Hi Hassan, 



You need to use the DayOfWeek property of the DayTime class in the formula. 

 

Create a new boolean parameter called IsWeekday 

Create a new formula element in your business process and populate it with the following : 



"YourDateTimeField".DayOfWeek > 0 && <=5 

 

Then, based on the value of your IsWeekday parameter you can proceed with calculating the rate for the order. 

 

Best regards,

Yuri.

Yurii Sokil,

Thank you, Understood

 

Show all comments

Hi Everyone,

 

Is it possible to refresh of a page (Freedom UI Page) through the business process? Currently, we have multiple business processes running in our Freedom UI Order page and the client has to do a manual refresh every time. So I was wondering if it's possible to automate it as well through the process? I know that it is possible in Classic UI and I have seen the Marketplace app for it as well but that doesn't work in Freedom UI. So any ideas?

Like 2

Like

3 comments
Best reply

To do this in a Freedom UI page, this article shows how to receive the server message:

https://customerfx.com/article/receiving-server-side-messages-in-a-creatio-freedom-ui-page/

 

Once the message is received, you can refresh the page using the code outlined in this article:

https://customerfx.com/article/refreshing-reloading-page-or-list-data-on-a-creatio-freedom-ui-page/

 

Also, for Freedom UI, there is a new option where you can set an entity to always automatically refresh the page when it’s updated in a process, as an alternative approach to the above. See https://customerfx.com/article/automatically-refreshing-a-creatio-freedom-ui-page-or-list-after-updating-a-record-in-a-process/

 

Ryan

+1 for Freedom UI

To do this in a Freedom UI page, this article shows how to receive the server message:

https://customerfx.com/article/receiving-server-side-messages-in-a-creatio-freedom-ui-page/

 

Once the message is received, you can refresh the page using the code outlined in this article:

https://customerfx.com/article/refreshing-reloading-page-or-list-data-on-a-creatio-freedom-ui-page/

 

Also, for Freedom UI, there is a new option where you can set an entity to always automatically refresh the page when it’s updated in a process, as an alternative approach to the above. See https://customerfx.com/article/automatically-refreshing-a-creatio-freedom-ui-page-or-list-after-updating-a-record-in-a-process/

 

Ryan

Thanks Ryan, you rock as always

Show all comments

Hi Community,

 

Is there a way to get the id of the attachment that has been generated through Process file in a business process as illustrated in file attached?

 

The idea is to read the id of this generated report to apply custom access rights.

 

 

Thank you for your help,

Like 0

Like

1 comments

I do wish it would return the ID, however, since it *can* create multiple files for whatever matches the filter conditions it's not always a single ID or file created.

What I typically do is do a read immediately after for attachments on the record, sorted by Created On desc, and also use the Name of the file based on the naming of the printable used. It's not ideal but has worked for me.

Ryan

Show all comments

Hi Community,

I have restored a cloud instance, locally. In Cloud the functionality (FileApiService) works.

The problem I am facing is that I can not upload files in the Attachments object (ex AccountFile) in the local instance.

 

Console

Console Response is in the attached file

File attachments
Like 0

Like

2 comments
Best reply

Good day,

 

Is it possible that the cloud instance was set up to upload the files to an S3 storage?

Please try changing the ActiveFileContentStorage setting to the database and compiling the system.



After that please try uploading the file again.

Thank you.

I will re-upload the Console Response , because the text file can not be opened.

{
    "errorInfo": {
        "errorCode": "NullReferenceException",
        "message": "Object reference not set to an instance of an object.",
        "stackTrace": "   at Terrasoft.Core.AppConnection.get_S3ConnectionParameters()\r\n   at Terrasoft.File.S3.Settings.S3ConnectionSettingsProvider..ctor(AppConnection appConnection)\r\n   at DynamicInjectord7776e6fbfbf47f3aaef1f7b3f02b5c5(Object[] )\r\n   at Ninject.Activation.Context.ResolveInternal(Object scope)\r\n   at Ninject.Activation.Context.Resolve()\r\n   at Ninject.KernelBase.Resolve(IRequest request, Boolean handleMissingBindings)\r\n   at Ninject.Planning.Targets.Target`1.ResolveWithin(IContext parent)\r\n   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()\r\n   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)\r\n   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)\r\n   at Ninject.Activation.Providers.StandardProvider.Create(IContext context)\r\n   at Ninject.Activation.Context.ResolveInternal(Object scope)\r\n   at Ninject.Activation.Context.Resolve()\r\n   at Ninject.KernelBase.Resolve(IRequest request, Boolean handleMissingBindings)\r\n   at Ninject.Planning.Targets.Target`1.ResolveWithin(IContext parent)\r\n   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()\r\n   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)\r\n   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)\r\n   at Ninject.Activation.Providers.StandardProvider.Create(IContext context)\r\n   at Ninject.Activation.Context.ResolveInternal(Object scope)\r\n   at Ninject.Activation.Context.Resolve()\r\n   at Ninject.KernelBase.Resolve(IRequest request, Boolean handleMissingBindings)\r\n   at Terrasoft.Core.Factories.ClassFactory.&lt;&gt;c__DisplayClass16_0.&lt;Get&gt;b__0()\r\n   at Terrasoft.Core.Factories.ClassFactory.GetInstance[T](Func`1 action)\r\n   at Terrasoft.File.StorageInstanceFactory.CreateContentStorage(FileMetadata fileMetadata)\r\n   at Terrasoft.File.File`2.&lt;InvokeOnContentStorage&gt;d__32.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at Terrasoft.File.File`2.&lt;WriteAsync&gt;d__45.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at Terrasoft.Common.Threading.AsyncPump.Run(Func`1 asyncMethod)\r\n   at Terrasoft.Configuration.FileUpload.FileUploader.Upload(IFileUploadConfig fileUploadConfig)\r\n   at Terrasoft.Configuration.FileUpload.FileUploader.UploadFile(IFileUploadConfig fileUploadInfoConfig)\r\n   at Terrasoft.Configuration.FileUpload.FileUploader.UploadFile(IFileUploadInfo fileUploadInfo, Boolean isSetCustomColumns)\r\n   at Terrasoft.Configuration.FileApiService.UploadFile(Stream fileContent)"
    },
    "success": false,
    "nextPrcElReady": false,
    "queryId": null,
    "responseStatus": {
        "ErrorCode": "NullReferenceException",
        "Message": "Object reference not set to an instance of an object.",
        "StackTrace": "   at Terrasoft.Core.AppConnection.get_S3ConnectionParameters()\r\n   at Terrasoft.File.S3.Settings.S3ConnectionSettingsProvider..ctor(AppConnection appConnection)\r\n   at DynamicInjectord7776e6fbfbf47f3aaef1f7b3f02b5c5(Object[] )\r\n   at Ninject.Activation.Context.ResolveInternal(Object scope)\r\n   at Ninject.Activation.Context.Resolve()\r\n   at Ninject.KernelBase.Resolve(IRequest request, Boolean handleMissingBindings)\r\n   at Ninject.Planning.Targets.Target`1.ResolveWithin(IContext parent)\r\n   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()\r\n   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)\r\n   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)\r\n   at Ninject.Activation.Providers.StandardProvider.Create(IContext context)\r\n   at Ninject.Activation.Context.ResolveInternal(Object scope)\r\n   at Ninject.Activation.Context.Resolve()\r\n   at Ninject.KernelBase.Resolve(IRequest request, Boolean handleMissingBindings)\r\n   at Ninject.Planning.Targets.Target`1.ResolveWithin(IContext parent)\r\n   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()\r\n   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)\r\n   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)\r\n   at Ninject.Activation.Providers.StandardProvider.Create(IContext context)\r\n   at Ninject.Activation.Context.ResolveInternal(Object scope)\r\n   at Ninject.Activation.Context.Resolve()\r\n   at Ninject.KernelBase.Resolve(IRequest request, Boolean handleMissingBindings)\r\n   at Terrasoft.Core.Factories.ClassFactory.&lt;&gt;c__DisplayClass16_0.&lt;Get&gt;b__0()\r\n   at Terrasoft.Core.Factories.ClassFactory.GetInstance[T](Func`1 action)\r\n   at Terrasoft.File.StorageInstanceFactory.CreateContentStorage(FileMetadata fileMetadata)\r\n   at Terrasoft.File.File`2.&lt;InvokeOnContentStorage&gt;d__32.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at Terrasoft.File.File`2.&lt;WriteAsync&gt;d__45.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at Terrasoft.Common.Threading.AsyncPump.Run(Func`1 asyncMethod)\r\n   at Terrasoft.Configuration.FileUpload.FileUploader.Upload(IFileUploadConfig fileUploadConfig)\r\n   at Terrasoft.Configuration.FileUpload.FileUploader.UploadFile(IFileUploadConfig fileUploadInfoConfig)\r\n   at Terrasoft.Configuration.FileUpload.FileUploader.UploadFile(IFileUploadInfo fileUploadInfo, Boolean isSetCustomColumns)\r\n   at Terrasoft.Configuration.FileApiService.UploadFile(Stream fileContent)",
        "Errors": null,
        "Meta": null
    },
    "rowsAffected": -1
}

 

Good day,

 

Is it possible that the cloud instance was set up to upload the files to an S3 storage?

Please try changing the ActiveFileContentStorage setting to the database and compiling the system.



After that please try uploading the file again.

Thank you.

Show all comments

Hi Everyone. I have a custom Orders screen, in which we assign orders to different catchers. So we simply have a list of catchers from which we can select catchers and then populate them in the below list. But we are looking to further move to an advance level. Our plan is to somehow show list of catchers that are available and not available. Initially we planned to display 2 different lists, one those are available and second that are not available while making a record in our Orders.

 

The availability depends upon the catcher. If the catcher is in a previous order with time less 12 hours. Then he is not available. Is this possible within Creatio? If so, then a short guide to how it is possible would be great! Thanks!

Like 1

Like

1 comments

Hello!

 

For your idea, you could implement 2 different lookups. Below you will find information on how to create a lookup: https://academy.creatio.com/docs/user/setup_and_administration/system_s…

Show all comments

Hi Community,

I have created a detail in a section. Inside the detail I have created a new tab and have added a custom"Attachments" detail.

-I have followed this guide : https://academy.creatio.com/docs/7-16/developer/interface_elements/deta…

- I have also named The entity for the attachments like"ParentEntityFile"

This is what i get

Why is this happening ?

Sasori

Like 0

Like

2 comments

Hi Community,

Any udpate on this issue ?

Hi Sasori,

It looks like you didn't create an attachment detail properly.

In this situation, it is better to create a section via "Section Wizard" based on your detail object, and in there use attachment detail. After creating a section you can just hide it from a workplace and customize the page as you need.

Show all comments