In Creatio some records have support for an image. For example, in the Contact section you can add a contact’s photo and in the Account section you can add a company logo. This article will outline the code needed to programmatically add an image to a contact or account from a URL. The code can […]
An integral part in building business logic in Creatio is being able to respond to entity events, such as when a record is added, modified, deleted, etc. Creatio does provide many ways to handle these events. You can add signal starts in processes or handle these events in entity subprocesses. This article will cover another […]
One of my favorite features of bpm’online is how you can create your own custom web services that you can consume from the client-side code in the UI. This allows you to offload heavy operations to the server that you can easily call from your code in the UI. These web services are referred to […]
Showing and hiding tabs in the Infor CRM (Saleslogix) client should be an easy thing. It should be something you can do on demand, and any time, no matter where things are in the page life-cycle. You should be able to show or hide tabs based on changes in other controls on the detail form. The help in Application Architect describes creating a module, an external assembly that you can wire up for the portal to show and hide tabs and runtime. That...
Avoiding the Dirty Data Message When Programatically Redirecting to a Record in Infor CRM (Saleslogix)
I'm not a huge fan of bugging end users. I figure, if an end user clicked something, he or she meant to click it. However, that's not always the case. It's especially a good idea for destructive actions or for things that will make a lot of changes and you want to make sure before you pass the point of no return. If a user clicks something and you need to confirm the action with some sort of "Are you sure?" prompt, then it m...
In most places in the Infor CRM (Saleslogix) web client, it's pretty easy to use security roles. You simply add the role string to an "Applied Security" property and the rest is magic. But what if you need to get more granular than that? What if you need to access the roles at runtime and apply security to something that doesn't have an Applied Security property? What if you need to apply role security to individual controls on ...
When checking for two (or more) different values for a property in a code snippet, you can't simply look at the string values without an error being thrown. For example: Sage.Entity.Interfaces.IAccount acc this.BindingSource.Current as Sage.Entity.Interfaces.IAccount; if (acc.type != "Customer" || acc.type != "Prospect")
If you've followed my posts on Sublogix, or even better, given Sublogix a spin, you'll know that if you're doing SalesLogix development Sublogix can save you a ton of time and give you a much easier to use data access and entity model. This post will show you how to extend the Sublogix entities to give you even easier access and save even more time.
On a recent project, I worked on emulating functionality similar to what is found in the LAN client where a user is presented a dialog asking them to choose between different activity types then launching into the Schedule Activity functionality. I found this was fairly easy to duplicate in the web client, and in this post, I'll quickly go through the steps for creating that type of functionality.
One of the many great things about developing for the SalesLogix Windows client using .NET Extensions is that you are able to unit test your code. However, since .NET Extensions are passed references to the running instance of SalesLogix, it's important to be able to mock those objects so you can test properly. Best of all, this also allows you to fully test and debug within Visual Studio without the need to have SalesLogix even running.
If you're working in the SalesLogix Windows (LAN) client, why not make as most use as possible of a modern development environment, language, and tools? The SalesLogix .NET Extensions feature in the SalesLogix Windows client is one of the best, and likely least used, features in the SalesLogix Windows client development story. A choice bewteen using an out-dated development environment and VBScript, with no possibility of using source control...
If you've ever created a SSIS package and wanted to provide a way for end users to run that package without having to run the Business Intelligence Development studio, you can compile the package into a dtsx file for them to run. This would require them to manually alter connections and variables, which can get complicated for an average end user. Alternatively, it is pretty simple to put together an application which can be used to run the ...
It's easy to access the UserService interface from a Code Snippet Action item in the SalesLogix web client. For this example, I'm just going to add a button on account detail which will launch a DialogService message with the current user.
I recently ran into a case where I had to query an Entity in SalesLogix to find records where a user was in any one of three fields. ICriteria has an Or operand but that is for comparing only two fields. So how do you do three? With Disjunction. Here is an example: Sage.Platform.RepositoryHelper<Sage.Entity.Interfaces.IAccount> […]
Something that was born out of a project I've been working on is a simple repository for SalesLogix that supports all the way back to SalesLogix v6.2 up to the current 7.5.3, both LAN and Web as well as stand alone applications and utilities. I've named it Sublogix. Sublogix is a simple object model and repository for SalesLogix. Sublogix is not meant to replace the SalesLogix Repository that lives in SalesLogix Web. It's purpose is t...
SalesLogix Exception trying to delete an Entity item from a collection: Collection was modified; enumeration operation may not execute.
If you are working in the SalesLogix entity model and try to loop through a collection and delete certain records, you will not be able to. This is because while you are looping through the collection you can not start removing items from the collection you are in. Instead what you can do is […]
The SalesLogix web client offers users the ability to see “recently viewed” items. These show the various records the user has navigated to during their current web session. This recently viewed history is accessible programmatically. Lets take a look at how to use it.
Programatically Creating a Temporary Lookup Group for a specific entity in the SalesLogix web client
In SalesLogix you will often see behavior where after saving a record your are taken to the detail view of the new record and the current group has been set to just the new record. In the LAN client there was a Application.BasicFunction method exposed to do this. In the web client there is not […]