Quantcast
Channel: Project Customization and Programming forum
Viewing all 5347 articles
Browse latest View live

Project publish from PSI spawns not all tasks in Queue.

$
0
0

Hi,

I have Project Server 2007 installed.

I've created simple application which publishes specified projects on schedule basis.

But publishing some projects using this program spawns not all task in Project Server Queue as i was expecting. In spawns only "Reporting (WSS Sync)" task for this projects (no Project Publish task, etc). Is this expected behavior?

I want to mention that this happens for some child projects which are published when im running program on their parent project (all child projects are automatically published when i publish parent project). When calling QueueProjectPublish i pass "true" for "full publish" parameter.

Thanks in advance.


Best regards, Chernobrivets



Project 2010, VSTO Task Pane Problem

$
0
0

I created a very simple VSTO addin for Project 2010.  It only has 2 buttons - 1 on a Ribbon and another one a custom task pane.  Both buttons do the same thing - they filter "Outline Code1" for the value "PD.EE".

Both buttons correctly filter the list of tasks.  However, after pressing the button on the task pane, you can't immediately scroll through the tasks with the mouse scroll wheel or the arrow keys.  When this happens, you have to click one of tasks first, then you can scroll. 

Does anyone know why this happens with a button on a task pane?  Here is my code.

Public Class ThisAddIn

    Private myFilterControl As UserControl1
    Private myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane
    Public Shared myCustomTaskPaneCollection As Microsoft.Office.Tools.CustomTaskPaneCollection

    Private Sub ThisAddIn_Startup() Handles Me.Startup

        myFilterControl = New UserControl1
        myCustomTaskPaneCollection = Globals.Factory.CreateCustomTaskPaneCollection _
        (Nothing, Nothing, "CustomTaskPanes", "CustomTaskPanes", Me)

        myCustomTaskPane = myCustomTaskPaneCollection.Add(myFilterControl, "NeuroPMO")
        With myCustomTaskPane
            .DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionLeft
            .Width = 150
            .Visible = True
        End With

    End Sub

    Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown
        myCustomTaskPaneCollection.Dispose()
    End Sub

End Class

Ribbon1.vb

Public Class Ribbon1

    Dim app As MSProject.Application

    Private Sub Ribbon1_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load
        app = Globals.ThisAddIn.Application
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles Button1.Click
        app.SetAutoFilter(FieldName:="Outline Code1", FilterType:=MSProject.PjAutoFilterType.pjAutoFilterIn, Criteria1:="PD.EE")
    End Sub

End Class

UserControl1.vb

Public Class UserControl1

    Dim app As MSProject.Application

    Private Sub UserControl1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        app = Globals.ThisAddIn.Application
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        app.SetAutoFilter(FieldName:="Outline Code1", FilterType:=MSProject.PjAutoFilterType.pjAutoFilterIn, Criteria1:="PD.EE")
    End Sub

End Class
.

Wellyn

Unauthorized exception trying to use PSI WebService from within SharePoint WebPart/App Page with SharePoint Claims based authentication

$
0
0

Hello,

(SharePoint 2010 and Project Server 2010)

My testcase involves a SharePoint application page where the code simply connects to the PSI WCF based API and gets a list of projects from the server.  If I run my code on a SharePoint application running with Classic Authentication then everything works fine.  IF I run the code from a SharePoint application that is configured for Claims Based Authentication (NTLM on Claims) I get the following exception:

Message:  The HTTP request is unauthorized with client authentication scheme 'Negotiate'. The authentication header received from the server was 'NTLM'.
Inner Exception: The remote server returned an error: (401) Unauthorized.

Anyone have any luck connecting to PSI from within a Cliams based SP 2010 app?  More details below

Thanks, Jeff


