Developer

I have a dialog insert form. How can I default the parent entity?

Posted by Jason Huber on February 20, 2012
Developer / No Comments

Let’s say we have a new entity called widgets. These widgets can be tied to contacts and/or accounts.

The widgets have a few fields price, quantity, date, and color.

The widgets have a relationship to contacts and accounts too.

You can add widgets from the contact’s mainview and from the account’s mainview since there is a more tab (quickform) for each. To add a widget you press the little green plus and the addeditwidget quickform appears.

This addeditwidget quickform is found in AA under the widget entity (not under contact or account).

When you press add widget from a contact (say John Abbott) you want John Abbot and Abbott ltd. to show on the insert widget form that shows as a dialog right?

In order to do this you need to set the widget.contact and widget.account.

Well you need to know that when that dialog “pops up” you can insert some code.

C# code specifically. You can tell the current entity in a load action of the form by typing:

Sage.Entity.Interfaces.IWidget widget = this.BindingSource.Current as Sage.Entity.Interfaces.IWidget;

Now you can get the parent of that widget by saying:

this.GetParentEntity();

But this addeditwidget form is loaded from both the contact and account. What if you have a contact? What if it is an account? You can set both the contact and account if the parent is a contact. You can only set the account if the parent is an account.

So you check:


object parent = this.GetParentEntity();
if(parent is Sage.Entity.Interfaces.IAccount)
{
//we have an account, set the account
widget.Account = (Sage.Entity.Interfaces.IAccount)parent;
//assuming the widget has a relationship called Account
}
else if(parent is Sage.Entity.Interfaces.IContact)
{
//we have a Contact, set the account and contact
Sage.Entity.Interfaces.IContact contact = (Sage.Entity.Interfaces.IContact)parent;
widget.Account = contact.Account;
widget.Contact = contact;
//assuming the widget has a relationship called Account and one called Contact
}
else
{
//well this is an awkward else isn't it?
}

The context for each control will be set for you. Enjoy!

Visualization Markings

Posted by Kristin Lisson on February 06, 2012
Blog, Developer / No Comments

A marking represents the selection that occurs when the user interacts with the visualization. For example, if a visualization allows markings, a user can click on a bar in a chart to mark a single item, or the user could click-and-drag a rectangle area around a group of bars in a chart. Marked rows are given an identifying color.

marking example

As the developer, you need to decide the behavior of the visualizations based on each marking instance you may choose to create. The following six scenarios describe some common approaches to how you program marking options when you have two or more visualizations.

1) Use the Same Marking, No Data Limiting

This option uses one marking instance for all visualizations on a page—or even for all visualizations in the entire dashboard (i.e. all pages). This means that if a user makes a selection on one chart, all other charts that use that marking instance will automatically use the same identifying color to highlight the corresponding value (if any).

In the example (right), if the user marks a bar from the top chart, the corresponding slice of the pie is automatically marked in the bottom chart. Likewise, if the user selects a slice of pie from the bottom chart, the corresponding bar is automatically marked in the top chart.

option 1

2) Use Separate Markings, No Data Limiting

This option uses a separate marking instance for each chart. In the example (right), a selection in the bar chart has no effect on a selection in the pie chart and vice versa. Additionally, a selection in the pie chart uses a different identifying color.

option 2

3) Use No Markings, No Data Limiting

This option prevents users from making any markings in one or more of the visualizations. In the example (right), only the pie chart is set to use no markings. This means that the user can select anything in the bar chart but cannot click to select anything in the pie chart.

option 3

4) Use the Same Marking Markings, Data Limiting

This option is probably not very useful in most situations. In the example (right), only the pie chart is set to limit data. This means that the user’s selection in the bar chart makes up 100% of the pie chart’s total data set, which is automatically selected.

option 4

5) Use Separate Markings, Data Limiting

This option uses separate marking instances for each chart; however, the total data set for the pie chart is limited by the marking used in the bar chart, which means the pie chart is not even visible until a marking is made in the bar chart. Once visible, the user can select a segment in the pie chart without affecting the marking from the bar chart.

If you had a third visualization with a separate marking, you could limit the pie chart to use data from both markings, in which case the total data set would reflect the intersection of the markings (i.e. only the data that is common to both charts).

option 5

6) Use No Markings, Data Limiting

