Главно меню:

Категории

декември 2016
П В С Ч П С Н
« Сеп.    
 1234
567891011
12131415161718
19202122232425
262728293031  

Връзки

Скрипт за администрация на Dreem Personal

В последните реализации на Dreem Personal е експониран COM компонент за изпълнение на административни задачи върху системната база данни. Достъпът да него става чрез програмен идентификатор DreemContainer15.cPersonalAdmin.

Примерен VBScript за архивиране на системната база данни изглежда така:

Set admin = CreateObject("DreemContainer15.cPersonalAdmin")
If Not admin.BackupDatabase("C:\BACKUP\Archive_2014.BAK", Error:=error) Then
    WScript.echo error
End If

Описание на методи на административния компонент

Следва пълен списък с методи на cPersonalAdmin

BackupDatabase(string BackupFile, [string Description], [string Error])

BackupFile – файл в който да се направи архив, например "C:\BACKUP\Archive_2014.BAK"
Description – опционално описание на архива, така както ще се показва във форма за възстановяване на архиви
Error – опционално описание на грешка ако функцията върне False

Създава архив на текущата база данни. Ако файлът е с разширение .7z архивът автоматично се компресира със 7-zip

RestoreDatabase(string BackupFile, [string Error])

BackupFile – архив от който се възстановява базата данни, например "C:\BACKUP\Archive_2014.BAK"
Error – опционално описание на грешка ако функцията върне False

Архивът предварително е направен с функция BackupDatabase. Ако файлът е с разширение .7z или .zip файлът автоматично се декомпресира. Ако файлът е с разширение .mdf системата търси съпътстващ .ldf файл и прави опит да закачи базата данни от двата файла.

PatchDatabase([bool ShowUI])

ShowUI – опционално указва дали да се показва форма с прогрес. По подразбиране е False

Прилага последни подобрения и доработки на базата данни. Обикновено се използва след възстановяване на архив от по-стара реализация от текущата. Дори да не се приложат доработките, при стартиране Dreem Personal автоматично предлага да обнови базата данни преди да даде достъп до функционалностите ѝ.

DetachDatabase([string Error])

Error – опционално описание на грешка ако функцията върне False

Разкача текущата база данни от инстанцията на SQL Server, така че .mdf и .ldf файловете да могат да се копират и преместват на друга машина.

ApplyHotfix(string Script, [string Error])

Script – SQL скрипт, който се изпълнява в системната база данни
Error – опционално описание на грешка ако функцията върне False

Използва се за прилагане на корекции на проблеми и доработки, които са реализирани след последната официална реализация.

StartDbMaintenance([string Error])

Error – опционално описание на грешка ако функцията върне `False`

Стартира процедура за поддръжка на системната база данни. Това включва проверка за коректност на данните, реиндексиране на таблиците, актуализиране на статистиките по колони на таблиците и архивиране в системен архив.

GetDbSetup(recordset Info, [string Error])

Info – системни настройки в Recordset
Error – опционално описание на грешка ако функцията върне False

Връща информация за текущи настройки на Dreem Personal. Всяко от полетата на Info отговаря на реквизит във функционалност Администрация | Настройки.

Самостоятелна инсталация на POS система

Инсталацията на Dreem Personal е удобно пакетирана в саморазпакетиращ се инсталатор DreemPrs15.exe, който след декомпресиране автоматично преценява ако намери предишна инсталация дали да надгради съществуващата инсталация или да стартира помощник за нова инсталация на продукта (ако не намери предишна такава).

Технологията на инсталацията използва услуга Windows Installer на операционната система, което ни позволява да се възползваме от интересни опции при инсталация на пакета DreemPrs15.msi от инсталацията на Dreem Personal. Например могат да се инсталират на части отделни features от целия пакет.

Още при подготовката на пакета на инсталацията всички необходими файлове за инсталацията на Dreem POS са обособени в отделен feature наименуван FePOS. Неговата самостоятелна инсталация може да се стартира от командния ред със следната команда:

c:>msiexec /i C:\Path\To\DreemPrs15.msi ADDLOCAL=FePOS /qb

Където C:\Path\To е папката, в която е свален пакетът DreemPrs15.msi, а параметър /qb указва на Windows Installer да показва минимален (basic) интерфейс на инсталатора, без стъпки за потвърждаване.

