Завершен
Выгрузка документов на ТСД
Написал для выгрузки документа из учетной системы на сервер MobileSMARTS 2008 следующий код:
//-------------------------
vConnector := CreateOLEObject('Cleverence.Warehouse.StorageConnector');
vConnector.InitializeServerConnection( 'http://127.0.0.1:8000/DataStorage.asmx' );
// создадим новый документ:
curDocument := CreateOLEObject('Cleverence.Warehouse.Document');
curDocument.Id := sDocId;
curDocument.Name := sDocName;
curDocument.Appointment := '';
curDocument.CreateDate := Now;
curDocument.DocumentTypeName := sDocTypeName;
curDocument.InProcess := 0;
curDocument.Finished := 0;
curDocument.Modified := 0;
curDocument.WarehouseId := 1;
curDocument.DistributeByBarcode := 0;
// очистим документ:
curDocument.CurrentItems.Clear;
curDocument.DeclaredItems.Clear;
// наполним документ записями о товарах:
SourceDataset.First;
while NOT(SourceDataset.Eof) do
begin
vDocumentItem := CreateOLEObject('Cleverence.Warehouse.DocumentItem');
sBarCode := ...
sProdId := ...
iGoodsCount := ...
vDocumentItem.ProductId := sProdId;
vDocumentItem.PackingId := sProdId;
vDocumentItem.DeclaredQuantity := iGoodsCount;
vDocumentItem.CurrentQuantity := 0;
curDocument.DeclaredItems.Add( vDocumentItem );
vDocumentItem := NULL;
SourceDataset.Next;
end;
vNewDocuments := CreateOLEObject('Cleverence.Warehouse.DocumentCollection');
vNewDocuments.Add( curDocument );
vConnector.SetDocuments( vNewDocuments );
vNewDocuments := NULL;
vConnector := NULL;
//----------------
Код исполняется без сообщений об ошибке, но новый документ на сервере не появляется.
//-------------------------
vConnector := CreateOLEObject('Cleverence.Warehouse.StorageConnector');
vConnector.InitializeServerConnection( 'http://127.0.0.1:8000/DataStorage.asmx' );
// создадим новый документ:
curDocument := CreateOLEObject('Cleverence.Warehouse.Document');
curDocument.Id := sDocId;
curDocument.Name := sDocName;
curDocument.Appointment := '';
curDocument.CreateDate := Now;
curDocument.DocumentTypeName := sDocTypeName;
curDocument.InProcess := 0;
curDocument.Finished := 0;
curDocument.Modified := 0;
curDocument.WarehouseId := 1;
curDocument.DistributeByBarcode := 0;
// очистим документ:
curDocument.CurrentItems.Clear;
curDocument.DeclaredItems.Clear;
// наполним документ записями о товарах:
SourceDataset.First;
while NOT(SourceDataset.Eof) do
begin
vDocumentItem := CreateOLEObject('Cleverence.Warehouse.DocumentItem');
sBarCode := ...
sProdId := ...
iGoodsCount := ...
vDocumentItem.ProductId := sProdId;
vDocumentItem.PackingId := sProdId;
vDocumentItem.DeclaredQuantity := iGoodsCount;
vDocumentItem.CurrentQuantity := 0;
curDocument.DeclaredItems.Add( vDocumentItem );
vDocumentItem := NULL;
SourceDataset.Next;
end;
vNewDocuments := CreateOLEObject('Cleverence.Warehouse.DocumentCollection');
vNewDocuments.Add( curDocument );
vConnector.SetDocuments( vNewDocuments );
vNewDocuments := NULL;
vConnector := NULL;
//----------------
Код исполняется без сообщений об ошибке, но новый документ на сервере не появляется.
Сервис поддержки клиентов работает на платформе UserEcho
2; 4; 11.08.2015 18:00:43.471 ERROR
ADDITION TEXT: DefaultDataProvider error
MESSAGE: Вызов невозможен. Ни одного коннектора не зарегистрировано.
TYPE: Cleverence.Connectivity.KnownException
SOURCE: Cleverence.Connectivity.DefaultDataProvider
TARGETSITE: GetConnectorName
[STACK TRACE]
в Cleverence.Connectivity.DefaultDataProvider.GetConnectorName()
в Cleverence.Connectivity.DefaultDataProvider.SetDocuments(DocumentCollection documents)
[STACK TRACE]
DATA: System.Collections.ListDictionaryInternal
За основу брал код со страницы http://cleverence.ru/devlib/comconnector/Cleverence.Warehouse.Document.html,
но нет строк, аналогичных следующим:
Кроме того в параметр Document.Appointment вписана пустая строка. Может быть это критично?
Результат тот же. И в лог-файле так же появляются следующие строки:
Спасибо за консультацию. Вопрос решен.