15.10.2014 14:44
stupidgamer
 
День добрый всем.
Работает ли кто с документом "Накладная поставщика"? В программе написано следующее по данному документу:
Цитата:
Документ должен приходить по почте или системе электронного документооборота от поставщика и не может создаваться вручную.
Собственно пытаюсь изобразить формирование XML файла для подачи его почтовому модулю.
1. Вытащил из редактора схем XML "шаблон", который нужно подать почтовому модулю.
2. Подготавливаю файл XML. Заполнил только шапку (пробовал и с другими заполненными полями). Подаю следующее:
Цитата:
<PACKAGE name="121204091847_2470_2">
<POSTOBJECT description="Накладная поставщика" action="normal">
<Id>00000004884</Id>
<WE>
<SMDOCUMENTS>
<ID>00000004884</ID>
<DOCTYPE>WE</DOCTYPE>
<BORNIN>sjtafa84oLfgQKjAcABgkQ==</BORNIN>
<CREATEDAT>2014-10-15T00:00:00+06:00</CREATEDAT>
<CURRENCYRATE>1</CURRENCYRATE>
<CURRENCYTYPE>1</CURRENCYTYPE>
<DOCSTATE>2</DOCSTATE>
<OPCODE>0</OPCODE>
<PRICEROUNDMODE>0</PRICEROUNDMODE>
<LOCATION>95</LOCATION>
<TOTALSUM>44.5</TOTALSUM>
<TOTALSUMCUR>44.5</TOTALSUMCUR>
</SMDOCUMENTS>
</WE>
</POSTOBJECT>
</PACKAGE>
3. Попытался "скормить" почтовику подготовленный файл. Но пока все застопорилось на ошибке невозможности записать объект:
Цитата:
Невозможно записать в БД объект «WE, 00000004884», таблица «SMDOCUMENTS»
и
Цитата:
ORA-02291: нарушено ограничение целостности (SUPERMAG.SMCDOCOPER) - исходный ключ не найден

параметры: pID=«00000004884»; pDOCTYPE=«WE»; pBORNIN=«B23B5A7DAF38A0B7E040A8C070006091»; pCLIENTINDEX=«»; pCOMMENTARY=«»; pCREATEDAT=«15.10.2014 0:00:00»; pCURRENCYMULTORDER=«0»; pCURRENCYRATE=«1»; pCURRENCYTYPE=«1»; pDOCSTATE=«2»; pISROUBLES=«1»; pLOCATION=«95»; pLOCATIONFROM=«»; pLOCATIONTO=«»; pOPCODE=«0»; pPRICEROUNDMODE=«0»; pTOTALSUM=«44,5»; pTOTALSUMCUR=«44,5»; pUSEROP=«»
соединено с: База даных=DB; Пользователь=Supermag
текст команды: Insert into Supermag.SMDOCUMENTS(ID,DOCTYPE,BORNIN,CLIENTINDEX,COMMENTARY,CREATEDAT,CURRENCYMULTORDER,CURRENCYRATE,CURRENCYTYPE,DOCSTATE,ISROUBLES,LOCATION,LOCATIONFROM,LOCATIONTO,OPCODE,PRICEROUNDMODE,TOTALSUM,TOTALSUMCUR,USEROP) values(:pID,:pDOCTYPE,:pBORNIN,:pCLIENTINDEX,:pCOMMENTARY,:pCREATEDAT,:pCURRENCYMULTORDER,:pCURRENCYRATE,:pCURRENCYTYPE,:pDOCSTATE,:pISROUBLES,:pLOCATION,:pLOCATIONFROM,:pLOCATIONTO,:pOPCODE,:pPRICEROUNDMODE,:pTOTALSUM,:pTOTALSUMCUR,:pUSEROP)
тип команды: Text
Расшифровка ошибки понятна, но непонятно как ее решить :). Что за "исходный ключ"?

Может есть у кого то настроенный импорт уже из почтовой программы или через документооборот? Нужен лишь экспортированный файл-пример. По нему воссоздать значительно проще будет структуру файла-импорта.
15.10.2014 14:50
Mtirt
 
Для WE "Накладная поставщика" "узаконены" операции с кодом 61 "Приход от поставщика" и 62 "Поступление инвентаря от поставщика".
Их и поставьте в <OPCODE>.

Примера, увы у меня нет :(
15.10.2014 14:51
OlegON
 
Непонятно, что понятно, если непонятно про ключ :) Посмотри constraint SUPERMAG.SMCDOCOPER, в нем будет сказано, куда ссылка ведет. Судя по всему, в userop или opcode таблицы smdocuments впихиваете неописанное в соответствующих таблицах значение. На память не помню.
15.10.2014 15:13
stupidgamer
 
Цитата:
Mtirt Для WE "Накладная поставщика" "узаконены" операции с кодом 61 "Приход от поставщика" и 62 "Поступление инвентаря от поставщика".
Их и поставьте в <OPCODE>.

Примера, увы у меня нет :(
Выставил "62". Чисто шапка начинает прогружаться. Документ в базу попал.

Цитата:
OlegON Непонятно, что понятно, если непонятно про ключ :) Посмотри constraint SUPERMAG.SMCDOCOPER, в нем будет сказано, куда ссылка ведет. Судя по всему, в userop или opcode таблицы smdocuments впихиваете неописанное в соответствующих таблицах значение. На память не помню.
А можно подробней про "Посмотри constraint SUPERMAG.SMCDOCOPER". Как это посмотреть?

