Workflow for document approval

This post describes a simple workflow for document approval.

In a company, most of the time, documents need to be approved before sending to a customer or even before distributing it to colleagues.

The first things to do is to define roles :

  • A writer
  • A reviewer
  • An approver

The writer submit a document using the standard dms (document managing system)
During the upload he is asked to choose, among a list of person, a reviewer.

The list of reviewer should be based on the type of document and the content of document. The list should propose a list of expert users. This means that the list should be constructed in advance.

The document is uploaded with metadata :

  • date of submission
  • writer username
  • proposed reviewer username

The proposed reviewed is notified by email or in the dms dashboard that a document is pending for review.

Two options:

  1. The reviewer can review the document
  2. The review cannot review the document (for time reason or because he think that he is not the most suitable expert in this field)

In the first case, the reviewer has the following options :

  • Mark the document as ok for approval
  • Correct the document, upload the corrected version and mark as ok for approval
  • Ask the writer to modify the document and gives him his comments and mark the document as awaiting writers corrections

to be continued

Run Solr with a windows pc

This post is more a memo for my self than a tutorial.

Download Solr ( to c:/km/solr/
Dowload Jetty ( to c:/km/jetty/
Download Curl ( to c:/km/curl

Follow this tutorial to run Solr :

Starting Solr : ~/solr/example$ java -jar start.jar
Index All XML documents from the exampledocs folder : ~/solr/example/exampledocs$ java -jar post.jar *.xml

Assume you have a doc file called doc2.doc in the folder, index it using : C:\km\solr\example\exampledocs> c:\km\curl\curl.exe "http://localhost:8983/solr/update/extract?" -F "myfile=@doc2.doc"

Don’t forget to change the or it will replace the last document.

To verify that it has been properly indexed go to : http://localhost:8983/solr/collection1/browse
And type in something contained inside the document.

You can do the same with pdf.

To add the filename to the indexed file open :
and add :
Then index a file using :
C:\km\solr\example\exampledocs> c:\km\curl\curl.exe "http://localhost:8983/solr/update/extract?\km\solr\example\docexamples\doc2.doc&commit=true" -F "myfile=@doc2.doc"

Even simpler :
Index a file using :
C:\km\solr\example\exampledocs> c:\km\curl\curl.exe "http://localhost:8983/solr/update/extract?\km\solr\example\docexamples\doc2.doc&commit=true" -F "myfile=@doc2.doc". It will appear directly in velocity !

Now my next step is to find out :

  • how to index a full windows folder structure
  • how to link with php

Implementing Knowledge Management in Enterprise

Why Knowledge Management (KM) ?

  • Effectiveness
    • Don’t re-invent neither the wheel nor the bearing
  • As a consequence:
    • more time and room for creativity & innovation
    • less costs
KM Chart
KM Chart source : Mc Kinsey, 2012

The objectives of KM man in an organization are to promote knowledge creation, knowledge growth, knowledge communication and knowledge preservation in the organization (Steels, 1993).  It entails managing knowledge resources in order to facilitate access and reuse of knowledge (O’Leary, 1998)

KM Basic Principles
KM Basic Principles, source : Dieng, INRIA, 1998

How to efficiently introduce KM ?

  • KM starts by Managing the Change
    • Focus on the people, their habits, their way of working
    • Accompanying the tool introduction with training
    • Spread best practices
    • don’t focus on the tool but maximize the way people use the tool (your tool can be great but if no one use it…)
  • A good KM strategy requires
    • support from the hierarchy
    • money and time
    • resource (a knowledge manager)
    • continuous evaluation of the tools and the practices
  • Make the difference between DMS (document management system) & Information Portal
  • Don’t neglect social media

Action Plan

  1. Extend the DE/PV system used in one site to all test labs. Possible Improvements: additional tags, link to the file, notifications send to the people when a new file is added in their area of interest.
  2. Create a spider (or wikimedia or quickR) for persistent information written in an encyclopedically way or How-Tos, processes. Permalink to files may be included in the pages.
  3. Store persistent knowledge (Test reports, former projects) in a plain text searchable system (DMS). The system should allow tagging. This will replace the Windows folder architecture and the duplication of files.
  4. Use the shared Windows folder growing knowledge (current project). Even better use a file sharing platform that allows versioning (to track changes) and/or sametime editing of files. Prefer emailing the file link than the file itself.


  • plain text search means that the search engine can search inside document (not only in the filename!)
  • Tags allow to create dynamical virtual folder called bins without duplicating files.
KM Solutions Matrix
KM Solutions Matrix

Some details on the criteria :

  • Simplicity of retrieving knowledge : Getting access to the information, to the files
  • Simplicity of adding knowledge : Adding files to the knowledge
  • Search function: Searching for a specific subject
  • Tagging function: Allow the use of meta data to organize projects based on tags
  • Versionning (history): Keep track of all previous versions
  • Security (confidentiality): Are the data safe ?
  • Right controls: Manage Admin User, block users, create group of user
  • Ease of getting support: Community support, paid consultant support
  • Compatibility: In case of change of system, is it easy to switch ?
  • Mobility and multi-site: Access to the information from anywhere
  • Installation: Easy to install ?
  • Group solution: Does it fit into Company Group policies ?
  • Interactions (notifications,…): Neswletters, email notification when new knowledge arrives.
  • Price (and price of support): Price of acquisition, annual fee, price of support
Group Needs
Group Needs

A point of view on the excel sheet subject

Convert xls to matlab :

Pros :

  • Matlab can do more things
  • Matlab can protect the software against editing

Cons :

  • Matlab is a lot more complicated for doing simple things
  • Matlab is more expensive
  • Excel let the people make the software evolve

Conclusion :

If you want to empower the people, let them use and customize their excel sheets. They might have great ideas. But collect these improvements and needs to validate them and distribute to all.

If you want to go into a large software that can do a lot of things in a controlled way hire a matlab consultant. If you do not add all function into the matlab soft, the people will continue to use excel sheets…

Alternative : distribute an official version of the sheet where everyone should verify its data produced by its own sheet.

Tag bins
Tag bins

The task of the knowledge manager

  • Collect permanently the needs and habits of workers
  • Identify unreachable knowledge (brain located knowledge or C:\ located knowledge or printed knowledge) and make them accessible
  • Facilitate the adoption of new tools and best practices
  • Keep the knowledge bank always up-to-date
  • Benchmark new solutions
  • Manage access and rights
  • Measure and report the ROI of the Knowledge Management strategy


Bonsoir à tous,
Au vu du grand nombre de personnes me demandant des informations sur mes plugins pour woocommerce, les voici en téléchargement gratuit :

Pour sips atos :

Pour cyberplus systempay :

Ces deux plugins fonctionnaient très bien mais je ne les ai pas testés avec les mise à jour de woocommerce.

Attention, je ne fais aucun support ni par mail ni par téléphone. Donc si vous avez l’âme d’un débrouillard en php. C’est pour vous !

Made In France

Voici une petite liste de vêtements et accessoires fabriques en France que je recommande :

Ce qu’il me reste à trouver made in france :

  • des jeans (pas encore trouvé d’équivalent à Levis)
  • des pulls col rond basic en laine (equivalent à Tommy Hilfiger)
  • des pulls col V basic (equivalent UNIQLO)
  • des shorts de ville basics

Voici ceux que je ne recommande PAS :

le slip francais : mauvaise aulite de tissu, boxer mal coupés, tee shirt completement deformés après le premier lavage, etiquette des tee shirt qui s’en va après quelques lavages.

D’autres produits indispensables fabriqués en France:

  • Dentifrice : fluoryl

A Contact Form 7 to Trello Process

The idea is to add a trello card to your trello board anytime you receive an email from your contact form 7 wordpress plugin.

Here is how you can do it :

add_action( 'wpcf7_mail_sent', 'your_wpcf7_mail_sent_function' );

function your_wpcf7_mail_sent_function($contact_form){

	$posted_data = $contact_form->posted_data;
	if ($formid==2){
		// devis détaillé :
		$name="Demande de devis détaillé - ".$posted_data['url']."\n\n";
		$desc="De : ".$posted_data['your-name']." ".$posted_data['your-email'].""."\n\n";
		$desc.="Sujet : Demande de devis détaillé"."\n\n";
		$desc.="Société : ".$posted_data['societe']."\n\n";
		$desc.="Téléphone : ".$posted_data['tel']."\n\n";
		$desc.="URL : ".$posted_data['url']."\n\n";
		$desc.="Langue : ".$posted_data['lang']."\n\n";
		$desc.="Cible : ".$posted_data['cible']."\n\n";
		$desc.="Etat : ".$posted_data['etat']."\n\n";
		$desc.="Année de création : ".$posted_data['annee']."\n\n";
		$desc.="Facebook : ".$posted_data['facebook']."\n\n";
		$desc.="Twitter : ".$posted_data['twitter']."\n\n";
		$desc.="Mots clés :".$posted_data['keywords']."\n\n";
		$desc.="Budget : ".$posted_data['budget']."\n\n";
		$desc.="Informations supplémentaires : ".$posted_data['your-message']."\n\n";
		$desc.="Affilié :".$_COOKIE['from']."\n\n";
		$desc.="-- Ce email a été envoyé via formulaire de contact #".$formid." de xxx "."\n\n";
	if ($formid==3){
		// devis rapide :
		$name="Demande de devis rapide - ".$posted_data['url']."\n\n";
		$desc="De : ".$posted_data['your-name']." ".$posted_data['your-email'].""."\n\n";
		$desc.="Sujet : Demande de devis rapide"."\n\n";
		$desc.="Téléphone : ".$posted_data['tel']."\n\n";
		$desc.="URL : ".$posted_data['url']."\n\n";
		$desc.="Budget : ".$posted_data['budget']."\n\n";
		$desc.="Affilié :".$_COOKIE['from']."\n\n";
		$desc.="-- Ce email a été envoyé via formulaire de contact #".$formid." de xxx "."\n\n";
	elseif ($formid==4) {
		// Demande de rappel :
		$name="Demande de rappel - ".$posted_data['tel']."\n\n";
		$desc=$posted_data['tel']." souhaite être rappelé !"."\n\n";
		$desc.="Affilié :".$_COOKIE['from']."\n\n";
		$desc.="-- Ce email a été envoyé via formulaire de contact #".$formid." de xxx "."\n\n";

function add_to_trello($name,$desc,$listid,$boardid,$apiKey,$token){
	$data = array(
		'idList' => $listid,
		'name' => $name,
		'desc' => $desc

function cURL_POST_trello($data,$url,$key,$token){
$ch = curl_init();
if ($questionmarkishere){$char='&';}else{$char='?';}
curl_setopt($ch, CURLOPT_URL, $url.$char.'key='.$key.'&token='.$token);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HEADER, false);
$body = curl_exec($ch);
$headers = curl_getinfo($ch);
return $result;


Bonjour à tous,
Avec le retour d’expérience de mes clients, je vois que le système de livraison n’est quasiement pas utilisé car chacun veut pouvoir personaliser ses tarifs et les propositions qu’il fait au client. Donc les futures versions n’auront plus ce le système de livraison ! Vous pouvez néanmoins me faire une demande de devis pour développer vos systèmes de livraison personalisés :

Version 2.4

Bonsoir à tous,

Je voulais vous expliquer le principe de WPCB : je développe pour mes sites de vente en ligne et pour certains de mes clients des solutions sur-mesures pour leur boutique wordpress, pour capitaliser mon travail j’ajoute progressivement des versions simplifiées des solutions dans ce plugin. Toutes les solutions ne sont pas testées sur toutes les boutiques mais fonctionnent pleinement dans mes 5 boutiques en ligne.

La version 2.4 comprends nottament des options pour faire des ventes privées avec wordpress e-commerce : Un compte a rebours et un système pour afficher le nombre de vente déjà faites.

Egalement j’ai intégré un système de facture très simple mais légal avec une numérotation incrémentale des numéros de facture. Le design de la facture sera amélioré avec le temps évidemment.

J’ai aussi ajouté de nouveaux shortcode pour personnaliser l’email de confirmation d’achat.

Bon téléchargement et n’oubliez pas de me faire un don sur paypal : :-)