Oct 302006

After rebooting my machine, I could never get the machines to show up again, always stating that

The configuration file (C:\Documents and Settings\NetworkService\My
Documents\SQL\Reporting Services.vmc) referenced by the configuration link
“C:\Documents and Settings\All Users\Application Data\Microsoft\Virtual
Server\Virtual Machines\Reporting Services.lnk” could not be found.


I would then have to go in and delete the file “C:\Documents and Settings\All Users\Application Data\Microsoft\Virtual
Server\Virtual Machines\Reporting Services.lnk” and reassociate the machine.

I resolved this problem by putting the machines in the default folder (defined in the Default Paths in the Virtual Server configuration page) instead of my personal folder in ‘My Documents’

Oct 302006

I came across this error while testing an orchestration. To explain the situation, physician we were pulling data from various tables via some stored procedures. We finally sent out a file, order and then waited until an acknowedgment message was recieved. Once that message was recieved, order we then called a seperate orchestration that would return a control number. Afterwards we would determine what kind of message to create based on the acknowedgment. It would then take the various messages from the stored procedure, and we would then have a map transform the messages into one single message.
This all seemed to work fine, until we would recieve the acknowledment, then it would label the call to the external orchestration as ‘Delivered, Not Consumed.’

After banging my head against the wall for a while – a day of fiddling, etc – I took the call to the external orchestration out completely.
I then re-ran it, and it then labelled the acknowledgement as Delivered, Not Consumed, when I KNEW THAT IT WAS WORKING.
I then continued banging my head against the wall until I finally put a call into MS Support. I was quickly promoted to the 3rd level support, where I talked with an individual from England until he asked me to debug the orchestration. I then stepped through the orchestration, and I got past the consuming of the acknowledgment message, past a test, past a expression shape, and then it died when it invoked a map!
I then looked at the map, again, which took many messages, and created one message. It was not set up correctly, functoids were missing necessary parameters.
I then fixed the map, and the orchestration started working as expected.

So if you are reading this, please walk debug the orchestration if you ever get that message, because it normally means something down the orchestration path is bad, not the last communication outside of BizTalk had invoked.

Oct 272006


Wouldn’t it be nice to open an InfoPath form from another form, cialis and “jump” to a particular row in the database that is being referenced?

