Blogs from an old one

Blogging on things that interest and challenge me...

Subscriptions

< November 2006 >
Su Mo Tu We Th Fr Sa
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9

Navigation

BizTalk 2006 - Ghost Images ... Issues and Solutions

First and foremost, this post belongs to Alberto Gemin.  Since he does not have an InfusionBlog yet, I am posting this solution on his behalf.

By the way, Full Installation instructions for the BizTalk 2006 installation are located here:  http://www.microsoft.com/downloads/details.aspx?FamilyID=b273269c-97e0-411d-8849-5a8070698e4a&DisplayLang=en
 

Since most of us work with Virtual PCs for our BizTalk work, demos etc. we don't often run into issues related to machine ghost images.  We have been working on a project for a public sector client that wanted to have machine installs for each of the BizTalk developers on the team.  To speed up the machine process, they required the creation of a Ghost image.  After some testing we decided to use the following base image:

  • Windows Server 2003 SP1 with all Critical Service Packs installed and configured
  • Create a BizTalk User to be used for the service account for SQL, WSS, BizTalk
  • IIS 6.0 Installed
  • Office Excel Installed
  • Visual Studio Installed
  • SQL Server 2005 Installed.
  • Windows SharePoint Services 2.0 SP2 Installed but not configured
  • BizTalk installation downloaded to the machine drive
     

With this image we created our first machine.  

We renamed the machine and completed the configuration of ASP.NET, WSS, and SQL Server.  BizTalk 2006 was installed and configured.  All seemed to be well.  The issues came up when we added the new machine to the network and imaged our second machine.
 

The issues will often manifest themselves differently depending on your domain or workgroup but fall into three areas: 
 

  • Change the computer name and the workgroup name (if you are using a workgroup - even temporarily) 
  • SQL Reporting Services unable to connect to the database.  SQL Server 2005 is smart enough to recognize a machine name change and fix itself.  (SQL 2000 requires sp_dropserver/sp_addserver). 
    • Fix: Use the Reporting Services Configuration Manager, connect with the correct database name and go to the Database Setup section. Under Server Name select the correct database server. Then go to the Encryption Keys tab, delete all encrypted content and create a new encryption key
  • WSS is unable to connect to the database.
    • Fix: This is a registry fix and should only be attempted after backing up the registry and must be completed with caution.  Using the Registry Editor (regedit), navigate to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SPTimer.  
      On the right pane, right click and select New -> MultiString value. On the Key Name field, type "DependOnService" (without quotes). Then double-click the newly created key and enter "MSSQLSERVER" in the Value Data field (without quotes).  WSS was attempting to start before SQL Server and failed - this is now fixed.

Again… thanks to Alberto for the R&D!

Peter 

posted April 27, 2006 7:17 AM by PGoth with 0 Comments

SQL Server 2000 A Tip on the way out

Ok...its been too long since I have blogged (that one time) and now I want to turn technical for a few minutes.

So SQL 2000 is on its way out the door... but there will be thousands of DBs that won't be upgraded (for the time being) and there is one Stored Procedure and Parameter Based Query that I find invaluable (and will be checking in 2005).

In a nutshell it allows a varialble number of parameters to be passed to a query. And no... it is not the dreaded build a SQL statement and pass it to the Stored Procedure for execution.  (see EXEC @SQL)

There are some varying opinions about this but the bottom line is that it can make reporting (aka SQL Reporting Services) very flexible.

If I have the following table in SQL Server called Transaction

Field Name

Type

TransactionID

Int (Identity)

BankAccountID

Int

TransactionDate

DateTime

Amount

Money

And I have the following data in the table

TransactionID

BankAccountID

TransactionDate

Amount

1

1

10/31/2005

100

2

1

11/1/2005

-50

3

2

11/2/2005

1000

Now I need to create a Stored Procedure to query this table on a variety of column data.. (the same concepts can be applied to parameters in any query).

----------------------------------------------------------------------------------------
CREATE PROCEDURE spTransactionGetQuery
@TransactionID int = null,
@BankAccountID int = null,
@TransactionDate DateTime = null,
@Amount Money = null

AS

SELECT TransactionID, BankAccountID, TransactionDate, Amount
FROM Transactions
WHERE
 TransactionID = ISNULL(@TransactionID,TransactionID)
AND
 BankAccountID = ISNULL(@BankAccountID,BankAccountID)
AND
 TransactionDate = ISNULL(@TransactionDate, TransactionDate)
----------------------------------------------------------------------------------------

Now I can supply any one of the parameters to the query....

EXEC spTransactionGetQuery 

will return all of the rows

TransactionID

BankAccountID

TransactionDate

Amount

1

1

10/31/2005

100

2

1

11/1/2005

-50

3

2

11/2/2005

1000

