Forum Replies Created
-
AuthorPosts
-
okk…Thanx…but, how to configure BizTal to raise the query thru the Adapter AFTER EVERY 5 mins……you know the application once deployed shld check the database every 5 mins.
From the suppliers I dont have control over. That was the whole point.
[quote:14d1356a76=\”nwalters\”]The program that creates the XML would have to include the CData tag in the XML itself. Where does your XML come from?
Neal[/quote:14d1356a76]
OK I figured this out via this hint
http://searchwebservices.techtarget.com/tip/1,289483,sid26_gci879720,00.htmlUse an XSLT library called xmlchar
http://www.xml.com/pub/a/2003/01/02/xmlchar.htmland in the instance add this line (via pre-processing) (where xmlchar is the href to the library URI)
[code:1:b26201e1f6]<!DOCTYPE ONIXMessage[<!ENTITY % html.4.entities SYSTEM \"xmlchar/html4-all.ent\">%html.4.entities;]>
<ONIXMessage xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:ch=\"http://xmlchar.sf.net/ns#\" …(other declarations) >[/code:1:b26201e1f6]Don’t forget to add the xmlns:ch declaration and make sure the DOCTYPE root node is your root node.
Pras
You can call .NET methods from Biztalk expression shapes.
1) Make a reference to the assembly
2) If it is not a static method, go to Orchestration Viewer and add a new variable, set the \”Type\” using <.NET class> and select the class. Then in the expression shape instantiate the object:
myObj = new MyNamespace.MyClass();
3) call the method:
myObj.DoSomething(arg1,arg2);4) If the class has a static method, you make the reference as in 1) above, then in the expression shape, code something like this:
MyNamespace.MyClass.DoSomething(arg1, arg2);If the API you want to call is not .NET, you would have to write a .NET wrapper for it or read up on the Interop features of .NET.
You could also wrap it with a web service and use the Send/Receive shapes to call the web service (after adding a \”web reference\”).
Neal Walters
http://Biztalk-Training.com – Learn Biztalk Faster
http://Sharepoint-Training.com – End-User VideosThe program that creates the XML would have to include the CData tag in the XML itself. Where does your XML come from?
Neal
The last post is correct, but I wanted to add some hints:
1) Write a stored proc that retrieves the records with the desired status.
The trick is that you will either need to update that status, or have another column in your table that indicates that Biztalk has already processed that row. Otherwise, every 5 minutes you will get the same rows over and over again.2) Debatching is good technique, but you can also just put a \”Select top 1\” in your select statement. It probably depends on your volume.
I have complete CD of training on SQL Adapter at website below.
Neal Walters
http://Biztalk-Training.com – Learn Biztalk Faster
http://Sharepoint-Training.com – End-User VideosI can’t imagine why you would want to deploy something (at least in production) that you don’t have the source code for.
But anyway, try the \”Biztalk Deployment Wizard\” – it takes an assembly (.dll) as input. You can run it with the GUI first, then later save the commands to a batch file if you need to.
Neal Walters
http://Biztalk-Training.com – Learn Biztalk Faster
http://Sharepoint-Training.com – End-User VideosMay 19, 2006 at 9:21 AM in reply to: Map contains a reference to a schema node that is not valid #13607Just delete the Map and try adding a new Map in Project B… and then refer it to A.At times Maps dont refresh the XSLT when you refer it to the same Project again and again.
May 19, 2006 at 9:16 AM in reply to: How to calculate the number of interface running in Server #13629Count of all Orchestration instances grouped by state
What it does: Gives statistical information about all orchestration instances in your system and groups them into the different states they might be in. This type of information is available in the admin MMC by right clicking on an orchestration and selecting properties. This is just a way to rollup all data across all orchestration types and to do it programmatically.
How to read the results: If you have a large number of suspended instances well then something is failing. If you have a large number of dehydrated instances it could indicate a problem with your backend systems not responding promptly or it could just mean that the host in which messaging services are running is not up. If you have a large number of Ready To Run services then either your server is not up or you have a lot of load on your system and are trying hard to keep up. Might not be a problem if we catch up later, but if we can’t catch up then your system is being over driven.
What to do: If they are suspended, you need to look at the suspended info in HAT and determine why they are suspended and do something about. If they are dehydrated and you are concerned, you should look at the message flow to see what they are waiting for and then determine why that message has not come back. If they are ready to run, you should make sure your services are running and then check CPU utilization on these machines and other resource issues because they might be over-driven.
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET DEADLOCK_PRIORITY LOWSELECT o.nvcName AS Orchestration, COUNT(*) as Count,
CASE i.nState
WHEN 1 THEN ‘Ready To Run’WHEN 2 THEN ‘Active’
WHEN 4 THEN ‘Suspended Resumable’
WHEN 8 THEN ‘Dehydrated’
WHEN 16 THEN ‘Completed With Discarded Messages’
WHEN 32 THEN ‘Suspended Non-Resumable’
END as StateFROM [BizTalkMsgboxDb]..[Instances] AS i WITH (NOLOCK)
JOIN [BizTalkMgmtDb]..[bts_Orchestration] AS o WITH (NOLOCK) ON i.uidServiceID = o.uidGUID
–WHERE dtCreated > ‘2004-08-24 00:00:00’ AND dtCreated < ‘2004-08-24 13:30:00’
GROUP BY o.nvcName, i.nState
try setting Min Occurs 0 for the node “LotDiscrepancyReason” . If you are not mapping that field its better to set it to min occurs 0 😉
you can use WMI scripts to deploy it. Its available in SDK
It is simple.
At the start of orchestration use sql adapter at receive shape to fetch rows in that table. Then use debatching to split it into single xml corresponding to each row in the table. Promote the status field. After splitting it into single xml Messages through Debatching just check for that status field for each splitted messages.If its value is \”Error\” call another Orchestration.I have check that “LotDiscrepancyReason” was not used for mapping.
but having the Test Map result of errors LotDiscrepancyReason’ element has an invalid value according to its data type?
I personly would like to do an upgrade. But the decision is made to do an migration. Sad…
I tried the MSI, seems not working, when install on 2006, always got the error to say missing dependencies…..but i included everything…..
Then i just copy the whole folder including VS.NET files to 2006 and a VS.NET conversion automatically occurred. Then everything is there but the Receive&Send Ports are missing. Also needs to do some fixup like change the SQL Server Name, SN key path……
It could be done but seems like needs to do lots of fixup, like create a new project from very beginning but just have some existing schema, map, pipeline can be imported.
Figured it out. Should use LOOP in map. Totally forget the power of map. 😳
-
AuthorPosts