Sunday, September 14, 2008

Customize Workflow

What is workflow?

The workflow process is traditionally defined in office terms—moving

the paper, processing the order, issuing the invoice. But the same

principles and tools apply to filling the order from the warehouse,

assembling documents, parts, tools, and people to repair a complex

system, or manufacturing the complex device.

In software world we encounter workflow when we have to atomize process, approval mechanism,

document routing, process sequence, execution sequence and many more…..

With the automated workflow management system:

· Work doesn’t get misplaced or stalled—expediters are rarely required to recover from errors or mismanagement of the work.

· The managers can focus on staff and business issues, such as individual performance, optimal procedures, and special cases, rather than the routine assignment of tasks. The army of clerks is no longer required to deliver and track the work.

· The procedures are formally documented and followed exactly, ensuring that the work is performed in the way planned by management, meeting all business and regulatory requirements.

· The best person (or machine) is assigned to do each case, and the most important cases are assigned first. Users don’t waste time choosing which item to work on, perhaps procrastinating on important but difficult cases.

· Parallel processing, where two or more tasks are performed concurrently, is far more practical than in a traditional, manual workflow.

How I implement workflow?

I have the same problem like I have to atomize the entity levels according to their status , presenting sequence on User Interface and can be attached any entity at any level. Their history is flow is also a problem. Currently I am working in financial domain before that I have encountered this same problem in my news management application. Like after news arrival I have to maintain its flow according to its current status where it will be present and to whom. Its history like who change status what changes he made and when he did this. I have to take care of it like at first stage someone can attach other entity also like documents, any media etc. So, I have to maintain at any stage document attachment, media attached history.

· Default Workflow

· State wise entity attachment

· Maintain the history record of each entity like its current state and its previous state.

· Implement Horizontal workflow

· Implement Vertical Workflow

Before explaining the above three points. I want to explain the workflow then we can discuss the workflow states and it will be easy to digest. Because without explaining workflow, workflow states will be meaningless. Workflow system starts from workflow entity, any other entity will be attached with workflow and with any specific workflow states will be attached. Workflow states further associate with state changes and its history.

Logical View of Workflow system



WorkFlow

Default Workflow

After creating a workflow end-user can make default workflow to free from every time assigning the same workflow for any module. For instance for any module user can assign a workflow instead of assigning it every time. It saves time and effort automatically module will be attached with its defined workflow.

State wise entity attachment

It obvious that if an entity is in initial level some documents and other actions stuff can be attached which can be vary depending on its state. So keep track of every state attachment is very necessary.

It also help to retrieve its previous state.

State Change





Maintain the history record of each entity like its current state and its previous state

It’s very necessary to maintain the record of any entity of its life cycle journey .Easily traceable like who change its state, what documents attached with it, When user want to revert the record than it can easily find its all states.

State Change History

Implement Horizontal workflow

One function of a workflow system is to get the work to the right person or process—to move the work through the organization. This is sometimes called “horizontal” workflow. In my news management system news is flow in horizontal direction. Every responsible put their action and forward it to other responsible for their action.

Horizontal Workflow

Implement Vertical Workflow

Normally a case consists of multiple tasks—programs, portions of programs, or manual steps performed at each step in the workflow. Therefore another possible workflow function is to see that all the tasks are completed the “vertical/parallel” workflow. In my system when any breaking news come and directly approve by the news director. News management system service closely monitors the status of news and generates an email and sms to responsible person.


P.S For further assistance you can mail me on rizvinazish@gmail/yahoo.com

Monday, September 1, 2008

I got 100/100

Hi,
I was busy in my Microsoft share point service configuration exam as I told you before.
Alhamdulilah I have cleared my exam with colors.I got 100 out of 100 means I got 1000 point
where required points was 700.
I am very happy ......................

Wednesday, July 16, 2008

Custom WorkFlow System

I will post this blog with clear and detail example.

Monday, July 7, 2008

Share Point Configuration Exam

Hi,
Now a days I m preparing for Share Point Configuration Exam.I got "Sams Microsoft SharePoint 2007 Unleashed" this book is very informative.you can get this book from www.flazx.com. not only this book a lot of books available here .Any how I will update my blog as I got my certification,or I found something helpful for this exam.

Friday, June 13, 2008

Nhibernate with tirggers

I was working on Nhibernate Framework, I found a feature in this framework that I want to explain you.
I have to make a transaction between two tables they have parent and child relation on child creation or updating a trigger is fired take sum of child rows and update into parent.
Everything doing fine with transaction no exception but no updating in parent record after hitting trigger.That’s amazing for me .Long story short actually Nhibernate having a state of parent with previous values again updated on commit of transaction.So, I have to create a separate transaction for parent and child also. And don’t forget to Call NHibernateSession.Flush();after commit a transaction. Like
BaseDao.NHibernateSession.Transaction.Commit();
NHibernateSession.Flush();

But it’s very critical in the situation when you have to ensure that every thing should be in one go(transaciton) then realy it’s a question.I had faced this problem in the same project,but fourtunately I have a columns which shows record is deleted in first transaction I pass this true isdeleted=true and after commiting and flushing .Begin another transaction the then pass isdeleted=false.Because my trigger only works on isdeleted=false record.Anyhow its just a one solution which works in my scenario.if any one has some good idea please share with us.

Friday, June 6, 2008

Feature Framework Code

Recursively I have to drill down all the control, one thing off course every table row, td should be tagged as runat=”server” and with proper Ids.

foreach (Control pageChildControl in Page.Controls)
{
if (pageChildControl is HtmlForm)
{
HtmlForm frmControl = (HtmlForm) pageChildControl;
frmControl.Attributes.Add(m_LinkedId, m_PageFeatureId.ToString());
formControl = pageChildControl;
break;
}
}

if (formControlCollection != null)
{
foreach (Control formChildControl in formControlCollection.Controls)
{
if (formChildControl is AsynchPanel)
{
AsynchPanel lbPanel = (AsynchPanel) formChildControl;
string parentId = ExtractControlLinkedId(lbPanel.Parent);
lbPanel.Attributes.Add(m_LinkedId, parentId);

ExtractHtmlTableControl(formChildControl);
}
else if (formChildControl is HtmlTable)
{
if (CheckFeatureExistanceInParent(formChildControl, string.Empty))
{
if (!formChildControl.Visible)
{
continue;
}
ExtractHtmlRowsFromTableControl(formChildControl);
}
}
}
I have also attached code with it which I have written .Still I am working on it due to urgent task and off course following timeline I have postponed this for some time.

Wednesday, June 4, 2008

Feature FrameWrok

Last week I worked on some sort of parser for my own security in the application. My application domain is financial application is for Private Equity Funds and its distributions.
Actually our requirement is we want to assign rights on each and every item in the application. Some of them I am sharing with you .like.
Restriction on field level like one user can’t see this field but can see others. For example an ordinary user can’t see the head’s phone numbers, although he can see all other information.
Similarly on changing of any fund user logged in user should have rights to see the incoming data. Restriction level is up to the gird’s columns level .Logged in user can see this columns only depends on his rights.
And I will write about when I start working on the security of methods either Logged in User can call this method or not. I am thinking about enterprise security library for this. Let see
For the every feature security we assume every item in my application either it’s control or any data it’s a feature. This is DataBase view of my feature FrameWork.
imgframework.jpg