This option seems to be very popular. In the example (right), only the pie chart is set to use no markings and limit data, which means that the pie chart is not even visible until a marking is made in the bar chart. Additionally, the user cannot click to select anything in the pie chart.

option 6

Download PDF version of this information.

Tags: , , , , , , ,

Plane and Simple

Posted by Kristin Lisson on November 14, 2011
Blog, Developer / No Comments

What do paper airplanes have to do with Sage SalesLogix?




Check out some of the results of the survey in the graphic to the right.

Note:
Full survey responses are reserved for Sage SalesLogix Partners and are posted on PartnersOnline with other 2011 Boot Camp materials.

Tags: , , , ,

Sage SalesLogix Boot Camp 2011: Unlocking the Power of SData

Posted by Kristin Lisson on November 07, 2011
Blog, Developer / No Comments

Here’s a snippet of the SData discussion at Sage SalesLogix Boot Camp 2011 discussing the groups system endpoint, which implements the request to execute groups a little differently than we’ve seen with SData before. (Because the group itself is only going to get the metadata.) We do this through $queries/execute?[resource]. Here are two examples:

*************************************************************************************************************
Execute a group based on its plugin ID:
/slx/system/-/groups/$queries/execute?_groupId=p6UJ9A0004TS

Execute a group based on its family and name:
/slx/system/-/groups/$queries/execute?_family=Account&_name=All Accounts

*************************************************************************************************************

Why are “_groupId” and “_family” underscored? Nathan (SData expert) joins the SData discussion from Melbourne via Skype and tells us why:

Tags: , , , , , , , ,

Sage SalesLogix Mobile Implementation Guide v1.1

Posted by Kristin Lisson on September 02, 2011
Administrator, Developer / No Comments

To install Sage SalesLogix Mobile, refer to the Sage SalesLogix Mobile Implementation Guide v1.1. You can find this guide and the v1.1.zip (Application Architect bundle) inside the Sage SalesLogix v7.5 Service Pack 4 zip (SLX_v754.zip) under Installs\SalesLogix Mobile

The implementation steps include:

  1. Install the Sage SalesLogix Mobile v1.1 Bundle.
  2. Deploy the SLX Mobile Portal and the SData Portal.
  3. Define the Default Document.
  4. Send the Mobile Portal URL to Users.

If you plan to make customizations to the out-of-the-box mobile site, be sure to read this post on GitHub download tips and this post on customization tips.

Tags: , , , , , , ,

HQL DataSource – sometimes the simple answer

Posted by Jason Huber on August 23, 2011
Developer / No Comments

I recently had a situation where I wanted to show a “more tab” with a datagrid that would show data that had a secondary relationship to the entity on which it was placed.

The idea is on the User details I wanted to show the tasks assigned to that user through the project. In this scenario the project is assigned to the user. The task user is not the correct user.

So the relationship looks like this:

Users -> Projects -> tasks

Users has a .projects, but I cannot get the tasks to show using a traditional datagrid so I used a very simple HQL Query.

Add the HQL Data source to the page and the query can be as simple as (from) “Projects p inner join Tasks t”

The relationship is already defined, so we do not need to SQL “on p.projectid = t.projectid”

Now we can set our columns to whatever we want to show in the grid, add the grid and we are on our way.

Simple.

Secured Actions Fix

Posted by Kristin Lisson on July 29, 2011
Administrator, Blog, Developer / No Comments

A recent request (thanks, Paul!) led me down a path I didn’t expect. How do you create a Delete Lead role in the Web Administrator? Because the existing Entities/Lead/Delete secured action is already created for us, I assumed that I would simply follow these steps:

  1. Remove the Entities/Lead/Delete secured action from the Standard User role.
  2. Create a Delete Lead role.
  3. Assign the Entities/Lead/Delete secured action to the new role.
  4. Assign a designated user to the new role.

While those steps are valid, it’s missing a very important piece! The out-of-the-box Entities/Lead/Delete secured action—and a few others—aren’t assigned to an interface item. To fix any of those out-of-the-box secured actions, you need to go into Application Architect, locate the interface item that you want to restrict, and then assign the appropriate secured action to it using the Applied Security property. After building and deploying your changes, then you can proceed with the steps above. This fix applies to Sage SalesLogix versions v7.5.3 (with the Admin Accelerator bundle) and v7.5.4.

