Tag Archive: Programming

Know Boundaries Website

Know Boundaries WebsiteThe band and the website are no longer, but this was a very fun project and I wanted to show it. I was approached by a friend of mine that wanted a website for his band (he’s the guy in the green shirt). At the time, I was a Web Design Consultant and giving away my services on the side was frowned upon. We worked out a deal with my employer where we gave a little money to them and then I could make them a awesome website on the side.

I had already been dabbling in content management systems (CMS), which were revolutionizing the web world at the time (keep in mind, this was in 2002). So, I knew I was going to have a database drive the content. I had never done it before, so I decided the entire site would be in Macromedia Flash (Adobe hadn’t bought them yet).

This meant learning Flash ActionScript and the methods required to read from the database and get it into the Flash file. I also created a sliding style of moving from page to page. The image above will take you to a version of the page so you can see how the animation works (there is no data for it to read though). And, of course, the design was all mine. Working on band graphics really opens the door to some creative artwork.

Project Folder Automation

The company had a problem. Multiple file servers, one for each office location, meant there were multiple places a project could live. Organizing thousands of active projects was no easy task, especially if employees from multiple offices were working on the project. The structure for storage of these projects was hard to understand for the average employee, and they were the ones creating the folders. With no governance and lacking a full understanding of how to setup the folders and why, it was a mess. This is what I walked in on.

One of my first projects at the company was to address that. The Project Start Form (PSF) was a Word document inside the office templates. I used that as a base reference, and began creating a web application in VBScript. The accounting database, Sema4, was in an old FoxPro style database, and I used that to provide drop downs and checkboxes. I was able to very tightly control the user interface and make it as easy as possible. Not only that, once that Project Manager was identified, it was a lot like the finder selection in Vision, I would find the office of that employee and automate the folder creation process. I even created a shortcut in the employee’s home drive and saved a copy of the PSF data in the project folder. Once the tool was ready and tested, I took away the PSF office template and replaced it with a link to the intranet-based PSF. (more…)

Report Automation

I have used SQL Server’s TSQL to generate Excel spreadsheets from Vision data, our ERP, and then deliver the document to various employees. The data in the document is customized to that individual and there are multiple types of audiences that have different reasons for the report, thus need a customized version of it. Even better, Vision can schedule and run the TSQL to make all this happen.

But, I found a better way.

I rebuilt the reports in SQL Server Reporting Services (SSRS). The version available to me does not have the built-in dynamic scheduling capabilities, so I needed a plan b. I turned to the SSRS API and found that some simple C# .NET code could easily call a service and generate a report in various formats, and could accept arguments for the report parameters.

There are 4 versions of most reports that I create: Project Manager, Team Leader, Program Manager, and Management. All of these reports needed to be able to display customized data based on who was actually viewing the report. I easily found a way to pass in a URL based parameter to identify the proper employee data to display. This was really handy for the code, because code calls the report via a URL and I could easily supply each employee, one at a time and get all the reports I needed. With a lot of searching ,and trial and error, I found a tricky way to identify the person that is viewing the report in the browser. Not only could I use SSRS to generate these reports, the very same report can be used by all employees, showing them only the data they need versus all data.

This solution required C# .NET, Vision API,  SSRS API, and a number of Views and Stored Procedures using TSQL on MS SQL Server 2008.

ERP Data to Active Directory

The ERP I work with is called Vision and is created by Deltek. This holds all the data for all departments in the company, including employee data. Active Directory (AD) is Microsoft’s repository of usernames and passwords that can access a network. But AD stores information about the employees which is then used for display in Outlook and Lync: Such as phone, mobile, address, title, name, supervisor, and so on. Having this information accurate is critical. Rather than creating some kind of procedure or policy to govern it, I created code.

I could create a custom workflow DLL using Vision’s API. The catch was, at the time, I had to go back to Visual Studio 2003 to do this, per the requirements of Vision. No problem: Microsoft will send me a copy and I can learn it quick. Using C# .NET, I was able to read the active employee list from Vision, impersonate a network administrator, query AD using LDAP, and match Vision employees to AD objects. Then it was a simple matter of determining what AD called the fields in code and just mapping in the appropriate data from Vision. (more…)

Clients on a Map

We wanted the ability to show our clients on a map, for various reasons. The GIS department was never able to produce this and anytime I asked about it, there was discussion about using the zip. I wanted a pin point on the address, so I took it upon myself to figure that out.

I knew that I could easily convert an address to latitude and longitude coordinates on Google Maps so I needed to do this for our client addresses stored in our ERP. After some digging around I found out this was called geocoding. Great. Then hunt for geocoding web services began. I had about 15,000 addresses to do and most of the APIs on the Internet would allow a couple hundred in a day, or 1,000 total. Until I found the MapQuest Goecoding API, which provided a very open service that I allowed 5,000 addresses per day. (more…)