I have read an article in AIIM that is titled: "Why folders are the new F word" written by Chris Riley. I have seen how the writer is against the usage of folders in ECM solutions in opposite to utilizing metadata searches where he prefers most. to have a look at this article, please see the link
http://www.aiim.org/community/blogs/expert/Why-Folders-are-the-new-F-word
in my opinion, I may disagree with Chris here, I do believe the folders are a very useful and a rich feature in any ECM solution. I have seen that Chris is a well experienced Microsoft Sharepoint professional, And knowing MS share point 2007, there was a limitation in managing folders and documents (like document reference links for example which used to depend on folder location) that I know is no longer there in 2010 version.
People may use folders to do 3 main usages: categorizing documents, grouping documents and browsing documents.
Categorizing documents forms a very simple and initial classification methdocuments. People use folders since the DOS world to categorize documents by different means. There are different scenarios that people follow while categorizing documets in folders, they may prefer to categorize documents by it's type, so a folder may be created with and named as "invoices" to contain invoices documents, another may be named as "correspondences" to contain memos, faxes and letters, same like "contracts", "certificates". other people may choose to categorize by the originating source of a document whereby a folder may be created that is named as "ministry of ....", "bank of ...." . Other folder naming styles may categorize documents based on people identities, so you may find a folder that represent your manager name, or your chairman, or your father / sun / friend...etc.
Such a categorization may form a grouping mechanism of documents that relates together to ease browsing it, so you know that all the invoices are available in one place in the invoices folder, or you know that any document that relates to your dad is in your dad's folder. You are also certain that all the documents that relates to your current employer are into the "current employer folder".
Now you may come and say this: can't I use document metadata in fulfilling all of the above scenarios of folder management and use this to get rid of folders? I would say, hmmmm, yes and no depending on the situation.
Metadata is another set of attributes that would record information that relates to the document, it may contain subject, from, to, document date, document type, keywords...etc. By utilizing metadata, you will be able to establish search queries depending on values of the metadata that you have in mind about a certain document, for example, you look for a document that has the word "commitment" in it's title, and was received 3 months ago. In the case that the values you are specifying about the document are correct, this would perform the fastest and the most accurate way to retrieve the document you are looking for (in here I agree with Chris). But let me then ask this question, what if you do not recall the exact metadata of a document, will you be able to get it? I would answer this with a No. In this case, searching for a document based on a metadata will fail to get it, and you will start digging for different option to get the document, and here is where you start browsing for it based on the available set of defined folders.
So this brings me to advantage point #1, which is "folders will offer browsing for documents based on it's business / user categorization and classification", which forms an additional option to searching, not a replacement of searching.
Let us take the discussion further, if we present to a normal user the ability to save a document based on entering the requried metadata (indexing it) in opposite to filing it into appropriate folder, so for example, an Hr clerk wants to upload an employee leave document. Using metadata indexing, the clerk will be entering the employee number (12345), then select the document type (leaves), then select a sub type (annual leave), then key the document date and end date...etc. Using this methodology will ensure faster retrieval time, since the query may go as follows: "get me the annaual leave of employee 12345 that was taken in 2011"....very neat query with exact results. So this is one of the cases that metadata filling is better than filing into folders from search perspective. But let us talk compliance and governance and enhance the abve case to use folders, what if an auditor comes and needs to have access to the whole employee file of employee number 12345? In an ECM world, this means conducting the above query again, and loop through all the documents and assign access to the auditor on all the documents. This is a costly operation, and may require some customization and coding to acheive it. Now let us say that the emloyee file is represented in folders as the following hierarchy: employee number --> document type --> document sub type, and we know that most of the ECM leading vendors suppot securiety access rights inheritance from folders, so the auditor access may be given in seconds by assigning his ACL on the top employee file folder, which is folder 12345, which would make the subfolders and it's documents to inherit the access right that is assigned to the top folder. Using folders here will give flexibility in assigning security for group of documents at the same shot and would also make it so flexible to remove this access right once the auditor work is finalized and completed. in the opposite scenario, the matadata query may not fulfil your need in getting all the required documets grouped together from the first search attempt so you will have to conduct multiple queries then group the documents manually. This brings us to advantage point #2: "folders help in assigning inheritted security access rights to a group of documents with ease"
It is also very important to address how records management world is fully dependent on folders structuring, this is simply because of file plans. A file plan is a comprehensive outline that includes the records series, file organization, active file locations, file transfer instructions, file retention and disposition instructions, and other specific instructions that provide guidance for effective management of records, including vital records. File plans specify how records are to be organized once they have been created or received, provide a "roadmap" to the records created and maintained by an organizational unit, and facilitate dispositioning the records. A file plan lists the records in your office, and describes how they are organized and maintained. file plans means heirarical data and this will never be achieved without utilizing a sofisticated folder management and classification. So this brings us to advantage point #3: "folders helps in configuring and deploying a records management solution to organizations.
So in my opinion, yes, folders are vital and essential to be used in any ECM solution, instead of getting rid of it for faster searches of documents, this rich feature needs to be always enhanced and supported to add value to searches and any ECM solution. there are more advantages than the specified in this article but i will leave it to folder lovers to talk about it :)
Tek! Talk by Adel Aboulhuda
Everything here represents my opinion unless clearly stated otherwise.
Search This Blog
Sunday, July 31, 2011
Thursday, July 21, 2011
So what is the heck about case management?
We keep on hearing about process automation, how it can streamlline business processes, how it could help businesses control and audit their running daily processes, but is the whole business requirement of automation achieved nowadays?
Technollogy brought us automation to business processes by utilizing electronic workflows in the 80s and 90s, workflows that involved great amount of coding and exception handling to streamline a business process. this made automating such processes reside in the hand of IT, the more complex the process goes, the more coding and IT involvement take place to fulfill it. in the last decade, technology was improved wherby a new set of tools is introduced to business users that upgraded the workflow concept to business process management (BPM), business users were introduced to a set of tools to help formulating predefined processes with minimum coding, powered by a Microsoft Visio alike process designing tool to achieve desigining complete and robust process handling and automation, such tools allowed business users to take control over designing and implementing proceseses from IT, not only executing them. The question today is: did technology fulfill business needs of process automation, did it manage to actually automate the business and complete the cycle of a process regardless whether it is simple or complex? The answer is simply a NO!
BPM, in my opinion, failed to fully attract business users as it is meant to be, failed to fully solve their full business needs. The reason of that is simply because of it's known limitation in managing exceptions as it arises within a process. Exceptions, at a simple glance, is an unhandled transaction that may occur depending on a certain case. Business cases and it's exceptions cannot be predefined due to it's sudden and unplanned occurrences within a planned process, when such exceptional transaction arise, the process predefined structure needs to be modified a handle it, the more exceptions that arise during execution of a predefined process, the more complex a predefined business process will be, and in most of the cases, the BPM technology and tools fails to translate the exception into a predefined state that could be maintained as business continues executing. On the other hand, there are certain processes that may not be fully predefined due to another crucial factor, which is human intervention and collaboration. Take an example of a predefined process that reaches to a point where it requires additional consultation or interference by an expert or a group of knowledge worker, such a case may hang the automated execution of the predefined prosess and may, in certain situations, shift it's execution to an ad-hoc / manual handling to solve it.
Case management comes to fix the aforementioned issues, not by getting rid of BPM, but by extending it to make it more flexible, ad-hoc and collaborative. Take an example of a medical case of a patient. The process is well defined from the moment the patient reports to a registry / reception office,through assigning the medical section that needs to look into the patient case, until assigning the doctor to look into the patent case, however, there is an exception that may occur whereby the case may have to be examined by several doctors from different sections, and this depends on the severity or the criteria of the medical case itself. At this moment, the process needs to go into Ad-hoc stage where the consultants / doctors will be called to look into this case. They might get into a virtual meeting room to collaborate and comment in the case. Until a final conclusion is reached, then the whole process will be shifted back to predefined stage at the point to the last step where the patient will be forwarded to the pharmacy to get the required medicines. In between. The patient file is viewed and updated with the medical documents the were generated in the different stages of the process. such predefined and ad-hoc medical process is going to formulate the whole medical case of the patient, and will be archived for future examinations.
Case management is a set of tools that, when combined together, ensure the maximum level of information management and process automation, these tools are:
1- business process management (BPM) to manage predefined steps of processes.
2- content management (CM) to manage the different types of content that is generated and accessed through the case lifecycle.
3- collaboration and social networking to manage the human interactions and collaboration across the entire process.
4- ad- hoc based processing, which is the ability to create ad-hoc steps and add them to the predefined process at it's runtime.
5- capture technologies, to feed content management with content by capturing it from the source that generated it, being a scanner, a fax, an office document, a chatting or video session ..etc
6- process designers to allow business users to easily define a proces in a clear to follow map format.
7- process analyzers and simulators to help analyze the current execution of processes and help also simulating a recommended execution to get rid of the bottleneck.
Yes, technology is bringing us a new guest named case management, or in other meanings, advanced or dynamic case management. It is worth mentioning that, for most of the ECM leading vendors, this is considered an add-on to their existing ECM offering and capabilities, not a reinventing of the wheels of BPM. that's why, the set of tools listed above in point #3 and #4 above are two additional main core capabilities of case management that are extending the current content management and business process management products offerings that most of leading ECM vendors have nowadays. the technology cobines human centric, document centric and system centric process management into one set of capabilities that is forming the future of process automation.
Technollogy brought us automation to business processes by utilizing electronic workflows in the 80s and 90s, workflows that involved great amount of coding and exception handling to streamline a business process. this made automating such processes reside in the hand of IT, the more complex the process goes, the more coding and IT involvement take place to fulfill it. in the last decade, technology was improved wherby a new set of tools is introduced to business users that upgraded the workflow concept to business process management (BPM), business users were introduced to a set of tools to help formulating predefined processes with minimum coding, powered by a Microsoft Visio alike process designing tool to achieve desigining complete and robust process handling and automation, such tools allowed business users to take control over designing and implementing proceseses from IT, not only executing them. The question today is: did technology fulfill business needs of process automation, did it manage to actually automate the business and complete the cycle of a process regardless whether it is simple or complex? The answer is simply a NO!
BPM, in my opinion, failed to fully attract business users as it is meant to be, failed to fully solve their full business needs. The reason of that is simply because of it's known limitation in managing exceptions as it arises within a process. Exceptions, at a simple glance, is an unhandled transaction that may occur depending on a certain case. Business cases and it's exceptions cannot be predefined due to it's sudden and unplanned occurrences within a planned process, when such exceptional transaction arise, the process predefined structure needs to be modified a handle it, the more exceptions that arise during execution of a predefined process, the more complex a predefined business process will be, and in most of the cases, the BPM technology and tools fails to translate the exception into a predefined state that could be maintained as business continues executing. On the other hand, there are certain processes that may not be fully predefined due to another crucial factor, which is human intervention and collaboration. Take an example of a predefined process that reaches to a point where it requires additional consultation or interference by an expert or a group of knowledge worker, such a case may hang the automated execution of the predefined prosess and may, in certain situations, shift it's execution to an ad-hoc / manual handling to solve it.
Case management comes to fix the aforementioned issues, not by getting rid of BPM, but by extending it to make it more flexible, ad-hoc and collaborative. Take an example of a medical case of a patient. The process is well defined from the moment the patient reports to a registry / reception office,through assigning the medical section that needs to look into the patient case, until assigning the doctor to look into the patent case, however, there is an exception that may occur whereby the case may have to be examined by several doctors from different sections, and this depends on the severity or the criteria of the medical case itself. At this moment, the process needs to go into Ad-hoc stage where the consultants / doctors will be called to look into this case. They might get into a virtual meeting room to collaborate and comment in the case. Until a final conclusion is reached, then the whole process will be shifted back to predefined stage at the point to the last step where the patient will be forwarded to the pharmacy to get the required medicines. In between. The patient file is viewed and updated with the medical documents the were generated in the different stages of the process. such predefined and ad-hoc medical process is going to formulate the whole medical case of the patient, and will be archived for future examinations.
Case management is a set of tools that, when combined together, ensure the maximum level of information management and process automation, these tools are:
1- business process management (BPM) to manage predefined steps of processes.
2- content management (CM) to manage the different types of content that is generated and accessed through the case lifecycle.
3- collaboration and social networking to manage the human interactions and collaboration across the entire process.
4- ad- hoc based processing, which is the ability to create ad-hoc steps and add them to the predefined process at it's runtime.
5- capture technologies, to feed content management with content by capturing it from the source that generated it, being a scanner, a fax, an office document, a chatting or video session ..etc
6- process designers to allow business users to easily define a proces in a clear to follow map format.
7- process analyzers and simulators to help analyze the current execution of processes and help also simulating a recommended execution to get rid of the bottleneck.
Yes, technology is bringing us a new guest named case management, or in other meanings, advanced or dynamic case management. It is worth mentioning that, for most of the ECM leading vendors, this is considered an add-on to their existing ECM offering and capabilities, not a reinventing of the wheels of BPM. that's why, the set of tools listed above in point #3 and #4 above are two additional main core capabilities of case management that are extending the current content management and business process management products offerings that most of leading ECM vendors have nowadays. the technology cobines human centric, document centric and system centric process management into one set of capabilities that is forming the future of process automation.
Tuesday, July 5, 2011
How to qualify leads for successful selling?
One of the most essential stages of the sales process is to define the sales lead and its importance. Most of the sales deals fail to close (or may even fail to move forward) because sales representatives do not evaluate the importance and readiness of lead to go through and complete the sales process.
A Wikipedia definition of sales lead is: “A sales lead is the identity of a human or entity potentially interested in purchasing a product or service, and represents the first stage of a sales process”
How would you identify that a ‘lead’ is worth establishing a sales process with, to answer this question, you need to look into 3 main criteria: Budget, Timeframe and Need analysis
Budget
The first thing that must come in your mind when evaluating prospect customers is budget. Sales representatives must be able to know information about the budget of the lead, however, the information that the sales representative may have could be generic or specific, in a worst case scenario: you may reach to no information about the budget, and this may happen in situations where the customer would expect to have a budgetary quotation from the sales representative to ask for budget to be allocated for the current or next financial years.
Questions that you may ask leads which are related to budget are:
· Do you have an allocated budget?
· Is this budget allocated for this year or next year?
· What is the value of the budget?
If you get the accurate and expected information about the lead budget, you are in a very good position to start and kickoff the sales process and include the customer in your sales pipeline. And you would mark the whole sales deal as an important and a highly qualified one, however, you need to note a very important thing here. Some leads (maybe most of them) would not give you information about their budget for a very simple reason: they will expect that you will provide your pricing proposal based on that budget number provided to you, so the approach here is that the customer will make the budget hidden and will ask you for a budgetary quotation to evaluate your offer against other offers from different companies and also to evaluate the budgetary price with the allocated budget price, this has 2 side effects:
- Positive: customer may re-consider the allocated budget in case most of the budgetary proposals received are over the allocated budget.
- Negative: you may be disqualified if most of the other competitors’ budgetary prices are within the range of the allocated budget, but yours is not.
If you are within the positive side effect, it means that the customer is so aware of what to expect out of the deal, and this is healthy. If it is the negative side effect though, this would mean that you will be in the middle of competition with no customer preference of the value of the solution that you are offering, which is to me, a very weakly qualified lead.
if, on the other hand, the budget happens to be smaller than expected, you may have an indication that the customer wants limited features, or wants to start with the a pilot, if the budget is huge, this would you an indication that the customer is expecting best services and wide range of products and implementation scope. In both cases, you will need to compare this with the customer requirements and expectations:
- If the customer requirements meet the budget specification, then you have to be rest assured that the customer is well educated and knows what he is talking about.
- If the budget is not meeting the customer requirements, there are one of 2 things:
o Either the customer needs guidance and more assistance to specify a budget that meets the requirements
o or the customer is having a limited budget for a huge set of requirements, that has to be analyzed and you may decide at this stage to accept the lead and get prepared to give huge discounts with low profitability (do not ever do this unless it is an account you cannot bare to lose) or you may just withdraw and remove the lead from your sales pipeline.
Timeframe
This is very important and straight forward. You need to know the expected time of purchase because without his you may hit the wall after paying lots of efforts and time. Question like “When are you expected to purchase?” is essential because it will guide all your future efforts. If the answer to the question is negative, meaning time of purchase is not known, then maybe you need to ask an additional question, which is: “what is the millstones that will drive the purchase?” From the answer, you would sense when the expected time of purchase based on customer answer as milestones will govern deliverables of the deal.
There are lots of sales processes that take a lot of time, money and efforts then suddenly get killed at a critical stage of it by cancellation or lose of interest by the customer. High level scope identification and awareness is essential here to identify the milestones of buying to work on it extensively by the sales and technical sales engineers.
Needs Analysis
If Budget and time frame look appealing to you, you need to start immediately to think about understanding the customer needs. Do customers’ needs match the solution/products that you are offering? How close does the customer need match your product offering? How can you prioritize which product you need to sell over the other?
The main key answer to this is to identify the business justification of the whole need. Focus on identifying where is the customer pain, and how your offering would relief / solves it. Aligned with this, you need to always show your product capabilities that shows your strength against your market competitors.
If you are certain that your product is lacking major functionality to solve the business problem of the customer, then you need to withdraw early and not to pay so much effort. If you are trying to sell a product that does not support Arabic language to an Arabic customer, then this is a losing lead and deal that is not worth the sales efforts.
Sunday, April 24, 2011
IBM Production Imaging Edition (IBM PIE)
Introduction
What does PIE offer?
IBM Datacap Task Master
IBM FileNet Content Manager
IBM FileNet BPM
DAEJA VIEWONE PRO Edition
Who Needs IBM PIE?
Additional Resources
We have been introduced with the new IBM Production Imaging Edition, a new License that is added by IBM to be more competitive in the market while selling the powerful imaging capabilities for high end production sites.
According to IBM, PIE is the first and only solution in the market that provides a single product that manages the entire lifecycle of document imaging:
- It provides the core scanning and imaging capabilities with distributed capture and image recognition in a way that ensures highest rates of ROI.
- It provides the document routing capabilities and workflow to allow automation of internal business processes
- It allows universal viewing of 300+ file formats, with the ability of annotations and image redaction
- Last but not least, it provides a solid and scalable repository to store the organizations unstructured content with key content management offerings and capabilities.
There are 2 main advantages of releasing this product. First, It is a product that includes the newly acquired IBM Datacap Taskmaster, which offers an enterprise / high end and distributed capture solution. In addition, it is the first time that IBM bundles the DAEJA VIEWONE PRO as a product to be packaged and sold as part of its product offfering (within PIE). IBM currently bundles DAEJA VIEWONE Standard edition in Workplace / WorkplaceXT applications that allows viewing and annotating images, so the advantage of the PRO Edition that is bundled with PIE is that it will extend the standard edition offering of DAEJA VIEWONE to add universal file viewing and image redaction capabilities, which used to be acquired separately from VIEWONE for certain customer scenarios and cases.
What does PIE offer?
PIE includes the following product offerings in a single product ID/license:
IBM Datacap Task Master
One of the most important features that comes with the Datacap taskmaster is the remote capture, allowing branches and remote sites to upload and scan images in a distributed and controlled way
It includes the following features:
- Distributed capture
- Web Capture
- Recognition
- Scanning
- Indexing
However, it does not include the following:
- Connector to e-mail and electronic documents
- Connector to Fax
- Connectors to 3rd party ECM repositories
- RuleRunner enterprise.
IBM FileNet Content Manager
PIE includes the full capabilities of IBM FileNet Content Manager Product as if you are selling the standalone IBM FileNet Content Manager.
IBM FileNet BPM
PIE includes an edition of IBM FileNet Business Process Manager / Case Manager Product, it includes:
- Process Designer
- Process Tracker
- Process Analyzer
- Process Simulator
- Microsoft Visio Connector.
However, PIE does not include:
- Business Process Framework
- E-Forms.
- Bundled Cognos NOW!
DAEJA VIEWONE PRO Edition
PIE includes the following additional features of DAEJA View One Standard Edition:
- Universal Viewing, 300+ file formats.
- Image Redaction for Images and Textual PDF in ad-hoc mode only (near future: batch)
- Annotations on PDFs and other file formats
- Streaming Server, which is so powerful for viewing large multi page tiff images, it has the feature of page pre-fetching so for example, if you are viewing page 500 in a document, it will prefetch pages 501 to 506 ahead of time.
As a high level offering, please see the below diagram:
Who Needs IBM PIE?
IBM PIE will fit customers who would fall into one of these scenarios:
- Customer who has scanning and document imaging users who may need distributed scanning /web scanning while taking benefit from the advanced recognition and capture capabilities.
- Customer who are interested in controlling their full document lifecycle that includes scanning, process automation and universal file viewing/redaction
- Customers who want to take advantage of IBM core ECM offering and need to deal with this as a single license offering rather than dealing with separate products that are offered in PIE as a separate license.
Additional Resources
To learn more about PIE, you may refer to the following resources:
Thursday, April 14, 2011
Connecting to User Mailbox using Exchange Web Services Managed API
Email Management software nowadays connect to exchange servers and archives e-mails based on some criteria. Have you ever wondered how the software is able to connect to Microsoft Exchange and manage the capture of e-mails?
this article is the introduction to the know-how, we will be exposed to the new Exchange Managed web services API that allows you to do awesome tasks on top of exchange.
let's do it!
Prepare the Environment
- Install Microsoft Exchange Web Services Managed API from the following Web Site:
Create a New Visual Basic .Net windows Application Project
- Open A New Microsoft Visual Basic .Net Windows Project, I am using VS 2010 in this sample
- Add a reference to “Microsoft.Exchange.WebServices” , browse to the reference file in “<Install Drive>\Program Files\Microsoft\Exchange\Web Services\1.1”
- Open a New windows Form, add a button, text boxes as follows:
The 4 text boxes will represent the environment data; it will have the information about the exchange server, the admin credentials that we will use to connect to that exchange server, and the user account mail box that we will read messages from.
Control Label | Text Box Control Name | Usage |
Exchange Server Name | txtExchangeServerName | This is going to have the value of the FULL exchange server name in the following format: <ServerName>.<DomainName>.com |
Admin Account Name | txtAdminAccountPassword | This is the administrative user name that will connect to the exchange server, it should have admin privileges on the exchange server, |
Admin Account Password | txtAdminAccountPassword | The password of the admin account |
User / Mailbox Account | txtAccountName | This is the mailbox account that we will fetch emails from |
o Exchange Server Name text Box: txtExchangeServerName.
o Text Box: txtExchangeAdminName
o Admin Account Password: txtAdminAccountPassword
o User / Mailbox Account: txtAccountName
- Add a Grid control to the form, the grid control will show the e-mails of the selected mailbox.
- Go to source code and import the following classes
Usage | |
Imports Microsoft.Exchange.WebServices.Data | Will be used to reference the following objects: - Exchange Service - Folder - SearchFilter - ItemView - FindItemsResults(Of Item) - EmailMessage - WellKnownFolderName - LogicalOperator - EmailMessageSchema |
Imports System.Net | Will be used to reference the following Objects: - NetworkCredential |
Connect to mailbox and fetch emails
In this section, I will demonstrate the code to connect to a mailbox and fetch the emails.
Open source control, open the buttun1_click event, then write the following code to instantiate an abject for the exchange service, this object will take care of establishing the connection to the exchange server:
Dim oService As ExchangeService = New ExchangeService(ExchangeVersion.Exchange2010)
It is to that I am using exchange server 2010 in my sample. Should you need to connect to 2007, you will have to change the parameter ExchangeVersion.Exchange2010 to the 2007 option
Then, create a variable to hold the URI address, pass the variable to the exchange service object:
Dim strServerURI As String = "https://" & txtExchangeServerName.Text & "/ews/exchange.asmx"
oService.Url = New Uri(strServerURI)
The URI address is going to be as this format: https://rsvr1.rdom.com/ews/exchange.asmx where rsvr1.rdom.com is the full name of the exchange server. In order to double check that it is the correct format, take the URL and insert it in the browser, if it returns XML WSDL information, it means it is working and the connectivity is OK, if it does not return valid data, then there is definitely a problem with the server or with the URL itself.
We need now to pass the admin credential and the domain name information; this information will be used when connecting to the exchange server
'---pass the Admin credential and domain information for admin connectivity
Dim strDomainName As String = Split(txtExchangeServerName.Text, ".")(1)
oService.Credentials = New NetworkCredential _
(txtExchangeAdminUserName.Text, txtExchangeAdminPassword.Text, strDomainName)
Now you need to connect to the user mailbox:
'---conenct to the user mailbox
Dim strMailboxUser As String = txtAccountName.Text
oService.ImpersonatedUserId = New ImpersonatedUserId(ConnectingIdType.SmtpAddress, strMailboxUser)
Then you need to select which folder you need to access, in our example, we will access the user “Inbox” folder:
Now comes the trick of the day, if you run the code until above point, you will be receiving the following error:
This happens when you are connecting to exchange in a secured socket layer connectivity, I have spent some time looking for a solution to this issue, until I knew that you will need to override the way that handles the secured connectivity, we will be telling the environment to accept my connection to the exchange server. In order to do this, I have created a class that will take care of this functionality:
Imports System.Net
Imports System.Net.Security
Imports System.Security
Imports System.Security.Cryptography.X509Certificates
Public Class TrustAllCertificatePolicy
Public Shared Sub OverrideCertificateValidation()
ServicePointManager.ServerCertificateValidationCallback = New RemoteCertificateValidationCallback(AddressOf RemoteCertValidate)
End Sub
Private Shared Function RemoteCertValidate(ByVal sender As Object, ByVal cert As X509Certificate, ByVal chain As X509Chain, ByVal [error] As System.Net.Security.SslPolicyErrors) As Boolean
Return True
End Function
End Class
Then in the code, put the following line before the code that connects to the user inbox, so t will be as follows:
TrustAllCertificatePolicy.OverrideCertificateValidation()
This would solve the problem, and now let us continue with the email fetching.
To get e-mails, you will need to establish a search filter, search filters is a good way of sending multiple criteria to exchange server to get the requested e-mails, in our case here, we need to get the read and unread e-mails (all e-mails)
We will pass the search filters as array of filters, as follows:
Dim arrSearchFilter(1) As SearchFilter
arrSearchFilter(0) = New SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, True)
arrSearchFilter(1) = New SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, False)
Now execute the search folder on the user inbox
Dim oSearchFilter As SearchFilter = Nothing
oSearchFilter = New SearchFilter.SearchFilterCollection(LogicalOperator.Or, arrSearchFilter)
The rest of the code is to create a DataTable with columns, and bind the results to it and display it in grid.
Dim oView As ItemView = New ItemView(20)
'---Fire the query for the unread items
oResults = oService.FindItems(WellKnownFolderName.Inbox, oSearchFilter, oView)
Dim oMessage As EmailMessage = Nothing
oMessageCollection = New DataTable
Dim oColumn As New DataColumn
oColumn.ColumnName = "ID"
oColumn.AutoIncrement = True
oMessageCollection.Columns.Add(oColumn)
oColumn = New DataColumn
oColumn.ColumnName = "Subject"
oMessageCollection.Columns.Add(oColumn)
oColumn = New DataColumn
oColumn.ColumnName = "From"
oMessageCollection.Columns.Add(oColumn)
oColumn = New DataColumn
oColumn.ColumnName = "Date Received"
oMessageCollection.Columns.Add(oColumn)
Dim oRow As DataRow
For Each oMessage In oResults
oRow = oMessageCollection.NewRow
oRow("Subject") = oMessage.Subject
oRow("From") = oMessage.From.Name
oRow("Date Received") = oMessage.DateTimeReceived
oMessageCollection.Rows.Add(oRow)
oRow = Nothing
Next
'---Loop through the items and do whatever is required.
DataGridView1.DataSource = oMessageCollection
DataGridView1.DataSource = oMessageCollection
Saturday, April 9, 2011
How to update Garmin device with new map image files
Have you ever been in Dubai and experience driving a car with an out of dateGarmin Device map?!
This article will guide you through updating your Garmin device with the newest file maps. It is to note that the article does not guide you through where to get the maps from; you may buy them (I would highly recommend that) or get them from “a friend” (which I am sure you will do :))
- Plug your Garmin Device to the computer by using a USB connetcion.
- Download “MapUpload” application from http://www.mapwel.eu/down.htm
- Download the Garmin map Image files that matches your region.
- Launch “MapUpload” application.
- In the right of the screen, locate the “Image Map Files” grid/table, click on any row of the “IMG Map Files” Grid and select the folder that contains the map image files, select all the image files in the folder.
- Click “Upload to GPS”, then you are done :)
-
Thursday, March 24, 2011
What is Case Management?
Enterprise content management solutions and vendors are putting lot of focus on case management trend nowadays; the term is becoming a key offering with the leading enterprise content management vendors like IBM, EMC, OPEN TEXT…etc. and is a key component in marketing the ECM technology for lots of enterprises (I guess that Microsoft is still sleeping on this subject due to the fact that they still lack the main tool to process it, which is BPM).
This article will focus on defining case management and binding it to a business case, which is contract management. Of course, there would be hundreds of cases other than managing contracts in an enterprise organization. However, managing a contract is the common sense business case that can be well digested by any individual in the organization form a knowledge worker to a top executive.
Association for Information and Image Management (AIIM www.aiim.org) defines case management as: "A “case” is any project, transaction, service or response that is “opened” and “closed” over a period of time to achieve resolution of a problem, claim, request, proposal, development or other complex activity. It is likely to involve multiple persons inside and outside of the organization, with varying relationships to each other, as well as multiple documents and messages."
You may think of a case as a "folder" that contains different documents/papers, each of which represents a transaction related to the case and forms a block of information that is vital for organizations to keep for knowledge, legal or incident management purposes. An example of this is a "medical file" that represents a patient, this medical file is a case by its own, and every document inside the medical file represents an incident or a transaction that is generated because of the patient visit to a hospital or a clinic. So the patient file is opened in a certain time and it gets closed because of multiple reasons: maybe the patient is no longer visiting the hospital for quite some time or the patient is dead. A medical File case involves the patient, his doctor, the receptionist who has opened the file and the pharmacist who may prescribe medicine per doctor's recommendation.
Case management is not a product, it is a set of technologies combined together to form what is called as “Case Management”. In order to start managing cases, you need to take into consideration the combination of multiple technologies/products: Content Management, Collaboration, Records Management and Business Process Management
- Document Management / Content Management: this is the bottom layer; you need to have a repository to store the information that feeds a case, like structured and unstructured information available in documents, papers, database transactions…etc. having a solid repository in place will allow archiving of information, classification and metadata management, it will allow also gathering information and linking information together.
- Collaboration (Team Collaboration), which forms the generation and sharing of information, team spaces here are important to allow people to sit together and discuss a case. Virtual meetings, chatting, voice communication and video conferences are main tools to strengthen such collaboration, in certain cases, people need to collaborate to take a decision on a case, or consider the subject discussed as a case at the first place. People also would need to have instant access to any information that is defining a case. In our previous example, doctors may comment on certain medical case for a patient and all the outcome of this discussion (which is named “Content”) will be available for archiving and linking in the case file, which is on our example here, the patient medical file.
- E-Mail Management: E-mails are becoming the main method of communication and contain valuable and vital information. E-mail management tools will make sure to capture essential business email and include it in the case. nowadays, more than 70% of business cases start form an e-mail communication.
- Records Management: this would apply governance and legality on a case, records management would insure that any information about a case is considered legal evidence that you may take to courts or use to solve a dispute.
- Business Process Management (BPM): this is the “Last but not least” component, I would consider this as the main core component of the whole practice, this is what links all the pieces together, all the transactions that have to happen on a case needs to be pre-defined and controlled to ensure proper management of a case. The steps of opening a patient file, registering information, assigning the proper doctor, and prescribing medicine are separate process steps that has to be managed and automated using a solid business process management module / product.
Subscribe to:
Posts (Atom)





