[ОТВЕТИТЬ]
Опции темы
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>
Документ появился в базе с номенклатурой. далее буду тестировать выгрузку данного документа в ТСД и прием товара с помощью него. По результатам отпишусь и выложу окончательный вариант схемы.

скрытое
 
"Спасибо" stupidgamer от:
 
Опции темы



Часовой пояс GMT +3, время: 11:15.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.