For more information, check out this video I created to step you through the process.

For more video tips like this one—including a neat trick for creating a custom Librarian role in the Web Administrator—visit the Sage SalesLogix Administrator’s Subscription. Inside the subscription, you can also download an electronic workbook for using the Web Administrator tools.

Tags: , , , , , , , , , ,

Create Widget Dimensions and Metrics for a Custom Entity

Posted by Kristin Lisson on July 14, 2011
Administrator, Blog, Developer / No Comments

At Sage SalesLogix Boot Camp 2010, Jason Huber presented on widgets, and I helped with the curriculum. In the presentation we included two exercises:

  1. Configure a dashboard widget (very basic end user stuff)
  2. Create a custom widget (very intense developer stuff)

It turns out that we missed the middle! How do you allow your end users to configure a dashboard widget from a custom entity? Easy: Use entity filters! Here are a few things to remember:

  • Each widget requires 1 Group, 1 Dimension, and 1 Metric. This means that if your custom entity does not have a main view, you need to create one so that you can set up groups.
  • A Dimension is a filter that has a type of Distinct or Range.
  • A Metric is a filter that has a type of Analtyics Metric Definition or Analytics Date Differencing Metric Definition.
  • Set the Available for Analytics property to True in order to see your filter in the widget.


I created a video to show you a great example of 4 different widgets using a variety of dimensions and metrics for an “Expense” entity. As usual, Jason came up with the example, and presented it as part of his Sage Summit session this week. Now it’s yours, too!

Tags: , , , , , , , , ,

Mobile Field Trip

Posted by Kristin Lisson on July 11, 2011
Administrator, Blog, Developer, End User / No Comments

It’s time to enhance your workflow by pairing the SaleLogix you know-and-love on your PC with the SalesLogix you-will-come-to-love on your mobile device! Although the mobile version* provides the same tools to build relationships and remain connected with your business, the interface differs slightly from the familiar PC experience. Want to learn the tips and tricks? Take 14 minutes to watch this Sage SalesLogix Mobile training video. (Click http://slxtraining.net/newmobile to watch from your mobile device.)

You’ll learn how to:

  • Configure settings and keep local storage for offline data access.
  • Quickly enter data (like adding a new account and contact).
  • Easily link to different pages with the fewest taps/touches.
  • Create notes to record phone calls and e-mail messages.**
  • Use hash tags to search for a group of records in list view.

Let us know if you’re satisfied with the new Sage SalesLogix Mobile experience!


*Requires Sage SalesLogix v7.5.3+. Supports iPhone 3.x+, iPad, Android v2.1+, BlackBerry v6.0+, and HTML5/CSS3-compliant browsers. Learn more here.

**In order to use the Record to History feature, you must access Sage SalesLogix Mobile from within your mobile device’s native browser application.

Tags: , , , , , , , ,

Introduction to Sage SalesLogix Course

Posted by Kristin Lisson on June 28, 2011
Administrator, Developer / No Comments

Before students attend the Implementing or Administering Sage SalesLogix course, we ask them to complete the Introduction to Sage SalesLogix course. This Anytime Learning course contains three components:

  1. Windows Administrator Fundamentals
    • Client/Server Architecture
    • Services
    • IIS and Web Hosting
    • Relational Databases
    • Windows Domain, User Permissions, and Shared Folders

  2. Sage SalesLogix Fundamentals
    • Introduction to SalesLogix
    • Accounts and Contacts
    • Leads
    • Opportunities
    • Dashboards
    • Tickets
    • Lookups and Groups

  3. Pre-Assessment

Why do we offer this course? One reason is that we no longer teach Sage SalesLogix fundamentals in the Admin/Imp courses, so this course is often the first chance that a new administrator sees the product that they are about to be responsible for administering! The other reason is to get students up to speed on basic Windows administrative functions that are required of someone in this capacity. The pre-assessment includes 20 multiple-choice questions, and it simply helps assess how well your skills meet class expectations. It’s no big deal if you don’t get a perfect score, but it could save you a week’s worth of frustration in training if you determine early that you may not be the person at your company to assume this role.

If you’re interested, take some time to check it out—there is no cost for registration!

Tags: , , , , , , , , , , , , ,