Move from Spaces.live.com broke all specific blog links. I will attempt to recreate any internal pointer links. Though the “transfer process” was supposed to keep “ALL” links intact. Apparently they didn’t test this.
Share on FacebookMonthly Archives: September 2010
Updated AutoDeploy
How to Retrieve Batch information by Agreement Name
Getting back on Autodeploy late October since its so close to done.
///Command – doesRegistryEntryExist – to see if a registry entry exists (example:SOFTWARE/Microsoft/UDDI)
///Command – isInstalled – to see if they have the proper installations (example:SQL Server)
///Command – isServiceInstalled – to see if they have the proper service installed (example:IISADMIN)
///Command – Message
///Command – runCommandLine (EXE, COM, PS1, EXE, MSI, ZIP/UNZIP, Copy Move, Mappings can all be done here.)
///Command – runSQLCommand (Run Command From XML Config)
///Command – runSQLScript (SQL in file)
///Command – runIfServiceExists
///Command – runIfProgramInstalled
///Command – runIfRegistryExists
///Command – addXElement
///Command – replaceOrAddXElementIfMissing
///Command – replaceOrAddXAttributeIfMissing
Learned a different kind of EDI pattern today.
Sandcastle with .Net 4.0
This Builds Help documentation for you. (Based on your Commenting)
I have been asked a few times about the old one, this tool is way easier to use so I figured I’d take out a few minutes to show an example.
How to enhance your documentation via XML documentation over the standard commenting.
http://www.ewoodruff.us/shfbdocs/Index.aspx?topic=html/b772e00e-1705-4062-adb6-774826ce6700.htm(Seems to work fine up to 3.0 and 3.5 SP1. However it error-ed on my EF4 library and anything that references .net 4.0. I think this may be just as easy as adding them to the Documentation Sources as a new source.)
Step 1:
Download
http://sandcastle.codeplex.com/releases/view/13873 (sandcastle main) I had this installed. Though I am unsure if you need it to run the Sandcastle Help File Builder.Download
http://shfb.codeplex.com/releases/view/29710 (sandcastle external tool)
Direct Link:
Sandcastle Help File Builder Installer<http://shfb.codeplex.com/releases/view/29710#DownloadId=99676>
Start the File Builder (From Program Files)
Select New Project:
This will bring open your documents directory and just name it something.
From the Project explorer window on the tool:
Then Add the EXE’s or DLL’s
I used to have to add the .net 4 directory, but now there is a selection for it.
Once loaded you will see them here:
States output is here:
Compiling c:UsersMarkDocumentsHelpWorkingOutputDocumentation.chm
But was found here:
Compiling c:UsersMarkDocumentsHelpDocumentation.chm
Running:
Final Output:
EDIGUIDANCE the hunt for all the settings.
BT2010 EDI TPM Deep Dive

