SAPфорум.RU https://sapboard.ru/forum/ |
|
странный глюк RFC https://sapboard.ru/forum/viewtopic.php?f=70&t=75641 |
Страница 1 из 1 |
Автор: | cherms [ Вт, мар 20 2012, 12:07 ] |
Заголовок сообщения: | странный глюк RFC |
Загрузка RFC to JDBC Сделал ФМ, экспортировал в PI, создал объекты. запускаю в r/3 посредством CALL FUNCTION [...] IN BACKGROUND TASK DESTINATION [....] commit work после вызова стоит. 2-3 раза проходит нормально, потом через раз, (в sm58 красное - "Commit fault: com.sap.aii.adapter.rfc.afcommunicat: ion.RfcAFWException: se") Затем вообще не грузиться. после очистки кеша http://XXXXXXX:50000/CPACache/refresh?mode=full http://XXXXXX:50000/CPACache/refresh?mode=Delta несколько раз отрабатывает, потом начинаются такие же проблемы |
Автор: | Ich Will [ Вт, мар 20 2012, 16:41 ] |
Заголовок сообщения: | Re: странный глюк RFC |
пробовали поставить в вызове функции AS SEPARATE UNIT ? |
Автор: | erinsasha [ Ср, мар 21 2012, 00:22 ] |
Заголовок сообщения: | Re: странный глюк RFC |
Никогда не видел такой ошибки... tRFC вызовы работали корректно в обоих направлениях В Java Trace в XI что-нибудь видно? единственное, что после изменения сигнатуры ФМ, очень рекомендовано делать стоп-старт каналов ...иначе XI будет некорректно парсить вызовы на основе устаревших определений ...вообще непонятно зачем использовать RFC, когда есть Abap Proxy |
Автор: | cherms [ Ср, мар 21 2012, 07:07 ] |
Заголовок сообщения: | Re: странный глюк RFC |
AS SEPARATE UNIT - ситуацию не меняет. сервер перегружали тоже не помогло |
Автор: | erinsasha [ Ср, мар 21 2012, 08:29 ] |
Заголовок сообщения: | Re: странный глюк RFC |
И все таки, в Java Trace какая ошибка? ...здесь описание ошибки от адаптера обрывается RfcAFWException: se |
Автор: | cherms [ Ср, мар 21 2012, 10:48 ] |
Заголовок сообщения: | Re: странный глюк RFC |
cimclass=SAP_ITSAMXIAEEngineStatusProvider,version=3.0,SAP_ITSAMJ2eeCluster.Name=***,SAP_ITSAMJ2eeCluster.CreationClassName=SAP_ITSAMXIAEEngineStatusProvider,SAP_ITSAMXIAEEngineStatusProvider.SystemCreationClassName=SAP_ITSAMXIAEEngineStatusProvider,SAP_ITSAMXIAEEngineStatusProvider.SystemName=SAP_ITSAMXIAEEngineStatusProvider,SAP_ITSAMXIAEEngineStatusProvider.CreationClassName=SAP_ITSAMXIAEEngineStatusProvider,SAP_ITSAMXIAEEngineStatusProvider.Name=SAP_ITSAMXIAEEngineStatusProvider,type=SAP_ITSAMJ2eeCluster.SAP_ITSAMXIAEEngineStatusProvider not in repository |
Автор: | erinsasha [ Ср, мар 21 2012, 11:01 ] |
Заголовок сообщения: | Re: странный глюк RFC |
cherms написал(а): cimclass=SAP_ITSAMXIAEEngineStatusProvider,version=3.0,SAP_ITSAMJ2eeCluster.Name=***,SAP_ITSAMJ2eeCluster.CreationClassName=SAP_ITSAMXIAEEngineStatusProvider,SAP_ITSAMXIAEEngineStatusProvider.SystemCreationClassName=SAP_ITSAMXIAEEngineStatusProvider,SAP_ITSAMXIAEEngineStatusProvider.SystemName=SAP_ITSAMXIAEEngineStatusProvider,SAP_ITSAMXIAEEngineStatusProvider.CreationClassName=SAP_ITSAMXIAEEngineStatusProvider,SAP_ITSAMXIAEEngineStatusProvider.Name=SAP_ITSAMXIAEEngineStatusProvider,type=SAP_ITSAMJ2eeCluster.SAP_ITSAMXIAEEngineStatusProvider not in repository Походу не ту ошибку из трейса вытянул, больше похоже (из-за cimclass), что тут про SLD пишут. В правильной записи об ошибке почти 100% будет написано и "Commit fault: com.sap.aii.adapter.rfc.afcommunicat: ion.RfcAFWException: se". Конечно в этом убогом трейсе что-то искать неблагородное занятие. Даже прекрасно работающая система туда пишет немереное количество различных ошибок. |
Автор: | pitroff [ Ср, мар 21 2012, 17:07 ] |
Заголовок сообщения: | Re: странный глюк RFC |
А монитор канала связи что-нибудь говорит? http://host:j2eeport/mdt/channelmonitorservlet -> <RFC Sender channel> |
Автор: | cherms [ Чт, мар 22 2012, 11:42 ] |
Заголовок сообщения: | Re: странный глюк RFC |
Проблема решилась путем создания нового RFC соединения! видимо данный PROGRAM ID использовался где то еще. теперь образовалась еще одна непонятка при передаче данных в оракл в режиме UPDATE_INSERT корректно обрабатывается изменение только по одной записи если передавать сразу таблицу в результате перезаписывает все данные одной первой строкой используется маппинг с ключом можно ли маппингом сделать корректный UPDATE по всей таблице? или нужно дергать ФМ на стороне r/3 для передачи каждой отдельной записи ? |
Автор: | chumpa [ Чт, мар 22 2012, 13:04 ] |
Заголовок сообщения: | Re: странный глюк RFC |
по ораклу, ключ неправильно формируется видимо. |
Автор: | cherms [ Чт, мар 22 2012, 13:12 ] |
Заголовок сообщения: | Re: странный глюк RFC |
access номер материала текст key номер материала что тут может быть не правильного то? он вернет номер 1 текст 1 номер 2 текст 2 номер1 и проапдейт все по первой записи! |
Автор: | chumpa [ Чт, мар 22 2012, 14:20 ] |
Заголовок сообщения: | Re: странный глюк RFC |
cherms написал(а): что тут может быть не правильного то? ничо не понял в тексте, тренируйтесь апдейтить в RWB>TestMessage, где-то в пейлоаде не то. Ну или пишите другой XMLSQL, в котором можно руками писать SQL DML (не путать с Native SQL). |
Автор: | pitroff [ Чт, мар 22 2012, 16:46 ] |
Заголовок сообщения: | Re: странный глюк RFC |
cherms написал(а): при передаче данных в оракл в режиме UPDATE_INSERT корректно обрабатывается изменение только по одной записи если передавать сразу таблицу в результате перезаписывает все данные одной первой строкой А там и будет update только по одной записи: http://help.sap.com/saphelp_nwpi71/help ... ontent.htm Enter the new column values in the <access> element. Enter exactly one <access>element. В тэге access - новые значения, в тэгах keyX - условие. Может помочь хранимая процедура и вызов через EXECUTE http://help.sap.com/saphelp_nwpi71/help ... ameset.htm Но тоже - невозможно передать всю таблицу (разве что CLOB - но это дополнительная работа в мэппинге). UPD: А, нашел, SQL_DML, все-таки: http://help.sap.com/saphelp_nwpi71/help ... ameset.htm Создаете следующую структуру: <root> <stmt> <Customers action="SQL_DML"> <access> UPDATE Customers SET CompanyName=’$NAME$’, Address=’$ADDRESS$' WHERE CustomerID='$KEYFIELD$’ </access> <key> <NAME>Firma</NAME> <ADDRESS>Strasse 3 </ADDRESS> <KEYFIELD>FI</KEYFIELD> </key> <key> <NAME>Firma2</NAME> <ADDRESS>Strasse 5 </ADDRESS> <KEYFIELD>CO</KEYFIELD> </key> </Customers> </stmt> </root> В качестве значений всех полей в SQL-выражении ставите заместители типа $заместитель$, а затем перечисляете все изменения в тэге Key - их может быть много. XI/PI будет идти в цикле по всем key и выполнять access для каждого набора значений. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |