Los dispositivos Xerox Workcentre, que incluyen funcionalidad Scan-To-Email, pueden ser configurados para obtener la lista de usuarios del un Active Directory o bien de un Addressbook configurado en el mismo dispositivo.

Esta última opción requiere exportar el ‘template’ propio, modificar/añadir los nombres y correos electrónicos, y luego volver a incorporarlo en el dispositivo. El formato de entrada es normalmente un diallist.csv exportado del dispositivo que tiene los siguientes campos:

“*”,1,2,3,,
MFDN,MFADDRT,MFCN,MFIKEY,MFVDN,MFLINE,MFFAX,MFRBC,MFCMODE,MFSRESO,MFSHEET,MFSHEETC1,MFSHEETC2,MFPMAX,MFTMSND,MFTMSNDH,MFTMSNDM,MFMBOX,MFMBOXPS,MFMBOXID,MFRLY,MFRLYID,MFRLYPRN,MFRLYNUM,MFCHRGT1,MFCHRGT2,MFCHRGT3,MFFCODE,MFPCODE,MFSG3FRBT,MFMDMSPD,MFECMFRBT,MFEJBIGFRBT,MFIFAX,MFTIFF,MFIFAXCMODE,MFIFAXSRESO,MFIFAXPMAX,MFIFAXTMSND,MFIFAXTMSNDH,MFIFAXTMSNDM,MFSN,MFGN,MFMAIL,MFAUX1,MFAUX2,MFAUX3,MFSVRT,MFSVRADDR,MFPORT1,MFPORT2,MFUSER,MFPASSWD,MFVOLUME,MFPATH,MFUSETLS,MFIPFAX,MFIPFAXCMODE,MFIPFAXSRESO,MFIPFAXSHEET,MFIPFAXSHEETC1,MFIPFAXSHEETC2,MFIPFAXPMAX,MFIPFAXTMSND,MFIPFAXTMSNDH,MFIPFAXTMSNDM,MFIPFAXMBOX,MFIPFAXMBOXPS,MFIPFAXMBOXID,MFIPFAXRLY,MFIPFAXRLYID,MFIPFAXRLYNUM,MFIPFAXRLYPRN,MFIPFAXCHRGT1,MFIPFAXCHRGT2,MFIPFAXCHRGT3,MFIPFAXFCODE,MFIPFAXPCODE,MFIPFAXSG3FRBT,MFIPFAXMDMSPD,MFIPFAXECMFRBT,MFIPFAXEJBIGFRBT
0001,MAIL,John Doe,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,john.doe@email.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
0002,MAIL,Mary Smith,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,mary.smith@email.com,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
“*”

Para hacerlo sencillo, Carlos (de quien tengo permiso para poner aquí esto) ideó dos scripts: el primero (XeroxUsers1.vbs) convierte este fichero en un fichero temporal diallist_temp.csv que es fácilmente modificable en Excel. Tras añadir los campos necesarios, ejecutamos el segundo script (XeroxUsers2.vbs) que vuelve a recrear cabecera y campos necesarios, y ese es el que importamos en el dispositivo Xerox.

XeroxUsers1.vbs

set fs=CreateObject(“Scripting.FileSystemObject”)
dim arrStr
set FileOrigen = fs.OpenTextFile(“diallist.csv”)
Set FileDestino = fs.CreateTextFile(“diallist_temp.csv”, True)
Do while NOT FileOrigen.AtEndOfStream
linea=FileOrigen.ReadLine
IF len(linea)>12 THEN
arrStr = split(linea,”,”)
IF arrStr(0)<>”MFDN” then
name = arrStr(2)
email = arrStr(43)
FileDestino.WriteLine(name & “,” & email)
end if
end if
Loop
FileOrigen.Close
FileDestino.Close
set FileOrigen = Nothing
set FileDestino = Nothing
set fs = Nothing
Dim oShell
Set oShell = WScript.CreateObject (“WScript.Shell”)
oShell.run “notepad.exe ” & “diallist_temp.csv”
Set oShell = Nothing

XeroxUsers2.vbs

dim arrStr
i=1
set fs=CreateObject(“Scripting.FileSystemObject”)
set FileOrigen = fs.OpenTextFile(“diallist_temp.csv”)
Set FileDestino = fs.CreateTextFile(“diallist_new.csv”, True)
titulo1=Chr(34) & “*” & Chr(34) & “,1,2,3,,”
titulo2=”MFDN,MFADDRT,MFCN,MFIKEY,MFVDN,MFLINE,MFFAX,MFRBC,MFCMODE,MFSRESO,MFSHEET,MFSHEETC1,MFSHEETC2,MFPMAX,MFTMSND,MFTMSNDH,MFTMSNDM,MFMBOX,MFMBOXPS,MFMBOXID,MFRLY,MFRLYID,MFRLYPRN,MFRLYNUM,MFCHRGT1,MFCHRGT2,MFCHRGT3,MFFCODE,MFPCODE,MFSG3FRBT,MFMDMSPD,MFECMFRBT,MFEJBIGFRBT,MFIFAX,MFTIFF,MFIFAXCMODE,MFIFAXSRESO,MFIFAXPMAX,MFIFAXTMSND,MFIFAXTMSNDH,MFIFAXTMSNDM,MFSN,MFGN,MFMAIL,MFAUX1,MFAUX2,MFAUX3,MFSVRT,MFSVRADDR,MFPORT1,MFPORT2,MFUSER,MFPASSWD,MFVOLUME,MFPATH,MFUSETLS,MFIPFAX,MFIPFAXCMODE,MFIPFAXSRESO,MFIPFAXSHEET,MFIPFAXSHEETC1,MFIPFAXSHEETC2,MFIPFAXPMAX,MFIPFAXTMSND,MFIPFAXTMSNDH,MFIPFAXTMSNDM,MFIPFAXMBOX,MFIPFAXMBOXPS,MFIPFAXMBOXID,MFIPFAXRLY,MFIPFAXRLYID,MFIPFAXRLYNUM,MFIPFAXRLYPRN,MFIPFAXCHRGT1,MFIPFAXCHRGT2,MFIPFAXCHRGT3,MFIPFAXFCODE,MFIPFAXPCODE,MFIPFAXSG3FRBT,MFIPFAXMDMSPD,MFIPFAXECMFRBT,MFIPFAXEJBIGFRBT”
cadena1=”,MAIL,”
cadena2=”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,”
cadena3=”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,”
pie=Chr(34) & “*” & Chr(34)
FileDestino.WriteLine titulo1
FileDestino.WriteLine titulo2
Do while NOT FileOrigen.AtEndOfStream
linea=FileOrigen.ReadLine
IF len(linea)<>0 THEN
arrStr = split(linea,”,”)
name = arrStr(0)
email = arrStr(1)
if len(i)<2 then
i=”0″ & i
end if
if len(i)<3 then
i=”0″ & i
end if
if len(i)<4 then
i=”0″ & i
end if
FileDestino.WriteLine i & cadena1 & name & cadena2 & email & cadena3
i=i+1
end if
Loop
FileDestino.WriteLine pie
FileOrigen.Close
FileDestino.Close
set FileOrigen = Nothing
set FileDestino = Nothing
set fs = Nothing