I need a single field to hold a DateTime variable.

It should be available for being read/written via business processes.

I tried to use System settings for this, but with no success; I couldn't manage a business process to set a value for a System setting.

What is the best way to keep a global variable in Creatio?

Like 0

Like

4 comments

Yurily,

A system setting is the best place for something like that. Normally, I'd use a Modify Data element in the process to write it back, but in current versions of Creatio the lookup to add columns to update causes a client-side error so you're unable to select columns. 

However, you can set it with a script task. Let's assume your value is a string value and currently in a process parameter named "MyParameterValue". You'd add code something like this to read it from the parameter and set a system setting with a code of "UsrMySetting":

var val = Get<string>("MyParameterValue");
Terrasoft.Core.Configuration.SysSettings.SetValue(UserConnection, "UsrMySetting", val);
return true;

Ryan

Ryan Farley,

Thanks for your answer. The thing I don't understand is what "Yurily" means :)

Yuriy Konstantinov,

lol, sorry for the typo Yuriy!

Ryan Farley,

Hi Ryan,

 

I'm doing this, but for some reason the updated value is not on the System Setting if I see it by the System Settings, but If I ask it on a process I get the updated number.

 

I try to explain better, I create a System Setting variable, and init it with a number, in the process I update the value of the system setting and use it for some task, but when I come back to Creatio System setting and open the System setting is just like I define it, no change, but If I ask its value from a process it's updated.

 

I think is something related with cache or whatever, did you know what could be wrong?

 

For example, the following sub process is called in a "Read collection of records" loop.

 

In the first image you can see, I get the value of the System Setting called "Incidencias Detectadas - Correlativo Histórico" and add 1 and stores it in a local parameter.

 

The initial value in the System setting is 1

 

In the next step of the sub process I did something with the value, and in the third element of the sub process I update the system setting using the updated value in step 1. ie the old number + 1

 

 

It works OK, it's fine!, but when I came to System Setting, it shows me the initial number, ie: 1 and it must be 800 to my example,

 

You can see the value still is one, but If I read the value from a process, it gives to me the correct value. WHAT'S WRONG?

 

Thanks in advance

Julio Falcón

Show all comments

Hi Community,

 

Scenario : We have a added image to a section/detail. Post adding, we have an option to add another/delete the uploaded image

 

Question: Is there am option to zoom/view the uploaded the image, than view in the thumbnail size instead of increasing the image placement.

File attachments
Like 0

Like

1 comments

Hello Amritha,

 

You can try to take an example of code from OOB application. The schema name is BaseMessageHistoryItemPage that is placed in the Message package. The functionality is developed for the Case page and works in the following way - you just click on the picture that is placed in the Email or Portal message to enlarge it.

 

Best regards,

Bogdan S.

Show all comments

Installed Zoom Connector at https://marketplace.creatio.com/app/zoom-meeting-connector-creatio 

I have a Zoom paid account and that the user's email address is the same as the CRM user entering an activity and the activity "Reporter". But the "Create Zoom meeting" is read-only, instead of editable. So the relevant user has been added to the Zoom Contacts detail in the Contact field of my Zoom account.

Two Questions:

Does the Zoom contact to Creatio user match need to be by email, by full name, or both?   

Is the match based on the activity's Created by the user or the activity's Reporter?

Like 0

Like

5 comments

Hi Dick,

 

To create an activity with the 'Create Zoom meeting' editable attribute, add the relevant user in the "Contact" field on the "Zoom Contacts" detail of your Zoom account.

The add-on automatically adds data to the "Zoom contacts" detail and matches this data with Creatio contacts by email.

If you find an empty "Contact" field in the records of the "Zoom contacts" detail, populate such field manually.

 

Note that matching is performed for the user who creates the activity (using the "Created by" field).

 

Hope this helps, 

Have a good day!

Svetlana Kobizka,

Sorry by my Creatio user email for the Created To field of the activity IS the same as a Zoom Users Management->user listed as a "Basic" type of contact.  But Creatio activity form "Create Zoom Meeting" is always set to read only

Hi Dick,

 

Please confirm that you populate the 'Contact' field on the 'Zoom Account User' detail of your Zoom account:

 

No description available.

Thank you!

 

 

S.Kobizka,

The Creatio Zoom section is filled in with all of the information.  Does the First name and last name have to exactly match a Zoom basic or licensed user?  How can I find the matching UserID in the Zoom app to verify

Hi Dick,

 

You need to open the ‘Zoom Account User’ detail of the record (see pic. 1) -> populate the ‘Contact’ field (see pic.2 ) -> and save the changes:

 

Picture 1

No description available.

Picture 2

No description available.

 

Hope this helps,

