Главное меню:
Как правило, процесс создания транзакции в любой АБС состоит из двух шагов - формирование транзакции (проводки) и её штамп (фиксация). Запрос в систему SMARTCASHBOX должен быть отправлен до штампа транзакции и по результату работы программы, принимается решение о штампе транзакции или её отмене. Условно результат может содержать 3 варианта ответа:
- Команда принята
- Команда выполнена
- Ошибка выполнения
При асинхронном режиме работы возврат в вызывающую программу (АБС) происходит сразу после вызова, поэтому процесс штампа транзакции в АБС должен блокироваться до получения ответа об успешном выполнении операции.Описанные ниже примеры интеграции представлены на языке С++, но могут быть реализованы на любом языке программирования поддерживающем сетевые протоколы.Самый простой способ интеграции - вызов хранимой процедуры в базе данных системы. Для этого достаточно вызвать процедуру на SQL сервере с определенными параметрами и обработать ответ. Параметры передаваемые в функцию:
- Логин пользователя
- Идентификатор операции
- Номер счёта
- Тип операции (дебет/кредит)
- Сумма
- Валюта
- Примечание
ADOStoredProc = new TADOStoredProc(this);
ADOStoredProc->Connection = ADOConnection;ADOStoredProc->ProcedureName = "TrxGen";ADOStoredProc->Parameters->Clear();ADOStoredProc->Parameters->CreateParameter("@rez",ftInteger,pdOutput,10,0);ADOStoredProc->Parameters->CreateParameter("@docno",ftString,pdInput,50,DocNo);ADOStoredProc->Parameters->CreateParameter("@user",ftString,pdInput,50,User);ADOStoredProc->Parameters->CreateParameter("@oper",ftString,pdInput,50,Oper);ADOStoredProc->Parameters->CreateParameter("@acc",ftString,pdInput,50,Acc);ADOStoredProc->Parameters->CreateParameter("@crc",ftString,pdInput,10,CRC);ADOStoredProc->Parameters->CreateParameter("@summ",ftFloat,pdInput,10,Summ.ToDouble());ADOStoredProc->Parameters->CreateParameter("@rem",ftWideString,pdInput,Rem.Length(),Rem);ADOStoredProc->Prepared = true;ADOStoredProc->ExecProc();Rez = ADOStoredProc->Parameters->ParamByName("@rez")->Value;
Также, есть возможность подключения через обычный TCP сокет или использовать веб сервис входящий в состав системы. При этом возможен синхронный режим работы. Это значит, что до завершения операции в SMARTCASHBOX, управление не вернется в вызывающую программу. Настройки таймаутов при таком режиме работы осуществляются в программе администрирования.Для соединения через TCP сокет необходимо сформировать строку запроса в виде XML данных и передать по используемому порту:
TClientSocket *Socket=NULL;TWinSocketStream *SocketStream = NULL;try{try{
Socket = new TClientSocket(NULL);Socket->ClientType = ctBlocking;Socket->Host = CBServerName;Socket->Port = CBServerPort;Socket->Open();if(Socket->Active){SocketStream = new TWinSocketStream(Socket->Socket, OperTime);SocketStream->Write(Request.data(),wcslen(Request.c_str())*sizeof(wchar_t));if(Socket->Socket->Connected){ZeroMemory(BUFF,BUFFSIZE);while(SocketStream->Read(BUFF,BUFFSIZE-2)){Response+=UnicodeString((wchar_t*)BUFF);ZeroMemory(BUFF,BUFFSIZE);}}Socket->Close();
}}catch(Exception &e){Response = UnicodeString(e.ErrCod) ;}}__finally{if(SocketStream!=NULL)delete SocketStream;if(Socket!=NULL)delete Socket;}
При использовании веб сервиса, wsdl можно получить на сервере с установленной программой по адресу:http://ip адрес сервера:65531/wsdl/IISmartSafeConnectorПри установке программы TCP и SOAP сервисы активированы и работают. После выбора способа интеграции отключите неиспользуемые коннекторы.