Stack Trace:
   at System.ServiceModel.Channels.HttpChannelUtilities.ValidateAuthentication(HttpWebRequest request, HttpWebResponse response, WebException responseException, HttpChannelFactory factory)
   at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory factory, WebException responseException, ChannelBinding channelBinding)
   at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at ProjectServerTestWebPart.SvcProject.Project.ReadProjectStatus(Guid projGuid, DataStoreEnum dataStore, String projName, Int32 projType)
   at ProjectServerTestWebPart.SvcProject.ProjectClient.ReadProjectStatus(Guid projGuid, DataStoreEnum dataStore, String projName, Int32 projType)
   at ProjectServerTestWebPart.Layouts.ProjectServerTestWebPart.RandD_ProjectServerTester.ProjectListButton_Click(Object sender, EventArgs e)
   at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
   at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

ProjectServerTestWebPart.* namespace is my code and ProjectServerTestWebPart.SvcProject is the namespace for the Service Reference to Project.svc.

I am running the code as domain Administrator who is also the Administrator of my PWA site I am trying to connect to.

Added the following to the SP application web.config:
<system.serviceModel>
 <!-- start jeff dev -->
  <behaviors>
   <endpointBehaviors>
    <behavior name="basicHttpBehavior">
     <clientCredentials>
      <windows allowedImpersonationLevel="Impersonation"/>
     </clientCredentials>
    </behavior>
   </endpointBehaviors>
  </behaviors>
 <!-- end jeff dev -->
 <bindings>
  <basicHttpBinding>
   <!-- start jeff dev -->
   <binding name="basicHttpConf" sendTimeout="01:00:00" maxBufferSize="500000000" maxReceivedMessageSize="500000000">
    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="500000000" />
    <security mode="TransportCredentialOnly">
    <transport clientCredentialType="Ntlm" realm="http" />
    </security>
   </binding>
 <!-- end jeff dev -->

  </basicHttpBinding>
 </bindings>
 <client>
  <endpoint address="http://dev-2010/pwa/_vti_bin/PSI/ProjectServer.svc" behaviorConfiguration="basicHttpBehavior" binding="basicHttpBinding" bindingConfiguration="basicHttpConf" contract="SvcProject.Project" name="multiHttp_Project" />
 </client>
</system.serviceModel>


My Code:
SvcProject.ProjectClient projectClient = new SvcProject.ProjectClient("multiHttp_Project");
SvcProject.ProjectDataSet projectDs;
using (OperationContextScope scope = new OperationContextScope(projectClient.InnerChannel))
{
 // Get a list of all published projects. Use ReadProjectStatus instead of
 // ReadProjectList, because the permission requirements are lower.
 projectDs = projectClient.ReadProjectStatus(
 Guid.Empty, // Read project by name.
 SvcProject.DataStoreEnum.PublishedStore,
 string.Empty, // Read the project specified by GUID.
 (int)PSLibrary.Project.ProjectType.Project);
}

Simple SharePoint webpart using PSI on a Claims web application fails

$
0
0

I have been struggling for days now to get some SharePoint 2010 webparts using PSI to work in a multi-authentication (claims) site, they work in a standard NTLM Web App fine, but either Claims-NTLM or Claims-Forms fails. My specific problem has been discussed but not solved before here:
http://social.technet.microsoft.com/Forums/en-US/project2010custprog/thread/d5dc7d94-108c-4050-bd64-732e0a629fdb/
and http://social.technet.microsoft.com/Forums/en-US/project2010custprog/thread/698f3021-2b9a-4af6-b153-74163c8f4624

With Claims-NTLM I fail with the following exceptionm:
"The HTTP request is unauthorized with client authentication scheme 'Ntlm'. The authentication header received from the server was 'NTLM,Negotiate'."

Using Claims-NTLM it fails seemingly due to the DefaultNetworkSecurity context of my WCF binding (taken from the SDK samples), if I hard code the username and password then it works fine, however I'm clearly missing something, wheres the "Claims" bit in all this, ie where is my user's claims token?

Here's my code which is based on the MSDN SDK samples: http://msdn.microsoft.com/en-us/library/ee767691.aspx, and I have actaully re-written it a number of times using the PROJTOOL code or a number of other samples out there.

