Solution Starter: Project Server to Siebel
Microsoft® Office Project Server 2003
Microsoft Office Project Professional 2003
Summary: Read an overview of the Microsoft Office Project Server 2003 to Siebel Solution Starter. Learn about new features in the Microsoft Office Project Server 2003 Enterprise Project Management solution, and how these new features make great strides in business insight, work management, collaboration, and extensibility. (12 printed pages)
In today's business environment, information is power. Each functional business unit must automate, and this automation must be usable by the workers and accessible by every level of management. Enterprise Resource Planning (ERP) applications have served Finance exactly for this reason. Customer Resource Management (CRM) brought the Sales and Marketing business units this level of functionality and exposure. These two solutions, ERP and CRM, are common in that they are functional, not just reporting business tools, and they are deployed in the enterprise data center. Today, Enterprise Project Management (EPM) is the latest entry for the enterprise data center in support of all project-based business units, and is commonly used by IT, Consulting, Operations and Maintenance, and others. Microsoft® Office Project Server 2003 is the tool for EPM.
As new applications come into the enterprise data center, one of the primary considerations is how better economies of scale can be achieved by integrating with existing systems. From its initial design, Microsoft Office Project Server has addressed this requirement, exposing XML and SOAP interfaces to enable integration with any customer-specific business process. As open standards, these can be applied to and integrated with any enterprise application to achieve dramatic results with minimal cost and risk. The Project Server Project Data Service (PDS) API is founded on these technologies.
This article demonstrates how Project Server and Siebel are a natural integration fit in the enterprise. To see the complete Solution Starter see the Microsoft Office Project 2003 SDK. Siebel brings customer information to the table and Project Server brings service or project-based information and reporting. When these two products work together, the results are a better understanding of what the business is doing, how it is doing, and what effects can be expected.
CRM in the corporate world is an integrated approach to identifying, acquiring, and retaining customers. By enabling organizations to manage and coordinate customer interactions across multiple channels, departments, lines of business, and geographies, CRM helps organizations maximize the value of every customer interaction and drives superior corporate performance. CRM functions as the analytical data source, from which analysis of the current business climate, conditions, and near-term future are drawn.
EPM is the fine art of managing a project with many moving parts and dependencies, coordinating widely diverse team members across a large geographic separation, with very tight time and deliverable dependencies. This requires, at a minimum, the centralized coordination and management of all of the project information and resources applied to a project—no matter what their location or team function—and the sharing of information through a secure central document repository and e-mail system to enable better collaboration across the enterprise. EPM also requires real-time reporting on actual progress against the target schedule, and real-time analytical and workload balancing tools to optimize ongoing efforts. Finally, analysis of the project history is instrumental in generating and fine-tuning the enterprise best practices that will guide similar future efforts.
Because CRM processes can initiate and drive revenue-generating project activity, an efficient integration between project management and CRM software is necessary to achieve the full potential of both CRM and EPM. By joining the vast customer data repository to the mechanism that initiates and manages project planning, the time between recognition of an opportunity and capitalization on that knowledge is effectively reduced. Further, the feedback loop between Project and Siebel allows the key performance indicators of the project to be reported widely, reducing the chances of problems for new initiatives.
The integration of Siebel CRM and Microsoft Office Project Server 2003 demonstrates this best-of-breed relationship, and shows just one example of the possibilities offered by enterprise application integration with Project Server.
This article describes a sales provisioning solution created by integrating Siebel and Microsoft Office Project Server 2003. This solution enables Siebel Workflow to create and populate different types of Project plans based on Siebel business rules, to perform on-demand or scheduled synchronization of corresponding Siebel and Project data, and to generate line-item level invoices from Project data. A brief use-case scenario follows.
John is a salesperson, looking over his accounts for the upcoming quarter. New sales have slowed, and emphasis has shifted to account up-selling or cross-selling. Of course, every time an account enters an up-sell or cross-sell campaign, there are a number of different steps, people, and departments that touch that account, and it requires careful scheduling and boundary management within a reasonable time period (so that one prospect is not bombarded by calls from different reps about different products). Fortunately, someone in the company's Infrastructure Tech team came up with an integrated solution that connects Siebel CRM and Project Server 2003 so that all John needs to do is set the type of sales opportunity and the probability of success for that opportunity, and the servers take care of the rest. John sees that one of his accounts is a good candidate for a Global Security Portal up-sell, and sets the Success Probability value to 25%. Soon he receives an e-mail message, and he sees that a new GSP project plan has been created and scheduled, and he's been assigned the team leadership for taking on this initiative. He opens up the Project plan, looks over the team resource requirements, checks the schedule of the technical evangelist and a few of the region's field engineers, and with a few clicks has assigned resources to his team, scheduled the initial call, and set a tentative reserve on needed resources. Business as usual has just gotten easier.
The integration of Siebel and Project Server 2003 for a sales provisioning solution enables Siebel Workflow to create and populate a new Microsoft Office Project Plan based on business rules.
The Siebel / Project integration is an event-driven enterprise application integration that, in effect, translates enterprise business logic into real-world tasks. The integration is centered on the Siebel Opportunity Workflow that drives the cross-application data interchange. The Siebel Opportunity Workflow is a Siebel Business object that serves as a proxy for a Sales opportunity. The Project plan is the real-world expression of an enterprise "Best Practice" sales cycle corresponding to that opportunity, and is the coordination and management tool of the various employees that play a part in that sales cycle.
The Siebel Opportunity Workflow is made up of a number of Siebel business objects and business services, several of which interact with Project Server through the integrated solution to create projects, update project data, and generate invoices against a Project plan. Whenever Siebel experiences the "new opportunity greater than 20%" event, a Project plan is created, an initial primary resource is assigned, and the team is alerted to the new project.
The initial event in this sequence comes as an input from a Siebel user, when an account manager sets the Probability value of an Opportunity to 20% or greater.
Figure 1. New Opportunity Workflow starts when Probability % reaches or exceeds the 20% threshold (click picture to see larger image)
From this event, a Siebel Workflow specific to the Opportunity type starts and iterates through the implicated Siebel business objects. One of these business objects generates a New Project request and sends it over HTTP to Project Server. Project Server gets the incoming new request, determines that it is a PDS call, routes it to the correct PDS module where security is tested and validated, and then processes the request.
Based on the Siebel Opportunity type, a specific Project template is used to create, populate, and publish a new project plan. Project Server sends an e-mail message to the specified project manager with a notification of the new project and provides a path directly to the new project plan. The project manager can then make assignments and so on (either through the Microsoft Office Project Professional client or Microsoft Office Project Web Access).
Figure 2. New Project plan created from specific opportunity Project plan template (click picture to see larger image)
The initial project plan data is packaged and sent back to Siebel. Siebel receives the package, does an Extensible Stylesheet Language (XSL) data transformation to make it compatible with the Siebel XML definition, and then uses the returned data to set up a New Opportunity project in the Siebel database, with the OptyID visible in the user interface.
Figure 3. New Siebel Opportunity project, created from the Microsoft Office Project plan data (click picture to see larger image)
As the New Opportunity project is engaged, its progress is tracked in the Project plan, and updated in Project Server. The Siebel project data is synchronized with the Project Server data upon demand from a Siebel user who invokes a project update from the Siebel user interface.
Figure 4. Siebel user interface button for performing project update from Project Server
If the Opportunity probability is set to a value below the event threshold (that is, less than 20%), then the calls for project updates stop until the event threshold is met.
At certain times during the project and/or at the end of the project, Siebel generates an invoice for the project, using data from the Microsoft Office Project plan to create the invoice line items and get balances.
Figure 5. Siebel timesheet created from Project Server data (click picture to see larger image)
Components of the Integration Solution
The following are the Siebel components in the solution:
- Siebel business objects and services
- Siebel workflow processes
- Siebel Send/Receive—XML Request and XML Response
Siebel Business Objects and Services
The Siebel Business object represents specific data and tables in the Siebel application data model, and simplifies addressing and using it. Siebel business services operate on the business objects to perform functions against them, similar to method calls. Business services can simplify the task of moving data and converting data formats between the Siebel application and external applications.
Siebel Workflow Processes
A Siebel Workflow consists of one or more steps such as starts, decision points, business services, sub-processes, or tasks. A task can be a predefined or custom business service. Predefined tasks include updates to the Siebel database, notifications (such as an e-mail message or page), integration messages to external systems, and calls to invoke server tasks. The Workflow Processes module consists of a series of views for designing the flow of a process and then defining each step in the process.
Because Siebel makes synchronous calls to the Project components and functions, Project Server is essentially "wrapped" by Siebel's Workflow process.
XML Request and XML Response is part of the Siebel EAI (Enterprise Application Integration) HTTP Transport protocol. Siebel uses that protocol to send (HTTP POST) XML messages and receive (HTTP GET) XML messages from Project Server. The Siebel EAI service lets you send XML messages over HTTP to a target URL (Web site). The Siebel Web Engine (SWE) serves as the transport to receive XML messages sent over the HTTP protocol to a Siebel application; this enables inbound and outbound XML packages and corresponding requests.
Microsoft Office Project Components
The following are the Project components in the solution:
- Project templates
- Project Data Service modules
- A customized XML schema
Microsoft Office Project Templates
Project templates (.mpt) are used to create Project plans from the Siebel Opportunities. Each Siebel Opportunity type has a corresponding Project template.
Project Data Service Modules
The Project Data Service (PDS) modules handle the data manipulation that takes place inside of the application. For instance, whenever a new Siebel Opportunity initiates a new Project plan, the data sent by Siebel is received by and written to the Project database through the PDS modules. This implementation conforms to the Project Server data access security model. The PDS modules are written in Microsoft® Visual Basic® and delivered as a dynamic-link library (DLL).
Customized Project XML Schema
Microsoft Office Project provides a standard XML schema (a set of XML tag definitions for common Project data) that makes it much easier for application developers to model and exchange Project data, especially in the context of SOAP implementations. The Project Server to Siebel integration uses this schema to describe the XML packages that are sent back and forth between Project Server and Siebel.
Functional differences or inconsistencies between Siebel and Project Server are reflected in the following aspects of the solution design.
Siebel to Project Object Mapping
There are several places where mapping is required in order to bring the Siebel and Project models into alignment.
Mapping Siebel Opportunity Type to Project Templates
The Siebel Opportunity type, based on the type of new opportunity that is created, is a string value that is used to select the appropriate Project template to be used in constructing the new Project plan.
The Siebel Opportunity types and their corresponding Project templates used for this integration are shown in the following table.
Table 1. Siebel Opportunity types and corresponding Project templates
|Siebel Opportunity type||Microsoft Office Project template|
|Commercial Construction||Commercial Construction.mpt|
|New Business||New Business.mpt|
|Software Development||Software Development.mpt|
Mapping Siebel Role to Project Group
The Siebel Role to Project Group mapping was handled by creating a role in Siebel for each group used in the Opportunity type's Project plan.
For instance, the following table shows the Siebel Roles used in the Software Development Opportunity type, and the way that the corresponding Project plan groups were used in assigning tasks to resources.
Table 2. Siebel Opportunity Types and corresponding Project templates
|Siebel Roles, Software Development Opportunity||Microsoft Office Project Plan Groups|
|Deployment team||Deployment team|
|Project manager||Project manager|
|Technical communicators||Technical communicators|
Siebel Primary Position to Project User Mapping
Siebel has the concept of a "Primary Position" that represents the sales team member that is the primary stakeholder in the project, but is a role that is not assigned tasks in the Project plan. This user has all rights to the Siebel Opportunity project. Project does not have this kind of a construct. In the interchange between Siebel and Project, the primary position information is passed across and stored in the Project database. The Primary Position user information is then passed back to Siebel in the create procedures.
If the Primary Position user does not already exist in the Project collection of accessible enterprise resources, then the resource is created using the first name, last name, and e-mail address. In this case, the user will still have to be added through Project Web Access user management in order to gain access.
There are differences in XML format between Siebel and Project. Several possible approaches to reconcile the differences were considered.
Approaches to Reconciling XML Format Differences
Data transformation and mapping required some investigation during the first stages of design and development of the Siebel and Project Server integration. Differences in expected data between Siebel and Project Server would need to be accounted for during all aspects of interapplication communication. Script-based data translation was quickly discarded as an option, as that method is often too rigid and prone to errors. The first attempt involving actual code was to use Extensible Stylesheet Language Transformation (XSLT) to transform the XML package, which initially looked like the complete solution. However, the Siebel business object that enabled XML parsing had a 2K maximum input length for literal parameters (that is, using the values associated with constants). The possibility of an XSL transform for both sending and receiving the package was briefly discussed, however, a better solution would involve fewer transformations. The native Siebel Data Transformation Engine was chosen to be the point of entry for Project XML Response packages to XML.
Request Data Mapping
Siebel's XML packages are wrapped inside of some XML tags that are relevant to Siebel but are unused by Project, as shown in the following code.
Note The following example includes a paragraph mark to ensure correct rendering during publishing. To use this example in your own code, remove the extra paragraph mark.
<?Siebel-Property-Set EscapeNames="false"?> <SiebelMessage MessageId="1-RN6" IntObjectFormat="Siebel Hierarchical" MessageType= "Integration Object" xmlns="http://www.siebel.com/xml" IntObjectName="P2K3 - Opportunity"> ... ... </SiebelMessage>
The initial declaration tag and <SiebelMessage> tag are stripped out of the Request package by a custom script and the request is changed into Project XML format prior to sending the package to Project. Initially, the Siebel-to-Project XML format was done by XSL, but the presence of "duplicate tag" errors that occurred late in the cycle forced the use of script.
Response Data Mapping
The data in Project's Response package is not directly usable by Siebel, and so the data is reformatted by XSL and the Siebel Data Transformation Engine Service prior to use by the Siebel Business Service that does the Siebel project creation and updating. In the case of generating invoices, however, the response XML is processed solely by XSLT and the relevant information is extracted for Siebel's use in generating invoice line items.
Differences in default date formats between Siebel and Microsoft Office Project Server require conversion during the information exchange process. Date format in Project is yyyymmddhhmmsss, and date format in Siebel is MM dd, yyyy hh:mm:ss, so the conversions take place in the XML format transformation portion of the process.
Microsoft Office Project stores project manager data by a unique whole name value, and Siebel stores project manager data by first name/last name. Therefore, a conversion must be made when sending data between Project and Siebel. Following are the conversion rules:
Microsoft Office Project: The project manager name passed by Siebel is split on the last space; if there is no space, then the name in Microsoft Office Project is set to the last name and the first name is left blank.
Siebel: Single name in Project is split into first and last names for storage in the Siebel project.
Table 3. Examples of name handling in Project and Siebel
|Microsoft Office Project name||Becomes in Siebel|
|Name||First Name||Last Name|
|Michael J. Fox||Michael J.||Fox|
|A. J. Foyt||A. J.||Foyt|
Project Server Authentication
The Project Server security model now authenticates incoming requests and then passes a cookie back to the requestor. For every other transaction that takes place during that session, Project Server requests the cookie as proof of authentication and authorization. Siebel was able to accept the initial cookie passed back by Project Server but was not able to handle the subsequent requests for this cookie when making requests of Project Server.
The solution was to create a pair of Active Server Pages (ASP) pages (sbllogon.asp and sblcall.asp) which are hosted on the Project Server computer.
Figure 6. Request/Response cycle (click picture to see larger image)
The preceding figure shows the Request/Response cycle, and the following process:
- The Siebel request is sent to sbllgn.asp, which passes the request through to Project Server.
- After the authentication/authorization succeeds, Project Server passes back the cookie to sblloogn.asp.
- sblcall.asp passes the cookie back to Siebel in XML format.
- Siebel's next request (Result XML block with HRESULT & cookie & Request XML block with the actual request/data) is sent to sblcall.asp.
- Sblcall.asp verifies the authentication (checks to see that HRESULT value is 0). If this test succeeds, then the PDS request call is constructed in the proper format and sent on to Project Server. The general syntax of this PDS call is as follows:
cookieDatais the Project Server cookie information converted to a string and
<siebelRequest/>is the Siebel request XML node sent as an XML string in Project Server-compatible XML format.
- Reply from Project Server is redirected back to Siebel (transparent pass-through).
- Project Response XML data is reformatted into Siebel format by XSL/Siebel Data Transformation Engine or by XSL alone, as appropriate.
The following table describes the ASP pages used in the Request/Response cycle, and their corresponding page functions.
Table 4. ASP pages used in Request/Response and their functions
|ASP page||Page function|
|sbllogon.asp||Accepts incoming request for authentication from Siebel, passes it through to Project Server.
Accepts the returned response, which it returns to Siebel.
|sblcall.asp||Accepts incoming request for data from Siebel.
Extracts cookie and request XML block, reformats it as PDS(cookie, <siebelRequest/>).
Passes reformatted request to Project Server.
Accepts the returned response, which it returns transparently to Siebel.
Updating Project Information
Project Server cannot directly issue requests to Siebel. Consequently, all processes must be invoked by Siebel. For instance, project updates must be "pulled" from Siebel using a "Siebel Update" function, which is invoked from the Siebel user interface (or potentially by a programmatically scheduled update running as a service on a nightly basis).
Just as Project cannot directly issue a request to have Siebel update project information in the Siebel database, Project cannot initiate the generateInvoice call to Siebel. Therefore, Siebel Workflow initiates the generateInvoice process based on the invoice status.
Siebel Systems is an enterprise-level customer relationship management system that provides relational data tracking of client information, application programming interfaces for creating and automating enterprise business logic and a mature, comprehensive set of tools that meets many of the needs of enterprise business sales, consulting, and financial operations. For many enterprise users, a Siebel application is the line-of-business desktop interface to the business rules and information around which their job roles revolve.
Microsoft Office Project 2003 is a highly customizable application for managing a portfolio of projects, which allows for the development and efficient management of a large number of interdependent tasks that make up a larger goal. Project provides an easy-to-use Web interface for team collaboration, and a powerful client interface for project plan management. The rich feature set of Project aids in resource allocation, scheduling, work balancing, and needs forecasting. Project enables tight, very granular tracking and reporting of the key performance indicators of an ongoing project, to aid the early detection of signs that a project may be experiencing trouble.
The integration of the strengths in these two applications forms a more dynamic events-and-rules-driven information architecture. This architecture manifests itself in real-world tasks that enable tighter customer relationships, higher efficiency, and more opportunities for greater revenue. The rich synergies demonstrated in this integration provide an example of the kinds of enterprise best-of-breed solutions that can be created with Microsoft Office Project Server 2003.