Se pueden subir datos a Artus enviando los archivos mediante una petición de CURL. Curl no es otra cosa que una herramienta que permite hacer peticiones http o https a una página web, entonces lo podemos usar para enviarle el archivo a Artus en la nube de BITAM pasándole como parámetros la cuenta de usuario y el archivo a enviar.
Linux normalmente tiene un comando curl integrado, para Windows es necesario obtener esta herramienta, recomendamos esta: curl for Windows
Solo se descarga y se descomprime en un folder.
Hecho esto se puede crear un batch que ejecute el comando curl con parámetros como el que se muestra a continuación
curl -F file=@archivo.xlsx -F sheet="RealDesglose$" -F company="Default" -F userEmail=usuario@dominio.com.mx -F repositoryid=4949 -F userPassword=mipassword -F processCube=1 http://kpionline5.bitam.com/artus/genvi_test/xls_loader/loadservice.php
si el archivo es CSV entonces el commando queda así:
Curl.exe -F file=@archivo.csv -F company="LA COMPAÑIA SA DE CV" -F userEmail=usuario@dominio.com -F repositoryid=4615 -F userPassword=mipassword -F processCube=1 http://kpionline7.bitam.com/artus/genvi_test/xls_loader/loadservice.php
A continuación, otro ejemplo, pero con time-out
Curl.exe --trace-ascii load.log --max-time 1600 --connect-timeout 20 --keepalive-time 20 -F file=@xfer40914.csv -F company="R&R DISTRIBUTORS, LLC" -F userEmail=test_rr@kpionline.com -F repositoryid=4615 -F userPassword=40914 -F processCube=1 http://kpionline7.bitam.com/artus/genvi_test/xls_loader/loadservice.php
Otros keys que se pueden usar y ejemplo:
-F FieldDelimiter=";"; -F insertDummy="xxxxx"
El primero es para definir el carácter a usar como separador en caso de ser un csv.
El segundo es para insertar un primer renglón en el archivo para forzar a que todos los renglones siguientes los trate como texto. si no se hace esto se escanean los primeros n renglones para determinar qué tipo de dato es la columna, si se encuentra que son números a partir de ahi todo se tratará como números y si en los renglones finales se encuentra un alfanumérico, por ejemplo "AB23" este se tomará como NULL. Se usa esto como truco para forzar a que todos sean tratados como alfanuméricos. Ejemplo, en caso de que sea un txt se inserta un dummy entre el titulo y el body, debe de ir así:
curl -F file=@%Archivo% -F userEmail=micuenta@dominio.com -F userPassword=mipassword -F repositoryName=fbm_bmd_0XXX -F FieldDelimiter=TAB -F columns="StoreNumber|UPC|VendorNbr|VendorName|StrOnHandQty|StrOnHandCost|StrOnHandRetail" -F press=Submit -F insertDummy="xxxx" http://kpionline7.bitam.com/artus/genvi_test/xls_loader/loadservice_test.php
Para enviar un archivo texto sin header, se puede especificar en el llamado cuales son las columnas que tiene el archivo con
-F columns="Distributor|RouteType|CustomerType|CustomerKey|CustomerName|Address|City|State|ZC"
NOTA: Hay que modificar la url paraque apunte al servidor correcto donde se encuentra la Cuenta. Previamente se debió definir como conector de “Excel” el archivo a subir. El valor de company, en caso de que se use esta dimension en el cubo, debe coincidir con el valor en dimcompany. No olvidar cambiar el repositoryid por el valor real.
Para Artus 940 o superior
Para esta versión se tiene que añadir el comando -F asTxtFile=1 como parte del llamado para que acepte los CSV
Ejemplo:
Curl.exe -F file=@ventas1.CSV -F asTxtFile=1 -F userEmail=cuenta@midominion.com -F userPassword=mipassword -F processCube=1 https://kpionline5.bitam.com/artus/gen940/xls_loader/loadservice.php