Теперь пытаюсь прогрузить и номенклатуру. Подаю:
Цитата:
<PACKAGE name="121204091847_2470_2">
<POSTOBJECT description="Накладная поставщика" action="normal">
<Id>00000004884</Id>
<WE>
<SMDOCUMENTS>
<ID>00000004884</ID>
<DOCTYPE>WE</DOCTYPE>
<BORNIN>sjtafa84oLfgQKjAcABgkQ==</BORNIN>
<CREATEDAT>2014-10-15T00:00:00+06:00</CREATEDAT>
<CURRENCYRATE>1</CURRENCYRATE>
<CURRENCYTYPE>1</CURRENCYTYPE>
<DOCSTATE>2</DOCSTATE>
<OPCODE>62</OPCODE>
<PRICEROUNDMODE>0</PRICEROUNDMODE>
<LOCATION>95</LOCATION>
<TOTALSUM>44.5</TOTALSUM>
<TOTALSUMCUR>44.5</TOTALSUMCUR>
</SMDOCUMENTS>
<SMSPECWE>
<DOCID>00000004884</DOCID>
<DOCTYPE>WE</DOCTYPE>
<SPECITEM>1</SPECITEM>
<ARTICLE>00006778313</ARTICLE>
<DISPLAYITEM>1</DISPLAYITEM>
<QUANTITY>1</QUANTITY>
<TOTALPRICE>44.5</TOTALPRICE>
<TOTALPRICECUR>44.5</TOTALPRICECUR>
<VATSUM>44.5</VATSUM>
</SMSPECWE>
</WE>
</POSTOBJECT>
</PACKAGE>
Ошибка похожая, но иная:
Цитата:
ORA-02291: нарушено ограничение целостности (SUPERMAG.SMCSPECWE_DOC) - исходный ключ не найден
15.10.2014 15:18
Mtirt
 
Насколько я понимаю, сначала надо заполнить SMWAYBILLSEXT, а потом заполнять SMSPECWE.
Почему-то SMCSPECWE_DOC с этой таблицей взаимодействует...
Код:
add constraint SMCSPECWE_DOC foreign key (DOCTYPE, DOCID)
  references SMWAYBILLSEXT (DOCTYPE, ID) on delete cascade;
Есть в шаблоне такая таблица?
15.10.2014 15:21
stupidgamer
 
Цитата:
Mtirt Насколько я понимаю, сначала надо заполнить SMWAYBILLSEXT, а потом заполнять SMSPECWE.
Почему-то SMCSPECWE_DOC с этой таблицей взаимодействует...
Код:
add constraint SMCSPECWE_DOC foreign key (DOCTYPE, DOCID)
  references SMWAYBILLSEXT (DOCTYPE, ID) on delete cascade;
Есть в шаблоне такая таблица?
Есть. Сейчас заполню.
15.10.2014 15:41
stupidgamer
 
Теперь подаю:
Цитата:
<PACKAGE name="121204091847_2470_2">
<POSTOBJECT description="Накладная поставщика" action="normal">
<Id>00000004884</Id>
<WE>
<SMDOCUMENTS>
<ID>00000004884</ID>
<DOCTYPE>WE</DOCTYPE>
<BORNIN>sjtafa84oLfgQKjAcABgkQ==</BORNIN>
<CREATEDAT>2014-10-15T00:00:00+06:00</CREATEDAT>
<CURRENCYRATE>1</CURRENCYRATE>
<CURRENCYTYPE>1</CURRENCYTYPE>
<DOCSTATE>2</DOCSTATE>
<OPCODE>61</OPCODE>
<PRICEROUNDMODE>0</PRICEROUNDMODE>
<LOCATION>95</LOCATION>
<TOTALSUM>44.5</TOTALSUM>
<TOTALSUMCUR>44.5</TOTALSUMCUR>
</SMDOCUMENTS>
<SMWAYBILLSEXT>
<ID>00000004884</ID>
<DOCTYPE>WE</DOCTYPE>
</SMWAYBILLSEXT>
<SMSPECWE>
<DOCID>00000004884</DOCID>
<DOCTYPE>WE</DOCTYPE>
<SPECITEM>1</SPECITEM>
<ARTICLE>00006778313</ARTICLE>
<DISPLAYITEM>1</DISPLAYITEM>
<ITEMPRICE>44.5</ITEMPRICE>
<ITEMPRICECUR>44.5</ITEMPRICECUR>
<QUANTITY>1</QUANTITY>
<TOTALPRICE>44.5</TOTALPRICE>
<TOTALPRICECUR>44.5</TOTALPRICECUR>
<VATSUM>44.5</VATSUM>
</SMSPECWE>
</WE>
</POSTOBJECT>
</PACKAGE>
Документ появился в базе с номенклатурой. далее буду тестировать выгрузку данного документа в ТСД и прием товара с помощью него. По результатам отпишусь и выложу окончательный вариант схемы.

скрытое
Часовой пояс GMT +3, время: 21:29.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.