That was my question, viagra dosage and it took some questioning, purchase searching, etc to get the answer. (Thanks to http://www.infopathdev.com, and http://msdn.microsoft.com)

So here it goes, I have a form that I query and get the results, and then I want to jump to another form based on my results.

I created a button, and then edited the button.

Here is the actual code, in which I will comment on it after:

function OpenDetail::OnClick(eventObj)
//Get the local file path
var sFormPath = “”;
var sUri = XDocument.Solution.URI;
var i = sUri.lastIndexOf(””);
if(-1 == i)
i = sUri.lastIndexOf(”/”);
sFormPath = sUri.substring(0, i + 1);

//Get the Parent ID form this form
var param1=XDocument.DOM.selectSingleNode(”/dfs:myFields/dfs:dataFields/d:ContactInfo/@ID”).text;

//Start the application
var oApp = new ActiveXObject(”InfoPath.Application”);

//Open an InfoPath document from the published template
var oXDocumentCollection = oApp.XDocuments;
var oXDocument = oXDocumentCollection.NewFromSolution(sFormPath+”detail.xsn”);

// Get pointers to the target fields
var oID = oXDocument.DOM.selectSingleNode(”//@parentid”);

//Update the fields
oID.text = param1;


The first part gets the local directoy (assuming that both forms are located in the same directory.
The second part grabs the data from the ‘parent’ form that is going to be used to key the second form.
{The rest of the code’s comments explain what is going on.}

Once that the variable is filled, then we can run the Query() function to return the data.

The issues that I am having right now is that when you open up the new form, you get 3 security warning messages, so I am looking at how to get rid of those dialog boxes.

Oct 262006

 am not sure if I am the only one who has this problem, price but everytime I set up an instance of BTS on a new machine, I am gun shy about how to set up SharePoint Services (WSS).

I know that if I go thru the installation of Biztalk and accept the defaults, WSS gets installed at the root level (http://localhost). This would acutally be fine, if you never have a use to do anything other than SharePoint stuff.

Most of us, however, have another use for the default web site. I, for example, might be developing some web services, or creating a different page outside of SharePoint. Web Services do not work with SharePoint very well, so you need to develop the Web Services on a different web site.

I am going to give instructions on how to set up WSS after you have already installed it, and already gone through the BTS installation.

Here they are:
1. Create a new folder where the new WSS site is going to be. (for me: c:inetputwwwrootsharepoint)
2. Open up IIS, and right click on Web Sites and choose New Web Site…
3. In the Welcome to the Web Site Creation Wizard, click Next
4. In the Web Site Description window, type a description (I typed Sharepoint)
5. In the IP and Port Settings dialog box:
A. Leave the default [All Unassigned] for the IP address to use
B. Type in the port you want to use (in my case I used port 8080)
C. Leave the Header blank
6. Browse to the folder that you created (see step 1)
7. Click on the Web Site access permissions you want
8. Click Finish

Congratulation you are done!

(okay not quite)

9. Go into your SharePoint Central Administration
10. Click on the Extend or upgrade virtual server
11. If you don’t see all of the web sites listed in IIS, click at the top the link for the complete list
12. You should see Default Web Site, and your newly created web site, but your newly created site does not have a version, it states that it is ‘Not Installed’
13. Click on the site that you just created
14. Click Extend and create a content database
15. For the Application Pool, I chose the existing application pool, StsAdminAppPool
16. Put a Site Owner Email in, and I left everything else as default
17. Now the gears should be turning (literally)
18. It should now show that it was successfully extended
19. Go BACK to the Central Administration Page
20. Click on the Extend or upgrade virtual server
21. Click on the Default Web Site
22. Click on Remove Windows SharePoint Services from virtual server
23. Because I don’t want to delete the database, I chose to remove w/o deleting the database and press ok

You have completed the sharepoint set up, now if you go to http://localhost:8080 you should see the Template web page, and if you go to the default web site, you should see that it is under construction

Hope that this has helped people in correllating WSS with BTS.

Oct 252006

While at a client site, order I came across an installation error I had not come across.

At the last part of the configuration of the installation of BTS 2004, viagra an error came up stating ‘Failed to Create Master Secret’ and the only options were to Retry or Cancel.

Well, discount Retry does not do anything, and so cancelling does what we all love – un does EVERYTHING.

Come to find out, if you are not connected to a network, or if you don’t have a valid IP address, this part will not work, you will need to have a valid IP address for ESSO to install properly.

Oct 232006

For those of you who got used to the Covast bells and whistles that come with the Covast EDI adapter, medical and then come to another EDI tool interfacing with BizTalk, adiposity namely the HIPAA accelerator, made for Microsoft by ?????, there are quite a few nice things missing. One of those things being the ability to clear the report so you are not flooded with ’stuff’

Another BIG issue is that while testing, it would be REALLY nice to be able to send the file through a few times to make sure that the file works correctly. There is NO way to disable the duplicate interchange control checking.

Here is the sql code (run against the BizTalkHIPAA_EDIdb database) to clear out the report, and also allows you to run the same file through the HIPAA accellerator again:

delete from audin
delete from audout

Bye the way, you will want to go into the %documentshome% directory and delete/archive the files that are there, as the temporary files will prevent the adapter from writing new ones.

Another option is to use the custom HIPAA DASM that does not check for duplicate control numbers, namely because it does not check the audin and audout tables.

Oct 232006


Many a client has requested to have custom filenames using the HIPAA_EDI adapter.

I originally planned on using a custom ASM pipeline component and setting the ghost port to batching, site and within the orchestration setting the RecievedFileName.

Found out that when that happens, physician no file is created, also, no errors are created! This really smells like a bug, as there is no documentation on this!

After contacting Microsoft, and submitting a ticket, this is the response I got back:

The HIPAA pipeline is not architected to support batching. It simply does a one-on-one translation from XML to EDI and that’s it.
The batching mechanism is depending on the data in the audout table and the HIPAA pipeline does not persist any data.
The only way you can create outbound EDI batches is via the HIPAA EDI adapter.

I ended up having to re-engineer the process so that (written about here), by single threading the entire process, files do not get batched together and files can be accounted for.

Oct 232006

For those of you who like to manipulate data in the expression editor, troche there are a few things that can be done:
1. You can build a C# or VB.NET assembly that will take a string and manipulate it returning the correctly formatted string
2. You can use xpath.

A clients request is that we parse from the filename, find the date that is embedded in the filename.

The first thing I did was extract the filename into a variable called FileName:

Then I needed to pull from position 26-31 the date into the variable MessageDate:
(One gotcha is that you have to put a single quote ‘ right after the open paranthese and then a double quote ” and then concatonate the variable and then do the reverse to close it out. The other gotcha is that if you are parsing out a string that has a single tick ( ‘ ), you will have to use the Regex replace and replace it with another variable, substring the variable, and then replace the single tick back.)

This adds quite a bit more functionality to the Expression Editor than what is currently available.

The web page that I use as a xpath reference is this page.

Oct 192006

Here is the list of changes that need to take place if you are having issues either in validating or deploying the WPC schemas.
Click below…

1. Stop the HIPAA Service
2. Delete all files (normally the .wrk and .eif files) in this directory C:Documents and SettingsAll UsersApplication DataMicrosoftBizTalk Server 2004HIPAA_EDISubsystemEIF
3. Start the HIPAA Service
4. in the {Program Files}Microsoft BizTalk Accelerator for HIPAA 3.0HIPAA_EDISubsystem double click on the compeif.exe and wait for it to complete
5. Open up the parame table in the BizTalkHIPAA_EDIDb and change the column repolock to NULL by pressing CTRL+0

You now should be able to re-validate or re-deploy the schemas that were causing the issue.

Oct 172006


When defining objects in the Excel BAM workbook, discount it allows for spaces. However, sildenafil you cannot reference those spaced names in orchestrations, you must use the Name, not the DisplayName.

Here is the rule that will load it successfully into the BAM tables: