#websphere #ibm-integration-bus #ibm-app-connect
#websphere #ibm-integration-bus #ibm-app-connect
Вопрос:
Я попытался вставить sql-запрос с использованием кода esql:
INSERT INTO Database.dbo.CUSTOMERS Values (9330,'Sai',7);
Он работает нормально, но при попытке вставить код в формате xml, например:
INSERT INTO Database.dbo.CUSTOMERS(ID,NAME,AGE) Values (InputRoot.XMLNSC.emps.emp.id,InputRoot.XMLNSC.emps.emp.name,InputRoot.XMLNSC.emps.emp.age);
Затем он показывал ошибки, такие как BIP2230E
, BIP2488E
, BIP2321E
.
Если есть какие-либо проблемы с подключением, означает, что первая команда insert также не должна работать. Выберите также работает нормально.
Есть предложения по решению проблемы?
Комментарии:
1. Srikanth — это вызов на основе SOAP (WSDL) или вызов REST? Судя по вашей ошибке моментального снимка, это похоже на вызов SOAP.
2. Остальные только я использовал http-узлы, но я не знаю, почему он отображался в формате soap. И мой номер порта также меняется автоматически…. Я новичок в этой работе..
3. Пожалуйста, используйте POSTMAN и попробуйте. Кроме того, для отладки попробуйте присвоить значения входного XML переменным типа SET ID = InputRoot . XMLNSC.emps.emp.id и проверьте, присваиваются ли значения переменной или нет. Также воспользуйтесь узлами трассировки, чтобы увидеть, как выглядят ваши данные, когда они проходят через поток сообщений, или переведите ваш поток в режим отладки, чтобы увидеть значения
4. @SrikanthKonduru: Пожалуйста, не используйте снимок экрана для ошибки. Вставьте полную ошибку SOAP в виде обычного текста в вопрос. Мы не видим полной ошибки.
5. Вам нужно потратить больше времени на свой вопрос. Скриншот бесполезен, поскольку важные детали не включены в скриншот.
Ответ №1:
Довольно очевидно, что ваши пути (InputRoot.XMLNSC.emps.emp.id , и т.д.) не существуют под InputRoot.XMLNSC. Вы можете легко проверить это с помощью отладчика или (лучше) узла трассировки. Чтобы устранить проблему, исправьте эти пути.
Вы также должны объявлять и использовать ссылочную переменную, чтобы сделать ваш ESQL более читаемым:
-- This is not the correct path, otherwise your code would be working already!
DECLARE refEmp REFERENCE to InputRoot.XMLNSC.emps.emp;
INSERT
INTO Database.dbo.CUSTOMERS(ID,NAME,AGE)
VALUES (refEmp.id,refEmp.name,refEmp.age)