// This is my method attempting to use the PSI//... 
 SetClientEndpoint(path);
 SvcWorkflow.WorkflowDataSet wfDataSet = new SvcWorkflow.WorkflowDataSet();try
 {using (OperationContextScope scope = new OperationContextScope(workflowClient.InnerChannel))
 {
  DisableFormsAuth(true);
  wfDataSet = workflowClient.ReadWorkflowStatus(_projUID, true);
 }
 }
...privatevoid SetClientEndpoint(String pwaUrl)
{constint MAXSIZE = 500000000;conststring svcRouter = "/_vti_bin/PSI/ProjectServer.svc";
 BasicHttpBinding binding = null;if (pwaUrl.Contains("https:"))
 {// Create a binding for HTTPS.
 binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);              
 }else
 {// Create a binding for HTTP.
 binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly);        
 }
 binding.Name = "basicHttpConf";
 binding.SendTimeout = TimeSpan.MaxValue;
 binding.MaxReceivedMessageSize = MAXSIZE;
 binding.ReaderQuotas.MaxNameTableCharCount = MAXSIZE;
 binding.MessageEncoding = WSMessageEncoding.Text;
 binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm;// The endpoint address is the ProjectServer.svc router for all public PSI calls.
 EndpointAddress address = new EndpointAddress(pwaUrl + svcRouter);
 workflowClient = new SvcWorkflow.WorkflowClient(binding, address);// Uncomment this line and it all works fine!//workflowClient.ClientCredentials.Windows.ClientCredential = new NetworkCredential("Administrator", "password", "DOMAIN");      
 workflowClient.ChannelFactory.Credentials.Windows.AllowedImpersonationLevel = 
 System.Security.Principal.TokenImpersonationLevel.Impersonation;
 workflowClient.ChannelFactory.Credentials.Windows.AllowNtlm = true;
}


Furthermore; the SDK samples and ProjTool all use the NTLM binding, but why aren't they doing something like this (which I can't get to work):

Source: http://blogs.technet.com/b/speschka/archive/2010/09/08/calling-a-claims-aware-wcf-service-from-a-sharepoint-2010-claims-site.aspx

//configure the channel the SharePoint way 
 SPChannelFactoryOperations.ConfigureCredentials<AzureData.ICustomers>(cust.ChannelFactory, 
 Microsoft.SharePoint.SPServiceAuthenticationMode.Claims);//create a channel to the WCF endpoint using the token and claims of the current user
 AzureData.ICustomers claimsWCF =
   SPChannelFactoryOperations.CreateChannelActingAsLoggedOnUser<AzureData.ICustomers>(cust.ChannelFactory, svcEndPt);

    

Any clues as to what I am missing?


Thanks in advance,

Current user impersonation calling PSI function (claim based authentication)

$
0
0

I am trying to call PSI functions in Project Server from web part but user credentials are not passed to PSI services
exception is:

1. anonymus access is enabled and web application uses Claims based authentication


2. My code

private SvcProject.ProjectClient SetProjectClientEndpoint()
{

            const int MAXSIZE = 500000000;
            const string ROUTER_SERVICE = "http://test01/pwa/_vti_bin/PSI/ProjectServer.svc";
            BasicHttpBinding binding = null;

            binding.Name = "basicHttpConf";
            binding.AllowCookies = true;
            binding.MessageEncoding = WSMessageEncoding.Text;

            binding.OpenTimeout = TimeSpan.FromHours(1);
            binding.ReceiveTimeout = TimeSpan.FromHours(1);
            binding.SendTimeout = TimeSpan.FromHours(1);

            // If the TransferMode is buffered, the MaxBufferSize and
            // MaxReceived MessageSize must be the same value.
            binding.TransferMode = TransferMode.Buffered;
            binding.MaxBufferSize = MAXSIZE;
            binding.MaxReceivedMessageSize = MAXSIZE;
            binding.ReaderQuotas.MaxArrayLength = MAXSIZE;
            binding.ReaderQuotas.MaxNameTableCharCount = MAXSIZE;

            binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm;
            binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.Ntlm;
            binding.Security.Transport.Realm = "";

            // The endpoint address is the ProjectServer.svc router for all public PSI calls.
            EndpointAddress address = new EndpointAddress(ROUTER_SERVICE);

            SvcProject.ProjectClient projectClient = new SvcProject.ProjectClient(binding, address);
            projectClient.ChannelFactory.Credentials.Windows.AllowedImpersonationLevel
                = TokenImpersonationLevel.Impersonation;
            projectClient.ChannelFactory.Credentials.Windows.AllowNtlm = true;

            return projectClient;

}

