asked on April 16, 2018

Hi all,

 

Actually, I'm using Workflow and Script SDK to export rapport to Windows (csv).

I'm using 2 scripts :

1 for the header

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");

            // 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°\"";

             // 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);

        }
    }
}

And the other for values (using the tool search and loop)

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°"))           + "\"";


            // 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
        }
    }
}

My question is :

Instead of defining the headers and values, is it possible to reuse the Laserfiche Columns' configuration?

 

This is what i means.

Using Laserfiche, I created/saved the columns LIASSES

 

And still using Laserfiche, I can export my rapport.

 

Now I wish my workflow can do that. I means I don't want to configure headers and values in my script SDK, I want to use them from my column's saved.

 

Is it possible and if yes, how can I do ?

Thanks in advance.

 

Regards

0 0