Не проблема без использования супермажных процедур данные вставить куда требуется, но.. как известно, лучше использовать готовые механизмы.
Вот пример по ПН:
CREATE OR REPLACE PROCEDURE SUPERMAG.DDD_CREATEWI
(
or_num in varchar2,
mx in number,
clientind in number,
doc_cod_no out varchar2
) is
p pls_integer := supermag.core.startsmapp;
doc_no varchar2(50);
loc_no number(10);
num_cl number(10);
or_cod_num varchar2(50);
begin
or_cod_num := or_num;
if (or_num is not null)
then
begin
select location, clientindex into loc_no, num_cl
from supermag.smdocuments
where id=or_cod_num and doctype='OR';
exception
when no_data_found then raise;
when others then raise;
end;
end if;
if(or_num is null)
then
loc_no := mx;
num_cl := clientind;
end if;
doc_no := supermag.SMGENERATEDOCNO('WI',loc_no);
supermag.SMDOCCREATEWI(doc_no,sysdate,num_cl,loc_no,0,'','','','','','','','','','');
doc_cod_no:= doc_no;
smdocunlock ('WI',doc_no);
end;
Вот кусок по EO (как вариант исполнения):
CREATE OR REPLACE PROCEDURE SUPERMAG.LODEORO
IS
docno varchar2(20);
Core_Result pls_integer;
--p pls_integer:= Supermag.Core.Startsmapp;
begin
if supermag.core.getproc is null then
Core_Result := supermag.Core.StartSMApp();
end if;
select SUPERMAG.DOCUMENTS.GENERATEDOCNO('EO', 3 , NULL) into docno from dual; --áåç SRV
IF docno IS NULL THEN
RAISE_APPLICATION_ERROR(-20000, 'Íå ìîãó ñîçäàòü äîêóìåíò', TRUE);
END IF;
supermag.smdoccreateeo(aid => docno
,aorderid => 666
,acreatedat => sysdate
,alocation => 3
,aopcode => 50
,auserop => null
,aclientindex => 285
,aourselfclient => 5
,apaydate => sysdate
,aiscash => '0'
,aisroubles => '1'
,acurrencyid => 0
,apaymenttype => 1);
SUPERMAG.DOCUMENTS.UNLOCKDOC('EO', docno);
supermag.documents.clearssdocgen;
commit;
end;
чего не хватает?
Добавлено через 2 минуты 48 секунд
Первую процедуру нашел среди готовых !!! ранее использовавшихся одной известной конторой для создания ПН с ТСД! Исполняю - та же ошибка. Есть аналогичные процедуры по WO и IW.
Добавлено через 4 минуты 51 секунду
пытался через использование:
SUPERMAG.DOCUMENTS.CREATEDOCUMENTPROLOGUE('EO', docno, SYSDATE, null, 3, null, null);
для платежей смотрел вот такой пакет (по SMPAYORDERS Как я понимаю отрабатывает):
supermag.documentsroeo.doccreate(...
Все требуемые параметры заполняются.. предполагаю что дополнительно еще чего - то нужно!