How to retrieve EDI Partner Information for context based EDI routing Part 2
PROCEDURE [GetAS2AndEDIInformationByAgreementName]
varchar(255)
select 1 as tag,
null as parent,
IsNull(agreement.Name,”) as ‘EDIHEADER!1!AgreementName’,
IsNull(sender.Name,”) as ‘EDIHEADER!1!SenderName’, IsNull(receiver.Name,”) as ‘EDIHEADER!1!ReceiverName’,
IsNull(businessIdentitySender.Qualifier,”) as ‘EDIHEADER!1!ISA5’,IsNull(businessIdentitySender.Value,”) as ‘EDIHEADER!1!ISA6’,
IsNull(businessIdentityReceiver.Qualifier,”) as ‘EDIHEADER!1!ISA7’, IsNull(businessIdentityReceiver.Value,”) as ‘EDIHEADER!1!ISA8’,
IsNull(AS2.AS2From,”) as ‘EDIHEADER!1!AS2From’, IsNull(AS2.AS2To,”) as ‘EDIHEADER!1!AS2To’
from
.[tpm].[Partner] sender inner join
.[tpm].[Agreement] agreement on sender.PartnerId = agreement.SenderProfileId inner join
.[tpm].[BusinessIdentity] businessIdentitySender on businessIdentitySender.ProfileId = sender.PartnerId inner join
.[tpm].[Partner] receiver on receiver.PartnerId = agreement.ReceiverProfileId inner join
.[tpm].[BusinessIdentity] businessIdentityReceiver on businessIdentityReceiver.ProfileId = receiver.PartnerId left outer join
(
select
.Value as AS2From,
.Value as AS2To,
.Name as SenderName, receiver.Name as ReceiverName
from
.[tpm].[Partner] sender inner join
.[tpm].[Agreement] agreement on sender.PartnerId = agreement.SenderProfileId inner join
.[tpm].[BusinessIdentity] businessIdentitySender on businessIdentitySender.ProfileId = sender.PartnerId inner join
.[tpm].[Partner] receiver on receiver.PartnerId = agreement.ReceiverProfileId inner join
.[tpm].[BusinessIdentity] businessIdentityReceiver on businessIdentityReceiver.ProfileId = receiver.PartnerId
WHERE
.Name = @AgreementName and
.Qualifier = ‘AS2Identity’ and businessIdentitySender.Qualifier = ‘AS2Identity’
) as AS2 on AS2.SenderName = sender.Name and AS2.ReceiverName = receiver.Name
WHERE
.Name = @AgreementName and
.Qualifier <> ‘AS2Identity’ and businessIdentitySender.Qualifier <> ‘AS2Identity’
FOR XML EXPLICIT
[BizTalkMgmtDb]
@return_value int
@return_value = [dbo].[GetAS2AndEDIInformationByAgreementName]
@AgreementName = N’Acme To EDIGUIDANCE’
‘Return Value’ = @return_value
EDIHEADER AgreementName="Acme To EDIGUIDANCE" SenderName="ACME CORPORATION" ReceiverName="EDIGUIDANCE" ISA5="ZZ" ISA6="ACME" ISA7="ZZ" ISA8="EDIGUIDANCE" AS2From="" AS2To="" />
[BizTalkMgmtDb]
ANSI_NULLS ON
QUOTED_IDENTIFIER ON
PROCEDURE [dbo].[GetEDIInformationByAgreementName]
varchar(255)
1 as tag,
null as parent,
IsNull(agreement.Name,”) as ‘EDIHEADER!1!AgreementName’,
IsNull(sender.Name,”) as ‘EDIHEADER!1!SenderName’, IsNull(receiver.Name,”) as ‘EDIHEADER!1!ReceiverName’,
IsNull(businessIdentitySender.Qualifier,”) as ‘EDIHEADER!1!ISA5’,IsNull(businessIdentitySender.Value,”) as ‘EDIHEADER!1!ISA6’,
IsNull(businessIdentityReceiver.Qualifier,”) as ‘EDIHEADER!1!ISA7’, IsNull(businessIdentityReceiver.Value,”) as ‘EDIHEADER!1!ISA8’
from
.[tpm].[Partner] sender inner join
.[tpm].[Agreement] agreement on sender.PartnerId = agreement.SenderProfileId inner join
.[tpm].[BusinessIdentity] businessIdentitySender on businessIdentitySender.ProfileId = sender.PartnerId inner join
.[tpm].[Partner] receiver on receiver.PartnerId = agreement.ReceiverProfileId inner join
.[tpm].[BusinessIdentity] businessIdentityReceiver on businessIdentityReceiver.ProfileId = receiver.PartnerId
WHERE
.Name = @AgreementName and
.Protocol = ‘x12’ and businessIdentityReceiver.Qualifier <> ‘AS2Identity’ and businessIdentitySender.Qualifier <>‘AS2Identity’
FOR XML EXPLICIT
EDIHEADER AgreementName="Acme To EDIGUIDANCE" SenderName="ACME CORPORATION" ReceiverName="EDIGUIDANCE" ISA5="ZZ" ISA6="ACME" ISA7="ZZ" ISA8="EDIGUIDANCE" />
[BizTalkMgmtDb]
ANSI_NULLS ON
QUOTED_IDENTIFIER ON
PROCEDURE [dbo].[GetAS2InformationByAgreementName]
varchar(255)
select 1 as tag,
null as parent,
.Name ‘EDIHEADER!1!AgreementName’,
.Name as ‘EDIHEADER!1!SenderName’, receiver.Name as ‘EDIHEADER!1!ReceiverName’,
.Value as ‘EDIHEADER!1!AS2From’,
.Value as‘EDIHEADER!1!AS2To’
from
.[tpm].[Partner] sender inner join
.[tpm].[Agreement] agreement on sender.PartnerId = agreement.SenderProfileId inner join
.[tpm].[BusinessIdentity] businessIdentitySender on businessIdentitySender.ProfileId = sender.PartnerId inner join
.[tpm].[Partner] receiver on receiver.PartnerId = agreement.ReceiverProfileId inner join
.[tpm].[BusinessIdentity] businessIdentityReceiver on businessIdentityReceiver.ProfileId = receiver.PartnerId
WHERE
.Name = @AgreementName and
.Protocol = ‘as2’ and
.Qualifier = ‘AS2Identity’ and businessIdentitySender.Qualifier = ‘AS2Identity’
FOR XML EXPLICIT
EDIHEADER AgreementName="ACME to EDIGUIDANCE AS2" SenderName="ACME CORPORATION" ReceiverName="EDIGUIDANCE" AS2From="ACME" AS2To="EDIGUIDANCE" />
How to retrieve EDI Partner Information for context based EDI routing Part 1
STORED PROC : For Single X12 and AS2 Agreements from Party->Party
— USE
[BizTalkMgmtDb]
GO
/****** Object: StoredProcedure [dbo].[GetAS2AndEDIInformationBySenderAndReceiverName] Script Date: 09/18/2010 01:07:29 ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
— =============================================
— Author: <Mark Rowe>
— Create date: <September 17, 2010>
— Description: <EDIGUIDANCE Addin>
— =============================================
CREATE PROCEDURE [dbo].[GetAS2AndEDIInformationBySenderAndReceiverName]
(
@Sender
varchar(255),
@Receiver
varchar(255)
)
AS
BEGIN
select 1 as tag,
null as parent,
IsNull(agreement.Name,”) as ‘EDIHEADER!1!AgreementName’,
IsNull(sender.Name,”) as ‘EDIHEADER!1!SenderName’, IsNull(receiver.Name,”) as ‘EDIHEADER!1!ReceiverName’,
IsNull(businessIdentitySender.Qualifier,”) as ‘EDIHEADER!1!ISA5’,IsNull(businessIdentitySender.Value,”) as ‘EDIHEADER!1!ISA6’,
IsNull(businessIdentityReceiver.Qualifier,”) as ‘EDIHEADER!1!ISA7’, IsNull(businessIdentityReceiver.Value,”) as ‘EDIHEADER!1!ISA8’,
IsNull(AS2.AS2From,”) as ‘EDIHEADER!1!AS2From’, IsNull(AS2.AS2To,”) as ‘EDIHEADER!1!AS2To’
from
[BizTalkMgmtDb]
.[tpm].[Partner] sender inner join
[BizTalkMgmtDb]
.[tpm].[Agreement] agreement on sender.PartnerId = agreement.SenderProfileId inner join
[BizTalkMgmtDb]
.[tpm].[BusinessIdentity] businessIdentitySender on businessIdentitySender.ProfileId = sender.PartnerId inner join
[BizTalkMgmtDb]
.[tpm].[Partner] receiver on receiver.PartnerId = agreement.ReceiverProfileId inner join
[BizTalkMgmtDb]
.[tpm].[BusinessIdentity] businessIdentityReceiver on businessIdentityReceiver.ProfileId = receiver.PartnerId left outer join
(
select
businessIdentitySender
.Value as AS2From,
businessIdentityReceiver
.Value as AS2To,
sender
.Name as SenderName, receiver.Name as ReceiverName
from
[BizTalkMgmtDb]
.[tpm].[Partner] sender inner join
[BizTalkMgmtDb]
.[tpm].[Agreement] agreement on sender.PartnerId = agreement.SenderProfileId inner join
[BizTalkMgmtDb]
.[tpm].[BusinessIdentity] businessIdentitySender on businessIdentitySender.ProfileId = sender.PartnerId inner join
[BizTalkMgmtDb]
.[tpm].[Partner] receiver on receiver.PartnerId = agreement.ReceiverProfileId inner join
[BizTalkMgmtDb]
.[tpm].[BusinessIdentity] businessIdentityReceiver on businessIdentityReceiver.ProfileId = receiver.PartnerId
WHERE
sender
.Name = @Sender and receiver.Name = @Receiver and
agreement
.Protocol = ‘as2’ and
businessIdentityReceiver
.Qualifier = ‘AS2Identity’ and businessIdentitySender.Qualifier = ‘AS2Identity’
) as AS2 on AS2.SenderName = sender.Name and AS2.ReceiverName = receiver.Name
WHERE
sender
.Name = @Sender and receiver.Name = @Receiver and
agreement
.Protocol = ‘x12’
and businessIdentityReceiver.Qualifier <> ‘AS2Identity’ and businessIdentitySender.Qualifier <>‘AS2Identity’
FOR XML EXPLICIT
END
GO
__________________________________
The Test:
— USE
[BizTalkMgmtDb]
GO
DECLARE
@return_value int
EXEC
@return_value = [dbo].[GetAS2AndEDIInformationBySenderAndReceiverName]
@Sender = N’ACME CORPORATION’,
@Receiver
= N’EDIGUIDANCE’
SELECT
‘Return Value’ = @return_value
GO
OUTPUT
<EDIHEADER AgreementName="Acme To EDIGUIDANCE" SenderName="ACME CORPORATION" ReceiverName="EDIGUIDANCE" ISA5="ZZ" ISA6="ACME" ISA7="ZZ" ISA8="EDIGUIDANCE" AS2From="ACME" AS2To="EDIGUIDANCE" />
STORED PROC : For Multiple X12 Agreements from Party->Party
— USE [BizTalkMgmtDb]
GO
/****** Object: StoredProcedure [dbo].[GetEDIInformationBySenderAndReceiverName] Script Date: 09/18/2010 01:51:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
— =============================================
— Author: <Mark Rowe>
— Create date: <September 17, 2010>
— Description: <EDIGUIDANCE Addin>
— =============================================
CREATE PROCEDURE [dbo].[GetEDIInformationBySenderAndReceiverName]
(
@Sender varchar(255),
@Receiver varchar(255)
)
AS
BEGIN
select 1 as tag,
null as parent,
IsNull(agreement.Name,”) as ‘EDIHEADER!1!AgreementName’,
IsNull(sender.Name,”) as ‘EDIHEADER!1!SenderName’, IsNull(receiver.Name,”) as ‘EDIHEADER!1!ReceiverName’,
IsNull(businessIdentitySender.Qualifier,”) as ‘EDIHEADER!1!ISA5’,IsNull(businessIdentitySender.Value,”) as ‘EDIHEADER!1!ISA6’,
IsNull(businessIdentityReceiver.Qualifier,”) as ‘EDIHEADER!1!ISA7’, IsNull(businessIdentityReceiver.Value,”) as ‘EDIHEADER!1!ISA8’
from
[BizTalkMgmtDb].[tpm].[Partner] sender inner join
[BizTalkMgmtDb].[tpm].[Agreement] agreement on sender.PartnerId = agreement.SenderProfileId inner join
[BizTalkMgmtDb].[tpm].[BusinessIdentity] businessIdentitySender on businessIdentitySender.ProfileId = sender.PartnerId inner join
[BizTalkMgmtDb].[tpm].[Partner] receiver on receiver.PartnerId = agreement.ReceiverProfileId inner join
[BizTalkMgmtDb].[tpm].[BusinessIdentity] businessIdentityReceiver on businessIdentityReceiver.ProfileId = receiver.PartnerId
WHERE
sender.Name = @Sender and receiver.Name = @Receiver and
agreement.Protocol = ‘x12’
and businessIdentityReceiver.Qualifier <> ‘AS2Identity’ and businessIdentitySender.Qualifier <>‘AS2Identity’
FOR XML EXPLICIT
END
GO
OUTPUT
<EDIHEADER AgreementName="ACME to EDIGUIDANCE AS2" SenderName="ACME CORPORATION" ReceiverName="EDIGUIDANCE" AS2From="ACME" AS2To="EDIGUIDANCE" />
STORED PROC : For Multiple AS2 Agreements from Party->Party based on party names
— USE [BizTalkMgmtDb]
GO
/****** Object: StoredProcedure [dbo].[GetAS2InformationBySenderAndReceiverName] Script Date: 09/18/2010 01:52:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
— =============================================
— Author: <Mark Rowe>
— Create date: <September 17, 2010>
— Description: <EDIGUIDANCE Addin>
— =============================================
CREATE PROCEDURE [dbo].[GetAS2InformationBySenderAndReceiverName]
(
@Sender varchar(255),
@Receiver varchar(255)
)
AS
BEGIN
select 1 as tag,
null as parent,
agreement.Name ‘EDIHEADER!1!AgreementName’,
sender.Name as ‘EDIHEADER!1!SenderName’, receiver.Name as ‘EDIHEADER!1!ReceiverName’,
businessIdentitySender.Value as ‘EDIHEADER!1!AS2From’,
businessIdentityReceiver.Value as‘EDIHEADER!1!AS2To’
from
[BizTalkMgmtDb].[tpm].[Partner] sender inner join
[BizTalkMgmtDb].[tpm].[Agreement] agreement on sender.PartnerId = agreement.SenderProfileId inner join
[BizTalkMgmtDb].[tpm].[BusinessIdentity] businessIdentitySender on businessIdentitySender.ProfileId = sender.PartnerId inner join
[BizTalkMgmtDb].[tpm].[Partner] receiver on receiver.PartnerId = agreement.ReceiverProfileId inner join
[BizTalkMgmtDb].[tpm].[BusinessIdentity] businessIdentityReceiver on businessIdentityReceiver.ProfileId = receiver.PartnerId
WHERE
sender.Name = @Sender and receiver.Name = @Receiver and
agreement.Protocol = ‘as2’ and
businessIdentityReceiver.Qualifier = ‘AS2Identity’ and businessIdentitySender.Qualifier = ‘AS2Identity’
FOR XML EXPLICIT
END
GO
OUTPUT
<EDIHEADER AgreementName="ACME to EDIGUIDANCE AS2" SenderName="ACME CORPORATION" ReceiverName="EDIGUIDANCE" AS2From="ACME" AS2To="EDIGUIDANCE" />