Тази команда инсталира само програмните файлове на Dreem POS без да инсталира базата данни или изпълнимите файлове на back-end системата (в случая Dreem Personal). По този начин инсталирана, самостоятелната инсталация на Dreem POS може да работи само ако е настроен пренасочващ псевдоним за достъп до база данни на Dreem Personal на друга машина.

Освен това ако искаме от командния ред да променим папката, в която се инсталира Dreem POS (по подразбиране %ProgramFiles%\Dreem Personal 1.5), можем да използваме променлива TARGETDIR по следния начин:

c:>msiexec /i C:\Path\To\DreemPrs15.msi ADDLOCAL=FePOS TARGETDIR=C:\Unicontsoft\POS

Използвайки абсолютно същата технология можем да подменим базата данни MSDE 2000 от инсталацията на Dreem Personal със свободната и по-нова SQL Server Express версия 2008 R2 или версия 2012, за да може подсистемата за работа с базата данни на Dreem Personal да се възползва от по-големия допустим размер на потребителски бази данни в тези версии (до 10GB). Но за това ще говорим отделно в някоя следваща публикация.

Как да използваме Dreem POS в локална мрежа

ВАЖНО! Unicontsoft не поддържа подобна настройка на системата! Описанието и стъпките по-долу са FYI (само за информация)!

Приемаме че имате Windows локална мрежа с компютри POS-PC и DREEM-PC и искате Dreem POS на първата машина (POS-PC) да използва базата данни на Dreem Personal на другата машина (DREEM-PC).

  1. Уверете се, че на POS-PC можете да отваряте и копирате файлове от машина DREEM-PC
    • ако машините са в domain, използвайте потребител от domain-а
    • ако машините са в workgroup, настройка Sharing and security model for local accounts трябва да е Classic – local users authenticate as themselves и паролата на текущия потребител на POS-PC трябва да съвпада с паролата на същия потрелител на DREEM-PC
    • във firewall.cpl в раздел Exceptions трябва да е разрешен File and Print Sharing
  2. След това се уверете, че на двете машини има инсталирана еднаква последна реализация на Dreem Personal

На POS-PC трябва да настроите пренасочващ псевдоним с име ucs-instance, който ще се използва от Dreem Pos за да достъпва базата данни на Dreem Personal

  1. На POS-PC от Start->Run стартирайте cliconfg.exe (На 64-битови OS стартирайте C:\Windows\SysWOW64\cliconfg.exe)
  2. В раздел Alias на Client Network Utility създавайте нов псевдоним ucs-instance (виж т.1 на графиката) по Named Pipes (виж т.2) и го насочете към инстанция DREEM-PC\UCS (виж т.3)
  3. На POS-PC стартирайте Dreem Pos и проверете дали имате достъп до данните на Dreem Personal на DREEM-PC

Имайте предвид, че при обновяване на реализацията на Dreem Personal трябва на POS-PC и на DREEM-PC това да се случва едновременно, така че да се използва една и съща реализация на двете машини.

Още веднъж предупреждаваме: Използвайте това решение на свой риск само ако знаете какво правите! Unicontsoft не носи отговорност за възможна загуба на данни!

Напълно възможно e системата да не работи оптимално или въобще в някои гранични случаи, защото горната настройка не е тествана и не се поддържа официално от Unicontsoft!

Криптиране на връзка

Работа под терминален сървър

POS системата работи успешно под терминален сървър. При подобна постановка фискалният принтер (ФП) е свързан към локален COM порт на работната станция в обекта, докато приложението на POS системата се изпълнява на централен терминален сървър. За да може локалният ФП да бъде достъпен от терминалната сесия на потребителя, в раздел Local Resources на Remote Desktop Connection, маркираме Ports като споделен със сесията ресурс.

Този начин на организация на касовото място (on-line) изисква наличие на непрекъсната връзка с терминалния сървър в офис на организацията, който на свой ред извършва в реално време комуникацията с централната база данни. При пропадане на комуникационната среда обработка на клиенти в отдалечения обект става невъзможна. Затова обикновено е наложително  използването на резервни връзки тип мобилен интернет като  M-Tel Surf NonStop за backup на комуникацията с терминалния сървър.

Асинхронни операции

При работа в отдалечени обекти, които използват ненадеждни комуникационни връзки с централната база данни, POS системата има възможност за реализиране на т.нар. асинхронни операции. При този режим на работа (off-line) документите за продажба първо се регистрират в локална база данни на касовото място и веднага се отпечатват на ФП. В последствия при наличие на връзка с централната база данни,  тези документи се прехвърлят в Dreem във фонов режим. Ако връзката с централната база данни бъде прекъсната, това не влияе катастрофално на непосредствената работа на POS работното място, т.е. няма прекъсване на обслужването на клиенти.

