﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Applied Concepts HR/Payroll » Search Results</title><generator>InstantKB.NET 2.0.3</generator><description>Applied Concepts HR/Payroll</description><link>http://kb.appliedconceptshrpayroll.com/</link><webMaster>denton@AppliedConceptsHrPayroll.com</webMaster><lastBuildDate>Sun, 20 May 2012 14:24:16 GMT</lastBuildDate><ttl>20</ttl><item><title>Triggering a workflow only if specific fields are changed.  Also use of User Defined SQL Functions.</title><link>http://kb.appliedconceptshrpayroll.com/Goto50053.aspx</link><description>&lt;strong&gt;Request:&lt;/strong&gt;  An emPath user recently asked the following:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote class="webkit-indent-blockquote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div&gt;&lt;div&gt;What I would like to do is to only implement the workflow for a specific field. So for example, lets say we setup a workflow on the Bio Details page. This page has a very large collection of fields such as SSN, hire date, names but, we only want to trigger a workflow when the name fields are modified. Therefore, we would need to reference some object that contains which fields have been modified. I assume in order to do that, you would need a rule. If so, could you tell me how I would access what fields changed in a rule?&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;strong&gt;Solution:&lt;/strong&gt;  I provided an example &lt;span style="color: rgb(31, 73, 125); font-family: Calibri, sans-serif; font-size: 15px; "&gt;workflow which used if/else logic within the captureUserInput stateactivity.  This logic conditionally triggered a WF based on the change ofspecific fields on the EmBioDetails page.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(31, 73, 125); font-family: Calibri, sans-serif; font-size: 15px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(31, 73, 125); font-family: Calibri, sans-serif; font-size: 15px; "&gt;The workflow test to see if name fields (i.e. title, last name, first name, middle initial, name suffix, nickname, etc) have changed.  If so an approval workflow is triggered.  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(31, 73, 125); font-family: Calibri, sans-serif; font-size: 15px; "&gt;Following is a screen print showing the if/else logic in the workflow designer.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(31, 73, 125); font-family: Calibri, sans-serif; font-size: 15px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: rgb(31, 73, 125); font-family: Calibri, sans-serif; font-size: 18px; "&gt;&lt;span&gt;&lt;img src="/Uploads/Images/20100724_WF_haveNameFieldsChanged.jpg" /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font color="#1F497D" face="Calibri, sans-serif" size="4"&gt;&lt;span style="font-size: 15px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color="#1F497D" face="Calibri, sans-serif" size="4"&gt;&lt;span style="font-size: 15px; "&gt;&lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(31, 73, 125); "&gt;Note: Following is the expression used in the declarative rulecondition.  Note that it uses the GetSqlBooleanValue method.  IMHO this is the mostpowerful exposed method available to workflow users.&lt;o:p /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;blockquote class="webkit-indent-blockquote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div&gt;&lt;font color="#1F497D" face="Calibri, sans-serif" size="4"&gt;&lt;span style="font-size: 15px; "&gt;&lt;p class="MsoNormal" /&gt;&lt;p class="MsoNormal"&gt;this.GetSqlBooleanValue("captureUserInputActivity1", "select dbo.exampleHaveNameFieldsChanged ('#ORIGINATOR_ACTIVE(employee, EM_EMPLOYEE_ID)#', '#DATA(txtEmNameTitle)#', '#DATA(txtEmLastName)#', '#DATA(txtEmFirstName)#', '#DATA(txtEmMiddleInitial)#', '#DATA(txtEmNameSuffix)#', '#DATA(txtEmNickname)#', '#DATA(txtEmPreferredGivenName)#', '#DATA(txtEmLegalName)#', '#DATA(txtEmFormerName)#', '#DATA(txtEmNameAtBirth)#') from swd1",  False)&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;p /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;font color="#1F497D" face="Calibri, sans-serif" size="4"&gt;&lt;span style="font-size: 15px; "&gt;&lt;p class="MsoNormal" /&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://kb.appliedconceptshrpayroll.com/Register.aspx "&gt;Please register &lt;/a&gt;to download workflow files and the example SQL User Defined Function.  The registered user article is, &lt;a href="http://kb.appliedconceptshrpayroll.com/KnowledgebaseArticle50055.aspx"&gt;Registered users - Triggering a workflow only if specific fields are changed&lt;/a&gt;.&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;</description><pubDate>Sat, 24 Jul 2010 12:45:55 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>how to reduce the size of the transaction log when using SQL Server</title><link>http://kb.appliedconceptshrpayroll.com/Goto50052.aspx</link><description>&lt;br /&gt;&lt;strong&gt;Request&lt;/strong&gt;: An emPath user recently asked about how to reduce the size of the transaction log when using SQL Server.  Specifically they ask:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote class="webkit-indent-blockquote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div&gt;&lt;div&gt;Now that we are running emPath, on SQL Server 2005, I noticed the log file grows quite fast. &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Would you suggest putting a limit on the file size? I realized with SQL Server 2005 the auto-shrink setting if off by default.  Should this be set to on? &lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Suggestion:&lt;/strong&gt; I recommend periodic transaction log backup and truncation.  Following is some detail:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;From review of the literature on the subject I think the proper thing to do is to periodically backup the transaction log file and truncate it during the backup.  Naturally the backups should be saved.  Following are a couple of helpful links on the subject:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;font face="AZBY"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms179478.aspx" target="_blank"&gt;How to: Back Up a Transaction Log (SQL Server Management Studio)&lt;/a&gt; &lt;/font&gt;  .. be sure and keep the "truncate transaction log" radio box checked. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms189085(SQL.90).aspx" target="_blank"&gt;Transaction Log Truncation&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note that it is possible to create a batch job, using Transact-SQL, which can be scheduled to run regularly.  If you are interested I would be pleased to contract to deliver such a job.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I recommend that you try, log file backup and truncation, in a test environment.  Also, I recommend you test recovery from backups as well.  Following is an article on the subject:  &lt;a href="http://msdn.microsoft.com/en-us/library/ms191455.aspx" target="_blank"&gt;Understanding How Restore and Recovery of Backups Work in SQL Server&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As for your question about the auto-shrink option.  Best practice documentation indicates this should be set to off.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As for your question about limiting the file size.  I recommend against limiting the file sizes.  Instead I recommend periodic transaction log backup and truncation as described above.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I hope this information is helpful.   Let me know if I can be of assistance&lt;/div&gt;&lt;/div&gt;</description><pubDate>Wed, 30 Jun 2010 08:13:50 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Update emPath login_string during newhire process - ESS Active Directory</title><link>http://kb.appliedconceptshrpayroll.com/Goto50051.aspx</link><description>&lt;strong&gt;Request:&lt;/strong&gt; An emPath user recently asked for suggestions on how to update, during the new hire process, the emPath security table such that Active Directory authentication can be used.   The emPath users request was:&lt;br /&gt;&lt;br /&gt;"Our company is changing the authentication of ESS to use Active Directory.  I used a SQL script to update the login_string field in the Susr table to the employees’ Active Directory user name for existing employees; however I am having an issue populating this field for new hires."  &lt;br /&gt;&lt;br /&gt;" I don’t think I can use the Network_account since it is not in the EMF table.  I was thinking of using em_employee_id as the ESSLoginString.  Then run a job every evening that will execute a SQL script updating the login_string field to AD user name, but I am no sure this is the best approach.  Any ideas are greatly appreciated."&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Suggestion: &lt;/strong&gt; I suggested the emPath wizard and PDX (page description XML) features be used to address this issue.  Following are wizard screens which show the newhire process with the addition of a step allowing the entry of domain and network id into the login_string field on the SUSR table.  Effectively allowing Active Directory authentication.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Note that emPath provides user detail in their help document on how to use active directory authenticaton for employee self service (ESS).  This example focuses on how to add the network id to the emPath security table, during the new hire process.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;img style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 599px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090813_newhireStep1of3.JPG" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 617px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090813_newhireStep2of3.JPG" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 604px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090813_newhireStep3of3.JPG" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;Note that Field Level Security can also be used to edit the values entered on the above step.&lt;br /&gt;&lt;br /&gt;Note that this approach requires some setup, configuration, and a small custom.  Contact Denton Harryman at (888) 731-3026 x-1 or &lt;a href="mailto:DentonHarryman@att.net"&gt;DentonHarryman@att.net&lt;/a&gt; if you are interested in obtaining this custom.&lt;br /&gt;&lt;br /&gt;</description><pubDate>Thu, 13 Aug 2009 18:22:28 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Importing timecard files larger than 4MB - emPath HR/Payroll</title><link>http://kb.appliedconceptshrpayroll.com/Goto50050.aspx</link><description>&lt;strong&gt;Issue:&lt;/strong&gt; A client asked for assistance in resolving a problem where they were unable to import large timecard files.  &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; Research found that ISS imposes a 4MB limit on upload files.  This same research identified a workaround which allows users to configure the upload size limit.  &lt;br /&gt;&lt;br /&gt;A Microsoft, MSDB, article discusses the &lt;a href="http://msdn.microsoft.com/en-us/library/e1f13641(VS.71).aspx"&gt;&amp;lt;httpRuntime&gt; Element&lt;/a&gt; which supports an override of the 4MB limit on upload files.&lt;br /&gt;&lt;br /&gt;In this instance I changed the web.config file with the following custom configuration which changes the limit to 12MB.&lt;br /&gt;&lt;br /&gt;  &amp;lt;!-- custom configuration change by Denton --&gt;&lt;br /&gt;  &lt;strong&gt;&amp;lt;httpRuntime maxRequestLength="12000" /&gt;&lt;/strong&gt;&lt;br /&gt;  &amp;lt;!-- end of custom --&gt;&lt;br /&gt;&lt;br /&gt;Note that the above custom configuration was placed in the &amp;lt;system.web&gt; section of the web.config document which can be found at the following path: C:\Nsl64\emPath\iis &lt;br /&gt;&lt;br /&gt;Following is additional information on this subject:&lt;br /&gt;&lt;br /&gt;(1) In this instance the error occur when importing timecards.  However it could have happened on any import within emPath.&lt;br /&gt;&lt;br /&gt;&lt;img style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 647px; BORDER-TOP-COLOR: #000000; HEIGHT: 190px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090811_TimecardImport_Error_file_over_4MB.JPG" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;(2) The error message shown on the screen is not very helpful:&lt;br /&gt;&lt;br /&gt;&lt;img src="/Uploads/Images/20090811_TimecardImport_Err.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;(3) However taking the TimecardImport program through debug produces a much more meaningful error as shown below:&lt;br /&gt;&lt;br /&gt;&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;&lt;div&gt;&lt;font face="Arial" size="2"&gt;An exception of type 'System.Web.HttpException' occurred in System.Web.dll but was not handled in user code&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face="Arial" size="2"&gt;Additional information: Maximum request length exceeded.&lt;br /&gt;&lt;p dir="ltr"&gt; (4) Also, there is additional information in the C:\Nsl64\emPath\iis\Logs&lt;br&gt;ow_hr64.log&lt;br /&gt;&lt;/p&gt;&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;&lt;p&gt; [ERROR] | nsl.Web.HrHttpApplication.Application_BeginRequest:line 135 | Exception has been thrown by the target of an invocation.&lt;br /&gt; [ERROR] | nsl.Web.HrHttpApplication.Application_BeginRequest:line 136 | couldn't instantiate class nsl.empath.pagehandler.pay.TimecardImport,nsl&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/font&gt;&lt;/div&gt;&lt;/blockquote&gt;</description><pubDate>Tue, 11 Aug 2009 13:31:57 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Allowing access to emPath Employee Self Service (ESS) outside the firewall</title><link>http://kb.appliedconceptshrpayroll.com/Goto50049.aspx</link><description>&lt;strong&gt;Request:&lt;/strong&gt;  A client asked for suggestions for allowing access to emPath Employee Self Service (ESS) outside the firewall.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Response:&lt;/strong&gt;  Following are diagrams and suggestions previously shared at user conferences on this subject.  Additional suggestions and links have been added for consideration.&lt;br /&gt;&lt;br /&gt;(1) use VPN to access from outside the firewall&lt;br /&gt;&lt;br /&gt;&lt;img style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 507px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090731_ess_01.JPG" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Note that several clientless VPN alternatives are available for consideration.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Cisco&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.citrix.com/"&gt;Citrix&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.juniper.net/"&gt;Juniper&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;(2) Place ESS webtier outside the firewall with tunnel through to the database&lt;br /&gt;&lt;br /&gt;&lt;img style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 498px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090931_ess_02.JPG" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The ESS webtier servers, for ESS, should:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Be dedicated&lt;/li&gt;&lt;li&gt;have no source loaded&lt;/li&gt;&lt;li&gt;have no shares defined&lt;/li&gt;&lt;li&gt;have no ODBC connections&lt;/li&gt;&lt;li&gt;have administrator functions limited&lt;/li&gt;&lt;li&gt;be locked down (part of emPath web installation)&lt;/li&gt;&lt;li&gt;use NTFS security&lt;/li&gt;&lt;li&gt;database should be referemced by an alias&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;(2) Consider requiring client certificates.  Read more about SSL and client certificates at &lt;a href="http://www.verisign.com/"&gt;Verisign.com&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 31 Jul 2009 14:26:24 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Field Level Security - creating a filter using multiple fields.</title><link>http://kb.appliedconceptshrpayroll.com/Goto50047.aspx</link><description>&lt;strong&gt;Request:&lt;/strong&gt; A client recently asked for assistance with the creation of a filter, in the emPath feature called Field Level Security.  Specifically the request was to only display Timecard Entry when batch number is "12DRIV", check sequence is 1,  tax code is 1, and update code is "R".&lt;br /&gt;&lt;br /&gt;The client's request was based on a planned release of the Timecard Entry screen to remote timekeepers.  The security requirement was that these remote timekeepers should only be able to view timecards as described above.  There were additional edit requirements which the client was able to create without assistance.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Resolution:&lt;/strong&gt; The filter created to satisfy this request is shown below.&lt;br /&gt;&lt;img style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 485px; BORDER-TOP-COLOR: #000000; HEIGHT: 203px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090730_FLS_filter_01.JPG" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;&lt;div&gt;&lt;span class="745273013-30072009"&gt;&lt;font face="Arial" size="2"&gt;select decode(#DATA(TCF_BATCH_NO)# || #DATA(TCF_CHECK_SEQ_NO)# || #DATA(TCF_TAX_CODE)# || #DATA(TCF_UPDATE_CODE)#, '12DRIV11R', 'YES', 'NO') as LISTABLE from dual&lt;/font&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;Note that the filter &lt;font face="Arial" size="2"&gt;concatenated four fields and tested as one test.  This approach forces AND logic.  Timecards will only be displayed if all four fields match the requirements.  Also, the filter uses a decode statement to insure the select statement would always return YES or NO.&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;font face="Arial"&gt;Please &lt;/font&gt;&lt;a href="/Register.aspx"&gt;&lt;font face="Arial" color="#1f5080"&gt;register&lt;/font&gt;&lt;/a&gt;&lt;font face="Arial"&gt; to see additional screen prints showing this filter in action.  The registered user article is, &lt;font color="#1f5080"&gt;&lt;a href="/KnowledgebaseArticle50048.aspx"&gt;Registered users - Field Level Security - creating a filter using multiple fields&lt;/a&gt;&lt;/font&gt;.&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;</description><pubDate>Thu, 30 Jul 2009 13:57:40 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Restrict the printing option for emPath Employee Self Service Users</title><link>http://kb.appliedconceptshrpayroll.com/Goto50046.aspx</link><description>&lt;strong&gt;Request:&lt;/strong&gt;  A question from an emPath user stated the following: &lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;&lt;p&gt;"We are releasing some parts of self-service this week and what I'm discovering is that I'm not able to restrict emPath users from printing to specific locations without having an effect on their ability to print while in other browser applications." &lt;/p&gt;&lt;p&gt;"As many of you know printing while signed in to emPath as a nonemployee or nonmanager is controlled by the print configuration performed at the server level. I want that same control to self-service employees. A Windows network group policy will have too great of an effect on other browser apps. Has anyone addressed this issue within your organizations? "&lt;/p&gt;&lt;p dir="ltr"&gt;"What we are attempting to do with this restrict is to help employees safeguard their information. At our hospital staff float to many parts of the building and current network configurations allow them to print any number of printers on our network. From time to time staff have been known to print items to a printer they didn't intent to use and with the ability to pull up their sensitive employee/payroll data, I'm concerned they will mistakenly print materials that others will see." &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;Response:&lt;/strong&gt;  A custom solution would to:&lt;br /&gt;&lt;br /&gt;(1) Place the following style tag in the PayStubDetails xml file and in other ESS pages with confidential information.&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 634px; BORDER-TOP-COLOR: #000000; HEIGHT: 139px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090421_ess_restrict_print.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;This change will cause a blank page to be printed if the print function is used on this specific page. &lt;br /&gt;&lt;br /&gt;Note that to insure your change takes effect you will need to delete the PayStubDetails file from the emPath cache and stop the w3wp process. &lt;br /&gt;&lt;br /&gt;(2) Place a custom print function on the chosen pages. &lt;br /&gt;&lt;br /&gt;*** Please &lt;font color="#1f5080"&gt;&lt;a href="/Register.aspx?SessionId=flcdcp55oc1jwl2baewwhm55"&gt;register&lt;/a&gt; &lt;/font&gt;to view additional details on how customs are accomplished ... Note that after registering you have to call Denton at (888) 731-3026 before your registeration will be activated.  The phone number will always reach a voice prompt.  Please select option 1 and the service will track Denton down ... this activation process is necessary to insure those registering are emPath users.&lt;br /&gt;&lt;/p&gt;</description><pubDate>Wed, 22 Apr 2009 13:12:53 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Manually remove emPath 6.4 from the add/remove list </title><link>http://kb.appliedconceptshrpayroll.com/Goto50045.aspx</link><description>&lt;p&gt;&lt;strong&gt;Issue:&lt;/strong&gt; I recently had a client moving emPath 6.4 from one server to another.  The installation on the new server was easy.  However we faced a challenge removing emPath 6.4 from the old server.  Specifically, after removal emPath 6.4 remained in the add/remove list under "settings &gt; control panel &gt; add or remove programs". &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Response:&lt;/strong&gt; The resolution was found in the following Microsoft knowledge database article.&lt;/p&gt;&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;&lt;p dir="ltr" style="MARGIN-RIGHT: 0px"&gt;&lt;a href="http://support.microsoft.com/kb/314481"&gt;How to manually remove programs from the Add or Remove Programs tool&lt;/a&gt; &lt;/p&gt;&lt;/blockquote&gt;&lt;p dir="ltr" style="MARGIN-RIGHT: 0px"&gt;Note that challenge also affected my custom efforts, in that sometimes I need to start with a fresh install of emPath 6.4       &lt;/p&gt;</description><pubDate>Sat, 18 Apr 2009 17:57:05 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Using Page Description XML (PDX) to maintain custom data</title><link>http://kb.appliedconceptshrpayroll.com/Goto50043.aspx</link><description>&lt;p dir="ltr" style="MARGIN-RIGHT: 0px"&gt;&lt;strong&gt;Question:&lt;/strong&gt;  An emPath user recently asked &lt;/p&gt;&lt;ul&gt;&lt;li&gt;"Is anybody using the applicant tracking module of emPath? We want to know how Volunteer applicants are handled? How do you collect some of the information that Empath does not contain such as Availability, Emergency contact, Education, and Background check?"&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Response:&lt;/strong&gt;  There are several valid responses to this question.  This article focuses on the use of Page Description XML (PDX) to maintain custom data.&lt;br /&gt;&lt;br /&gt;The emPath application is delivered with a feature called "Page Description XML (PDX)" which can be used to create custom pages to maintain custom or client specific data.&lt;br /&gt;&lt;br /&gt;Following is an example page created using PDX.   This example attempts to address the emPath users detail questions.&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 575px; BORDER-TOP-COLOR: #000000; HEIGHT: 773px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090407_pdx_no_menu.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;A detailed article is available, for registered members, which shows how to create a PDX page.  Also, this information will be explained at the NOW Solutions User Conference.&lt;br /&gt;&lt;br /&gt;In summary:&lt;br /&gt;&lt;br /&gt;(1) Create a custom table using SQL statements.  Set AP_APPLICANT_ID as the key.  Add custom columns as needed. &lt;br /&gt;&lt;br /&gt;(2) Create a SQL trigger to insert a record into the custom table when an applicant is added to the AP1 table.&lt;br /&gt;&lt;br /&gt;(3) Create or modify an XML file called site_ComponentMetadata.  This file will define the custom table such that emPath PDX pages can access and maintain the data.&lt;br /&gt;&lt;br /&gt;(4) Create an emPath PDX page using XML statements to define the data to be presented and maintained.&lt;br /&gt;&lt;br /&gt;(5) Create or modify an XML file called site_website to let emPath know about the new PDX page.&lt;br /&gt;&lt;br /&gt;(6) Create or modify an XML file called site_nav to let emPath know where in the menu the new PDX page should appear.&lt;br /&gt;&lt;br /&gt;(7) Update emPath security tables letting emPath know which user classes can used the new PDX page.&lt;br /&gt;&lt;br /&gt;(8) Update emPath metadata tables to provide lable descriptions and help text for the new PDX page.  &lt;br /&gt;&lt;br /&gt;Please &lt;a href="/Register.aspx"&gt;register&lt;/a&gt; to view details on how this custom was accomplished.  The registered user article is, &lt;a href="/KnowledgebaseArticle50044.aspx"&gt;Registered users - Using Page Description XML (PDX) to maintain custom data&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;</description><pubDate>Wed, 08 Apr 2009 17:34:27 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Resolve an invalid object error by changing ownership of a SQLserver object (table, function, ect).</title><link>http://kb.appliedconceptshrpayroll.com/Goto50042.aspx</link><description>&lt;strong&gt;Issue:&lt;/strong&gt; While helping a client upgrade to emPath 6.4 the log for the DatabaseDeploymentUtility included an error which was related to ownership of SQLserver objects.  Note that this was not a bug in the emPath DatabaseDeploymentUtility.  In fact the utility was identifying a problem which had occurred previously and gone undetected until the empath 6.4 upgrade.  &lt;em&gt;(See notes at the bottom of this article for examples of error messages received)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Resolution:&lt;br /&gt;&lt;/strong&gt;(1) using Query Analyzer identify the SQLserver objects which have an owner other than "dbo".  The tables and functions should have ownership of dbo:&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 305px; BORDER-TOP-COLOR: #000000; HEIGHT: 178px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090404_sqlserver_ownership_02.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;(2) If an object (table or function) has an ownership other than dbo you should change the ownership to dbo prior to running the emPath DatabaseDeploymentUtility.  Following the SQL statement to change ownership in the above example:&lt;br /&gt;&lt;br /&gt;    sp_changeobjectowner 'xxx.AA2',  'dbo'&lt;br /&gt;&lt;br /&gt;Note that errors in the log file of the DatabaseDeploymentUtility may look similar to the following:&lt;br /&gt;&lt;br /&gt;&lt;img class="Quote" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 697px; BORDER-TOP-COLOR: #000000; HEIGHT: 161px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090404_sqlserver_ownership_error2.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;Note that errors on emPath pages related to ownership issues look similar to the following:&lt;br /&gt;&lt;br /&gt;&lt;img class="Quote" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 569px; BORDER-TOP-COLOR: #000000; HEIGHT: 35px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090404_sqlserver_ownership_error.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  </description><pubDate>Sat, 04 Apr 2009 16:44:40 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>An example general ledger interface  </title><link>http://kb.appliedconceptshrpayroll.com/Goto50040.aspx</link><description>&lt;strong&gt;Request:&lt;/strong&gt; An emPath user recently asked for example general ledger interfaces from emPath to an external GL.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Response: &lt;/strong&gt; The client list server responses indicated several different examples.  This article details an example in which emPath reporting submit is supported, an automated read of the selection criteria, a SQL selection, a SQL formatting of the data, and a SQL update of the emPath posted flag.&lt;br /&gt;&lt;br /&gt;Following is a screen print of the emPath report selection page used in this custom GL interface.&lt;br /&gt;&lt;br /&gt; &lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 453px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090223_glif.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;Please &lt;a href="/Register.aspx"&gt;register&lt;/a&gt; to view details on how this custom was accomplished.  The registered user article is,  &lt;a href="/KnowledgebaseArticle50041.aspx"&gt;Registered users - An example general ledger interface&lt;/a&gt; .&lt;br /&gt;</description><pubDate>Mon, 23 Feb 2009 17:01:28 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Display your logo on the emPath 6.4 portal page</title><link>http://kb.appliedconceptshrpayroll.com/Goto50038.aspx</link><description>&lt;strong&gt;Request:&lt;/strong&gt; A client asked for assistance in porting a 6.3 custom to emPath 6.4 in which their logo appears on the emPath 6.4 portal page.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution:&lt;/strong&gt; A minor custom allows the client to use a web portal page which appears as follows:&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 352px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/2009020218_protal.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;Please &lt;a href="/Register.aspx"&gt;register&lt;/a&gt; to view details on how this custom was accomplished.  The registered user article is,  &lt;a href="/KnowledgebaseArticle50039.aspx"&gt;Registered users - Display your logo on the emPath 6.4 portal page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Note that the steps to implement this custom are different in emPath version 6.4 than they were with emPath version 6.3&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description><pubDate>Wed, 18 Feb 2009 22:44:14 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Setup for the Salary Range page in emPath 6.4</title><link>http://kb.appliedconceptshrpayroll.com/Goto50036.aspx</link><description>&lt;strong&gt;Request:&lt;/strong&gt; An emPath user asked for information, from other users, about how they setup the Salary Range page within emPath.  Specifically, the emPath user wanted to know how to use the Salary Range page to show a salaried employee annual salary. &lt;br /&gt;&lt;br /&gt;Note that this article has been modified to demonstrate the setup for MX and M position control.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Example:&lt;/strong&gt;  Following is an example with I created in the demo database.   &lt;br /&gt;&lt;br /&gt;(1) This screen print shows the Salary Range page with annual salary displayed.&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 655px; BORDER-TOP-COLOR: #000000; HEIGHT: 470px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090210_salary_range_01.jpg" border="1" /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Note the wage structure.  This is the tie which allows the min, mid, and max to be displayed.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; (2) This screen print shows the employee position assignment and annual rate the employee earns.  Note that this screen shows an example when the MX position option is set. &lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 654px; BORDER-TOP-COLOR: #000000; HEIGHT: 316px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090210_salary_range_02.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;(3) This screen print shows the employee position assignment and annual rate the employee earns.  Note that this screen shows an example when the M position option is set. &lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 652px; BORDER-TOP-COLOR: #000000; HEIGHT: 511px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090210_salary_range_02b.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;(4) This screen print shows the position assignment and the wage structure tie&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 651px; BORDER-TOP-COLOR: #000000; HEIGHT: 360px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090210_salary_range_03.jpg" border="1" /&gt;&lt;/p&gt;&lt;p&gt;(5) This screen print shows the possibility to override the wage structure min, mid, and max at the position level.&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 652px; BORDER-TOP-COLOR: #000000; HEIGHT: 286px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090210_salary_range_04.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(6) The wage structure page in which the min, mid, and max are defined.&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 646px; BORDER-TOP-COLOR: #000000; HEIGHT: 287px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090210_salary_range_05.jpg" border="1" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(7) Note that taking this approach may affect the pay formulas given an annual rate is entered on the position/salary page.   Following is a screen print showing that change in the demo data base necessary to implement this setup&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 651px; BORDER-TOP-COLOR: #000000; HEIGHT: 294px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090210_salary_range_06.jpg" border="1" /&gt;&lt;br /&gt; &lt;/p&gt;</description><pubDate>Thu, 12 Feb 2009 10:32:11 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Resolve an installation error indicating vjredist is not installed</title><link>http://kb.appliedconceptshrpayroll.com/Goto50037.aspx</link><description>&lt;p&gt;&lt;strong&gt;Issue:  &lt;/strong&gt;When installing emPath 6.4 it is possible to receive an error indicating vjredist is not installed.  This can appear even though vjredist is installed.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Solution: &lt;/strong&gt; It is possible the installed copy of vjredist is an old version.  An easy fix is to install Microsoft Visual J# v2.0 delivered by with emPath.  &lt;/p&gt;</description><pubDate>Wed, 11 Feb 2009 16:31:04 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>A custom leave balance ESS page in emPath </title><link>http://kb.appliedconceptshrpayroll.com/Goto50035.aspx</link><description>&lt;strong&gt;Request:&lt;/strong&gt; A client asked to have a custom version of the delivered Leave Balance ESS page.  Specifically they want to suppress the display of three columns.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution:&lt;/strong&gt; This was a simple change to the LeaveBalancesList XML file.&lt;br /&gt;&lt;br /&gt;The original Leave Balance page looked like the following screen print:&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 389px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090209_leave_b4.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;After the custom the page looks like the following screen print.&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 188px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20090209_leave_after.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;The steps involved are:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;(1) Locate C:\Nsl64\emPath\iis\html\LeaveBalancesList.xml and make a backup copy &lt;br /&gt; &lt;br /&gt;(2) Modify C:\Nsl64\emPath\iis\html\LeaveBalancesList.xml as follows:&lt;br /&gt; &lt;br /&gt;From:&lt;br /&gt; &lt;br /&gt;&lt;font size="1"&gt;     &amp;lt;tr&gt;&lt;br /&gt;         &amp;lt;th field-name="PMF_DESCRIPTION" id="hdrPmfDescription" width="20%"&gt;Type of Leave&amp;lt;/th&gt;&lt;br /&gt;         &amp;lt;th field-name="EPF_OPENING_BAL_HOURS_ACCRUED" id="hdrEpfOpeningBalHoursAccrued"  &lt;br /&gt;               horizontal-align="right" width="20%"&gt;Opening Balance&amp;lt;/th&gt;&lt;br /&gt;         &amp;lt;th field-name="EPF_YTD_HOURS_ACCRUED" id="hdrEpfYtdHoursAccrued"  horizontal-align="right" width="20%"&gt;Hours Accrued&amp;lt;/th&gt;&lt;br /&gt;         &amp;lt;th field-name="EPF_YTD_HOURS_PAID" id="hdrEpfYtdHoursPaid"  horizontal-align="right" width="20%"&gt;Hours Used&amp;lt;/th&gt;&lt;br /&gt;         &amp;lt;th field-name="EPF_HOURS_AVAILABLE" id="hdrEpfHoursAvailable"  horizontal-align="right" width="20%"&gt;Hours Available&amp;lt;/th&gt;&lt;br /&gt;     &amp;lt;/tr&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt; &lt;br /&gt;To:&lt;br /&gt; &lt;br /&gt;&lt;font size="1"&gt;     &amp;lt;tr&gt;&lt;br /&gt;         &amp;lt;th field-name="PMF_DESCRIPTION" id="hdrPmfDescription" width="20%"&gt;Type of Leave&amp;lt;/th&gt;&lt;br /&gt;         &amp;lt;!--&lt;br /&gt;         &amp;lt;th field-name="EPF_OPENING_BAL_HOURS_ACCRUED" id="hdrEpfOpeningBalHoursAccrued"  &lt;br /&gt;               horizontal-align="right" width="20%"&gt;Opening Balance&amp;lt;/th&gt;&lt;br /&gt;         &amp;lt;th field-name="EPF_YTD_HOURS_ACCRUED" id="hdrEpfYtdHoursAccrued"  horizontal-align="right" width="20%"&gt;Hours Accrued&amp;lt;/th&gt;&lt;br /&gt;         &amp;lt;th field-name="EPF_YTD_HOURS_PAID" id="hdrEpfYtdHoursPaid"  horizontal-align="right" width="20%"&gt;Hours Used&amp;lt;/th&gt;&lt;br /&gt;         --&gt;&lt;br /&gt;         &amp;lt;th field-name="EPF_HOURS_AVAILABLE" id="hdrEpfHoursAvailable"  horizontal-align="right" width="20%"&gt;Hours Available&amp;lt;/th&gt;&lt;br /&gt;     &amp;lt;/tr&gt;&lt;/font&gt;&lt;br /&gt; &lt;br /&gt;(3) Delete the following cache files if they exist&lt;br /&gt; &lt;br /&gt;     C:\Nsl64\emPath\Cache\en_CA\ESS\LeaveBalancesList&lt;br /&gt;     C:\Nsl64\emPath\Cache\en_CA\MSS\LeaveBalancesList&lt;br /&gt;     C:\Nsl64\emPath\Cache\en_US\ESS\LeaveBalancesList&lt;br /&gt;     C:\Nsl64\emPath\Cache\en_US\MSS\LeaveBalancesList&lt;br /&gt;     C:\Nsl64\emPath\Cache\fr_CA\ESS\LeaveBalancesList&lt;br /&gt;     C:\Nsl64\emPath\Cache\fr_CA\MSS\LeaveBalancesList&lt;br /&gt; &lt;br /&gt;(4) End your W3WP process in the task manager.&lt;/p&gt;Note that a more sophisticated approach would be to rename the XML files and to create custom a C# program.   This approach would prevent the change from having to be re-applied after each service pack.&lt;br /&gt;</description><pubDate>Mon, 09 Feb 2009 17:08:12 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>SQL performance tip - When joining char and varchar columns</title><link>http://kb.appliedconceptshrpayroll.com/Goto50034.aspx</link><description>&lt;span id="_ctl0_ArticleRepeater__ctl1_ArticleText"&gt;&lt;strong&gt;Issue:&lt;/strong&gt; A client was experencing slow response from a SQL script ran against the emPath employee benefit (BN3) table and a custom table.  &lt;p&gt;&lt;strong&gt;Research:&lt;/strong&gt; The slow response was directly related to the custom table using VARCHAR field types while the BN3 table used CHAR field types.   The workaround on the field type issue was to trim each column when referenced in the where clause.   That workaround, along with the fact that columns in the where clause were part of an index, caused very slow response.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Resolution:&lt;/strong&gt;  The resolution is to use RPAD instead of TRIM.  This results in a significant performance improvement.&lt;/p&gt;&lt;p&gt;Original where clause:&lt;/p&gt;&lt;p&gt;            where trim(bn3.em_employee_id) = trim(es.em_employee_id)&lt;br /&gt;                     and trim(bn3.bn_benefit)  = trim(es.bn_benefit)&lt;br /&gt;                     and trim(bn3.bn_coverage) = trim(es.bn_coverage)&lt;/p&gt;&lt;p&gt;Performance improving where clause:&lt;/p&gt;&lt;p&gt;             where bn3.em_employee_id = &lt;strong&gt;rpad&lt;/strong&gt;(es.em_employee_id,9)&lt;br /&gt;                      and bn3.bn_benefit  = &lt;strong&gt;rpad&lt;/strong&gt;(es.bn_benefit,8)&lt;br /&gt;                      and bn3.bn_coverage = &lt;strong&gt;rpad&lt;/strong&gt;(es.bn_coverage,4)&lt;/p&gt;&lt;/span&gt;</description><pubDate>Sun, 08 Feb 2009 15:22:25 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>create a view which combines employee deduction (EDF) and DDS</title><link>http://kb.appliedconceptshrpayroll.com/Goto50033.aspx</link><description>&lt;p&gt;&lt;strong&gt;Request:&lt;/strong&gt; A client recently asked for assistance in balancing their 401(k) deductions.  See article Q10023 for a summary explanation of the request and solution.  The specific portion of that request, which this article details, relates to running SQL scripts to create two views which combine information from EDF and DDS.   The goal is to be able to create a spreadsheet with combines specific information from EDF and DDS in a columniar format.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Use SQL to create two views which combine information from the EDF table and the parsed results from the DDS reports.  See articles the related articles, attached to the document, for detail on how the DDS report was parsed.  For the purposes of this article accept that the DDS results now exists in a temporary table.&lt;/p&gt;&lt;p&gt;(1) The goal is to allow the user to create a spreadsheet similar to the following.  Note that the following is a simplified example.  There acutal request involved 19 deduction codes and multiple spreadsheets.&lt;br /&gt;&lt;br /&gt;&lt;img src="/Uploads/Images/20080227_view.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(2) Create views for the EDF information and the DDS parsed table.  The sql scripts are attached.&lt;/p&gt;&lt;p&gt;(3) Use Business Objects or Crystal to combine the two views created in step 2.&lt;/p&gt;&lt;p&gt;Note: A simplified SQL statement, used to create a spooled file which was pulled into Excel to create the above spreadsheet, is as follows:&lt;/p&gt;&lt;p&gt;select&lt;br /&gt;edfv.EM_EMPLOYEE_ID,&lt;br /&gt;DEFSAVR_PERCENT,&lt;br /&gt;NDSAVR_PERCENT,&lt;br /&gt;DEFSAVR_YTD,&lt;br /&gt;NDSAVR_YTD,&lt;br /&gt;DEFSAVR_DDS,&lt;br /&gt;NDSAVR_DDS     &lt;br /&gt;from view_401k_edf_info edfv, view_401k_dds_info dds&lt;br /&gt;where NDSAVR_YTD &amp;lt;&gt; 0&lt;br /&gt;  and edfv.em_employee_id = dds.em_employee_id&lt;br /&gt;/&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;</description><pubDate>Sun, 08 Feb 2009 15:17:30 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Resolving RPC (remote procedure call) problems after an install.</title><link>http://kb.appliedconceptshrpayroll.com/Goto50032.aspx</link><description>&lt;font size="3"&gt;Resolving RPC (remote procedure call) problems. After an install or a change in the server architecture it is possible to have a red X on the top of emPath screen indicating the RPC could not be started. One possible cause is that the "Supplemental UI Library for Visual J# .Net v1.1" (vjssupuilib) is not installed. The symptom, of this problem, is a gem_server dmp file in the Gembase log files. The gem_server dmp file will indicate there has been an EXCEPTION_ACCESS_VIOLATION.&lt;/font&gt; </description><pubDate>Sun, 08 Feb 2009 15:09:15 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Resolving pay/deduction overflow issues on the ETF table</title><link>http://kb.appliedconceptshrpayroll.com/Goto50031.aspx</link><description>&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt; A client recently asked for assistance in resolving a problem where they were receiving pay/deduction overflow massages on the ETF table when they ran the CTXG report. &lt;/p&gt;&lt;p&gt;The challenge is that with emPath 6.3 there is a limitation of 42 pays and deductions on the employee tax (ETF / ETF2) tables. Making the challenge even harder is that there is a limit of 12 pay and deduction codes on the tax group (TGF) table. The code on the TGF can be wild carded which often causes multiple pays and deductions to be added to the ETF which are not needed.&lt;/p&gt;&lt;p&gt;The best solution to this issue is to upgrade to emPath 6.4 where these limitations have been relaxed. However, if you are using emPath 6.3 the following steps will help in resolving the problem&lt;br /&gt;&lt;br /&gt;(1) Identify the employees and tax groups impacted.  Following is a SQL statement which will identify those employees with a value of 42 in pay/deduction occurances column. &lt;/p&gt;&lt;p&gt;select em_employee_id, etf_tax_group&lt;/p&gt;&lt;p&gt; from etf&lt;/p&gt;&lt;p&gt;where etf_pay_ded_data_occurs_count = 42;&lt;/p&gt;&lt;p&gt;(2) Review the tax groups identified in step 1 vs the pays and deductions paid in the year as reported on the E-H-R report.  When running the E-H-R report enter "T" in the sort by column such that the report will provide totals by tax group. &lt;/p&gt;&lt;p&gt; &lt;br /&gt;(3) If possible change the tax group pay/deduction codes to workaround the overflow issue.  Following is a before and after screen print of just such a change.  You can see code AWARD was removed then MEM***** was replaced by MEMPEN** and MEMR**** &lt;/p&gt;&lt;p&gt; &lt;img src="/Uploads/Images/20080201_etf_tgrp_b4.jpg" /&gt; &lt;img src="/Uploads/Images/20080201_etf_tgrp_after.jpg" /&gt;&lt;br /&gt;(4) Re-run CTXG and verify that the overflow massages no longer appear.  The proceed to the running of UPTX.&lt;/p&gt;&lt;p&gt;In this case I received the following thank you email after quickly and successfully resolving the issue:&lt;br /&gt;&lt;br /&gt;&lt;img src="/Uploads/Images/20080201_etf_overflow_thank_you.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Note that it is not always this easy.  In some cases one has to use SQL to update the ETF and ETF2 tables replacing pay and deduction codes which have zero amounts with codes for those which were not successfully added due to the overflow.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;</description><pubDate>Sun, 08 Feb 2009 15:00:30 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Null values can cause SQLstate 22002</title><link>http://kb.appliedconceptshrpayroll.com/Goto50030.aspx</link><description>&lt;span id="_ctl0_ArticleRepeater__ctl1_ArticleText"&gt;&lt;font size="1"&gt;&lt;font size="3"&gt;It is possible to create customs which allow null values. When nulls are present they can cause a NetExpress (Microfocus COBOL) program to error out with a SQLstate 22002 error. The error message "indicator variable required but not supplied" is less than helpful. There is however a Microsoft knowledge base article which explains the error in more detail.&lt;/font&gt; &lt;p&gt;&lt;font size="3"&gt;To workaround this issue in Oracle you can use the decode function in the select statement such that nulls are changed to spaces as shown below:&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;p&gt;               SELECT&lt;br /&gt;                   EM_EMPLOYEE_ID,&lt;br /&gt;                   decode(RATE_TABLE_GRADE,NULL,'     ',&lt;br /&gt;                          RATE_TABLE_GRADE) as rateGrade&lt;/p&gt;&lt;p&gt;                   . . . &lt;/p&gt;&lt;/span&gt;</description><pubDate>Sun, 08 Feb 2009 14:51:05 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>A custom validation table and a drop down selection box. </title><link>http://kb.appliedconceptshrpayroll.com/Goto50029.aspx</link><description>&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt;  I need to create a validation table with a list of our training instructors.  The validation table needs to be linked to the “Instructor” field in the set-up &gt; Sessions &gt; Details page.  Any information you can share with me is greatly appreciated.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;  This can be accomplished using the emPath site_ComponentMetaData feature in combination with a minor XML change.  The result is a dropdown box tied to a custom validation table.  Following is an example using the (training &gt; set-up &gt; Sessions &gt; Details) page.&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 255px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20080131_custom_dropdown_bo.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt; Following are the steps involved in the custom shown above:&lt;/p&gt;&lt;p&gt;(1) Create or modify at site_ComponentMetaData xml file in which you edit the TrSessions component as follows.  &lt;/p&gt;&lt;p&gt;from:  &amp;lt;field name="TR_INSTRUCTOR" table="TR2"&gt;&lt;/p&gt;&lt;p&gt;to:     &amp;lt;field name="TR_INSTRUCTOR" table="TR2" type="validated" table-code="ZINSTRUCTR" /&gt;&lt;/p&gt;&lt;p&gt;(2) Modify the TrSessionDetails xml file as follows:&lt;/p&gt;&lt;p&gt;from:  &amp;lt;input type="text" class="edit" id="txtTrInstructor" name="txtTrInstructor" /&gt; &lt;br /&gt;         &amp;lt;span class="view" id="spnTrInstructor" /&gt;&lt;/p&gt;&lt;p&gt;to:      &amp;lt;select type="text" class="edit" id="txtTrInstructor" name="txtTrInstructor"&gt; &amp;lt;/select&gt; &lt;br /&gt;          &amp;lt;span datafld="TR_INSTRUCTOR" class="view" id="spnTrInstructor" name="spnTrInstructor" &gt;&amp;lt;/span&gt;&lt;/p&gt;&lt;p&gt;(3)  Using the emPath (setup -&gt; validation tables) page add instructors.  Following is an example:&lt;/p&gt;&lt;p&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 299px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20080131_custom_instructor_.jpg" border="1" /&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;p&gt;(4) Delete the CTrSessionDetails file from your nsl63 cache.&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;p&gt;(5) End the aspnet_wp.exe process (if you run Windows 2000) or the w3wp.exe process (if you run Windows 2003).&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial"&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;p&gt;That is all there is to it.&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;</description><pubDate>Sun, 08 Feb 2009 14:34:31 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Compile and test on the business tier in an emPath configuration</title><link>http://kb.appliedconceptshrpayroll.com/Goto50028.aspx</link><description>&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt; A client, moving from HR Classic to emPath, recently asked for tips on several issues about compiling and testing on the business tier in an emPath configuration.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Response:&lt;/strong&gt; Following are responses to the clients specific questions:&lt;/p&gt;&lt;p&gt;(1)  Question: Do we compile on the Business Server or just move files over ( Source, executable, etc).&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Response: What I have used and seen at several clients is the following approach.  Each developer has a copy of NetExpress / Microfocus COBOL on their personal PC.  The programs are developed and compiled on their personal PC.  Only the executable (exe) is moved to the emPath business tier.  The source is normally maintained in a common Visual SourceSafe (VSS).&lt;/p&gt;&lt;p&gt;The command procedures, sort specifications, SQL statements, etc are also normally maintained on VSS and copied to the emPath business tier.  &lt;/p&gt;&lt;p&gt;(2) Question: For testing do we have to automatically add to the emPath Menu as an Item to the right or can the program be easily added as part of the list for Batch Reports Menu Item. &lt;/p&gt;&lt;p&gt;Response:  Most batch custom development should be added as a batch reports menu item.  Adding menu items outside of the batch reports area is normally done for online customs.  &lt;/p&gt;&lt;p&gt;Note that while it is possible to create a menu item, outside of the batch reports area, which involks a command procedure it is important to note that this method of invoking a command procedure results in a job running on a client PC not the business tier.&lt;/p&gt;&lt;p&gt;The steps to add a batch reports menu item are simple and quick.  They are as follows:&lt;/p&gt;&lt;p&gt;(2.1) In emPath select menu item setup &gt; reports&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 250px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20080405_how2_compile_and_test_01.jpg" border="1" /&gt;&lt;/p&gt;&lt;p&gt;(2.2) Hover over the edit icon then select "new report entry"&lt;/p&gt;&lt;p&gt;(2.3) Enter new report entry values.  An example is shown below which was used to create the menu item to execute the example command procedure in &lt;a href="/KnowledgebaseArticle50017.aspx?Keywords=reporting"&gt;article 50017&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 324px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20080405_how2_compile_and_test_02.jpg" border="1" /&gt;&lt;/p&gt;&lt;p&gt;(2.4) Hover over the edit item and select "elements".  Note that these are the elements which the user will be prompted for.  They will be added to the users PYT file.  Logic in your custom command procedure can read these PYT elements and control the processing in your command procedure.&lt;/p&gt;&lt;p&gt;NOTE - Atleast one element is required even if your command procedure does not use it.&lt;/p&gt;&lt;p&gt;(2.5) Hover over the edit item and select "new element"&lt;/p&gt;&lt;p&gt;(2.6) Enter element values as shown in the attached screen print.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 245px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20080405_how2_compile_and_test_03.jpg" border="1" /&gt;&lt;/p&gt;&lt;p&gt;(3) Question: Can we test a cobol program from the dos prompt of the server.&lt;/p&gt;&lt;p&gt;Response: Yes you can, however it is not recommended.  My recommended approach is to use the batch reporting features from emPath in combination with the custom command procedure recommendations shown in &lt;a href="/KnowledgebaseArticle50018.aspx"&gt;article 50018&lt;/a&gt;.  This will result in a detailed log showing the results from your test.  &lt;/p&gt;&lt;p&gt;However, because there are instances where you may need to run the custom program from the DOS prompt I will share two alternatives for testing from the dos prompt.  &lt;/p&gt;&lt;p&gt;(3.1) Recommended Alternative - Create a command procedure and a batch reporting menu item.  Then when you submit the job place a future time in the start time (see screne print below).  This will result in a command procedure ready to execute placed in your hrlogdir folder.  The job will be scheduled to run on the empath business tier using the windows scheduler.  However, you can run the job, line by line, from the DOS prompt.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 340px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20080405_how2_compile_and_test_04.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt; (3.1.1) Logon to the emPath business heir and locate the command procedure created.  Note that emPath combines the command procedure you create with additional statements which are very important.  Note the the location for this resulting command procedure is where ever you have defined your HRLOGDIR folder for the emPath environment you are testing with.  &lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 121px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20080405_how2_compile_and_test_05.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(3.1.2) Open a DOS prompt, edit the command procedure, then copy paste from the command procedure to the DOS prompt.&lt;/p&gt;&lt;p&gt;(3.2) Second alternative - Create a batch file which defines the environment you wish to test in.  You can create this batch file by doing the following:&lt;/p&gt;&lt;p&gt;(3.2.1) Open the RES file you are using to define the test enviornment you are using.&lt;/p&gt;&lt;p&gt;(3.2.2) Create a batch file.  Then copy paste the statements beginning with set_env from your RES file to your manual setup batch file.&lt;/p&gt;&lt;p&gt;(3.3.3) change the statements to set= instead of set_env= statements.  A SQLServer example is shown below:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="Borders" style="WIDTH: 100%; HEIGHT: 100%" valign="top" align="left"&gt;set=HR_ROOT=c:\Nsl63\emPath_bc&lt;br /&gt;set=HRDLLS_DIR=c:\Nsl63\emPath_bc\Dll&lt;br /&gt;set=HRRPC_B=c:\Nsl63\emPath_bc\Dll\hrrpc_b32.dll&lt;br /&gt;set=DBIO_B_DLL=c:\Nsl63\emPath_bc\Dll\dbio_odbc.dll&lt;br /&gt;set=DBIO_B=ODBC&lt;br /&gt;set=HRSYSCONFIG=c:\bowpgm\demo63Sql\rpc\sysconfig_emPath63sql.bat&lt;br /&gt;set=HRDATACONFIG=c:\Nsl63\emPath_bc\rpc\dataconfig.bat&lt;br /&gt;set=RSILOGFILE=c:\Nsl63\emPath_bc\Logs\rsitrace.log&lt;br /&gt;set=SP_RDB_ERROR_FILE=c:\Nsl63\emPath_bc\Logs\database_errors.log&lt;br /&gt;set=ROSSPYHR=xxxxxxxx/xxxxxxxx/xxxxxxxx&lt;br /&gt;set=datadrive=c&lt;br /&gt;set=appdrive=c&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt;(3.3.4) Open a DOS prompt&lt;/p&gt;&lt;p&gt;(3.3.5) run the manual setup batch file&lt;/p&gt;&lt;p&gt;(3.3.6) type the specific statements to test your program.  For example:&lt;/p&gt;&lt;p&gt;(SET dd_RPT_PR852=%HRRPTDIR%\pr852.rpt)&lt;br /&gt;(if exist �_RPT_PR852% del �_RPT_PR852%)&lt;br /&gt;(pr852.exe)&lt;/p&gt;&lt;p&gt;(4) Question: Of course a command file exist for each of the programs.&lt;/p&gt;&lt;p&gt;Response: Normally a command procedure exist for each custom program or set of related programs.&lt;/p&gt;&lt;p&gt;*** Overall notes on the subject of compiling and testing on the business tier in an emPath configuration&lt;/p&gt;&lt;p&gt;Note that it is possible to move away from COBOL and develop most of your reports and/or interfaces using SQL scripts.  &lt;/p&gt;&lt;p&gt;Note that if you have a significant number of customs my recommendation is to have a sperate test and a production server environments.&lt;/p&gt;&lt;p&gt;Note that if you have multiple developers I recommend the use of Microsoft VSS to control the source.&lt;/p&gt;&lt;p&gt;Note that you will be developing much more than just executables.  You will also need to consider control of command procedures, SQL scripts, sort control files, FTP control files, email distribution batch files, windows Script Hosting (WSH) files such as VB scripts, and others.  I recommend you consider the examples shown in article 10007. &lt;/p&gt;&lt;p&gt;Note that one of the examples, in article 10007, show how to use embedded SQL in a MicroFocus COBOL program.  Following is a screen print showing part of that example:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 700px; BORDER-TOP-COLOR: #000000; HEIGHT: 516px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20080405_how2_compile_and_test_06.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;</description><pubDate>Sun, 08 Feb 2009 14:05:27 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Sorting as part of a command procedure in an emPath environment</title><link>http://kb.appliedconceptshrpayroll.com/Goto50027.aspx</link><description>&lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt;  How do we do a sort in a custom emPath command file ( .CMD )&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Response:&lt;/strong&gt;  Following is an excerpt from &lt;a href="/KnowledgebaseArticle50018.aspx"&gt;article 50018&lt;/a&gt; which provides several command procedure examples.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Execute MicroFocus sort:&lt;br /&gt;&lt;/strong&gt;The following example shows the execute from a command procedure which uses MicroFocus sort. &lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="Borders" style="WIDTH: 100%; HEIGHT: 100%" valign="top" align="left"&gt; #  statement&lt;br /&gt;01 @echo *** Step 080 Sort 401k and Loan payment&lt;br /&gt;02 (set sortresult=%hrdatdir%\fsav_extract_401k.dat)&lt;br /&gt;03 (if  exist %sortresult% del %sortresult%)&lt;br /&gt;04 (�tadrive%:)&lt;br /&gt;05 (cd %hrdatdir%)&lt;br /&gt;06 (mfsort take %cmn_srt%\fsav_srt_spec1.txt)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;Statement 06 executes MFSORT and references the file fsav_srt_spec1.txt.  This file contains the sort statements.  They are shown below: &lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="Borders" style="WIDTH: 100%; HEIGHT: 100%" valign="top" align="left"&gt;#  statement&lt;br /&gt;07 use  fsav_extract_401k_from_cdh.dat org ls record f,90&lt;br /&gt;08 use  fsav_extract_loan_payment.dat org ls record f,90&lt;br /&gt;09 use  fsav_extract_place_record.dat org ls record f,90&lt;br /&gt;10 give fsav_extract_401k.dat org ls record f,90&lt;br /&gt;11 sort fields (6,2,ch,a,13,11,ch,a)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;NetExpress help will explain how to use MFSORT.   Documentation can be found as follows:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Open MicroFocus Cobol&lt;/li&gt;&lt;li&gt;Select help &gt; help topics&lt;/li&gt;&lt;li&gt;click on the index tab&lt;/li&gt;&lt;li&gt;enter mfsort&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;You should find help for command lines, error messages, examples, field instructions, input and output files, key instructions, and record instructions.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;</description><pubDate>Sun, 08 Feb 2009 11:58:45 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>A Visual Basic Script to send an email in a custom command procedure</title><link>http://kb.appliedconceptshrpayroll.com/Goto50026.aspx</link><description>&lt;span id="_ctl0_ArticleRepeater__ctl1_ArticleText"&gt;&lt;strong&gt;Question:&lt;/strong&gt; It is common to need an email sent as part of a custom command procedure.  The solution presented here is the result of a need to replace MapiSend which Outlook security changes have made obsolete.   &lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; The Visual Basic Script attached can be used to send emails from a custom command procedure.  &lt;/p&gt;&lt;p&gt;Following is an example of how the VB script is executed:&lt;br /&gt;&lt;font size="2"&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="Borders"&gt;&lt;font size="2"&gt;(call :sub070_email_reports)      &gt;&gt; %joblog% 2&gt;&amp;amp;1 || %x%&lt;/font&gt; &lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;:sub070_email_reports       &lt;br /&gt;@echo **************************************************************** &lt;br /&gt;@echo sub070_email_reports      &lt;br /&gt;@echo         &lt;br /&gt;time /t    &lt;br /&gt;(%AppDrive%:)&lt;br /&gt;(call �iDis%\%cmdproc%_dis.bat)&lt;br /&gt;(set fa=%emailAdmin%)&lt;br /&gt;(set mr=%distribution%)&lt;br /&gt;(set ms="%cmdProc% reports")&lt;br /&gt;(set mm="See attached files")&lt;br /&gt;(set mt="NA")&lt;br /&gt;(set ma1="%LoadRptfile%")&lt;br /&gt;(set ma2="�iTranslatorSummary%")&lt;br /&gt;(set ma3="�iTranslatorErrors%")&lt;br /&gt;(set ma4="�iUpdateEmPathReportfile%")&lt;br /&gt;(set smtp=mail.yourdomain.com)&lt;br /&gt;(cscript �iwsh%\aciSendMail.vbs �% %mr% %ms% %mm% %mt% %ma1% %ma2% %ma3% %ma4% %smtp% //B)&lt;br /&gt;(goto :eof)&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;Note that the example shown uses several environment variables defined as follows:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;fa = From Address for example &lt;a href="mailto:denton@AppliedConceptsHrPayroll.com"&gt;denton@AppliedConceptsHrPayroll.com&lt;/a&gt; &lt;/li&gt;&lt;li&gt;mr = recipient(s) (multiples must be separated by ';' and&lt;br /&gt;must not be ambiguous in default address book.) &lt;/li&gt;&lt;li&gt;ms = subject line &lt;/li&gt;&lt;li&gt;mm = message to be placed in the email body &lt;/li&gt;&lt;li&gt;mt = specifies text file for contents of the mail message &lt;/li&gt;&lt;li&gt;ma1 - ma4 = attahments 1 through 4 &lt;/li&gt;&lt;li&gt;smtp = smtp server&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Note that MM or MT must be set to NA for not applicable.  Also, and of ma1-ma4 can be set to NA.&lt;/p&gt;&lt;p&gt;Note that other environment variables are client specific and could be anything of your choosing.&lt;/p&gt;&lt;p&gt;Note that the command procedure statements shown are a small portion of a larger command procedure.  The approach shown places the email VB script in a subroutine.  If you would like additional information on using subroutines and the logging of errors then I recommend you review knowledge &lt;a href="/KnowledgebaseArticle50018.aspx"&gt;article 50018&lt;/a&gt;&lt;span id="_ctl0_ArticleRepeater__ctl1_ArticleTitle"&gt;&lt;a href="/KnowledgebaseArticle50018.aspx"&gt;- HOWTO: emPath Custom Command Procedures&lt;/a&gt; .&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;/span&gt;</description><pubDate>Sun, 08 Feb 2009 11:38:58 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item><item><title>Create a temporary PYT file requesting a DDS (Deduction Detail Summary) report.</title><link>http://kb.appliedconceptshrpayroll.com/Goto50025.aspx</link><description>&lt;span id="_ctl0_ArticleRepeater__ctl1_ArticleText"&gt;&lt;strong&gt;Request:&lt;/strong&gt; A client recently asked for assistance in balancing their 401(k) deductions.  See &lt;a href="/KnowledgebaseArticle50001.aspx"&gt;article 50001&lt;/a&gt; for a summary explanation of the request and solution.  The specific portion of that request, which this article details, relates to the clients need to run a DDS report for multiple deduction codes at the same time.  The specific request was for 19 deduction codes.  The client asked that they submit a single emPath report request which triggered the DDS report to run for 19 deduction codes.&lt;font size="1"&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Use emPath to prompt the user for a date range. Then create a temporary PYT file requesting that the DDS report be ran for multiple deduction codes. Additional articles will be referenced in this article detailing how the resulting DDS report is parsed and SQL is generated to create tables. Then those tables are joined with other tables in a view which can be used by Business Objects or Crystal to generate balancing spreadsheets.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;The other benefit of this article is to demonstrate the power of using custom programs PYTparse and PYTinsert.&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;p&gt;(1) The delivered PYT process is depicted in the following diagram:&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 623px; BORDER-TOP-COLOR: #000000; HEIGHT: 250px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20080208_pyt_1.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;(2) The power of custom program PYTparse is depicted in the following diagram:&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 627px; BORDER-TOP-COLOR: #000000; HEIGHT: 385px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20080208_pyt_2.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;(3) The possibilities of custom program PYTparse and PYTinsert are shown in the following diagram and description of how they were used in one specific request:&lt;br /&gt;&lt;br /&gt;&lt;img class="Borders" style="BORDER-LEFT-COLOR: #000000; BORDER-BOTTOM-COLOR: #000000; WIDTH: 621px; BORDER-TOP-COLOR: #000000; HEIGHT: 502px; BORDER-RIGHT-COLOR: #000000" src="/Uploads/Images/20080208_pyt_3.jpg" border="1" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(3.1) An emPath job request was created prompting the user for a from and a to date.  In this specific case the job was named "&lt;span class="label" id="spnReportTitle" name="spnReportTitle"&gt;401k - build 401(k) DDS extract&lt;/span&gt; ".&lt;/p&gt;&lt;p&gt;(3.2) A user controlled configuration file was created defining what the custom PYTparse program should do with the 401k report request.  The specifics of that configuration file are shown below:&lt;/p&gt;&lt;p&gt;&lt;font face="Courier New"&gt;                           name str value&lt;br /&gt;     env variable          len  pos  len&lt;br /&gt;---- --------------------  ---  ---  ---&lt;br /&gt;401K FROM_DATE             009  023  008&lt;br /&gt;401K TO_DATE               007  031  008&lt;/font&gt;&lt;/p&gt;&lt;p&gt;(3.3) The custom program PYTparse runs and creates a batch command file which sets environment variables as defined in the configuration file defined in step 3.2.&lt;/p&gt;&lt;p&gt;(3.4) The batch command file called such that the environment variables are set.  These variables are then available to be used by COBOL programs or SQL scripts.&lt;/p&gt;&lt;p&gt;(3.5) The custom program PYTinsert runs and adds multiple records to a temporary PYT file.  In this specific example there are 19 records added to the PYT requesting that the DDS report (program pr852) be ran for 19 different deduction codes using the date range entered in step 3.1 above.&lt;/p&gt;&lt;p&gt;Note that user controlled configuration capability will be added to the PYTinsert program in the near future.&lt;/p&gt;&lt;p&gt;(3.6) The standard delivered pr852 program is ran such that DDS reports are created as requested.&lt;/p&gt;&lt;p&gt;Additional articles will be referenced in this article detailing how the resulting DDS report is parsed and SQL is generated to create tables. Then those tables are joined with other tables in a view which can be used by Business Objects or Crystal to generate balancing spreadsheets.&lt;/p&gt;&lt;p&gt;All of this from a single user report request. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; &lt;/p&gt;&lt;/span&gt;</description><pubDate>Fri, 06 Feb 2009 21:41:24 GMT</pubDate><dc:creator>Denton Harryman</dc:creator></item></channel></rss>
