Answered Why would I extend the PSI?

  • 2010年5月14日 2:47
     
     

    I'm developing a few custom web parts that read project and task info.  In a few cases the data I need isn't available from the PSI - but is readily available in the reporting database. 

    In other cases the data is cumbersome to get at using the PSI...For example, if had a custom project field named "foo", I would need to know the GUID or PropID of that field in order to call the web service and return the value that foo holds.   I think this equates to hard coding the GUID somewhere in the code or in a config file. 

    I'm having trouble understanding why I would ever want to extend the PSI with additional methods that query the Reporting Database... seems like an extra unnecessary step.   To authorize the user I could simply use the ReadProjectStatus(<parameters>).  Then I could build a datatable using ADO.net that gets data directly from the reporting db.

    Am I missing something?  I guess I dont get it.

     

     

すべての返信

  • 2010年5月14日 4:33
     
     回答済み
    High-level, only Published data tends to be in the Reporting DB. If that suits you - and you don't need data for projects that are not published yet, you should be fine.
    • 回答としてマーク BayouB 2010年5月15日 21:10
    •  
  • 2010年5月14日 12:04
     
     

    JohnBGood:

    I'm sorry that I can't really answer your question, but it has touched on a question of mine. I am trying to create a web part to host on Project Server that talks to the PSI, and have had little luck making the connection. (See http://social.microsoft.com/Forums/en-US/project2010custprog/thread/4880a98c-4b66-4375-ac3d-25fa910f506e) It sounds from what you have said that you have already passed that hurdle. Is there any chance you can share with me what you have so far? I'd greatly appreciate it.

    Thanks in advance.

    Doug

  • 2010年5月14日 15:19
    モデレータ
     
     回答の候補

    Here are some situations where you might want a PSI extension:

    • Filter a list of projects based on a custom field value, from a set of 10,000 projects. The filtering occurs on the server.
    • Query the RDB by using a custom PSI method, which is accessible by using WCF from outside the firewall.
    • Save bandwidth by consolidating information from several PSI calls.
    • Integrate the PSI more efficiently with LOB apps.
  • 2010年5月15日 21:10
     
     
    Thanks to all for your advice.  I very much appreciate it!!
  • 2010年5月19日 0:32
    モデレータ
     
     

    Incidentally, I have had this blog post on my computer for a while explaining how this is done. I also give an example of how that can be useful. Please take a look here.

    Thanks,

  • 2010年5月23日 20:43
     
     
    Been struggling with it.. let me know if you would like to know what I've learned so far.