Domyślnie system eDokumenty do skanowania wykorzystuje program BSCanServer, który jest instalowany na stanowisko pracownika obsługującego skanowanie. Jednakże istnieją sytuacje, w których narzędzie to może nie spełnić oczekiwań. Są to m.in.:
W takich przypadkach sugeruje się wykorzystanie programu FS_Monit. Jest to usługa, której działanie polega na nasłuchiwaniu zdefiniowanych w konfiguracji folderów w poszukiwaniu zmiany w strukturze plików, a następnie wykonaniu na tych plikach skryptu. Poniżej znajduje się opis konfiguracji tego narzędzia.
Przejdź do Menu
Konfigurację należy rozpocząć od pobrania i zainstalowania programu FS_Monit.exe :-). Instalacja jest bardzo prosta i wymaga przechodzenia pomiędzy ekranami przyciskiem Następny. Domyślnie program instaluje się w katalogu: Dla systemów 32-bitowych:
C:\Program Files\BetaSoft\FS_Monit
Natomiast dla 64-bitowych
C:\Program Files (x86)\BetaSoft\FS_Monit
[options] # ms pause_between_files=500 [path.1] path="C:\SKANY\" recursive=1 cmd=C:\Program Files\BetaSoft\FS_Monit\php\php.exe -c "C:\Program Files\BetaSoft\FS_Monit\php" -q "C:\Program Files\BetaSoft\FS_Monit\scripts\sc\doit.php" -f "%file"
Podana konfiguracja oznacza że folder SKANY na dysku C będzie obserwowany przez FS_Monit i po wykryciu nowego pliku uruchomi skrypt doit.php. (nieco niżej będzie więcej o samym skrypcie). UWAGA!!! Skrypt działa w momencie kiedy plik trafia do katalogu !!!
Następnie uruchamiamy usługę poprzez wykonanie pliku start.bat. UWAGA! Ścieżka C:\SKANY musi już istnieć!!
<?php // Adres systemu define('LOCATION', 'http://support.edokumenty.eu/vdemo/eDokumentyApi.php'); // Login i hasło oraz oznaczenie jednostki do API - umieszczone w config.inc na serwerze define('EDOK_API_LOGIN', 'edokumenty_api_vdemo'); define('EDOK_API_PASSWORD', '100%apiedokumenty'); define('DEFAULT_ENTITY_SYMBOL', 'ps'); // przyklad: LOGOS_Jan Nowak_Paper_Router_20110222.pdf define('NAME_REGEX', '/^(?<client>\d+)_(?<name>[^_]+)_(?<dctptp>[^_]+)_(?<type>[^_]+)_(?<adddat>\d{8})\.[a-zA-Z]+/'); // id jednostki organizacyjnej do której trafi utworzony dokument define('TARGET_ORUNID', 1); define('TARGET_USRNAM', ''); ?>
Użytkownik zdefiniowany w danej:
define('EDOK_API_LOGIN', 'edokumenty_api_user');
oraz hasło
define('EDOK_API_PASSWORD', '100%apiedokumenty');
Musi być analogicznie zdefiniowane w pliku config.inc systemu eDokumenty:
// Nazwa użytkownika wymaganego do zalogowania się do API define('EDOK_API_LOGIN', 'edokumenty_api_user'); // Hasło dla użytkownika EDOK_API_LOGIN define('EDOK_API_PASSWORD', '100%apiedokumenty'); // Dodatkowa stała która umożliwia pominięcie autentykacji (FALSE - nie sprawdza danych EDOK_API_LOGIN i EDOK_API_PASSWORD) // domyślnie ustawiona na TRUE, można poprzez GET oraz WSS define('EDOK_API_AUTH_MODE', TRUE);
Załączony skrypt na przykład tworzy dokument w systemie używając danych z powyżej opisanej konfiguracji (TARGET_ORUNID).
Przejdź do Menu
Niniejszy przykład będzie opisywał automatyczne generowanie różnego rodzaju pism na podstawie różnych katalogów, do których trafiają skany. Dokładniej, to na serwerze na dysku D jest katalog Skany, a w nim udostępnione poprzez sieć dwa katalogi:
Dodatkowo w każdym z nich utworzono katalog sent, do którego trafiają zaimportowane dokumenty. Czyli ścieżki wyglądają następująco:
D:\Skany\Pisma D:\Skany\Faktury D:\Skany\Pisma\sent D:\Skany\Faktury\sent
Do każdego katalogu wpada odpowiedni dokument. Wobec tego konfigurację należy rozpocząć od odpowiedniego zdefiniowania pliku: wdnotify.ini. Przykładową taką konfigurację przedstawiono poniżej:
[options] # ms pause_between_files=500 # Pisma [path.1] path="D:\Skany\Pisma\" recursive=0 cmd=C:\Program Files (x86)\BetaSoft\FS_Monit\php\php.exe -q -c "C:\Program Files (x86)\BetaSoft\FS_Monit\php" "C:\Program Files (x86)\BetaSoft\FS_Monit\scripts\paper\create_doc.php" -f "%file" -dctpid 1 #Faktury [path.2] path="D:\Skany\Faktury\" recursive=0 cmd=C:\Program Files (x86)\BetaSoft\FS_Monit\php\php.exe -q -c "C:\Program Files (x86)\BetaSoft\FS_Monit\php" "C:\Program Files (x86)\BetaSoft\FS_Monit\scripts\paper\create_doc.php" -f "%file" -dctpid 2
Należy pamiętać, aby po każdej zmianie w pliku wdnotify.ini zrestartować usługę Wykrywanie zmian w systemie plików (usługa rejestrowana przez FS_Monit przy instalacji). Jeśli jest problem z zatrzymaniem to należy zabić proces wdnotify.ini.
Następnie należy utworzyć w katalogu:
C:\Program Files (x86)\BetaSoft\FS_Monit\scripts\
podkatalog np. paper i umieścić w nim skrypt create_doc.php oraz plik konfiguracyjny config.inc
Skrypt create_doc.php służy do generowania dokumentu na podstawie parametrów wywołania oraz parametrów z pliku konfiguracyjnego. Plik konfiguracyjny config.inc ma postać:
<?php final class Config { public static $EDOK_API_LOGIN = 'edok_api_user'; public static $EDOK_API_PASSWORD = 'aqq123'; public static $DEFAULT_ENTITY_SYMBOL = 'def'; public static $DEFAULT_DCTPID = 2; public static $EDOK_API_LOCATION = 'http://localhost/eDokumentyApi.php'; public static $TARGET_ORUNID = 3; public static $SENT_DIR = 'D:/Skany/Faktury'; public static $NAME_REGEX = '/^(?<name>[^_]+)/'; public static $args = NULL; } if (isset($_SERVER['argv'])) { $args = $_SERVER['argv']; array_shift($args); Config::$args = $args; } ?>
Przejdź do Menu
W powyższym przykładzie przedstawiono sposób realizacji ładowania określonego typu plików (w tym przypadku faktury) na podstawie lokalizacji załadowanego pliku.
Można tworzyć pliki w inny sposób np. parametry przekazywać poprzez lokalizację katalogu i wykrywanie jego nazwy. Można również determinować typ dokumenty na podstawie nazwy pliku.
Często spotykaną konfiguracją jest rozpoznawanie nazwy klienta na podstawie nazwy katalogu (musi być zgodna z symbolem kontrahenta) i umieszczenie automatyczne na tej podstawie dokumentu w kartotece klienta (skrypt doit.php).
W pliku config.inc (najlepiej umieścić w osobym katalogu razem z doit.php) należy zmienić NAME_REGEX:
public static $NAME_REGEX = '/^(?<client>\w+)\\\(?<name>[^_]+)/';
Usługę FS_Monit można wykorzystać również do rozpoznawania tekstu (OCR) lub kodów kreskowych i na tej podstawie generowania dokumentów z uzupełnioną metryką. W sekcji download dostarczone są dodatkowe skrypty.