3. Function call:

            SvcProject.ProjectClient projectClient = SetProjectClientEndpoint();
            projectClient.ReadProject(this.ProjectGuid, SvcProject.DataStoreEnum.WorkingStore);

4. Exception happens on ReadProject function:

"The HTTP request is unauthorized with client authentication scheme 'Negotiate'. The authentication header received from the server was 'Negotiate,NTLM'"

If I change my code and hardcode user like this:

projectClient.ChannelFactory.Credentials.Windows.ClientCredential.UserName = "myuser";

projectClient.ChannelFactory.Credentials.Windows.ClientCredential.Password = "mypass";

projectClient.ChannelFactory.Credentials.Windows.ClientCredential.Domain = "mydomain";

 I don't get the error, but I don't want that because some other part of my code then don't work, I need to call PSI with current user. How?

Project Server 2013 PSI calls from Sharepoint 2013

$
0
0

Hello,

I'm migrating code from 2010 to 2013.

I have a user control that I deploy in Sharepoint that calls the PSI. In 2010 it was working well. Now in 2013 and Claims authentication, I always get: "The HTTP request is unauthorized with client authentication scheme 'Ntlm'. The authentication header received from the server was 'NTLM,Negotiate'." when I call any PSI (even GetCurrentUserUid) with any user (even the project admin).

It looks like the credentials aren't passed to the PSI and it calls them as anonymous. Anyone can help ?


Thanks

all my modules and user forms are gone

$
0
0

I am using Project 2010 VBA.  I saw something similar to this on another post, maybe related to a old HotFix, but I am not sure if I have the same cause effect relationship. I have a project file that according to its file size still has the VBA code in it, but when I open the file and hit Alt-F11, to open the VBA editor, I don't see any of the modules or userforms. Luckily I do make backups somewhat regularly, but this has happened a few times now and each time it has cost me a couple of hours to recover from each time. I have figured out my most recent trigger was making a Project_Open routine in a separate module instead of using the proper predefined one.  And this could have been the problem all along. This time it was fine when I shut-down yesterday, but then missing when I opened the file up today. Does anyone know how to view / recover these modules?  I have attached a screen grab from a “project” window in the VBA editor for whatever that is worth. Any help would be appreciated, this has been very frustrating.

Why PSi QueueUpdateProject(jobId, sessionUid, projectDs, false) always Failed

$
0
0
I use PSI change the PCT_WORK_COMP of task ,Why PSi QueueUpdateProject(jobId, sessionUid, projectDs, false)  always Failed?      

                                        Guid taskUid = new Guid(dr["TaskGuid"].ToString());
                                        HTSBWebService.ProjectWebSvc.ProjectDataSet.TaskRow taskrow = projectDs.Task.FindByTASK_UIDPROJ_UID(taskUid,ProjectUid);
                                        int PercentWorkCompleted = Convert.ToInt32(dr["PercentWorkCompleted"]);
                                        taskrow.TASK_PCT_WORK_COMP = PercentWorkCompleted;

Guid jobId = Guid.NewGuid();
                            projectSvc.QueueUpdateProject(jobId, sessionUid, projectDs, false);
                            this.psiWaitForQueue(queueSystemSvc, jobId);
                            isUpdateSuccess = true;
                        }
                        catch (Exception updateEx)
                        {
                            //记录日志
                            string errorTitle = "未知错误";
                            WriteUpdateLogs(0, errorTitle, updateEx.Message, dt);
                        }

                        //Check in the project
                        bool isForceCheckIn = true;
                        Guid jobId1 = Guid.NewGuid();
                        projectSvc.QueueCheckInProject(jobId1, ProjectUid, isForceCheckIn, sessionUid, session_desc);
                        this.psiWaitForQueue(queueSystemSvc, jobId1);

                        // Publish the project.
                        Guid jobId2 = Guid.NewGuid();
                        projectSvc.QueuePublish(jobId2, ProjectUid, false, String.Empty);
                        this.psiWaitForQueue(queueSystemSvc, jobId2);