Have a good day!

Show all comments

Hello,

 

I am using the following link to create multi select from a detail using my custom sections.

https://academy.creatio.com/documents/technic-sdk/7-16/adding-multiple-…

whenever i add the following :

    mixins: {

            // Connecting the mixin to the schema.

            LookupMultiAddMixin: "Terrasoft.LookupMultiAddMixin"

        },

the detail does not display, when i remove it, the detail displays but i cannot add anything.

Did anyone face this kind of behavior ?

 

Maher.

 

 

 

Like 0

Like

3 comments

Hi maher,

What errors do you see in the browser console?

Ryan

Ryan Farley,

Hello Ryan,

 

I get the below error:

 

 

Ryan thank you for your reply, i fixed it, i forgot to add the LookupMultiAddMixin string at the top of the schema.

 

In fact your article on customerfx made me realize my mistake. 

 

Regards,

Maher.

Show all comments

Hi

I need to add a field in the AccountProfile showed on contact page, is it possible ?

Like 0

Like

4 comments

Stefano,

 

Please check this Academy Article. It contains detailed description of the Connected entity profile, its structure and the way it can be modified.

Please let me know if any additional information is required.

 

Best regards,

Bogdan

Can you give me an example Bogdan?

 

Stefano Bassoli,

 

Unfortunately, I was not able to find any ready-to-use examples but here is another Community Post that has pretty the same type of request and the recommendations on how to implement this kind of logic.

 

Best regards,

Bogdan

Hi Bogdan,

I was able to do the customization required.

I replaced the AccountProfileSchema and in the diff section I added the needed field

Show all comments

Hi,

In the opportunity section, the customer field allows the choice between contact or company
Is it possible to show only the account?

I saw the code to manage the multilookup in the BaseOpportunityPage, 
but I don't know if it is possible to customize it.
Like 0

Like

2 comments

Hello Stefano,

 

Please check this Community Post. It contains the same implementation request and the solution.

 

Best regards,

Bogdan

 

It works!!

Thank you very much

Show all comments

Dear mates,

I build a process on the call object.

When a record is add the process should be launch.

But it never start.

it looks like the problem i all ready have with this object:

https://community.creatio.com/questions/open-call-page-after-call

Does anybody has an idea or should i call the support ?

Thank you,

Nicolas

Like 0

Like

2 comments

Hello, Nikolas,

please try removing filters from the start signal (in order to make sure that is not the reason). Thank you.

Hello Daria,

Woups, it looks like there are two Post on the same subject !

https://community.creatio.com/questions/new-calls-does-not-launch-proce…

i deleted this one but you can reach it from your side !

If you can help me i m allways looking for a solution.

Have a nice day and thank you,

Nicolas

Show all comments

Hi Community,

 

Scenario : We have 6 request type [created a new section - request] and for each type there is a printable assigned. So, whenever we open a request type and click on the printable, we get all the 6 printables drop down.

 

Question: Is there a way we can restrict showing all the printables expect for the type we have selected while creating the request?

File attachments
Like 0

Like

2 comments

Hi Amritha,

 

Theoretically it is possible and to do that you will need to override the initCardPrintForms method on the edit page of your section. Please firstly see the basic method declaration in the PrintReportUtilities mixin.

 

There should be something like this in the edit page schema code:

//get the collection of all printables
var printMenuItems = this.get(this.moduleCardPrintFormsCollectionName);
printFormsMenuCollection.each(function(item) {
  item.set("Visible", {bindTo: "getPrintMenuItemVisible"});
}, this);

and then declare the custom logic in the getPrintMenuItemVisible method

getPrintMenuItemVisible: function(reportId) {
  //logic that returns true/false
}

Or you can use the preparePrintFormsMenuCollection method in the mixin and call it in your schema code:

preparePrintFormsMenuCollection: function(printForms) {
			printForms.eachKey(function(key, item) {
				if (!item.get("Caption")) {
					item.set("Caption", item.get("NonLocalizedCaption"));
				}
				item.set("Tag", key);
				if (item.get("TypeColumnValue")) {
					item.set("Visible", {bindTo: "getPrintMenuItemVisible"});
				}
			}, this);
		},

and again bind some logic to getPrintMenuItemVisible.

 

We don't have a ready example, but debugging the existing logic shouldn't be difficult.

 

Best regards,

Oscar

Hello Amritha,

If you still need help implementing this, I did a complete writeup of what is needed here: https://customerfx.com/article/showing-or-hiding-printables-based-on-a-…

Ryan

Show all comments

Is it possible to change the calendar hour view to a 12 hour view instead of 1-24?

Like 0

Like

2 comments

Dear Chris,

 

