Forum Replies Created
-
AuthorPosts
-
As far as I know the web service calls in BizTalk do not support collections and arrays.
I have heard the WSE 2.0 Adapter does support Arrays, but I have not tried it.
In cases that I have needed something like this, I have written a little .net helper that calls the web service and serializes my schema as I needed it.
Hope this helps.
You can use a binding file and assign the database name to the adapter at runtime. You can check out SDK’s given by microsoft to know how to create such binding files.
There are special tags to be specified to assign db names to adapters.
A good question. You might want to consider BT 2006 in comparison to 2004, as there are a lot of enhancements.
It happens many times that the timer does not function. You will have to make sure the loop condition is ok. Also try to restart the engine if you still face a problem.
Yep, I guess that would be another way to go about it.
Probably the easer way based on what you have said before. Just make sure your Send shape is inside the exception handling.
This would not really help you if you needed to react to different exception types.
You might want to take a look at my white paper: http://msdn.microsoft.com/library/en-us/BTS_2004WP/html/956fd4cb-aacc-43ee-99b6-f6137a5a2914.asp?frame=true&_r=1
I thought I am using a delay shape inside a loop. If it isn’t in the sample code then I did it in one of the samples on this site.
I don’t think it should be a problem. But, maybe your timer isn’t working right?
Hope this helps.
Very interesting.
I was told something different, but maybe I miss understood him.
It would be great if you could post a response once you get this resolved.
Thanks.
I had the same proble, I want an adapter to periodically poll a web service and submit the response message to the message box for processing by an orchestration. So I wrote my own:
\”Polling Web Service Adapter\”
December 16, 2005 at 8:24 PM in reply to: Orchestration expression and using the xpath function #12538Try this one:
strXpath = \”/*[local-name()=’ProductionPerformance’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D/*%5Blocal-name()=’ProductionResponse’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D/*%5Blocal-name()=’SegmentResponse’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D/*%5Blocal-name()=’MaterialConsumedActual’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D%5B1%5D/*%5Blocal-name()=’MaterialConsumedActualProperty’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D/*%5Blocal-name()=’ID’ and text()=’SAPInterface’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D/parent::*/*[local-name()=’Value’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D/*%5Blocal-name()=’ValueString’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D\”;
December 16, 2005 at 11:30 AM in reply to: Orchestration expression and using the xpath function #12540Thanks for you replies thus far. A couple of weeks ago, I learned of the trick of obtaining the query using the Instance Xpath property. It’s a nice feature.
Anyhow, I have spent the last few days trying to get an Xpath expression that will work. I have tried just about every variation that I can think of. In my expression I need to specify both a position (i.e., [1]) and a predicate (i.e., ID=’SAPInterface’) to get to the element I desire. My lastest xpath is as follows (from the expression shape in my orchestration):
strXpath = \”/*[local-name()=’ProductionPerformance’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D/*%5Blocal-name()=’ProductionResponse’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D/*%5Blocal-name()=’SegmentResponse’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D/*%5Blocal-name()=’MaterialConsumedActual’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D%5B1%5D/*%5Blocal-name()=’MaterialConsumedActualProperty’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′ and * = ‘SAPInterface’]/*[local-name()=’Value’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D/*%5Blocal-name()=’ValueString’ and namespace-uri()=’http://www.wbf.org/xml/b2mml-v02′%5D\”;
strSAPInterface = xpath(msgB2MMLProductionPerformance_In,strXpath);
This produced the error \”There is an error in the XML document.\”.
If I change the predicate \”* = ‘SAPInterface’\” to ns0:ID = \”‘SAPInterface’\”, I get an error \”Namespace Manager or XsltContext needed. This query has a prefix, variable, or user-defined function.\”.
Both of these expressions are valid in XML Spy. Again, I thank you for you help in figuring this out…
should we not use nested scope with exception shape in long running transaction
hi, yes i could be problem with adapter, i have sent a bug to Microsoft Beta team, but not 100% sure that it’s a bug.
I’m sure it does not use system DSN user name, when i change a map from host instance user to different oracle user, i recieve a different result from the same call store procedure. So that means adapter uses different oracle user to connect, not always system DSN.
You could try just setting a variable at the Orchestration level and not the scope level. You might be doing that already though.
Long and short of it, you need to change your logic so you don’t send a message that might not be constructed.
I’d start by adding a Boolean = true when you want to send a message and set the response text to send to an Xml Document. Then, construct a message from the Xml Document inside the decision shape when the Boolean is true. Make sense?
Might be some other ways to do it too. This is just what I can think of off the top of my head.
No it is not working , how to set global variables
BizTalk will not let you send a message if at some path it might not be constructed. So, you need to add logic to make sure you don’t hit the Send.
You could try setting your response to a global variable or global xml document.
Later on, if you want to use it you can use a decision shape outside of all the scopes.
Hope this helps.
-
AuthorPosts