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