Продолжу тему...
Как я вижу этот процесс:
1. менеджеры генерируют 1 заказ сразу по всем контрактам данного поставщика...
далее я каким-то образом на основании данного 1 заказа - создаю в БД Супермага столько - сколько контрактов в основании...
тут возможны варианты:
1. создавать XML-файлы с заказами и подсовывать их почтовику - минус данного метода: т.к. это процесс не мгновенный и не хочется нарушать нумерацию документов...
2. создавать документ непосредственно в БД -
insert into smdocuments ...;
insert into smspec.....;
insert into smwaybillsin .... ;
insert into smdoclog ..... ;
commit;
само собой документ создается в статусе черновик, строки будут копироваться из уже существующего документа... по-идее проблем не должно возникнуть...
3. воспользоваться встроенными функциями СМ и также создавать документ непосредственно в БД...
но тут я начинаю наступать на грабли, например процедура генерации номера документа:
Код:
SELECT supermag.documents.generatedocno ('OR', '1', NULL) docid
FROM DUAL;
Выдает ошибку: ORA-20017: Клиентский процесс не зарегистрирован сервером
есть решение, если перед процедурой выполнить:
Код:
DECLARE
core_result PLS_INTEGER;
BEGIN
IF supermag.core.getproc IS NULL
THEN
core_result := supermag.core.startsmapp ();
END IF;
END;
то она выполняется и возвращает номер документа, единственное все это выполняется в SQLNavigatore и по отдельности... не могу понять как это объединить в единое целое да еще и в Delphi...