I have an MS Project Server 2010 running with a number of enterprise resources set up. I need to create a project via VBA, populate it with tasks and assign enterprise resources to tasks.
I am capable of creating tasks and assigning project resources to them, but I cannot assign enterprise resources. Once I create a new project, its resource list is empty. I can add enterprise resources to the project manually with TeamBuilder, and then they can be assigned, but I don't see a way to add enterprise resources to project via VBA. I tried to record a macro while adding resources, but it doesn't reflect the process and allows me only to open TeamBuilder.
How can I add enterprise resources to my project?
Well, I did find an answer. It's EnterpriseResourceGet method of Project app. Probably it will save someone some nerve and let curse Microsoft a bit less. Getting resource UID via VBA is a different and fascinating story.
Related
I'm building a MS Project VSTO tool (written in C#) that in many instances needs to either read or write data from a field in MS Project. Since I don't always know what field will contain the data I need, I many times need to allow the user the option to select the field they want. Getting all the basic fields is easy, my issue arises if a user is in a Project Server environment and using Enterprise fields. So my question is 2 fold:
Is there a way to check if the user is in a Project Server environment?
Is there a way to easily get all of the custom enterprise fields that are being used in MS Project? I'd like to be able to capture these fields in a collection like a list or array.
Is there a way to check if the user is in a Project Server
environment?
Look at the collection of Profiles to see if there is a project server one and check its ConnectionState to see if it's connected to a project server.
Is there a way to easily get all of the custom enterprise fields that
are being used in MS Project? I'd like to be able to capture these
fields in a collection like a list or array.
If you have access to the project server, take a look at this page, Accessing Project Online enterprise custom fields. Without access to the server I suggest:
Loop through all tables and their fields to find enterprise ones.
Allow the user to enter the name of enterprise fields and store that information for future use so that it's a one-time 'setup' for the user.
I have very a rudimentary understanding of Microsoft Access and VBA Code.
On my work desktop, I have Microsoft Office Professional Plus 2013 Access
I've been tasked to create a MS Access application with an Access DB.
I started developing an MS Access application with Forms , and the corresponding DB
I'm using VBA code event handlers(or Event Procedures) for the UI control buttons.
I wanted to create a common configuration settings area for said application( like ASP.NET web application have web.config files or app.config files )
I failed to find anything similar for MS Access application development.
Could someone please provide me with an explanation as to how to implement an MS access implementation model/software design pattern for common configuration settings area that is modular, reusable, clear and concise?
As noted, I great way to do this is to simply create a table in the front end. It is assumed that you will split your database into two parts. The code/forms etc. is the so called front end,and then you have the back end part (the database - it can be a accDB file, or it can be say SQL server).
So the typical update and deploy of your software will be:
Re-link your tables from test database to the actual live production database.
Compile your accDB into a accDE.
Deploy this new updated "next" version of your software to all the desktops.
So, since any change or addition to settings will be in the new front end then any application wide settings you have will thus roll out with your update.
It often depends on the user base. In the case that we had multiple customer sites running our software, then using a local table would not suffice, since things like path names, connection strings to the database etc. are customer specific. So, in this case we moved the settings table out to a text file (setup.ini). So we now use a setup.ini file that is external to the program and assumed to be deployed in the same folder as the front end. On startup we use the windows API to read ".ini" files.
So, both ideas (external setup.ini) or a local table in the front end are rather good choices from a development cycle point of view.
So once you down the road in developing your application, and the table/data structure changes are down to a dull roar, then it is time to split your application. (use the built in split wizard for this). I will say that even for my .net applications, I still often use a external setup.ini file for settings, since once again with multiple customer sites, it not practical to have customer specific settings in the application as opposed to a external settings file.
Is there a way that we can automate the input in ms project 2010. Below are the scenarios:
We have a vb.net application that uses to inputs task name, hours, estimate and completion date time.
Is there a way that we can upload those date in ms project 2010.
There is a way. If you use desktop version of MS Project (Pro or Standard) then the only option you have is to use OLE automation.
Through the OLE Automation you will get a reference to an instance of Application class which is key class in every MS Office application. From the Application you can get a list of currently open projects using Application.Projects collection or even get current project using Application.ActiveProject.
As soon as you have a reference to a project you can access all tasks in the project using Project.Tasks collection. (Index of all collections starts with 1)
The most of Task fields like Name or Start date are available through properties of a Task: Task.Name = "something" or Task.StartDate = "1/1/2001"
Anyway here is a link: msdn.microsoft.com
Another story is if you have Project Server and you want to do all the things faster. In this case you should use PSI (Project Server Interface) - collection of web services which give you access to the most of Project Server functions.
MSDN has great articles with samples how to work with projects using PSI and here is a link: MSDN about PSI. You can search around the link to find more articles about other services available through PSI.
If you're able to put your data into Excel as mentioned in your comment, then it would be fairly straightforward to write a VBA program that reads the excel data and updates the Project tasks with the data in the workbook.
I am attempting to integrate an access program into Microsoft visual source safe 6.0.
I have downloaded an extension which allows source control access in access.
Here is the site that I used to guide me in my project
http://www.kevingao.net/sourcesafe/integrating-sourcesafe-vss-with-access-2007.html
I have imported the access program into source safe. But I am having trouble with access with multiple users on the network.
Any suggestions?
I think the problem referred to is that multiple developers (users) can't check out the code from VSS. I am having the same problem with an Access database and came across this when researching the problem. VSS will not let anyone except the user who created the project check it out.
Your app should be split into front end (forms/reports/etc.) and back end (data tables only). Only the front end needs to be in VSS, since only the front end has code in it. Also, each user should have an individual copy of the front end. It seems like you're trying to share a single front end. This will never work, and if you look at your app properly (the front end is the "program" -- you don't have multiple users running Word from a shared copy, so why would you share your Access "program"?), it will be obvious why you shouldn't be doing that.
How do I change process template to MSF for Agile on an already existing team project in TFS 2010?
We have upgraded our TFS 2008 to 2010, and now I would also like to change the process template to MSF for Agile (currently CMMI).
We haven't used the workitem functionality much so if some information gets lost in the conversion doesn't matter.
Once you've created a Team Project, you unfortunately can't just upload a new process template. As Robaticus says, you'll have to download the XML for the template and modify it, then re-upload it. The power tool lets you create NEW templates for NEW team projects, but it won't modify an existing one.
Instead, you can use the witadmin.exe tool (on any computer with Team Explorer installed, under \Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE, or just from a Visual Studio Command Prompt) to export the current workitem definitions and re-import them once you've made your changes.
Luckily, if you're not using workitem tracking much, then this might not be too difficult. You might be able to just delete all the existing workitem types and then re-upload the new types.
If this is too much trouble, consider how much you want to retain your source control history. It might be worth creating a new Team Project with the Agile template and then just moving all your source code into it.
You can't change the process template, however you can change the work item types. So for bugs, tasks you can swap to the Agile definitions.
You can do this in 2010 with witadmin, in 2008 it's importwit, by first downloading the template to disk (you'll need the TFS power tools for this). Then point the console app at bug.xml, task.xml etc..
Usage: witadmin importwitd /collection:collectionurl [/p:project] /f:filename [/e:encoding] [/v]
/collection Specifies the Team Foundation project collection. Use a fully specified URL such as
http://servername:8080/tfs/Collection0.
/p Specifies the team project in which the new work item type is imported. This is required, except when
the validation-only option is used.
/f Specifies the work item type XML definition file to import.
/e Specifies the name of the .NET Framework 2.0 encoding used to import the XML file. For example,
/e:utf-7 will use Unicode (UTF-7) encoding. Encoding is automatically detected whenever possible. If
the encoding cannot be detected, UTF-8 is used.
/v Validates the XML definitions for the work item type, link type, or global workflow without importing
them.
You can export the agile process template to disk, then import the work items into your existing project. You may need the TFS Power Tools to do this.
I may be too late for this question, but the TFS Integration Platform tools could really help here.
See this question on server fault that details on how to move from Scrum For Team System V2 to Microsoft Visual Studio Scrum 1.0.
You would need to setup your own mappings to move from your templates to the target template, but the process is the same.
Please note witadmin.exe could help in some scenarios but TFS Integration Platform is your ultimate choice to achieve this task. There is a user voice item still pending. Please check this SO thread.
I think the best way to accomplish this is to create a new Team Project with "the new" process template and use the TFS Integration tool to migrate your existing WorkItems and choose create a new branch from Source Control, so you'll have new work Items (with the new workflow) and the source control history (as well). You'd even do this across versions of TFS!! (On the case interested on migrate TFS 2005/2008/2010)
Another way might be to use the WorkItem Templates, but I think this is more a kind-of visual style (I've not much experience) applied to the Work Item. To do so, just right click on your project, import the WITDefinition and apply the template by selecting Apply template on desired WorkITems.