EXEC spTransactionGetQuery @BankAccountID = 2

will return the one row that matches the bank account

TransactionID

BankAccountID

TransactionDate

Amount

3

2

11/2/2005

1000

EXEC spTransactionGetQuery @BankAccountID = 1, @TransactionDate = '10/31/2005'

will return the one row that matches this query

TransactionID

BankAccountID

TransactionDate

Amount

1

1

10/31/2005

100

This works because of two key concepts.  The first is setting the default value for the parameter when it is declared in the Stored Procedure. All parameters are set to an initial value of Null.

The second is the use of the SQL Function ISNULL.  ISNULL evaluates the first parameter for Null.  If the value is null, the function returns the second parameter.  If the first paramter's value is not null, the function returns the value of the first parameter.

So, when we do not pass any parameters, its default value is Null and when evaluated in the ISNULL function, the column data is returned so the query essentially becomes

SELECT TransactionID, BankAccountID, TransactionDate, Amount
FROM Transactions
WHERE
 TransactionID = TransactionID
AND
 BankAccountID = BankAccountID
AND
 TransactionDate = TransactionDate

If we pass just one parameter (@BankAccountID = 2) the query becomes

SELECT TransactionID, BankAccountID, TransactionDate, Amount
FROM Transactions
WHERE
 TransactionID = TransactionID
AND
 BankAccountID = 2
AND
 TransactionDate = TransactionDate

For SQL Reporting Services, the same concepts apply.

So... I will be checking how this applies to SQL 2005.

Some good news on the SQL 2005 front is that Robert Vieira is completing a new book on SQL Server 2005 Programming.  His book on SQL was THE bible on SQL 2000.


 


 

 

posted November 2, 2005 10:49 AM by PGoth with 0 Comments

Customer Relationship Management (CRM), It’s Everyone’s Business

I was originally going to start my BLOG with an article about Douglas Adams but I am going to recycle an article I wrote and "Infusionized" - inspired by Greg's BLOG.

Customer Relationship Management (CRM) was one of the single most difficult business processes to implement over the late 1990s and early part of this decade.

 

The problem has not been the process or business tools used, it was the impact that CRM has on the organization.  A typical Enterprise Resource Planning (ERP) application (think SAP, PeopleSoft or JD Edwards) would affect between 55% and 70% of all of the employees of an organization.  A CRM application will involve between 90% - 100% of the employees of an organization.  That is a tremendous amount of buy-in.  A small group or even single employees could easily delay or derail the process.

 

Why does CRM require such a high percentage of employee buy-in?

 

Without even knowing it, every employee of an organization has a direct or indirect impact on customer relationships.  Some have a much higher impact than they even realize.  In one manufacturing/sales organization that implemented CRM, we asked the question “Who in your organization is most important to your clients?”  The answer was often sales staff and executive staff.  When we asked the organization’s clients, the response included the shipping and reception staff.  This was a surprise to the organization’s senior staff.  It resulted in additional training for all employee groups and the addition of reception and shipping staff to the CRM system.

 

Why worry about CRM at Infusion?

 

Infusion is not “your typical organization”.  Management decided early on that all staff have some impact on the relationship that the company has with clients.  The simple act of a live person answering the phone can have a tremendous impact on how a client perceives Infusion. 

 

For a long time, CRM was considered just a “sales tool”.  Something that sales staff used to track customer contacts and potential business.  This is just a small part of a complete CRM solution.  CRM is about managing the relationships that Infusion has with all of its clients and partners.  A complete CRM solution includes vendors and partners such as Microsoft.

 

As Infusion grows, there will be staff that do not seem to have any relationship with the client.  Administration, internal development teams and related staff may not communicate directly with the client but they all contribute to the “client experience”.  The client experience may be as simple as answering a question or finding someone who can answer the question.  It may also be as complex as solving a particular business problem or providing a unique technical service.

 

So how does this affect me?

 

Although CRM is not a formal process at Infusion, it is embedded throughout every position in the organization.  You need to look beyond the day to day tasks that you work on and see how they affect or might affect our clients.  Look to providing a positive experience for the client in everything that you do.  It is not simply “the customer is always right”.  That is a naïve statement that can create serious issues with client relationships.  It’s more about the best interests of the client.  As the client succeeds, Infusion will succeed.  As Infusion succeeds so will you!

 

Look for best practices in your day to day work.  More often than not, it is the simple things that can make the most impact.  Do everything to the best of your ability and look beyond the task and into how your work affects those around you, the company and all of Infusion’s partners.

 

CRM is a process but also an attitude.  Know that you contribute to the process and your attitude can make all the difference.

 

 

 

 

 

 

posted May 17, 2005 8:18 AM by PGoth with 0 Comments

Powered by Community Server, by Telligent Systems