Queue request Failed for Job ID cfa7d1a6-f396-4c05-9392-d83dac9050bd.
<?xml version="1.0" encoding="utf-16"?><errinfo><dataset name="ProjectDataSet"><table name="Assignment"><row ASSN_UID="54d8d3a6-b993-4be4-87dd-90a8aafeab38" PROJ_UID="3ce7a546-b0d7-4f32-a44a-f6df8766e440"><error id="135" name="AssignmentCannotEditSummaryTask" uid="21131f77-ab7b-43d3-b42a-468d26cf8c8b" /></row></table></dataset><general><class name="Queue"><error id="26000" name="GeneralQueueJobFailed" uid="6d737c0f-b5e0-4f6b-9b45-41f2438aa30a" JobUID="cfa7d1a6-f396-4c05-9392-d83dac9050bd" ComputerName="SIBUPROJECT" GroupType="ProjectUpdate" MessageType="" MessageId="" Stage="" /></class></general></errinfo>


Customizing the Project 2010 ribbon with a VSTO add-in

$
0
0

RE: the Project Professional 2010 forum thread: Project 2010: adding ribbon, which discusses the SDK articleHow to: Add a Custom Command to the Ribbon, and the use ofSetCustomUI in VBA.

NOTE: The code in this post is explained in the Project 2010 SDK article,How to: Use Managed Code to Add a Custom Command to the Ribbon.

It is instructive to do the same exercise with VSTO. There are many advantages to using a VSTO add-in, including the ability to easily publish the solution with ClickOnce. As the thread discussion notes, there is no good way to distribute the VBA solution in the Global.MPT to other users.

Basically, use Visual Studio 2010 and create a new Project 2010 Add-in project.Use the .NET Framework 3.5. You can use C# or VB. 

  1. There are no changes necessary in the ThisAddIn.cs (or ThisAddIn.vb) file.
  2. Right-click the project in Solution Explorer, and add a new item -- add aRibbon (Visual Designer) item. In the code below, it is named ManualTaskColor.cs (or ManualTaskColor.vb).
  3. In the ManualTaskcolor.cs [Design] view, drag a Tab from the Toolbox\Office Ribbon Controls to the ribbon.
  4. Drag a Group to the new tab.
  5. Drag a Button (or a ToggleButton) to the group. Change the labels, button image, etc. as you wish.
  6. To match the VBA example in the SDK, you can set the OfficeImageID property of the button toDiagramTargetInsertClassic.
  7. Select the new button in the ribbon Design view, click the Events icon in the Properties pane, and then double-click the Click event to create the button_Click event handler.

Here is the C# code in the ManualTaskColor.cs file. The code is ported from the VBA code in the SDK article:

using System;
using Microsoft.Office.Tools.Ribbon;
using MSProject = Microsoft.Office.Interop.MSProject;

namespace RibbonAddIn
{
    public partial class ManualTaskColor
    {
        private const int WHITE = 0xFFFFFF;
        private const int LIGHT_BLUE = 0xF0D9C6;

        MSProject.Application app;
        MSProject.Project project;

        private void ManualTaskColor_Load(object sender, RibbonUIEventArgs e)
        {
            app = Globals.ThisAddIn.Application;
        }

        private void tBtnManualTaskColor_Click(object sender, RibbonControlEventArgs e)
        {
            ToggleManualTasksColor();
        }