Асинхронните операции поддържат само създаване на док. за продажба и създаване на нови контрагенти, което означава, че могат да се правят и продажби с клиентски карти. На този етап няма възможност за издаване на фактури в off-line режим, заради изискването за запазване на поредността на номерата на данъчни документи.

Използване на SSH тунели

Асинхронните операции предполагат локална инсталация на POS системата на работна станция в отдалечения обект. За извършване на надеждна връзка с централната база данни, освен стандартни VPN решения, може да се използва и вградената в POS системата възможност за криптиране посредством SSH тунелиране.

За целта във формата за настройки на база данни избераме бутона с катинар и настройваме адрес и порт на SSH сървър (оставаме празно за стандартен 22-ри порт), както и потребител и парола за достъп до SSH сървъра. Вместо парола можем да използваме файл с частен ключ на потребителя, който предварително е регистриран с публичния си ключ на SSH сървъра.

За реалното осъществяване на SSH тунела POS системата използва plink.exe от пакета PuTTY и съответно за създаване на ключове на потребители може да се използва puttygen.exe

За инсталация на SSH сървър под Windows може да се използва някой пакет на OpenSSH със cygwin като copssh или дори по-непретенциозния freeSSHd. Също относително лесно SSH сървър може да се реализира на скромно (бордер) рутерче с преинсталиран DD-WRT firmware, както е описано в този туториал.

Използване на ваучери в POS

Аванси в Dreem – не е толкова сложно

В търговската система имаме възможност да работим с аванси от наши клиенти и аванси към наши доставчици. В първия случай използваме документи за продажба, докато във втория работим по аналогичен начин, но с документи за покупка.

Имаме две принципно различни ситуации, в които клиент плаща пари без да получава стока. В единия случай той знае точно какво авансира, например иска до края на месеца да тегли тухли от нашия склад, в другия не е уточнил за какво ще използва аванса.

Първият случай най-лесно се отработва директно с документ за продажба на съответната стока, като парите постъпват във връзка с приходeн касов ордер. Единствената особеност е, че не се генерира складов документ за цялото количество, а при всяко теглене се генерира отделен свързан складов документ, който включва само усвоеното количество, и така няколкократно докато 100% от количествата в продажбата не се усвоят чрез складовите документи.

Издаването на фактура трябва да стане в срок от 5 дни от осъществяването на сделката, в случая за данъчно събитие се счита създаването на документ за продажба и непосредственото плащане. Често се практикува фактуриране „накуп“ в края на месеца, но тази практика може да бъде атакувана от данъчните като недопустима.

Във втория случай клиентът иска да авансира няколко продажби на различни продукти в неизвестни количества. Тогава издаваме документ за продажба, в който включваме единствено продукт аванс, с количество съответната авансирана сума. Продуктът аванс в системата се третира специално и неговата цена с ДДС винаги е 1 лв. Имаме възможност на реда с аванса да въведем стойност на партида, като по този начин при усвояване на авансите се получават разбити суми по различните активни партиди.

След като сме приключили продажбата (не пропускаме да издадем авансова фактура в 5 дневен срок) системата започва да следи продажбите на дадения контрагент и предлага плащането по тях да се извършва от наличните аванси на контрагента. Усвояването на аванси в продажба става като автоматично в редовете на документа се добавя позиция с продукт аванс и отрицателно количество за сума за усвояване, така че общата стойност на документа да се нулира.

Ваучери и бонуси по клиентски карти в POS

В POS системата потребителите обикновено се идентифицират с клиентските си карти, но е запазена и възможността за ръчно избиране на контрагент титуляр. Независимо от начина на избор, титулярят на продажбата се третира от back-end системата като контрагент в Dreem. Това означава че неговите аванси се калкулират на база на предварително направени продажби на аванси в Dreem. Следователно най-лесния начин за отработване на ваучери е като използваме колона Партида където да указваме номера на съответния ваучер.

Друга честа практика е първоначално някои клиентски карти да се „зареждат“ със сума подарък, като по този начин те се превръщат във VIP карти. Отново използваме продажба на аванс, като този път в партида можем да укажем, че става дума за „бонус“ или „VIP аванс“.

