Helpdesk Customization Guide
|
|
|
- Jeffry Tate
- 10 years ago
- Views:
Transcription
1 Table of Contents Helpdesk Customization Guide Helpdesk Customization Guide... 1 Table of Contents... 1 A few words about customizing Helpdesk and best practices... 2 Customization use cases... 3 Should I override a command or the file alias of the template that implements the command?... 3 Overriding a command... 3 Overriding a file alias... 4 How to override a command... 5 Prerequisites... 5 Solution... 5 How to leverage existing functionality by overriding a template file alias... 6 Prerequisites... 6 Solution... 6 How to create your own custom console... 7 Prerequisites... 7 Solution... 7 Debug and Test your customizations... 9 How to add a scalar field... 9 Prerequisites... 9 Solution... 9 Debug and Test your customizations How to add lookup field Prerequisites Solution Debug and Test your customizations How to centralize all of your custom strings for ease of management and localization Prerequisites Solution Debug and Test your customizations Database Tables Views Stored Procedures... 19
2 A few words about customizing Helpdesk and best practices Helpdesk pages are developed using AppWeaver, an application development platform that provides a number of features designed to support very lightweight User Interface development with an eye toward easy customization and maintenance. AppWeaver provides services and controls that allow development of fairly complex pages with a minimum of markup and coding. AppWeaver basically extends the capabilities of ASP.NET, so a firm grasp of ASP.NET page fundamentals and how server-side web controls work is very important. We recommend finding a good book (Microsoft Press and Wrox both have a good selection) on developing for ASP.NET before attempting any serious customizations. Most AppWeaver controls are simply derived from standard ASP.NET controls. In addition to the standard properties provided by the base controls, AppWeaver controls also offer the following: Automatic localization. All display text (text, tooltips, labels, entries, etc.) is rendered in the current culture of the browser (assuming resource assemblies or custom XML string files have been provided for that culture code). Resource libraries can be searched in preferred order, allowing for easy string override. Cooperative layout. When contained within a Layout control, these controls negotiate for space (according to attributes set in the Layout control) and position themselves dynamically. This allows pages to specify controls in a flat markup stream without having to position them absolutely and inject new controls into the page where they will be dynamically integrated into the layout. Critical for Helpdesk s upcoming UI-based customization features. Takes care of labeling and column margins without having to spec them in markup. Two-way databinding. ASP.NET provides one-way databinding where data is moved from a datasource into form controls. Two-way databinding copies data out of the form controls and back into the original datasource where it can be immediately committed. Inherited data sources. Databound controls look up the ancestor hierarchy for data source specifications. Cleans up the markup by allowing datasource specifications to be made at a container level rather than on each control (explicit specification on any control always overrides any ancestor specifications). This is especially useful for property pages where multiple controls are bound to a single dataset. Inherited modality. Controls can be console modal or disabled on an entire page to simulate a modal console display. AppWeaver also has several custom controls that you will encounter in Helpdesk page templates. The Layout control (mentioned above), the MultiPage and PageView controls, and the WebGrid. Unlike most typical ASP.NET applications, Helpdesk utilizes a coding approach that can be called code in front (as opposed to the code-behind strategy used by most ASP.NET applications). This means that the pages that implement the Helpdesk User Interface are installed with their source-code exposed in the same template file with their markup (they are compiled by ASP.NET just in time ) and are therefore ideally suited for heavy customization. While these files can be edited directly to create customized behavior, it is actually not considered a best practice to do so. The Helpdesk install components maintain a running list of files that they are responsible for and ignore all others. This means that custom files can simply be dropped in place among the shipping files and will be left alone when Helpdesk is removed or upgraded. AppWeaver provides a file aliasing mechanism to allow you to override the shipping files and dynamically replace them with your own modified copies. As of HD 6.0 SP1 you can simply drop a custom.config file into the web in to customize the application. This custom.config file allows you to specify override definitions in the root of AeXHD or in an appropriate entry point (typically the worker folder it behaves like web.config in that definitions are inherited from parent directories). Overridden files are opened in place of the originals. The format of custom.config is as follows (unneeded definitions can be deleted):
3 <?xml version="1.0" encoding="utf-8"?> <custom.configuration> <consoles> <console id="conid"> <command id="existingornewcmdalias" moduleid="templatemodule" name="sidnamestring" description="siddescstring"> <commandparam name="template" value="overrideornewfilealias" /> </console> </consoles> <presentations path="~/existingorcustomfolder/"> <presentation name="existingornewpresname" file="overrideornewpresfile.ascx" /> </presentations> <files path="~/existingorcustomfolder/"> <file id="existingornewfilealias" file="overrideornewfile.ascx"/> </files> <imgfiles path="~/existingorcustomfolder/"> <imgfile id="existingornewimagealias" file="overrideornewimage.gif" width="100" height="100" alt="sidaltstring" /> </imgfiles> <resourcelibs> <resourcelib assembly="resources.assembly" base="resources.base" /> <resourcelib file="resources.xml" path="~/existingorcustomfolder/" /> </resourcelibs> <strings> <string id="sidexistingornewstringalias">overridden or new string!</string> </strings> </custom.configuration> The best practice technique is to make your override definitions right in this file (rather than in a copy of web.config in a new entry point as previously documented). When upgrades/reinstalls occur this file is left alone so that your overrides continue to be in force. New/overridden strings added directly to this file (as opposed to strings in new resource libs added to this file) are not localized. Resource libs added to this file follow the localization mechanism and can contain localized strings in culture-code-named subfolders (this is discussed in more detail below). Customization use cases Should I override a command or the file alias of the template that implements the command? This depends upon whether you will only be making modifications to a template, or whether you also need the template to be invoked with a different command context. A command s context is defined by its declaration in a web.config file and includes, but is not limited to: ID. The identifier of the command. Module ID. The module alias for the module,.net user control (.ascx file), that implements the UI and functionality of the command. Modality. Whether the command should be run modally or not. By convention most of the editors in Helpdesk are modal. This forces the user to accept or cancel the changes and prevents an inadvertent loss of data. Command Parameters. Static data (analogous to input parameters to a function or subroutine). Overriding a command The newitem and edititem commands of Helpdesk will help illustrate what is meant by a command s context. Both commands rely on the same template, WorkItemEdit, to provide their UI and functionality. The template behaves differently for the two commands because their context s are different. Below are the declarations of the newitem and edititem command as they appear in the ~/worker/web.config file.
4 web.confing <command id="edititem" moduleid="templatemodule" name="sidedititem" description="sidedititemdesc" modal="yes" privileges="privviewincidents,priveditincidents"> <commandparam name="template" value="workitemedit" /> <command id="newitem" moduleid="templatemodule" name="sidnewitem" description="sidnewitemdesc" modal="yes" pivileges="privcreateincidents"> <commandparam name="template" value="workitemedit" /> <commandparam name="action" value="new" /> The WorkItemEdit template can access the command context, in this case the commandparams, through the Command object provided by AppWeaver. WorkItemEdit.ascx code snippet If Command("action") = "new" Then [do something] Else [do something else] End if In summary, if you want to change a command s context then you will override the command. Overriding a file alias If the context is sufficient, and you just need to add some functionality to a template (perhaps you would like to expose a new field) then you will probably only need to override the file alias. In this scenario you would copy the WorkItemEdit.ascx to CustomWorkiItemEdit.ascx in a custom directory, make the necessary modifications, and then override the file alias so that it references your copy of the file. This can be made clear by looking at the file alias for the template commandparam (the same commandparam is used for both newitem and edititem) : <commandparam name="template" value="workitemedit" /> The alias WorkItemEdit is declared in the ~/web.config and is resolved by AppWeaver to an actual file in the web (in this case ~/templates/workitemedit.ascx): <files path="~/templates/"> <file id="workitemedit" file="workitemedit.ascx"/> <files /> Therefore by changing the file that is referenced by the alias you can tell the system to load and run CustomWorkItemEdit.ascx instead of the original template WorkItemEdits.ascx. For example, you might change the file alias as follows (this should be done using the custom.config file and not editing the web.config file directly): <files path="~/custom/"> <file id="workitemedit" file="customworkitemedit.ascx"/> <files /> IMPORTANT - Specific examples on overriding commands and file aliases will be given and will follow the best practice guidelines that we have established in order to ensure the greatest likelihood of success and to minimize the possibility that your customi zations will continue to work when Helpdesk is upgraded.
5 How to override a command This customization covers steps that can be taken to override a command. It involves creating a custom.config file and providing a command declaration to override an existing command from the worker console. In this example you will be overriding the viewitem command so that you can provide additional context by specifying custom data using a commandparam. Prerequisites You need a familiarity with customization integration using custom.config (see Helpdesk Integration document for additional information). You need a familiarity with XML Solution You will be creating a custom.config file and providing a command declaration that overrides an existing command from the web.config. Create a custom.config file and override the viewitem command Create a file named custom.config in the worker entry point (i.e. ~/worker) with the following contents: ~/custom.config <?xml version="1.0" encoding="utf-8"?> <custom.configuration> </custom.configuration> IMPORTANT - The file must specifically be named custom.config or AppWeaver will not pick up the changes. Add a console declaration to the custom.configuration section that has the same console id that is used in the ~/worker/ web.config: <?xml version="1.0" encoding="utf-8"?> <custom.configuration> <console id="conworker"> </console> </custom.configuration> Add a command override for the viewitem command that provides an additional commandparam for custom data. The easiest and safest way to do this is by copying over the command declaration from the web.config and then making modifications. The command in custom.config overrides the one in web.config because it uses the same id, viewitem, as a command in the web.config file. <custom.configuration> <console id="conworker"> <command id="viewitem" moduleid="templatemodule" name="sidviewitem" description="sidviewitemdesc" privileges="privviewincidents"> <commandparam name="template" value="workitemview" /> <commandparam name="customdata" value="[custom data]" /> </console> </custom.configuration> Notice that a new commandparam has been added whose name is customdata and whose value can be anything that you would like. The new data can be accessed within the template as follows: WorkItemView.ascx Dim customdata As String = Command("customdata")
6 Now, within the template the customdata variable can be used to access customized data that is passed to the command from the web.config file via a commandparam. In most situations where you override a command you will also override the file alias of the template that implements the command. See the section How to leverage existing functionality by overriding a template file alias for a description about how this should be done. How to leverage existing functionality by overriding a template file alias This customization covers steps that can be taken to leverage the functionality of an existing template (.ascx user control) by copying the template and specifying a custom.config file to override the template s file alias so that the alias points to the copy of the template. The template that implements the functionality for both the newitem and edititem commands, WorkItemEdit.ascx, will be used for this example. Prerequisites You need a familiarity with customization integration using custom.config (see Helpdesk Integration document for additional information). You need a familiarity with XML Solution There are two basic steps involved in this process. The first involves copying the template into a custom directory. The second involves integrating the new template into HD using a custom.config to override a file alias. A little background on the template and commands will p rovide a clearer understanding about what you will be accomplishing with this customization. The newitem and edititem commands both rely on the same template, WorkItemEdit.ascx, to provide their UI and functionality as indicated in their respective command declarations in the ~/worker/web.config file (notice that they both specify WorkItemEdit for the template commandparam). web.config (~/worker) <command id="edititem" moduleid="templatemodule" name="sidedititem" description="sidedititemdesc" modal="yes" privileges="privviewincidents,priveditincidents"> <commandparam name="template" value="workitemedit" /> <command id="newitem" moduleid="templatemodule" name="sidnewitem" description="sidnewitemdesc" modal="yes" privileges="privcreateincidents"> <commandparam name="template" value="workitemedit" /> <commandparam name="action" value="new" /> Notice that both commands specify the same module alias, TemplateModule, and both specify the same template alias, WorkItemEdit, for their template commandparam. TemplateModule is a special AppWeaver.NET module that acts as a template engine. This module requires that a template commandparam be specified whose value is a file alias. Given this information, we can override the WorkItemEdit file alias so that it references a customized copy of the original file. Copy the template into a custom directory in the web and rename it 1. If a custom directory does not exist, create one in the root of the web (e.g. ~/custom/). This directory can serve as a common repository for all custom files (i.e. templates, presentations, images, etc.).
7 2. Copy ~/templates/workitemedit.ascx to the directory that you created in step 1 (e.g. ~/custom/workitemedit.ascx). 3. Rename the file to CustomWorkItemEdit.ascx. This simply helps to avoid the confusion of having two files with the same name in the same web. Override the WorkItemEdit file alias Override the WorkItemEdit file alias from the web.config by creating the file ~/custom.config file with the following contents (a snippet of the web.config has been included for comparison purposes. custom.config <?xml version="1.0" encoding="utf-8"?> <custom.configuration> <files path="~/custom/"> <file id="workitemedit" file="customworkitemedit.ascx"/> </files> </custom.configuration> IMPORTANT - The file must specifically be named custom.config or AppWeaver will not pick up the changes. web.config <files path="~/templates/"> <file id="workitemedit" file="workitemedit.ascx"/> </files> Notice that WorkItemEdit will now resolve to ~/custom/customworkitemedit.ascx when the application is run. The alias defined in custom.config wins. How to create your own custom console You may have an application that requires a completely new console. That is, a different organization of the existing Helpdesk commands than those shipped. Start with an existing console and modify it by removing (and possibly adding) commands you want your users to have available in your new console. Prerequisites You need a familiarity with customization integration using custom.config (see Helpdesk Integration document for additional information). You need a familiarity with XML You need to understand HTML tables. Solution This customization creates a new console that only exposes a subset of the worker console s commands. This same approach can be extended to adding commands by copying commands from other consoles (e.g. winuser console) to make them available in your custom console. Declare a new console Declare a new console by creating the file ~/worker/custom.config. You can copy the existing console declaration from the ~/worker/web.config and make the necessary modifications. In the example below only six commands have been copied from the web.config. This console simply demonstrates the concept of declaring a new console. custom.config <?xml version="1.0" encoding="utf-8"?>
8 <custom.configuration> <consoles> <console id="concustom" defaultcommand="homeworker" defaultpresentation="standard"> <command id="homeworker" moduleid="templatemodule" name="sidhomeworker" description="sidhomeworkerdesc" privileges="privviewincidents"> <commandparam name="template" value="workerreport" /> <command id="newitem" moduleid="templatemodule" name="sidnewitem" description="sidnewitemdesc" modal="yes" licenserequired="yes" privileges="privcreateincidents"> <commandparam name="template" value="workitemedit" /> <commandparam name="action" value="new" /> <command id="viewitem" moduleid="templatemodule" name="sidviewitem" description="sidviewitemdesc" privileges="privviewincidents"> <commandparam name="template" value="workitemview" /> <command id="edititem" moduleid="templatemodule" name="sidedititem" description="sidedititemdesc" modal="yes" privileges="privviewincidents,priveditincidents"> <commandparam name="template" value="workitemedit" /> <command id="dashboard" moduleid="templatemodule" name="siddashboard" description="siddashboarddesc"> <commandparam name="template" value="dashboard" /> <command id="recents" moduleid="templatemodule" name="sidrecents" description="sidrecentsdesc"> <commandparam name="template" value="recents" /> </console> </consoles> </custom.configuration> Create a new web form for your custom console (XML and script modification) Access to an AppWeaver console is always through a web form page (aspx) which is ultimately derived from the AppWeaver Console class. The HelpdeskConsole extends the AppWeaver console and provides Helpdesk specific functionality. All of the HD consoles use the HelpdeskConsole class. The console page is made available to web browsers by placing it in a web directory or entry point. The following is an example of some page directives that will be found in most HD web forms : ~/worker/default.aspx (code snippet) <%@ Page SmartNavigation="false" Language="vb" Inherits="Altiris.Helpdesk.Web.HelpdeskConsole" %> <%@ Register TagPrefix="aw" Namespace="Altiris.AppWeaver" Assembly="Altiris.AppWeaver" %> Notice that the webform is derived from Altiris.Web.HelpdeskConsole. There can be multiple console forms (i.e. aspx pages) within the same directory. We can create a new entry point into our custom console by copying the existing one. Copy ~/worker/default.aspx to ~/worker/custom.aspx. Edit Custom.aspx and use that same id as the one you used to declare the console in the custom.config file in the previous section (in this case concustom). By convention we do this in the OnInit override: Custom.aspx Public Overrides Sub OnInit(ByVal e As EventArgs) Me.ID = "concustom" MyBase.OnInit(e) End Sub
9 Debug and Test your customizations Restart IIS and test your console by entering the URL to your console i.e. If you have errors confirm the custom.config file is syntactically correct by opening it with Internet Explorer. Create a new entry point for your custom console The previous section described how to create a new console page living in the same directory as the original console. As an alternative you may want to place your custom console in its own entry point. The advantage to placing a console in its own entry point is that it can be secured by web server permissions to allow access only to the subset of workers that need to use it and it can be wired to a different kind of Helpdesk credential (to allow workers to be authenticated by address rather than NT Id for example). To develop your custom console in its own entry point, follow the above steps but with a few modifications: first copy the ~/worker directory to a new ~/custom directory and set its web permissions as desired using the Internet Information Services administrative tool. Since this new custom directory is unknown to the Helpdesk upgrade components you do not have to worry about your modifications being lost when Helpdesk is upgraded. This means that you can edit the web.config and default.aspx files directly. If your console file is left with the name default.aspx you can simply access the new console through the URL How to add a scalar field This customization covers adding a scalar field, a field that is not a reference to a value in another table, to an incident. You will be adding a new Application field. Upon successful completion of the solution you will be able to type in the name of an Application when creating or editing an incident. This new field will be displayed on the incident properties page and in the incident editor. Prerequisites You need to be able to add a column, create an index, modify views, and run stored procedures using SQL Server Enterprise Manager and Query Analyzer. You need a familiarity with customization integration using custom.config (see Helpdesk Integration document for additional information). You need a familiarity with XML You need to understand HTML tables. Solution The first few sections of this solution describe changes that must be made to the Helpdesk database. The remaining sections discuss how to expose the new application field in the Helpdesk UI, which includes modification to Helpdesk templates. Each section must be completed successfully before the procedure in the next section is attempted to ensure a successful modification. Add application column to the workitem table Using SQL Server Query Analyzer run the following script against your Helpdesk database. ALTER TABLE workitem ADD application nvarchar(128) NOT NULL DEFAULT (N'') To confirm the field was created successfully run the following script against your Helpdesk database. SELECT application FROM workitem WHERE id = 0 You should see the following in the results window. application
10 application is the new field you just added. If you do not see this output in the results window an error has occurred. Check the spelling of the field in the Alter table statement and the Select statement. IMPORTANT: notice that for variable length character data the unicode nvarchar data type is used. ALL character data in Helpdesk must be nchar or nvarchar. Please see Transaction-SQL Reference for a description of nchar and nvarchar data types and their implications. IMPORTANT: NULL values are not permitted or supported for Helpdesk columns. Notice the NOT NULL clause of the ALTER TABLE statement above. IMPORTANT: all Helpdesk columns must contain a default value. All nchar and nvarchar defaults are prefixed with N as set forth in Transaction-SQL Reference when dealing with unicode data (e.g. N 0, N, N My Default ). Alternatively you could have modified the table directly using the Design table feature of SQL Server Enterprise Manager. Update the view_def table with information about the new column (database modification) The view_def table is very important to the installation/upgrade process of Helpdesk. This table must be updated so that the changes that you make will be preserved during the installation/upgrade process. Using SQL Server Query Analyzer run the following script against your Helpdesk database. EXEC sp_addviewdef N'workitem_only_view', N'workitem.application AS workitem_application', N'' This script will add a row to the view_def table. Notice that the second argument specified for stored procedure sp_addviewdef is an alias specification. By following the conventions that have been established in Helpdesk you will ensure that databinding will be much easier. If you view data in the view_def table the conventions are self-explanatory. Run the following script to verify the field was added to the view. SELECT * FROM view_def WHERE column_sql = N'workitem.application AS workitem_application' You should get one row returned with table_name = workitem_only_view and column_sql = workitem.application AS workitem_application Alternatively, you could have modified the view_def table directly using SQL Server Enterprise Manager. Drop and recreate the workitem_only_view (database modification) Using SQL Server Query Analyzer run the following script against your Helpdesk database. EXEC sp_createhddview 'workitem_only_view', 'workitem' EXEC sp_createhddview 'workitem_detail_view', 'workitem_only_view' go if exists (select * from sysobjects where id = object_id(n'[dbo].[workitem_current_view]') and OBJECTPROPERTY(id, N'IsView') = 1) drop view [dbo].[workitem_current_view]
11 CREATE VIEW dbo.workitem_current_view AS SELECT workitem_detail_view.* FROM workitem_detail_view WHERE (workitem_is_last = N'1') Run the following script to verify the field is present in the view. SELECT workitem_application FROM workitem_only_view WHERE workitem_id = 0 You should see the workitem_application field with no rows returned. Stored procedure sp_createhddview will drop the view for you before recreating it. The first parameter is the name of the view and the second parameter is the name of the table associated with the view. Copy the templates into a custom directory in the web and rename them 1. If a custom directory does not exist, create one in the root of the web (e.g. ~/custom/). This directory can serve as a common repository for all custom files (i.e. templates, presentations, images, etc.). 2. Copy ~/templates/workitemedit.ascx and ~/templates/workitemview.ascx to the directory that you created in step 1 (e.g. ~/custom/workitemedit.ascx). You will need to uncheck the Readonly attribute so that the files can be modified. 3. Rename the files by prefixing them with the word Custom (e.g. CustomWorkItemEdit.ascx). This simply helps to avoid the confusion of having two files with the same name in the same web. Override the WorkItemEdit and WorkItemView file aliases Override the WorkItemEdit and WorkItemView file aliases from the web.config by creating the file ~/custom.config with the following contents in the root of the web (a snippet of the web.config has been included to help illustrate the override). custom.config <?xml version="1.0" encoding="utf-8"?> <custom.configuration> <files path="~/custom/"> <file id="workitemedit" file="customworkitemedit.ascx"/> <file id="workitemview" file="customworkitemview.ascx"/> </files> </custom.configuration> IMPORTANT - The file must specifically be named custom.config or AppWeaver will not pick up the changes. web.config <files path="~/templates/"> <file id="workitemedit" file="workitemedit.ascx"/> <file id="workitemview" file="workitemview.ascx"/> </files> Notice that WorkItemEdit will now resolve to ~/custom/customworkitemedit.ascx and WorkItemView will resolve to ~/custom/customworkitemview.ascx (declarations from the custom.config win).
12 Modify the templates to enable editing and display of the application field (template modification) Edit ~/custom/customworkitemedit.ascx to enable application to be edited through the interface. Search for the line beginning with <aw:layout id="lopanels". Paste the following line immediately before it. <aw:textbox id="tbapplication" runat="server" Width="300px" ItemDataField="workitem_application" ColSpan="4" Label="Application:" ></aw:textbox> This line defines an AppWeaver TextBox control to contain the application value. The control has an id of tbapplication and can be any unique string (conventionally we prefix the id of aw:textbox controls with tb ). The control is databound to the data source WorkItem (case sensitive name defined in the MultiPage control as the ItemDataSourceName attribute and which can be inherited by its children) and data field workitem_application (the attribute ItemDataField of our TextBox). The data field workitem_application is the new view field created in a previous section. The control has a label called Application: to identify the text box on the page. The ItemDataSourceName could have been directly specified on our TextBox, but AppWeaver databinding will search up the control hierarchy if it is not specified. Now modify ~/custom/ CustomWorkItemView.ascx file in a similar way. Paste the following AppWeaver Label control on the line after the lblcreated label control. <aw:label id="lblapplication" runat="server" ItemDataField="workitem_application" label="application:"></aw:label> You can experiment with the location and label of the textbox and label controls on the pages. Debug and Test your customizations View the customizations by entering into the address bar of your browser. Edit an incident, look for the application field and enter an application name and save. Confirm that the incident properties has your application name. How to add lookup field This customization covers adding a new lookup id to an incident that is a field that is a reference to a value in another table. Upon successful completion of the solution, Helpdesk workers will be able to select an Application from a dropdown when creating or editing an incident, and the Application will be displayed on the incident report. Implementing Application as a lookup table rather than a scalar field offers several advantages. First, it will prevent redundant Applications from being entered into the database (e.g. Microsoft Word, MS Word, MS Office Word, etc.). Second, searching for incidents by Application could be simplified. For example, you could provide an Application dropdown on the Find command. Finally, you get all the benefits offered by Helpdesk s implementation of lookup tables: ability to choose a default, activate or inactive a value, and weight the values. Prerequisites You need to be able to add a column, create an index, modify views, and run stored procedures using SQL Server Enterprise Manager and Query Analyzer. You need a familiarity with customization integration using custom.config (see Helpdesk Integration document for additional information). You need a familiarity with XML You need to understand HTML tables.
13 Solution The first few sections of this solution describe changes that must be made to the Helpdesk database. The remaining sections discuss how to expose the new application field in the Helpdesk UI, which includes modification to Helpdesk templates. Each section must be completed successfully before the procedure in the next section is attempted to ensure a successful modification. Add a new workitem_application_lookup table and populate it with an initial set of values Using SQL Server Query Analyzer run the following script against your Helpdesk database. if not exists (select * from sysobjects where id = object_id(n'[dbo].[workitem_application _lookup]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) begin CREATE TABLE [dbo].[workitem_application_lookup] ( [id] [int] NOT NULL PRIMARY KEY, [status] [nchar] (1) NOT NULL DEFAULT (N'a'), [value] [nvarchar] (255) NOT NULL DEFAULT (N''), [ordinal] [int] NOT NULL DEFAULT (0), [is_default] [nchar] (1) NOT NULL DEFAULT (N'0') ) ON [PRIMARY] end IMPORTANT: notice that for variable length character data you must use unicode nvarchar data type. ALL character data in Helpdesk must be nchar or nvarchar. Please see Transaction-SQL Reference for a description of nchar and nvarchar data types and their implications. IMPORTANT: NULL values are not permitted or supported for Helpdesk columns. Notice the NOT NULL clause in the CREATE TABLE script above. IMPORTANT: all Helpdesk columns must contain a default value. All nchar and nvarchar defaults are prefixed with N as set forth in Transaction-SQL Reference when dealing with unicode data (e.g. N 0, N, N My Default ). Using SQL Server Query Analyzer run the following script against your Helpdesk database. This will populate the lookup table with some Applications. insert into workitem_application_lookup (id,status,value,ordinal,is_default) values(100,'a','other',1,'1') insert into workitem_application_lookup (id,status,value,ordinal,is_default) values(200,'a','altiris express Web Administrator',2,'0') insert into workitem_application_lookup (id,status,value,ordinal,is_default) values(300,'a','altiris express Helpdesk',3,'0') insert into workitem_application_lookup (id,status,value,ordinal,is_default) values(400,'a','aliris express Notification Server',4,'0') insert into workitem_application_lookup (id,status,value,ordinal,is_default) values(500,'a','microsoft Office',5,'0') insert into workitem_application_lookup (id,status,value,ordinal,is_default) values(600,'a','microsoft System Management Server',6,'0') Alternatively you could have created the table directly using the New table feature of SQL Server Enterprise Manager. The script above adheres to the conventions that have been established for Helpdesk lookup tables. If you use the New table feature you should do the same. To verify your new lookup table was created and populated successfully run the following script. select * from workitem_application_lookup
14 You should see the following results: 100 a Other a Altiris express Web Administrator a Altiris express Helpdesk a Aliris express Notification Server a Microsoft Office a Microsoft System Management Server 6 0 Add application_lookup_id column to the workitem table Using SQL Server Query Analyzer run the following script against your Helpdesk database. int set nocount on = object_id(n'[dbo].[workitem]') if not exists( select * from syscolumns where name='application_lookup_id' and id=@id) begin ALTER TABLE workitem ADD application_lookup_id int NOT NULL CONSTRAINT [DF_workitem_application_lookup_id] DEFAULT (100) WITH VALUES CREATE INDEX [IX_workitem_application_lookup_id] ON [dbo].[workitem]([application_lookup_id]) ON [PRIMARY] end IMPORTANT - Notice that we have specified the DEFAULT keyword to specify a default value of 100 for the new field. In versions of HD after 6.0 SP1 this will not be necessary. The is_default column should determine the default. However, currently there is a bug for custom lookups that prevent the value marked as the default (is_default= 1 ) from being used as the default. Typical consideration should be placed on whether or not to index the column. You would remove the CREATE INDEX statement in the script above if you chose not to index the column. Update the view_def table with information about the new lookup (database modification) The view_def table is very important to the installation/upgrade process of Helpdesk. This table must be updated so that the changes you make will be preserved during the installation/upgrade process. Using SQL Server Query Analyzer run the following script against your Helpdesk database. exec sp_addviewdef N'workitem_only_view', N'workitem.application_lookup_id AS workitem_application_lookup_id', N'' exec sp_addviewdef N'workitem_detail_view', N'wal.value AS workitem_application_lookup_value', N'LEFT OUTER JOIN workitem_application_lookup wal ON workitem_application_lookup_id = wal.id' exec sp_addviewdef N'workitem_detail_view', N'wal.ordinal AS workitem_application_lookup_ordinal', N'' This script will add rows to the view_def table. Notice that the second argument specified for stored procedure sp_addviewdef is an alias specification. By following established conventions, you will ensure that databinding will be much easier. If you read in detail data in the view_def table, the conventions are self-explanatory. Alternatively you could have modified the view_def table directly using SQL Server Enterprise Manager.
15 Drop and recreate the workitem_only_view, workitem_detail_view and workitem_current_views (database modification) There are three different views that will need to be dropped and recreated so that data for the new application lookup will be included in the view. exec sp_createhddview 'workitem_only_view', 'workitem' exec sp_createhddview 'workitem_detail_view', 'workitem_only_view' go if exists (select * from sysobjects where id = object_id(n'[dbo].[workitem_current_view]') and OBJECTPROPERTY(id, N'IsView') = 1) drop view [dbo].[workitem_current_view] CREATE VIEW dbo.workitem_current_view AS SELECT workitem_detail_view.* FROM workitem_detail_view WHERE (workitem_is_last = N'1') IMPORTANT: the order in which the views are created is significant because of dependencies that exist. Stored procedure sp_createhddview will drop the view for you. The first parameter is the name of the view and the second parameter is the name of the table associated with the view. Insert a query that will retrieve data from the lookup table into the query table (database modification) You need to create a new query that will be used to retrieve Application lookup values. Using SQL Server Query Analyzer run the following script against your Helpdesk database. insert into query (name, expression, cache_results) values (N'ApplicationList', N'SELECT * FROM workitem_application_lookup where lower(status)=n''a'' order by ordinal', N'1') Note the name that you gave the query, ApplicationList, because it will be used later when you modify the template. Copy the templates into a custom directory in the web and rename them 4. If a custom directory does not exist, create one in the root of the web (e.g. ~/custom/). This directory can serve as a common repository for all custom files (i.e. templates, presentations, images, etc.). 5. Copy ~/templates/workitemedit.ascx and ~/templates/workitemview.ascx to the directory that you created in step 1 (e.g. ~/custom/workitemedit.ascx). You will need to uncheck the Readonly attribute so that the files can be modified. 6. Rename the files by prefixing them with Custom (e.g. CustomWorkItemEdit.ascx). This simply helps to avoid the confusion of having two files with the same name in the same web. Override the WorkItemEdit and WorkItemView file aliases Override the WorkItemEdit and WorkItemView file aliases from the web.config by creating the file ~/custom.config with the following contents in the root of the web (a snippet of the web.config has been included for to help illustrate the override). custom.config
16 <?xml version="1.0" encoding="utf-8"?> <custom.configuration> <files path="~/custom/"> <file id="workitemedit" file="customworkitemedit.ascx"/> <file id="workitemview" file="customworkitemview.ascx"/> </files> </custom.configuration> IMPORTANT - The file must specifically be named custom.config or AppWeaver will not pick up the changes. web.config <files path="~/templates/"> <file id="workitemedit" file="workitemedit.ascx"/> <file id="workitemview" file="workitemview.ascx"/> </files> Notice that WorkItemEdit will now resolve to ~/custom/customworkitemedit.ascx and WorkItemView will resolve to ~/custom/customworkitemview.ascx (definitions from the custom.config win). Modify the templates to enable editing and display of the application field (template modification) Add label control to the Incident properties page by modifying the CustomWorkItemView.ascx file. Paste the following AppWeaver Label control on the line after the lblcreated label control and before the "pnlnotifyrules" panel control. <aw:label id="lblapplication" runat="server" colspan="4" ItemDataField="workitem_application_lookup_value" label="application:"></aw:label> Notice the ItemDataField is the new field added to the workitem_detail_view in the section above. The control has a label on the page of Application: The strings for your customizations can be hardcoded like this or a string id can be used and a string resource file can be used. The string resource file can be localized if desired. Now edit CustomWorkItemEdit.ascx to enable the user to select the application to be associated with the incident. Near the top of the file is a subroutine called LoadDataSources. This is run once when the template is loaded. The data sources are all defined here. Find the set of lines that initialize the various data stores. They all begin with DataStore( SomeObject ). Add the following line to the end of the list to load the application lookup list into the data store. DataStore("Applications") = New ListDataSet("ApplicationList") Notice we specify the query we added above to query the lookup table for all the applications available. Now add a dropdown list of applications to the incident editor by adding an AppWeaver DropDownList control to the edit page. Again, add this just after the Created label and before the <aw:dropdownlist id="ddlapplication" runat="server" ItemDataField="workitem_application_lookup_id" Label="Application:" DataTextField="value" DataValueField="id" DataSourceName="Applications" currentvalue="true"></aw:dropdownlist> The ItemDataField attribute specifies which field will be updated by changes made in this control by the user. The DataTextField sets the field to display in the control. In our example value which is the text of the application lookup. The DataValueField specifies what you get from the control. In our example the id is returned. The DataSourceName attribute specifies the data source to use for this control. We use the Applications data source we added to the LoadDataSources subroutine. Our new dropdown list uses the Applications data source and displays the data in the value field and puts the id of the value selected by
17 the user into the workitem_application_lookup_id field of the WorkItem data store. Note this was specified by the ItemDataSourceName="WorkItem" attribute of the AppWeaver MultPage control aw:multipage at the top of the page. You can experiment with the location and label of the textbox and label controls on the pages. Debug and Test your customizations Restart IIS and view the customizations by entering default.aspx into the address bar of your browser. Edit an incident, look for the application field and enter an application name and save. Confirm that the incident properties page has your application name. How to centralize all of your custom strings for ease of management and localization In the previous earlier sections you hard coded strings were used for our control labels. This is fine for simple customizations with only one or two controls but what if there are numerous controls in several files or you need to localize your strings to support several languages? Then this section covers how custom strings can be specified. Prerequisites You need a familiarity with customization integration using custom.config (see Helpdesk Integration document for additional information). You need a familiarity with XML You need to understand HTML tables. Solution This solution takes you through creating an XML file to contain all your custom strings and how to refer to the strings in your templates. Finally you learn how to localize your strings. Creating a strings resource file A strings resource file is an XML file that can be created with any text editor. It must have the format below: <strings> <string id="csidstring1">custom String 1</string> <string id="csidstring2">custom String 2</string>... </strings> The root node is strings and can contain any number of string nodes. Each string node must have a unique id attribute. The text of the string is the inner text contained between the > delimiting the string node attributes and the < at the start of the closing string tag. The string id needs to be in quotes ( ) and must be unique within this file. It can be any combination of characters and numbers. We recommend devising a naming standard and sticking with it. The example above uses csid representing custom string id then the string name. Now create a string file for the application lookup field customization performed in the previous section. The view and edit page used a label attribute of label= Application:. For demonstration purposes lets use Application: for the view page and Software Application: for the edit page. Our strings file should look like this:
18 <strings> <string id="csidlblapplication">application:</string> <string id="csidlblsoftwareapplication">software Application:</string> </strings> Copy and paste this into Notepad (or any text editor) and save as ~/custom/ CustomStrings.xml. Now confirm the syntax of your file by opening it with Microsoft Internet Explorer. It should display your string resources correctly. If not it may show an error like tags do not match etc. and refer to the line and position of the offending character. Examine your file carefully and fix the error and repeat until the file can be opened without any errors. Declare a resourcelib for your custom string file Declare a resourcelib for your custom string file by creating the file ~/custom.config with the following contents in the root of the web. custom.config <?xml version="1.0" encoding="utf-8"?> <custom.configuration> <resourcelibs> <resourcelib file="customstrings.xml" path="~/custom/" /> </resourcelibs> </custom.configuration> IMPORTANT - The file must specifically be named custom.config or AppWeaver will not pick up the changes. Adding string ids in place of strings in templates Now add the string ids to the control label in the customized templates. Open the CustomWorkItemView.ascx file and find the lblapplication control. Replace the text in the label attribute with csidlblapplication, see example below: <aw:label id="lblapplication" colspan="4" runat="server" ItemDataField="workitem_application_lookup_value" label="csidlblapplication"></aw:label> Similarly, replace the label text in the WorkItemEdit.ascx file with the string id we defined above, "csidlblsoftwareapplication". <aw:dropdownlist id="ddlapplication" runat="server" ItemDataField="workitem_application_lookup_id" Label="csidLblSoftwareApplication" DataTextField="value" DataValueField="id" DataSourceName="Applications" currentvalue="true"></aw:dropdownlist> Save both files and test. You should see your strings appear in the incident properties and the incident editor. The incident properties should look exactly the same. That is Application: displayed for the control label. The incident editor will have Software Application: for the label. Localizing strings in your custom file You can localize your custom strings so the application will present the correct language based on the user s browser settings. To localize: create a subdirectory under the custom directory for each language that you wish to support. Name them using the 2 or 4 letter culture codes. The culture names follow the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>", where <languagecode2> is a lowercase two-letter code derived from ISO and <country/regioncode2> is an uppercase two-letter code derived from ISO For example, U.S. English is "en-us". For a complete list see the CultureInfo
19 class at Copy the localized CustomStrings.xml files into each directory. Restart IIS, and you re ready to go. Debug and Test your customizations Note the system tries to find the best language fit possible, so if you have a Swiss German localized file CustomStrings.xml it should be in the de-ch directory. A Germany German CustomStrings.xml file should be in the de subdirectory. If the browser settings are set to Swiss German the de-ch subdirectory will be searched first for a match for the string id, then the de subdirectory then the custom directory then the Helpdesk and AppWeaver resources. In this way string ids not found in the country or regioncode file will next be searched for in the languagecode file and if not found there searched for in the (default) CustomStrings.xml file in the custom directory and finally in the (localized) Helpdesk resource files. Note Helpdesk uses en-us as its default language. You may want to keep your default custom strings file in US English so there will be no confusion in the browser setting. This technique is the same one that.net uses and is nice because of the built in fall back capabilities inherent in the system. Database The following sections contain a list of the tables, views and stored procedures used in Helpdesk. Tables hdinstallreport schema_version view_def license audit_log bulletin workitem_category_routing workitem_category_tree contact contact_mo_join custom_processor _message lookup_tree managed_object managed_object_ns_unique_id managed_object_sms_unique_id managed_object_source managed_object_source_definition mo_source_join mo_workitem_history organization query tag tag_collection template_alias url_alias server_url_alias worker worker_hourly_rate worker_query workitem workitem_attachment workitem_next_number wu_custom_instance workitem_wuci_join managed_object_type_lookup workitem_priority_lookup workitem_status_lookup workitem_category_lookup workitem_type_lookup workitem_link_type_lookup standard_lookups default_tag Views asset_only_view asset_view bulletin_only_view bulletin_view contact_only_view contact_view managed_object_only_view managed_object_view mo_source_join_view organization_only_view organization_view tco_view worker_only_view worker_query_only_view worker_query_view worker_view workers_in_workitem_view workitem_current_view workitem_detail_view workitem_only_view workitem_wuci_join_view wu_custom_instance_view Stored Procedures sp_getschemaversion sp_checkschemaversion sp_updateschemaversion sp_createdtable sp_report sp_addurlalias sp_addserverurlalias sp_addviewdef sp_newtagcollectionid
20 sp_createhddview sp_addupdatequery sp_addaudit sp_addcontactassetassociation sp_addtag sp_addattachment sp_addupdatemanagedobjectsource sp_addworkerhourlyrate sp_addworkitemwuci sp_deleteallworkitemwucis sp_deletebulletin sp_deletesingletag sp_deletetags sp_deletesource sp_deleteworkerquery sp_deletewuci sp_deleteallworkitemcategorytree sp_deleteallworkitemcategoryrouting sp_getcontact sp_getdefaultattachment sp_getdefaultbulletin sp_getdefaultorganization sp_getdefaultcontact sp_getdefault message sp_getdefaultmanagedobject sp_getdefaultworker sp_getdefaultroutingworkerid sp_getautoroutingworkerid sp_getdefaultworkerquery sp_getdefaultworkitem sp_getdefaultwuci sp_get message sp_getguestworker sp_getmanagedobject sp_getmanagedobjectsource sp_getmosautoupdatelist sp_getmosourcejoinlist sp_getquerybyname sp_gettags sp_geturlalias sp_getserverurlalias sp_getworker sp_getworker addrs sp_getworkitemprevious sp_getworkitemwucilist sp_getworkitemhistorylist sp_newbulletin sp_newcontact sp_new message sp_newmanagedobject sp_neworganization sp_newworker sp_newworkerquery sp_newworkitem sp_newworkitemcategorytree sp_newworkitemcategoryrouting sp_newwuci sp_resolveurls sp_resolveserverurls sp_updatebulletin sp_updatecontact sp_update message sp_updatemanagedobject sp_updatemoslastautoupdate sp_updateorganization sp_updateworker sp_updateworkerquery sp_updateworkitem sp_updatewuci sp_updateworkitemnoincrement sp_importsmsresource sp_importnsresource sp_importnscontact sp_workerreportdata sp_adminreportdata sp_workitemstatuscount sp_workitemprioritycount sp_workitemstatuscountbyworkerid sp_workitemprioritycountbyworkerid sp_workerconsoledata sp_workitemlinkedby sp_deleteworkitembynumber sp_getdeleteworkitemcount sp_deleteassetsbyidlist sp_deletecontactsbyidlist sp_deleteallworkitemsbyquery sp_deletenonlinkedworkitemsbyquery sp_getdefaultinvisiblewuciids sp_insertdefaulttag sp_inserttag sp_updatesingletag sp_gettagvalue sp_verifyworkercontacttags sp_getrecentitems sp_getasset sp_getbulletin sp_getcontactbyid sp_getcontactbyntid sp_getcurrentworker sp_getcurrentworkerbyname sp_getcurrentworkerbyntid sp_getdefaultbulletin2 sp_getdefaultorganization2 sp_getdefaultcontact2 sp_getdefaultworkitemandwucis sp_getdefaultquery sp_getdefaultwuci2 sp_getorganization sp_getwuci sp_getguestworkerbycontactid sp_getgues tworkerbycontactntid sp_getguestworkerby address sp_getworkerbyname sp_getworkerbyntid sp_getworkitem sp_newcontact2 sp_updatecontact2 sp_getdefaultasset sp_newasset sp_updateasset sp_newbulletin2 sp_getstandardlookups sp_getworkerquery2 sp_getdefaultworkerquery2 sp_newworkerquery2 sp_updateworkerquery2 sp_retrievenextworkitemfromqueue sp_countrealworkers sp_checkorganization sp_setdefaultworkitemcategory sp_addupdatesource sp_updateworkitemcomment sp_importsmsresource2 sp_importnsresource2 sp_updateworkitemwuciids sp_new message2 sp_update message2 sp_newworker2 sp_updateworker2
metaengine DataConnect For SharePoint 2007 Configuration Guide
metaengine DataConnect For SharePoint 2007 Configuration Guide metaengine DataConnect for SharePoint 2007 Configuration Guide (2.4) Page 1 Contents Introduction... 5 Installation and deployment... 6 Installation...
Altiris Helpdesk Solution 6.0 SP5 Product Guide
Altiris Helpdesk Solution 6.0 SP5 Product Guide Notice Helpdesk Solution 6.0 SP5 2000-2007 Altiris, Inc. All rights reserved. Document Date: August 29, 2007 Information in this document: (i) is provided
Visual COBOL ASP.NET Shopping Cart Demonstration
Visual COBOL ASP.NET Shopping Cart Demonstration Overview: The original application that was used as the model for this demonstration was the ASP.NET Commerce Starter Kit (CSVS) demo from Microsoft. The
Expanded contents. Section 1. Chapter 2. The essence off ASP.NET web programming. An introduction to ASP.NET web programming
TRAINING & REFERENCE murach's web programming with C# 2010 Anne Boehm Joel Murach Va. Mike Murach & Associates, Inc. I J) 1-800-221-5528 (559) 440-9071 Fax: (559) 44(M)963 [email protected] www.murach.com
Hands-On Lab. Building a Data-Driven Master/Detail Business Form using Visual Studio 2010. Lab version: 1.0.0. Last updated: 12/10/2010.
Hands-On Lab Building a Data-Driven Master/Detail Business Form using Visual Studio 2010 Lab version: 1.0.0 Last updated: 12/10/2010 Page 1 CONTENTS OVERVIEW... 3 EXERCISE 1: CREATING THE APPLICATION S
Terms and Definitions for CMS Administrators, Architects, and Developers
Sitecore CMS 6 Glossary Rev. 081028 Sitecore CMS 6 Glossary Terms and Definitions for CMS Administrators, Architects, and Developers Table of Contents Chapter 1 Introduction... 3 1.1 Glossary... 4 Page
Coveo Platform 7.0. Microsoft Dynamics CRM Connector Guide
Coveo Platform 7.0 Microsoft Dynamics CRM Connector Guide Notice The content in this document represents the current view of Coveo as of the date of publication. Because Coveo continually responds to changing
Intermediate ASP.NET Web Development with C# Instructor: Frank Stepanski. Data Sources on the Web
Intermediate ASP.NET Web Development with C# Instructor: Frank Stepanski Data Sources on the Web Many websites on the web today are just a thin user interface shell on top of sophisticated data-driven
Application Developer Guide
IBM Maximo Asset Management 7.1 IBM Tivoli Asset Management for IT 7.1 IBM Tivoli Change and Configuration Management Database 7.1.1 IBM Tivoli Service Request Manager 7.1 Application Developer Guide Note
Jet Data Manager 2012 User Guide
Jet Data Manager 2012 User Guide Welcome This documentation provides descriptions of the concepts and features of the Jet Data Manager and how to use with them. With the Jet Data Manager you can transform
Data Tool Platform SQL Development Tools
Data Tool Platform SQL Development Tools ekapner Contents Setting SQL Development Preferences...5 Execution Plan View Options Preferences...5 General Preferences...5 Label Decorations Preferences...6
Developers Guide. Designs and Layouts HOW TO IMPLEMENT WEBSITE DESIGNS IN DYNAMICWEB. Version: 1.3 2013.10.04 English
Developers Guide Designs and Layouts HOW TO IMPLEMENT WEBSITE DESIGNS IN DYNAMICWEB Version: 1.3 2013.10.04 English Designs and Layouts, How to implement website designs in Dynamicweb LEGAL INFORMATION
SharePoint Integration Framework Developers Cookbook
Sitecore CMS 6.3 to 6.6 and SIP 3.2 SharePoint Integration Framework Developers Cookbook Rev: 2013-11-28 Sitecore CMS 6.3 to 6.6 and SIP 3.2 SharePoint Integration Framework Developers Cookbook A Guide
Perceptive Intelligent Capture. Product Migration Guide. with Supervised Learning. Version 5.5 SP3
Perceptive Intelligent Capture with Supervised Learning Product Migration Guide Version 5.5 SP3 Written by: Product Documentation, QA Date: March 2014 2014 Perceptive Software, Inc.. All rights reserved
How To Use Query Console
Query Console User Guide 1 MarkLogic 8 February, 2015 Last Revised: 8.0-1, February, 2015 Copyright 2015 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents Query Console User
Dell KACE K1000 System Management Appliance Version 5.4. Service Desk Administrator Guide
Dell KACE K1000 System Management Appliance Version 5.4 Service Desk Administrator Guide October 2012 2004-2012 Dell Inc. All rights reserved. Reproduction of these materials in any manner whatsoever without
Retrieving Data Using the SQL SELECT Statement. Copyright 2006, Oracle. All rights reserved.
Retrieving Data Using the SQL SELECT Statement Objectives After completing this lesson, you should be able to do the following: List the capabilities of SQL SELECT statements Execute a basic SELECT statement
Using SQL Server Management Studio
Using SQL Server Management Studio Microsoft SQL Server Management Studio 2005 is a graphical tool for database designer or programmer. With SQL Server Management Studio 2005 you can: Create databases
ResPAK Internet Module
ResPAK Internet Module This document provides an overview of the ResPAK Internet Module which consists of the RNI Web Services application and the optional ASP.NET Reservations web site. The RNI Application
User Guide Release Management for Visual Studio 2013
User Guide Release Management for Visual Studio 2013 ABOUT THIS GUIDE The User Guide for the release management features is for administrators and users. The following related documents for release management
What's New In DITA CMS 4.0
What's New In DITA CMS 4.0 WWW.IXIASOFT.COM / DITACMS v. 4.0 / Copyright 2014 IXIASOFT Technologies. All rights reserved. Last revised: December 11, 2014 Table of contents 3 Table of contents Chapter
DEPLOYMENT GUIDE Version 2.1. Deploying F5 with Microsoft SharePoint 2010
DEPLOYMENT GUIDE Version 2.1 Deploying F5 with Microsoft SharePoint 2010 Table of Contents Table of Contents Introducing the F5 Deployment Guide for Microsoft SharePoint 2010 Prerequisites and configuration
Using the Query Analyzer
Using the Query Analyzer Using the Query Analyzer Objectives Explore the Query Analyzer user interface. Learn how to use the menu items and toolbars to work with SQL Server data and objects. Use object
Cache Configuration Reference
Sitecore CMS 6.2 Cache Configuration Reference Rev: 2009-11-20 Sitecore CMS 6.2 Cache Configuration Reference Tips and Techniques for Administrators and Developers Table of Contents Chapter 1 Introduction...
Richmond SupportDesk Web Reports Module For Richmond SupportDesk v6.72. User Guide
Richmond SupportDesk Web Reports Module For Richmond SupportDesk v6.72 User Guide Contents 1 Introduction... 4 2 Requirements... 5 3 Important Note for Customers Upgrading... 5 4 Installing the Web Reports
Xcode Project Management Guide. (Legacy)
Xcode Project Management Guide (Legacy) Contents Introduction 10 Organization of This Document 10 See Also 11 Part I: Project Organization 12 Overview of an Xcode Project 13 Components of an Xcode Project
Authoring for System Center 2012 Operations Manager
Authoring for System Center 2012 Operations Manager Microsoft Corporation Published: November 1, 2013 Authors Byron Ricks Applies To System Center 2012 Operations Manager System Center 2012 Service Pack
VB.NET - WEB PROGRAMMING
VB.NET - WEB PROGRAMMING http://www.tutorialspoint.com/vb.net/vb.net_web_programming.htm Copyright tutorialspoint.com A dynamic web application consists of either or both of the following two types of
Librarian. Integrating Secure Workflow and Revision Control into Your Production Environment WHITE PAPER
Librarian Integrating Secure Workflow and Revision Control into Your Production Environment WHITE PAPER Contents Overview 3 File Storage and Management 4 The Library 4 Folders, Files and File History 4
Release Notes Skelta BPM.NET 2007 (Service Pack 2)
Skelta BPM.NET 2007 (Service Pack 2) Version: 3.5.4187.0 Date: November 12 th, 2008 Table of Contents OVERVIEW... 3 Introduction... 3 RELEASE SUMMARY... 3 Enhancements in this release... 3 Fixes in this
Visual Studio.NET Database Projects
Visual Studio.NET Database Projects CHAPTER 8 IN THIS CHAPTER Creating a Database Project 294 Database References 296 Scripts 297 Queries 312 293 294 Visual Studio.NET Database Projects The database project
DocumentsCorePack for MS CRM 2011 Implementation Guide
DocumentsCorePack for MS CRM 2011 Implementation Guide Version 5.0 Implementation Guide (How to install/uninstall) The content of this document is subject to change without notice. Microsoft and Microsoft
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 Often the most compelling way to introduce yourself to a software product is to try deliver value as soon as possible. Simego DS3 is designed to get you
Hands-On Lab. Web Development in Visual Studio 2010. Lab version: 1.0.0. Last updated: 12/10/2010. Page 1
Hands-On Lab Web Development in Visual Studio 2010 Lab version: 1.0.0 Last updated: 12/10/2010 Page 1 CONTENTS OVERVIEW... 3 EXERCISE 1: USING HTML CODE SNIPPETS IN VISUAL STUDIO 2010... 6 Task 1 Adding
Richmond Systems. Self Service Portal
Richmond Systems Self Service Portal Contents Introduction... 4 Product Overview... 4 What s New... 4 Configuring the Self Service Portal... 6 Web Admin... 6 Launching the Web Admin Application... 6 Setup
Installation & User Guide
SharePoint List Filter Plus Web Part Installation & User Guide Copyright 2005-2011 KWizCom Corporation. All rights reserved. Company Headquarters KWizCom 50 McIntosh Drive, Unit 109 Markham, Ontario ON
Advanced Workflow Concepts Using SharePoint Designer 2010
Instructional Brief Advanced Workflow Concepts Using SharePoint Designer 2010 SharePoint User Group September 8th, 2011 This document includes data that shall not be redistributed outside of the University
Ingenious Testcraft Technical Documentation Installation Guide
Ingenious Testcraft Technical Documentation Installation Guide V7.00R1 Q2.11 Trademarks Ingenious, Ingenious Group, and Testcraft are trademarks of Ingenious Group, Inc. and may be registered in the United
Data Migration from Magento 1 to Magento 2 Including ParadoxLabs Authorize.Net CIM Plugin Last Updated Jan 4, 2016
Data Migration from Magento 1 to Magento 2 Including ParadoxLabs Authorize.Net CIM Plugin Last Updated Jan 4, 2016 This guide was contributed by a community developer for your benefit. Background Magento
The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14
The presentation explains how to create and access the web services using the user interface. Page 1 of 14 The aim of this presentation is to familiarize you with the processes of creating and accessing
SelectSurvey.NET Developers Manual
Developers Manual (Last updated: 6/24/2012) SelectSurvey.NET Developers Manual Table of Contents: SelectSurvey.NET Developers Manual... 1 Overview... 2 General Design... 2 Debugging Source Code with Visual
Polar Help Desk Installation Guide
Polar Help Desk Installation Guide Copyright (legal information) Copyright Polar 1995-2005. All rights reserved. The information contained in this document is proprietary to Polar and may not be used or
A basic create statement for a simple student table would look like the following.
Creating Tables A basic create statement for a simple student table would look like the following. create table Student (SID varchar(10), FirstName varchar(30), LastName varchar(30), EmailAddress varchar(30));
Sitecore Dashboard User Guide
Sitecore Dashboard User Guide Contents Overview... 2 Installation... 2 Getting Started... 3 Sample Widgets... 3 Logged In... 3 Job Viewer... 3 Workflow State... 3 Publish Queue Viewer... 4 Quick Links...
Coveo Platform 7.0. Oracle Knowledge Connector Guide
Coveo Platform 7.0 Oracle Knowledge Connector Guide Notice The content in this document represents the current view of Coveo as of the date of publication. Because Coveo continually responds to changing
Migrating helpdesk to a new server
Migrating helpdesk to a new server Table of Contents 1. Helpdesk Migration... 2 Configure Virtual Web on IIS 6 Windows 2003 Server:... 2 Role Services required on IIS 7 Windows 2008 / 2012 Server:... 2
Author: Ryan J Adams. Overview. Central Management Server. Security. Advantages
Author: Ryan J Adams Overview In this paper we will look at Central Management Server and how it can help you manage a disperse environment. We will look at the requirements for setting up a CMS, the advantages
versasrs HelpDesk quality of service
versacat v2.1.0 Date: 24 June 2010 Copyright 2002-2010 VersaDev Pty. Ltd. All Rights Reserved. *************************************************************** Contents ***************************************************************
EPiServer Operator's Guide
EPiServer Operator's Guide Abstract This document is mainly intended for administrators and developers that operate EPiServer or want to learn more about EPiServer's operating environment. The document
Forms Printer User Guide
Forms Printer User Guide Version 10.51 for Dynamics GP 10 Forms Printer Build Version: 10.51.102 System Requirements Microsoft Dynamics GP 10 SP2 or greater Microsoft SQL Server 2005 or Higher Reporting
Microsoft Dynamics CRM Security Provider Module
Microsoft Dynamics CRM Security Provider Module for Sitecore 6.6-8.0 CRM Security Provider Rev: 2015-04-15 Microsoft Dynamics CRM Security Provider Module for Sitecore 6.6-8.0 Developer's Guide A developer's
Developing Web Applications for Microsoft SQL Server Databases - What you need to know
Developing Web Applications for Microsoft SQL Server Databases - What you need to know ATEC2008 Conference Session Description Alpha Five s web components simplify working with SQL databases, but what
To install Multifront you need to have familiarity with Internet Information Services (IIS), Microsoft.NET Framework and SQL Server 2008.
Znode Multifront - Installation Guide Version 6.2 1 System Requirements To install Multifront you need to have familiarity with Internet Information Services (IIS), Microsoft.NET Framework and SQL Server
Novell Identity Manager
Password Management Guide AUTHORIZED DOCUMENTATION Novell Identity Manager 3.6.1 June 05, 2009 www.novell.com Identity Manager 3.6.1 Password Management Guide Legal Notices Novell, Inc. makes no representations
PDshop.NET Installation Guides (ASP.NET Edition)
PDshop.NET Installation Guides (ASP.NET Edition) PageDown Technology, LLC / Copyright 2003-2007 All Rights Reserved. Last Updated: 7/25/07 Written for Revision: 1.014 1 Table of Contents Table of Contents...2
Redpaper Axel Buecker Kenny Chow Jenny Wong
Redpaper Axel Buecker Kenny Chow Jenny Wong A Guide to Authentication Services in IBM Security Access Manager for Enterprise Single Sign-On Introduction IBM Security Access Manager for Enterprise Single
Installation and configuration guide Installation & Configuration guide
Installation and configuration guide Installation & Configuration guide Business Analyze 4.0 Business Analyze 4 Page 1 of 86 Business Analyze. All rights reserved. Business Analyze grants you the right
Installation & User Guide
CRM-SharePoint Connector Installation & User Guide Copyright 2005 KWizCom LTD. All rights reserved. Company Headquarters P.O. Box # 38514 North York, Ontario M2K 2Y5 Canada E-mail: [email protected] Web
How to Scale out SharePoint Server 2007 from a single server farm to a 3 server farm with Microsoft Network Load Balancing on the Web servers.
1 How to Scale out SharePoint Server 2007 from a single server farm to a 3 server farm with Microsoft Network Load Balancing on the Web servers. Back to Basics Series By Steve Smith, MVP SharePoint Server,
Developing Rich Web Applications with Oracle ADF and Oracle WebCenter Portal
JOIN TODAY Go to: www.oracle.com/technetwork/java OTN Developer Day Oracle Fusion Development Developing Rich Web Applications with Oracle ADF and Oracle WebCenter Portal Hands on Lab (last update, June
Administrator's Guide
Active Directory Module AD Module Administrator's Guide Rev. 090923 Active Directory Module Administrator's Guide Installation, configuration and usage of the AD module Table of Contents Chapter 1 Introduction...
2311A: Advanced Web Application Development using Microsoft ASP.NET Course 2311A Three days Instructor-led
2311A: Advanced Web Application Development using Microsoft ASP.NET Course 2311A Three days Instructor-led Introduction This three-day, instructor-led course provides students with the knowledge and skills
ThirtySix Software WRITE ONCE. APPROVE ONCE. USE EVERYWHERE. www.thirtysix.net SMARTDOCS 2014.1 SHAREPOINT CONFIGURATION GUIDE THIRTYSIX SOFTWARE
ThirtySix Software WRITE ONCE. APPROVE ONCE. USE EVERYWHERE. www.thirtysix.net SMARTDOCS 2014.1 SHAREPOINT CONFIGURATION GUIDE THIRTYSIX SOFTWARE UPDATED MAY 2014 Table of Contents Table of Contents...
IBM Campaign and IBM Silverpop Engage Version 1 Release 2 August 31, 2015. Integration Guide IBM
IBM Campaign and IBM Silverpop Engage Version 1 Release 2 August 31, 2015 Integration Guide IBM Note Before using this information and the product it supports, read the information in Notices on page 93.
WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide
WebSpy Vantage Ultimate 2.2 Web Module Administrators Guide This document is intended to help you get started using WebSpy Vantage Ultimate and the Web Module. For more detailed information, please see
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator Written by: Chris Jaun ([email protected]) Sudha Piddaparti ([email protected]) Objective In this
Introduction to Ingeniux Forms Builder. 90 minute Course CMSFB-V6 P.0-20080901
Introduction to Ingeniux Forms Builder 90 minute Course CMSFB-V6 P.0-20080901 Table of Contents COURSE OBJECTIVES... 1 Introducing Ingeniux Forms Builder... 3 Acquiring Ingeniux Forms Builder... 3 Installing
Vector HelpDesk - Administrator s Guide
Vector HelpDesk - Administrator s Guide Vector HelpDesk - Administrator s Guide Configuring and Maintaining Vector HelpDesk version 5.6 Vector HelpDesk - Administrator s Guide Copyright Vector Networks
Basic Unix/Linux 1. Software Testing Interview Prep
Basic Unix/Linux 1 Programming Fundamentals and Concepts 2 1. What is the difference between web application and client server application? Client server application is designed typically to work in a
GP REPORTS VIEWER USER GUIDE
GP Reports Viewer Dynamics GP Reporting Made Easy GP REPORTS VIEWER USER GUIDE For Dynamics GP Version 2015 (Build 5) Dynamics GP Version 2013 (Build 14) Dynamics GP Version 2010 (Build 65) Last updated
Content Management Implementation Guide 5.3 SP1
SDL Tridion R5 Content Management Implementation Guide 5.3 SP1 Read this document to implement and learn about the following Content Manager features: Publications Blueprint Publication structure Users
v1.1.0 SimpleSQL SQLite manager for Unity3D echo17.com
v1.1.0 SimpleSQL SQLite manager for Unity3D echo17.com Table of Contents Table of Contents................................................................ ii 1. Overview 2. Workflow...................................................................
Qlik REST Connector Installation and User Guide
Qlik REST Connector Installation and User Guide Qlik REST Connector Version 1.0 Newton, Massachusetts, November 2015 Authored by QlikTech International AB Copyright QlikTech International AB 2015, All
External Vulnerability Assessment. -Technical Summary- ABC ORGANIZATION
External Vulnerability Assessment -Technical Summary- Prepared for: ABC ORGANIZATI On March 9, 2008 Prepared by: AOS Security Solutions 1 of 13 Table of Contents Executive Summary... 3 Discovered Security
enicq 5 System Administrator s Guide
Vermont Oxford Network enicq 5 Documentation enicq 5 System Administrator s Guide Release 2.0 Published November 2014 2014 Vermont Oxford Network. All Rights Reserved. enicq 5 System Administrator s Guide
Creating XML Report Web Services
5 Creating XML Report Web Services In the previous chapters, we had a look at how to integrate reports into Windows and Web-based applications, but now we need to learn how to leverage those skills and
EMC Documentum Composer
EMC Documentum Composer Version 6.5 User Guide P/N 300 007 217 A02 EMC Corporation Corporate Headquarters: Hopkinton, MA 01748 9103 1 508 435 1000 www.emc.com Copyright 2008 EMC Corporation. All rights
User's Guide. ControlPoint. Change Manager (Advanced Copy) SharePoint Migration. v. 4.0
User's Guide ControlPoint Change Manager (Advanced Copy) SharePoint Migration v. 4.0 Last Updated 7 August 2013 i Contents Preface 3 What's New in Version 4.0... 3 Components... 3 The ControlPoint Central
Installation & Configuration Guide
Installation & Configuration Guide Bluebeam Studio Enterprise ( Software ) 2014 Bluebeam Software, Inc. All Rights Reserved. Patents Pending in the U.S. and/or other countries. Bluebeam and Revu are trademarks
Oracle Forms Services Secure Web.Show_Document() calls to Oracle Reports Server 6i
Oracle Forms Services Secure Web.Show_Document() calls to Oracle Reports Server 6i $Q2UDFOH7HFKQLFDO:KLWHSDSHU 0DUFK Secure Web.Show_Document() calls to Oracle Reports Server 6i Introduction...3 solution
JetBrains ReSharper 2.0 Overview Introduction ReSharper is undoubtedly the most intelligent add-in to Visual Studio.NET 2003 and 2005. It greatly increases the productivity of C# and ASP.NET developers,
Installation Guide. Live Maps 7.4 for System Center 2012
Installation Guide Live Maps 7.4 for System Center 2012 1 Introduction... 4 1.1 1.2 About This Guide... 4 Supported Products... 4 1.3 1.4 Related Documents... 4 Understanding Live Maps... 4 1.5 Upgrade
SEO Checker User manual
SEO Checker User manual 1 INTRODUCTION... 4 2 INSTALLATION... 5 2.1 Install a license... 5 2.2 Give a user access to SEO Checker... 6 3 SEO CHECKER FOR CONTENT EDITORS... 7 4 VALIDATE PAGES... 8 4.1 Manual
McAfee One Time Password
McAfee One Time Password Integration Module Outlook Web App 2010 Module version: 1.3.1 Document revision: 1.3.1 Date: Feb 12, 2014 Table of Contents Integration Module Overview... 3 Prerequisites and System
Getting Started with the Ed-Fi ODS and Ed-Fi ODS API
Getting Started with the Ed-Fi ODS and Ed-Fi ODS API Ed-Fi ODS and Ed-Fi ODS API Version 2.0 - Technical Preview October 2014 2014 Ed-Fi Alliance, LLC. All rights reserved. Ed-Fi is a registered trademark
White Paper BMC Remedy Action Request System Security
White Paper BMC Remedy Action Request System Security June 2008 www.bmc.com Contacting BMC Software You can access the BMC Software website at http://www.bmc.com. From this website, you can obtain information
Building A Very Simple Web Site
Sitecore CMS 6.2 Building A Very Simple Web Site Rev 100601 Sitecore CMS 6. 2 Building A Very Simple Web Site A Self-Study Guide for Developers Table of Contents Chapter 1 Introduction... 3 Chapter 2 Building
AxCMS.net on Network Load Balancing (NLB) Environment
AxCMS.net on Network Load Balancing (NLB) Environment This article contains step-by-step instructions on how to install AxCMS.net PremiumSample on a demo NLB cluster using IIS7. For installing on older
Release 2.1 of SAS Add-In for Microsoft Office Bringing Microsoft PowerPoint into the Mix ABSTRACT INTRODUCTION Data Access
Release 2.1 of SAS Add-In for Microsoft Office Bringing Microsoft PowerPoint into the Mix Jennifer Clegg, SAS Institute Inc., Cary, NC Eric Hill, SAS Institute Inc., Cary, NC ABSTRACT Release 2.1 of SAS
AUTHENTICATION... 2 Step 1:Set up your LDAP server... 2 Step 2: Set up your username... 4 WRITEBACK REPORT... 8 Step 1: Table structures...
AUTHENTICATION... 2 Step 1:Set up your LDAP server... 2 Step 2: Set up your username... 4 WRITEBACK REPORT... 8 Step 1: Table structures... 8 Step 2: Import Tables into BI Admin.... 9 Step 3: Creating
Walkthrough: Creating and Using an ASP.NET Web Service in Visual Web Developer
http://msdn.microsoft.com/en-us/library/8wbhsy70.aspx Walkthrough: Creating and Using an ASP.NET Web Service in Visual Web Developer In addition to letting you create Web pages, Microsoft Visual Studio
Legal and Copyright Notice
Parallels Helm Legal and Copyright Notice ISBN: N/A Parallels 660 SW 39 th Street Suite 205 Renton, Washington 98057 USA Phone: +1 (425) 282 6400 Fax: +1 (425) 282 6444 Copyright 2008, Parallels, Inc.
Integrating VoltDB with Hadoop
The NewSQL database you ll never outgrow Integrating with Hadoop Hadoop is an open source framework for managing and manipulating massive volumes of data. is an database for handling high velocity data.
Administering Group Policy with Group Policy Management Console
Administering Group Policy with Group Policy Management Console By Jim Lundy Microsoft Corporation Published: April 2003 Abstract In conjunction with Windows Server 2003, Microsoft has released a new Group
SEO Checker User manual
SEO Checker User manual 1 INTRODUCTION... 4 2 INSTALLATION... 5 2.1 Install a license... 5 2.2 Give a user access to SEO Checker... 6 3 SEO CHECKER FOR CONTENT EDITORS... 7 4 VALIDATE PAGES... 8 4.1 Manual
SPHOL326: Designing a SharePoint 2013 Site. Hands-On Lab. Lab Manual
2013 SPHOL326: Designing a SharePoint 2013 Site Hands-On Lab Lab Manual This document is provided as-is. Information and views expressed in this document, including URL and other Internet Web site references,
PROJECTIONS SUITE. Database Setup Utility (and Prerequisites) Installation and General Instructions. v0.9 draft prepared by David Weinstein
PROJECTIONS SUITE Database Setup Utility (and Prerequisites) Installation and General Instructions v0.9 draft prepared by David Weinstein Introduction These are the instructions for installing, updating,
HP Enterprise Integration module for SAP applications
HP Enterprise Integration module for SAP applications Software Version: 2.50 User Guide Document Release Date: May 2009 Software Release Date: May 2009 Legal Notices Warranty The only warranties for HP
Page Editor Recommended Practices for Developers
Page Editor Recommended Practices for Developers Rev: 7 July 2014 Sitecore CMS 7 and later Page Editor Recommended Practices for Developers A Guide to Building for the Page Editor and Improving the Editor