As for now, there is no possibility now to change the way how time is displayed in the calendar. We have this idea registered for our R&D team so they will consider it for implementing in the future updates. 

 

Best regards,

Angela

Hi,

Is there any updates on this or still no way to change the hour view?

Show all comments

Hi All,

 

We need to link an email (Send email manually) to an activity from the business process. 

 

In the process element, we can not select the activity and fill in the parameter. It seems all the parameter is predefined in the process element (send email).

 

From the advanced mode we see that we can add piece of code in the function:

protected override void AfterActivitySaveScriptExecute(Entity activity) 

However, after the element is executed this function is not triggered. 

If you have the same experience, could you help us to make it work?

 

Thanks.

 

regards,

Cheng

 

Like 0

Like

7 comments

Hello Cheng,

 

The email that is generated from the business process in case this email is being sent manually is an activity itself and we can use this to bind it to another activity. It is way more easier to do using the following process rather than creating a code that could do it:

This is more relevant approach since you let the end user to select an activity to which the email should be connected (you can also add other conditions so to automatically bind the sent email to another activity, this process can be modifed in the way you need).

 

Best regards,

Oscar

Hi Oscar,

 

Thanks for the info. The solution will work technically , but on user level it is difficult to use that because:

 

1. Usually, activity will be a big list. Sometime, lots of fields have the same value. It is really difficult for users to do this manually. 

 

2. The autogenerated page element will only be executed after the email is sent. Before that, the business process will remain on running (on the send email element).

 

Is there anyway we can get the created email Id right after the email (activity) is created in the database?  

Cheng Gong,

 

Thank you for the clarifications!

 

As for the first point - it depends on the way activities are generated in the system. Yes subjects of activities can be similar and it would be difficult to select the correct one so we can use an automatization in the process using the "Read data" element and filters inside this element so to get the activity needed in our case (that should be connected to the email-activity). That's why I mentioned that the process can\should be modified.

 

As for the second point - that's also a good notice, in this case the user can select the activity directly in the list of activities in this field on the email page:

Or let the automated process to connect this email to the activity that the process selects (for example using the "Read data" process element).

 

You can get a created activity Id in the database directly for example by its creation date, subject of the email, sender of the email or other parameters and for example start another process that will apply needed connections to the email in case you don't need the activity to be connected to the email after the email is sent.

 

Best regards,

Oscar

Hi Oscar,

 

We can generate the name of activity, however, it still leaves the select to the user, and this might cause the email is linked to the wrong activity. 

 

We know we can let user to select the connect to activity from the UI of the email. but again, same story as above. User can make mistake there.

 

You can get a created activity Id in the database directly for example by its creation date, subject of the email, sender of the email or other parameters and for example start another process that will apply needed connections to the email in case you don't need the activity to be connected to the email after the email is sent.

Yes, we can get it by using few field, but the certainty is not 100%. Also, if we connect the email and activity in another process, we will lose the original activity which triggered process.

 

Is there any way we can add custom code in the SendEmail element?

 

Cheng Gong,

 

Yes there is a possibility to add a custom code in the advanced settings of the element:

but the code will be executed after any changes to the email are applied and the record is saved, but not when it is created.

 

Best regards,

Oscar

Hi Oscar,

 

Thank you for the information and eventually the issue and solution is found.

 

Due to the local dev is still old version 7.12 and I am using file design mode, Visual Studio's stop point is not hit, but actually the function is fired. After I switch on the "Force Compile" option, it is working properly.

 

On the later version, the function is trigger right after the email activity is created by the element. I post the code in case anyone who need realize the same function (for example, connect the email to the custom section via process element).

 

var id = activity.PrimaryColumnValue;
var userConnection = this.Get&lt;UserConnection&gt;("UserConnection");
Activity fromDb = new Activity(UserConnection);
fromDb.FetchFromDB(id);
Guid linkedActivityId = fromDb.ActivityConnectionId;
var originalActivityId = this.Get&lt;Guid&gt;("UsrActivityId");
 
if (linkedActivityId == Guid.Empty &amp;&amp; originalActivityId != Guid.Empty)
{
		using (DBExecutor executor = UserConnection.EnsureDBConnection())
		{
			Update updateActivity = (Update)new Update(userConnection, "Activity")
					.Set("ActivityConnectionId", Column.Parameter(originalActivityId))
					.Where("Id").IsEqual(Column.Parameter(id));
					updateActivity.Execute(executor);
		}
}

Here "UsrActivityId" is process parameter's code for the activity which triggers the process.

 

Be careful with the update query, you would better not update any field which is in your process trigger.

Cheng Gong,

 

Fantastic! Good job and thank you for sharing the code!

 

Best regards,

Oscar

Show all comments