Thursday, February 18, 2016

Enterprise...

Ok, let's go to enterprise level. At a multinational company (or at least i know) Sharepoint is (and let's simplify it a bit) content management application.

Quite powerful when it comes to storing any content. It also provides some workflow management, what gives you some kind of automation tool.

Ohh,if i could forget the workflows of SP2007. 


I had only Sharepoint designer and without, for example, cycle or copy/paste the development is becoming quite pain in the *ss. (If you have solution for this, please drop a comment as my current company does not want to upgrade from SP2007 due to cost awareness.)

But... There is an interesting feature of Sharepoint lists (where you usually store your data),namely export to Excel. There was another feature named synchronize with excel, but it was not working in all Excel/Sharepoint i was working with.

And here we are. Excel has VBA. My most hated programming language of all time. 

But let's put the language aside. VBA sits on top of a brilliant application suite (Office).

So just some idea how you can use the power of VBA:

  • combine multiple Sharepoint list in one joint table
  • adding extra data processing on the data sits in Sharepoint
  • auto generating PIVOT tables on fresh data from SP lists
  • send email based on the data
  • move mails based on their content
  • editing clipboard to paste info based on your data
  • downloading files from Sharepoint document libraries 
And so on....

One would ask many of these can be done with server side application. That is correct, but we are on Enterprise level. That also means that it is more difficult to deploy your application.

So be brave enough for VBA (especially when you are not a developer) and save some minute of your work to grab a latte machiatto with your workmates.

Bye!
ps:I can't wait for Typescript in the Office application Suite. :-)

Tuesday, January 19, 2016

Google docs

So let's start...

Just to recap, i am a project manager, please do not expect me to reveal secret recipes how to do certain things, actual coding. However i will link those items which needs to be considerable.

So if you works for an entity not having strict security rules, then the most obvious choice is Google Docs. I am not talking Google Apps for Work, just a pure Google document with extra script added.

There are two projects i would like to reveal as possible hint:


Simple resource management tool 

(i am really into Resource Mgmt as you will see.)

Different sheets represent demand entities (aka project manager). Columns are the resources and rows are the days to come. 

Each PM adds his/her wishes (resource requests) to a certain day for a certain resource. And a script comb it together to reveal the collisions for the resource coordination meeting. 

Thanks to Google. Very simple, easily accessible. 
Though it is not really sofisticated, it can do the grunt work if that is all you need.

Sport game calendar

In some way it is also a resource mamagement tool. Guys can check in for certain gamedays. Also the paid in money is tracked in a different sheets. 

And the spreadsheet automatically counts the personal balance based on the presence. 

No trick here. We still use it.

The script can add the spice here as well. 

Sportmates are usually too lazy to go online to check a spreadsheet, look for their name and the appropriate day and set their status to 'Participate'. 

So why not let the script to send a reminder mail

Still very simple and it runs once a week, but with this we have not solved the original problem of laziness.

So here comes the GMailApp, which lets you to read all emails in a specific gmail account. 

Having said that those lazy sportmate only need to press a reply without any typing to let the script update their presence for a certain gameday. :-)

Code snippet to iterate thru mails with a certain subject (here they are dates):

 var searchString = 'subject:(*' + Utilities.formatDate(utcDate, "GMT", "yyyy/MMM/dd") + ') OR (*' + Utilities.formatDate(tomorrow, "GMT", "yyyy/MMM/dd") + ')';


  var threads = GmailApp.search(searchString);



  for (var i = 0; i < threads.length; i++) {
 
    var messages = threads[i].getMessages();
 
    for (var j = messages.length - 1; j >= 0; j--) {


Stay tune, next time we jump into the possibilites how you can automate things at enterprise level....