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: , , , , , , ,

The Report on Reports

Posted by Kristin Lisson on December 09, 2011
Administrator, Blog, End User / No Comments

If there ever was such an unwarranted, ridiculous, and devious list, I believe this would be
The Top 5 Sage SalesLogix Reports for the Holiday Season:

5. (History) History by Contact: Have you ever wondered if you can find not only who made the last change to a record, but what it was that they changed? Or maybe you changed a value, and now you want to change it back, but you can’t remember what it was. Use this report to see a list of all history—including database changes— for any account to which you have access. Now you no longer have to bribe your SalesLogix Administrator to look up something for you, and instead you can keep those reindeer-shaped cookies and almond bark pretzels all to yourself!

4. (Labels) A4 Avery L7159 – Address: Getting ready to send out office holiday cards of you and your staff dressed as adorable penguins wearing Santa hats? Make distribution easy by printing address labels for all of the contacts who made it on your “Nice” list this year.

3. (Sales Order) Sales Order Detail: Don’t have ERP Link configured yet? Surprise your back office staff with printed sales orders rolled up as stocking stuffers!

2. (Ticket) Support Ticket Knowledge Base Summary – Sample: What better activity to plan at the holiday office party than ticket knowledge base trivia?! The winner gets to pick a prize from the Ugly Christmas Sweater trunk.

1. (Opportunity) Competitor By Opportunity Status: Nothing says holiday spirit like finding out who your top competitors are and leaving a flaming fruitcake at their doors.*

*Do not actually do this. In fact, Sage is not responsible for cavities, embarrassment, paper cuts, regret, injuries, or any other consequence from reading this list. We hope you learned something about the power of reports! Happy Holidays!

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: , , , , , , , ,

Felt Story: Implementing for Sage SalesLogix

Posted by Kristin Lisson on October 12, 2011
Administrator, Blog / 1 Comment

In an Implementing for Sage SalesLogix virtual training course, we are limited to using one machine. This video helps you visualize a real-world, multi-client-server environment as you work through the training course.

Tags: , , , , , ,

Customer Service Options for LAN and Web Clients

Posted by Kristin Lisson on September 10, 2011
Administrator, Blog, End User / No Comments

If your company uses tickets, check out the new “Explore User Options for Customer Service” video in the Administrator’s Subscription. Sage SalesLogix includes several configuration options so that you can adjust the out-of-the-box workflow to fit individual user preferences. In the video, learn how to:

  • Set user defaults for ticket entry and ticket.
  • Automatically assign users to tickets based on the selected Area.
  • Set up an approval process for SpeedSearch submissions.
  • Identify which Customer Service options apply to a LAN only environment and which options can apply to both LAN and web.

Here are some of the dialogs we cover:

Customer Service User Defaults

Service/Support Tab for Office Profile

Service/Support Tab for User Profile

Tags: , , , , , , , , ,

Sage SalesLogix Security Essentials

Posted by Kristin Lisson on September 08, 2011
Administrator, Blog / No Comments

Students who are new to Sage SalesLogix Administration or Implementation courses may need extra time and practice to fully understand how security works—there are just so many options to make SalesLogix fit almost any business model. The trick is to discover not only which options apply to your company, but also which options apply to a LAN or web environment.

To help make this process easier, I created this Sage SalesLogix security comparison chart. SalesLogix experts and n00bs alike, tell me what you think. Did I miss anything?

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

32 bit mode on a 64 bit machine? Why?

Posted by Jason Huber on September 06, 2011
Blog / 1 Comment

The problem

If you install SalesLogix on a 64 bit machine (Windows server of course), you are told that you need to change your application pool mode to “classic.” This instruction is on page 93 of the current implementation guide. It seems that this would be a huge hindrance to performance for your website. That isn’t the case with this particular setting. The Managed Pipeline mode tells IIS how to handles requests. By default IIS 7 will use a single pipeline for all code and this pipeline is tightly integrated with ASP.NET, which I assume means better/faster. This mode does not have anything to do with memory instead it adds the ability for IIS to run some legacy modules.

What about the Allow 32 bit applications setting? Same deal here, we have some modules that will not run in 64 bit mode like the provider and groupviewer. So does this mean in 32 bit mode my website is only getting 2 gigs of Ram? yes it does but not really.

Good practice?

Each application pool is assigned that 2 gigs of memory. You can place SData, SlxClient, and processhost in their own app pools. The same goes for any other virtual directory. In their own app pool each virtual directory will get its own 2 gigs of memory. Not too bad, but you can always up that to 4 gigs with a registry setting.

An easy solution? Well it isn’t necessarily a solution, but an easy way to get your website some more memory. You need to match these application pool settings in Application Architect since AA will by default use the same app pool for all portals.

I bet the fix is to get those modules rewritten or modified so they are not 32 bit or classic mode dependent.

But wait there is more

According to Stuart Carnie who ran a dumpbin on w3wp.exe on a 64 bit machine w3wp is large address aware and does get 4 gigs be default.

I think we have a good solution worked out. Is this how you do it? Is my explanation off somewhere? I am not an expert in IIS by any means, so please add your comments!

SHOWDOWN: Web Admin vs LAN Admin

Posted by Kristin Lisson on September 02, 2011
Administrator, Blog / 2 Comments

…In this corner of the ring we have the newcomer: Web Admin. It’s light, it’s bright, and it’s quick on its feet. But is it a match for the ever-faithful, ever-powerful LAN Admin? Round 1: *DING!*

That concept is all wrong. The Web Administrator is not necessarily designed to replace the LAN Administrator; in fact, both toolsets are actually very complementary [and complimentary] to one another.

OH: “Web Admin, you look very nice today. LAN Admin, you are just too kind.”

But what if you have both a LAN and Web implementation of SalesLogix—when should you use either tool? Or what if you have a Web-only implementation—do you still need the LAN Administrator? Let’s explore.

Web Only Implementation

Even if your sales staff does not use the Network Client, you (as the administrator) still need to rely on the LAN Administrator for some tasks—like managing SpeedSearch indexes, cutting Remote databases for Offline Web Clients, or adding licenses, just to name a few. But the Web Administrator is still a great tool to rely on for light-weight tasks like adding a user or changing product pricing because you can use the Web Administrator from any computer (even from your mobile device), and it saves you from having to remote into your SalesLogix Administrative workstation or server. It is also great for delegating small, data-entry tasks—like managing pick list items or lead sources—to standard users so that they can complete them without any assistance from you.

LAN and Web Implementation

If your sales staff uses a mixture of LAN and Web Clients, the same scenario above applies. The difference is that in order to give LAN users administrative features, you can grant them access to the Tools > Manage and Tools > Maintenance menus through Function Security, whereas to give Web users administrative features, you can assign them to a role. Roles rely on secured actions and are specific to the Web Client only.

Here’s a short video to explore the toolset and compare it against the LAN counterparts so that you can identify how or when you might use each tool. (This video is best viewed in full screen, HD mode.)

For more information and other videos like these, visit the Sage SalesLogix Administrator’s Subscription page.

Tags: , , , , ,