POS системата автоматично следи авансите на избрания клиент и сигнализира в информационната област общата натрупана сума. При наличие на неусвоена сума се предлага плащане по продажбата да бъде извършено чрез усвояване на аванси. Показва се форма за Избор на аванс и ако сумата на избраните аванси е достатъчна да покрие сумата на продажбата, то се пропуска показване на стандартната Форма за плащане.

Екрани на тези и други форми на POS системата можете да видите в Ръководство на потребителя.

Трети бутон на мишката

Познавате ли всичките възможности на мишката, която ползвате?

Отдавна оптичните мишки замениха механичните им братовчеди. Тихомълком стандартът за мишка включи допълнително едно удобно търкулце (mouse wheel) между двата бутона на мишката. Първо Logitech, а в последствие и Microsoft, започнаха да предлагат подобни мишки, докато производството от гаража на чичо Чен не заля пазарите с мишки с колелца.

Използването на тази екстра е абсолютно интуитивно дори за новобранците. По-интересно е, че малцина потребители знаят, че това колелце може да се натиска и да действа ефективно като трети бутон на мишката.

Всички масови продукти поддържат колелцето (mouse wheel) по един или друг начин, някои дори разпознават щракване с третия бутон. В Dreem колелцето и третия бутон се поддържат от различни елементи на потребителския интерфейс. В лентата с функции щракването с третия бутон активира функционалността в нов панел (tab) и обратно, щракването върху заглавието на функция в лентата за навигация я затваря. Това напълно отговаря на поведението на масовите браузъри, които при щракване със средния бутон отварят връзката в отделен панел и на свой ред при щракване върху заглавието затварят панела. Освен допълнителния бутон, лентата с функционалности и навигационната лента поддържат колелцето за превъртане на съдържанието т.нар. скролиране.

Друг елемент, който използва колелцето, са разделителните линии (splitter). Вместо стандартното натискане, задържане, влачене и пускане на линията на нова позиция, можете да използвате колелцето за да преместите разделителната линия. Допълнително двойното щракване с ляв бутон върху линията премества разделителя в позиция по подразбиране, например в средата на прозореца.

Заради инфраструктурата на операционната система стандартно контролът, който е фокусиран (в който мига курсора) получава нотификациите при превъртане на колелцето. Това може да доведе до неинтуитивно поведения ако е фокусиран комбобокс, но е посочен списък, без да е щракнато върху него. Вместо да се скролира списъка, в комбобокса започват да се превъртат наличните стойности. По този начин работи Windows Explorer и повечето стандартни приложения на операционната система.

За сметка на това в приложенията от Microsoft Office като Outlook, различните контроли реагират на колелцето само като бъдат посочени, което е значително по-удобно и интуитивно. Новината е, че в най-новата реализация на Dreem вече се поддържа този тип поведение, при което няма значение къде се намира фокусът, колелцето винаги ще афектира само посочения с мишката контрол. Така можете да скролирате списък само като го посочите и превъртите колелцето, без да трябва да щракате върху него предварително.

Потребители на Dreem

За кои хора е предназначен Dreem Personal?

Personal версията на системата е предназначена за фирми, в които операторската работа и бизнес решенията се вземат от един човек. Най-интересните функционалности на Dreem за тези хора са фактурника и складовата подсистема. Рядко някой се престрашава да използва по-сложни функциналности, може би издаване на кредитно известие е в сферата на висшия пилотаж.

Друг тип потребители на Personal са счетоводители, които дори обработват повече от една фирма. Обикновено това са бивши потребители на Enterprise версията, които са напуснали организацията, която е ползвала интегрираната система. Тези хора по природа са много любопитни и находчиви и дори са подкарали многофирмена дейност използвайки виртуални машини. Хитро!

Трети тип потребители са малки магазини, които ползват POS системата за печат на касови бележки. За тях back-end-а на Dreem е интересен за водене на складовата наличност и наличността в магазина. Обикновено са толкова доволни от безплатната печатарка, че рядко имат желание да навлезат в дебрите на ERP-то.

Какво се крие под капака.

Dreem Personal е базиран на Enterprise версията, но е с ограничени възможности за многопотребителска работа. Двигателят на приложението (т.нар. база данни) е олекотената версия на Microsoft SQL Server. От тази гледна точка Personal е като луксозна лимозина, в която обаче Вие седите на шофьорското място.

Току що сте пуснали волана, за едно кафе от машина...