        private void ToggleManualTasksColor()
        {
            project = app.ActiveProject;
            string column = "Name";
            bool rowRelative = false;
            int rgbColor;
           
            foreach (MSProject.Task t in project.Tasks)
            {
                if ((t != null) && !(bool)t.Summary)
                {
                    app.SelectTaskField(t.ID, column, rowRelative);
                    rgbColor = app.ActiveCell.CellColorEx;

                    if ((bool)t.Manual)
                    {
                        // Check whether the manual task color is white.
                        if (rgbColor == WHITE)
                        {
                            app.Font32Ex(CellColor:LIGHT_BLUE); // Change the background to light blue.
                        }
                        else
                        {
                            app.Font32Ex(CellColor:WHITE); // Change the background to white.
                        }
                    }
                    else
                    {
                        // The task is automatically scheduled, so change the background to white.
                        app.Font32Ex(CellColor:WHITE);
                    }
                }
            }
        }
    }
}

_________________Just for kicks, here is the VB code in the ManualTaskColor.vb file, in you do the project in VB. The code is ported from the C# example above:

Imports Microsoft.Office.Tools.Ribbon
Imports MSProject = Microsoft.Office.Interop.MSProject

Public Class ManualTaskColor

    Private Const WHITE As Integer = &HFFFFFF
    Private Const LIGHT_BLUE As Integer = &HF0D9C6

    Dim app As MSProject.Application
    Dim project As MSProject.Project

    Private Sub ManualTaskColor_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) _
                                     Handles MyBase.Load
        app = Globals.ThisAddIn.Application
    End Sub

    Private Sub tBtnManualTaskColor_Click(ByVal sender As System.Object, _
                                          ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _
                                          Handles tBtnManualTaskColor.Click
        ToggleManualTasksColor()
    End Sub

    Sub ToggleManualTasksColor()
        project = app.ActiveProject
        Dim column As String = "Name"
        Dim rowRelative As Boolean = False
        Dim rgbColor As Integer

        For Each t As MSProject.Task In project.Tasks
            If (Not t Is Nothing) And (Not t.Summary) Then
                app.SelectTaskField(t.ID, column, rowRelative)
                rgbColor = app.ActiveCell.CellColorEx

                If (t.Manual) Then
                    ' Check whether the manual task color is white.
                    If (rgbColor = WHITE) Then
                        app.Font32Ex(CellColor:=LIGHT_BLUE) ' Change the background to light blue.
                    Else
                        app.Font32Ex(CellColor:=WHITE) ' Change the background to white.
                    End If
                Else
                    ' The task is automatically scheduled, so change the background to white.
                    app.Font32Ex(CellColor:=WHITE)
                End If
            End If
        Next
    End Sub
End Class

__________________

Have fun,

--Jim

Conditional Formatting MS Project based on Resource column

$
0
0

Hi, hope someone can help with this one 

Looking to colour the entire row when the resource column contains the phrase 'Maint' so it will therefore pick up Maint1, Maint2, Maint3, etc. Basically, to do on Project what conditional formatting could do on Excel. I would like to be able to just run a macro that would automatically check and carry out this action based on these settings

I know this can probably be done via a macro, but have tried several i've found around the net and can't get anything to work, sadly i'm not a programming guru! Would really appreciate if anyone could advise

Work for a given timeperiod?

$
0
0

Would it be possible to have a custom field showing the amount of work a resource would do over a given time period, for example during 2013? Would be a nice complement to the regular Work column in the Resource Usage view!

Any tips on getting me on the right track would be greatly appreciated!

Issue: with Hours per day at Project Level in Project Server 2010

$
0
0
Hi

We are following Standard Calendar with timings given as 8 AM to 12 PM and 1 PM to 5 PM.

Now, when we create project from Microsoft Project Professional 2010, in file ->options -> under Schedule.
We see the value for "Hours Per day" is set to  8 hours.

But When we create Project using PSI and open the same in Microsoft Project Professional 2010,
the value for "Hours per day"  is set to 8.25 hours.

We have no clue, as to where this 8.25 hours are getting picked up, as even in Timesheet setting on PWA, hours per day is set to 8 hours.

Kindly suggest!!!

Customizing recurrent leaves in Project Calendar with VBA

$
0
0

Hi!

I'm trying to customize a calendar in Project 2013 PRO. My ressources are working on a remote mine site and have a special rythm, working 8 consecutive weeks and being off 2 consecutive weeks.

I tried to use the exceptions parameter (see discussion "Calendar management : recurrent leave"), but I always end with a conflict when I'm creating the second week off ("The exception conflicts with #1 "First Week Off". They have both the same type of exception, Weekly, and their interval overlaps. Either chang the date range or change the type of exception").

We ended with no solution, assuming that using VBA would be the best way to customize the calendar. Please let me express my needs :

We have a cycle of 10 weeks, the 8 first are worked according to the standard calendar and the last 2 are off. Cycle starts when the ressources are entering the project (I assume I'll need 1 calendar per entry in the project). The challenge is also to link the start of the cycle with a task start date.

I hope my description is complete and clear. If not, feel free to let me know. Would anybody have any suggestion of code I could use?

Many thanks in advance for your time and assistance !

Myke.

Project Server 2010 - Event Handlers - Can't find the right one

$
0
0

Hello,

I need to attach a custom event handler when a manager ACCEPTS or REJECTS status updates from their resources in the Approval Center.

Which is the right event handler for that?

So far I've tried:

- Statusing - Applied, wich is not.

- Statusing - Status Update, no luck.

Now I'm going to try Statusing - ApprovalsUpdated, altough I need the PROJ UID and can't find it easily in the EventArgs.

My requeriments are to save a copy of the ProjectDataSet from the WorkingStore everytime someone changes the schedule or a status update is accepted/reject. In that way we have a history of the project and all it's changes and we represent it using a custom javascript gantt chart over asp.net.

Thank in advance.

Add rules file to a workflow in Visual Studio

$
0
0

I'm trying to create new workflow in Visual Studio, but, I'm using components of Dynamic Workflow from Microsoft (Solution Starters package). I'm trying to add its entire ApprovalActivity section with its rule file. But, the problem is, ApprovalActivity.rules is not recognized as part of this workflow. This is how it looks in my project:

http://postimage.org/image/5uyfazehl/

And this is how it should look like:

http://postimage.org/image/3zuug4m01/

Rules aren't bind with ApprovalActivity.cs.

How can I connect *.rules file with activity?





Custom web template in VS 2010 for project site

$
0
0

Hi

Has anyone created custom web template in Visual studio 2010 for project site.

I was able to get solution file from Site Actions - Galleries - Solutions of the site template which is created after 'Save Site as Template'.

But I am not sure what changes have to be done in VS Solution to be deploy it again.

Can anyone help me out?

Thanks

Dipti Khandke

Calculating Role Capacity

$
0
0

Can you direct me to the best way to track capacity.

In our organization we have people who can support multiple areas(roles) - they wear multiple hats.

Although each may have 30 hours available per week to work on projects, we can't show that they are able to work 30 hours in each of the roles, we would end up showing 60 hours availability, when they are only physically working on projets for 30 hours.

Our project management office is requesting that we show capacity, so the organization can select the projects they wish to tackle over the next fiscal year, and not overallocate our staff.

Currently we have a customer lookup table for "ResourceCategories(roles)" and are considering adding an additional field to the AssociationView that can show how many hours that resource is allocated in that role(category)

Are we heading down the right track

Open and existing Project

$
0
0
I am writing an addin using Visual Studio 2008 and Project 2007. I would like the addin to trigger some code when I open an existing Project. A bit like Application_FileOpen but not when it opens a new project just an existing one. Anyone know how to do this? Thanks in advance!

MS Excel to Visual Basic 2005 Express Connection

$
0
0
hi everyone.. im new here and i need a step by step instruction on how can i connect MS Excel file to Visual Basic 2005 Express.. connecting and viewing it in datagridview.. please help me.. please.. :(

Changing Coordnate System

$
0
0

Hi,

I am trying to draw a coordinate system, X and Y-lines, in a picturebox.

How do I change the coordinate system so that I get (0,0) at the bottom left corner of a picturebox.

In VB4 you could do that with "object.Scale (x1,y1)-(x2,y2)".

I am new to VB 2010 so please.... I would appreciate a code snippet with some explaining comments.

Thanks 

Göran

Viewing all 5347 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>