Hi all,
Using Workflow, I made 2 scripts to export informations from Laserfiche to Windows.
My first script is for the header and my 2nd for the value (using a loop).
This is my first one :
namespace WorkflowActivity.Scripting.CSVEntête
{
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using Laserfiche.RepositoryAccess;
public class Script1 : RAScriptClass102
{
protected override void Execute()
{
// fpath = Dossier de destination (ci-dessous fpath = C:\ProgramData\CSV\)
//string fpath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),@"CSV\\");
string fpath = "C:\\Export CSV";
//Si le dossier de destination n'existe pas, on le créer
if(!System.IO.Directory.Exists(fpath))
System.IO.Directory.CreateDirectory(fpath);
//On enregistre le fichier file.csv dans fpath
fpath = System.IO.Path.Combine(fpath, "CCISM - Rapport du " + GetTokenValue("Today") + ".csv");
//fpath = System.IO.Path.Combine(fpath, "CCISM - Rapport du test.csv");
// create a token or update one if you added an Assign Tokens activity
SetTokenValue("csvpath", fpath);
// On génère les différentes valeurs des titres des champs ";"
string s = "\"ID\";";
s += "\"Nom\";";
s += "\"Destiné à\";";
s += "\"Type de formulaire\";";
s += "\"Numéro de Liasse\";";
s += "\"Titre de la Liasse\";";
s += "\"Déclaration N°\";";
s += "\"Reçu le\";";
s += "\"Transmise le\";";
s += "\"Champ1\";";
s += "\"N°RCS\";";
s += "\"N°TAHITI\";";
s += "\"CODE APE ANCIEN\";";
s += "\"CODE APE NOUVEAU\";";
s += "\"CODE APE\";";
s += "\"N°CPS (employeur)\";";
s += "\"RRP - Nom de naissance\";";
s += "\"RRP - Nom marital\";";
s += "\"RRP - Nom d'usage\";";
s += "\"RRP - Prénoms\";";
s += "\"RRP - Surnom\";";
s += "\"RRP - Pseudonyme\";";
s += "\"RRP - Nationalité\";";
s += "\"RRP - Sexe\";";
s += "\"RRP - Né(e) le\";";
s += "\"RRP - Département\";";
s += "\"RRP - Commune/Pays\";";
s += "\"RRP - Domicile\";";
s += "\"RRP - Nom commercial\";";
s += "\"RRP - En date du\";";
s += "\"RRP - Situation matrimoniale\";";
s += "\"RRP - Marié(e) le\";";
s += "\"RRP - Département du marié(e)\";";
s += "\"RRP - Commune / Pays du marié(e)\";";
s += "\"RRP - Régime actuel\";";
s += "\"RRE - Date création/modification\";";
s += "\"RRE - Adresse du siège\";";
s += "\"RRE - Date de début d'activité\";";
s += "\"RRE - Effectif salarié\";";
s += "\"RRE - Activité exercée\";";
s += "\"RRE - Activité la plus importante\";";
s += "\"RRE - Origine de la modification\";";
s += "\"RRE - Lieu d'exercice\";";
s += "\"RREta - Situation de l'établissement pour l'entreprise\";";
s += "\"RREta - Date création-modification\";";
s += "\"RREta - N° TAHITI-ITI\";";
s += "\"RREta - Adresse\";";
s += "\"RREta - Enseigne\";";
s += "\"RREta - Activité exercée\";";
s += "\"RREta - Activité la plus importante\";";
s += "\"RREta - Origine de la modification\";";
s += "\"RREta - Lieu d'exercice\";";
s += "\"OF - Origine\";";
s += "\"RRTLE - Adresse\";";
s += "\"RRTLE - Enseigne\";";
s += "\"RRTLE - Effectif salarié de l'établissement\";";
s += "\"RRTLE - Activité exercée\";";
s += "\"RRTLE - Activité la plus importante\";";
s += "\"RRTLE - Lieu d'exercice\";";
s += "\"DF - Estimation du CA sur 12 mois\";";
s += "\"DF - TVA - CA prévisionnel sur 12 mois\";";
s += "\"DF - Régime de droit\";";
s += "\"DF - Option\";";
s += "\"DRP - Date de cessation\";";
s += "\"EF - Adresse\";";
s += "\"EF - Destination\";";
s += "\"EF - Date de cessation d'emploi de tout salarié\";";
s += "\"RC - Observations\";";
s += "\"RC - Adresse de correspondance\";";
s += "\"RC - Tél\";";
s += "\"RC - Email\";";
s += "\"RC - Fax\";";
s += "\"RC - Le(s) soussigné(s)\";";
s += "\"RC - Qualité\";";
s += "\"Numéro de liaison\";";
s += "\"Date\";";
s += "\"Numéro de feuillet\";";
s += "\"Paraphe\";";
s += "\"Fait à\";";
s += "\"Le\";";
s += "\"Nombre de feuillets\";";
s += "\"Date d'Insertion dans Laserfiche\";";
s += "\"RRAPLE - Qualité\";";
// On rentre ici les noms des différents champs et on termine par "Environment.NewLine" pour un retour à la ligne
System.IO.File.WriteAllText(fpath, s + Environment.NewLine);
}
}
}
This is the script for my values :
namespace WorkflowActivity.Scripting.CSVEnregistrements
{
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using Laserfiche.RepositoryAccess;
public class Script1 : RAScriptClass102
{
protected override void Execute()
{
// On génère les différentes valeurs séparé par un ";"
string s = "\"" + FixValue(GetTokenValue("ID_doc")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Nom")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Destiné à")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Type de formulaire")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Numéro de Liasse")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Titre de la Liasse")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Déclaration N°")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Reçu le")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Transmise le")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Champ1")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_N°RCS")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_N°TAHITI")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_CODE APE ANCIEN")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_CODE APE NOUVEAU")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_CODE APE")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_N°CPS (employeur)")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Nom de naissance")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Nom marital")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Nom d'usage")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Prénoms")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Surnom")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Pseudonyme")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Nationalité")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Sexe")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Né(e) le")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Département")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Commune/Pays")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Domicile")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Nom commercial")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - En date du")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Situation matrimoniale")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Marié(e) le")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Département du marié(e)")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Commune / Pays du marié(e)")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRP - Régime actuel")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRE - Date création/modification")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRE - Adresse du siège")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRE - Date de début d'activité")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRE - Effectif salarié")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRE - Activité exercée")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRE - Activité la plus importante")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRE - Origine de la modification")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRE - Lieu d'exercice")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RREta - Situation de l'établissement pour l'entreprise")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RREta - Date création-modification")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RREta - N° TAHITI-ITI")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RREta - Adresse")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RREta - Enseigne")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RREta - Activité exercée")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RREta - Activité la plus importante")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RREta - Origine de la modification")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RREta - Lieu d'exercice")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_OF - Origine")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRTLE - Adresse")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRTLE - Enseigne")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRTLE - Effectif salarié de l'établissement")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRTLE - Activité exercée")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRTLE - Activité la plus importante")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRTLE - Lieu d'exercice")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_DF - Estimation du CA sur 12 mois")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_DF - TVA - CA prévisionnel sur 12 mois")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_DF - Régime de droit")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_DF - Option")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_DRP - Date de cessation")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_EF - Adresse")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_EF - Destination")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_EF - Date de cessation d'emploi de tout salarié")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RC - Observations")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RC - Adresse de correspondance")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RC - Tél")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RC - Email")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RC - Fax")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RC - Le(s) soussigné(s)")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RC - Qualité")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Numéro de liaison")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Date")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Numéro de feuillet")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Paraphe")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Fait à")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Le")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Nombre de feuillets")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_Date d'Insertion dans Laserfiche")) + "\"";
s += ";\"" + FixValue(GetTokenValue("Champs_RRAPLE - Qualité")) + "\"";
// On termine la boucle par un retour à la ligne
System.IO.File.AppendAllText(GetTokenValue("csvpath").ToString(), s + Environment.NewLine);
}
private string FixValue(object o)
{
if(o == null)
return "";
else
return o.ToString().Replace("\"", "\"\""); // make sure properly escaped
}
}
}
This is working. I get my CSV's file.
But I have some trouble with accents.
Using Notepad++ I could see the csv was encoded to UTF-8 (without BOM)
I changed this to UTF-8 (I guess this is "with BOM"?)
And this is resolved my bug
My question is : How can I create a CSV's file encoded to UTF-8 (with BOM) by default?
Thanks in advance for your help.
Regards