За да усетите лукса трябва да седнете отзад в купето, но това изисква да имате наети „шофьори“, които да оперират с возилото. Дотогава управлението може да Ви се стори доста тромаво и трябва много да внимавате на завоите да не свалите боята. В едно трябва да сте сигурни, расовият двигател може да издърпа влакова композиция, само лек чип-тунинг е достатъчен.

Ако продължим аналогията, повечето интернет базирани приложения на този фон изглеждат като велосипеди – шарени са, но понякога трябва дъждобран и веригата цапа. Със сигурност технологията има голям потенциал, но засега не виждаме качествени предложения.

Нашите планове включват довършване на интернет базиран модул за CRM, което ще позволи on-line приемане на поръчки от клиенти, гледане на складови наличности в реално време и получаване на клиентски фактури в PDF формат. Всичко това ще стане част от Enterprise версията, защото таргет групата на Personal има съвсем различни потребности – оптимизиране и опростяване на „кормилната система“, ускоряване на „потегляне/спиране“ и оптимизиране на „разход градско шофиране“.

Но стига с авто-вело аналогиите… засега!

Рестартиране на IBM xSeries сървър

Какво правите ако в неделя в 11:00 разберете, че основния DB сървър е недостъпен?

За щастие IBM xSeries сървърите, дори в най-евтиния вариант, идват с BMC (Baseboard Management Controller), който по подразбиране е активен на втория NIC. За да се възползвате от екстрите трябва предварително да направите няколко настройки. Първо, очевидно трябва да свържете втория RJ45 порт с пач кабел за switch-а. Друг вариант е да активирате и Ethernet Port 1 в Advanced Settings->BMC Settings в настройките на BIOS. Пак там трябва да настроите IP адрес и user/pass. Внимавайте IP адреса да не се филтрира ако ползвате VLAN-и на switch-а. Друг проблем е, че паролите са буквеноцифрени с поне 6 знака, но пък има проблем ако съдържат знаци! Точката със сигурност прави проблем.

За да се свържете с BMC трябва да инсталирате SMBridge на машина с Windows или да потърсите Linux версията. Най-бизарното нещо е, че това приложение може да се ползва по два начина – като конзолно приложение или като telnet сървър.

В първия случай подавате команди през command line, например

C:Program FilesAvocentSMBridge>smbridge -ip 10.10.10.4 -u wqw -p <<pass>> power status
Status = off
C:Program FilesAvocentSMBridge>smbridge -ip 10.10.10.4 -u wqw -p <<pass>> power on

Във втория ползвате telnet <<machine>> 623 за да се свържете към сървърната част на SMBridge.

c:>telnet <<machine>> 623

Username:ucswqw
Password:<<domain password>>

ucswqw login successful.

Powered by Avocent
SMBridge v2.0 Release 25
Copyright 2009 - Avocent Corporation

For more information about additional features and products for IPMI systems,
please visit the Avocent website www.avocent.com/ibm/smbridge/ng

SMBridge>connect -ip 10.10.10.4 -u wqw -p <<pass>>
SMBridge>power status
Status = off
SMBridge>power on
SMBridge>quit

Connection to host lost.

Интересната подробност е, че явно протоколът на BMC е routable, което позволява SMBridge да се инсталира на машина в LAN-а зад firewall-а и ако сървърът е във DMZ успешно се NAT-ва – тествано под ISA сървър.

Друга голяма екстра на BMC е т.нар. SOL (Serial over LAN), което позволява през SMBridge да наблюдавате POST на BIOS-а и дори да достъпите конзола в Windows (cmd.exe) отдалечено. За да активирате EMS (Emergency Messaging Service) на Windows, ползвате bootcfg за да настроите COM порт и скорост. За повече подробности IBM Redbook.

Оптично трасе

Хубаво е, когато има конкуренция. В случая София Онлайн в конкуренция на София Комюникейшънс, първо има по-кратко име, по-лесно за изпиване и второ прекрава оптики към MAN-а на София за по 550 лв. парчето.

Напълно съм доволен от услугата. Вчера дойдоха едни момчета, дръпнаха един оптичен кабел от близката шахта, а днеска други момчета монтираха и медия конвертора. И двете групи работиха изключително безшумно и ефективно, стори ми се че като че ли им беше изгодно да приключат по-бързо.

Сега чакаме Орбител да подкарат интернет по трасето.

cheers,
</wqw>