none
Commerce Server Adapter RRS feed

  • Question


  • Hi,
    Can I  dynamically configure commerce server catalog adapter in orchestration? If yes then which assembly i had to add as referance to project?
    Wednesday, March 5, 2008 10:46 PM

Answers

  • Well, you would usually do this in a dynamic send port. I checked in the quickstart guide and the URI is blank in the screenshot of a static catalog adapter port. I have not found any documentation of this on the web either. I will do some research on this and post back about this - hopefully this is in the registry somewhere. 

    Another option (obviously not ideal) would be to write the message out to a file port, then have a separate receive port read it back in and use a send port filter to route it to a static send port that uses the commerce server adapter. You could use dynamic file send ports (or other mechanisms like promoted properties, etc. ) to separate the messages into various destinations and then route using filters to the appropriate catalog adapter ports.

    The only negative I know of with a dynamic send port is that it executes under the default host for the adapter type. This limits host isolation capabilities.

    Thanks,
    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Monday, March 23, 2009 8:27 PM
    Moderator

All replies

  • So the first thing you have to do is install the Commerce Server BizTalk adapters on your development machine. The rest of this response relates to Commerce Server 2007. Then you have to add the Commerce Server adapters to the BizTalk installation in the BizTalk admin console as described here: http://msdn2.microsoft.com/en-us/library/ms944289.aspx. Then you can create a receive or send port for the relevant Commerce Server adapter. The above article references two articles for how to do this. For a receive port, here is the article: http://msdn2.microsoft.com/en-us/library/ms964598.aspx. For a send port, here ist he article: http://msdn2.microsoft.com/en-us/library/ms945802.aspx.

     

    I think if you go through the process of creating a port in Visual Studio, it will add the references to your project for Commerce Server and you can determine which namespaces to use for dynamic port configuration from there.

     

    Thanks,

    Friday, March 7, 2008 11:34 PM
    Moderator

  • I am looking to configure catalog adapter properties based on incoming massage How can I do that?
    Monday, March 10, 2008 3:31 PM
  • I am looking to do the exact same thing, have you figured out how to do it yet? 

    Thanks,


    Mirko
    Monday, March 23, 2009 3:09 PM
  • You have to add a reference to Microsoft.CommerceServer.Adapter.MessageSchemas in order to have the default schemas. This should also let you modify the context properties of a BizTalk message in an orchestration.

    The following document is a quickstart guide to using the catalog adapter with Visual Studio in a BizTalk solution: http://download.microsoft.com/download/b/1/d/b1d9ddf9-88c6-4d4e-abea-4787fdc85bec/usingcatalogadapter.doc.

    Thanks,

    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Monday, March 23, 2009 4:01 PM
    Moderator
  • I have a reference to Microsoft.CommerceServer.Adapter.MessageSchemas and am able to do all kinds of wonderful stuff to the messages.  My issue is that I want to address the catalog adapter properties and neither the messageschemas ref nor the quickstart doc gives any indication on how to do that.  I want to modify the Microsoft.XLANGs.BaseTypes.Address property of the port, something I cannot do unless it is a dynamic port but I cannot define a dynamic port to be of a Commerce Server Catalog Adapter port.  As far as I can determine, I cannot change any port or adapter properties from within the Orchestration unless the port is configured to be a Dynamic Port. 

    My need is thus:
    I have a central backend catalog data source that feeds two different Commerce Server sites.  The Sites are the same except for the catalogs that need to be loaded.  The backend data source passes some properties that determine what site the catalog is destined for.  At the moment I have multiple send ports defined for the catalog load, one for each site.  The Orchestration interrogate the incomming catalog data properties and determines which port to send it to.  This works just dandy but the result is that I have two physical ports to maintain.  While that is not insurmountable now with only two sites it can get ugly when more sites are added.  Ideally I would like to have one physical port defined and have the Orchestration determine what URI to send to.

    Thanks.
    Monday, March 23, 2009 6:56 PM
  • Well, you would usually do this in a dynamic send port. I checked in the quickstart guide and the URI is blank in the screenshot of a static catalog adapter port. I have not found any documentation of this on the web either. I will do some research on this and post back about this - hopefully this is in the registry somewhere. 

    Another option (obviously not ideal) would be to write the message out to a file port, then have a separate receive port read it back in and use a send port filter to route it to a static send port that uses the commerce server adapter. You could use dynamic file send ports (or other mechanisms like promoted properties, etc. ) to separate the messages into various destinations and then route using filters to the appropriate catalog adapter ports.

    The only negative I know of with a dynamic send port is that it executes under the default host for the adapter type. This limits host isolation capabilities.

    Thanks,
    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Monday, March 23, 2009 8:27 PM
    Moderator
  • Hey, I figured out a way to determine URI for adapters (outside of the BizTalk admin console) and it worked for the SQL and MSMQ adapters but not for the Commerce Server adapter. I opened the adapter assembly in Reflector and searched the source code for "://" which should occur after the token for the adapter URI. It is hard coded in both the SQL and MSMQ adapter assemblies. But I could only find examples in the Commerce Server adapter assembly of writing context properties where the http:// namespace of the message schema was being used - no specific URI for use with a dynamic send port.

    So unfortunately the only solution I can come up with is routing on a dynamic send port for an adapter type that has a known URI and then using send port filters to route it to the correct static catalog adapter port.

    Thanks,
    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Tuesday, March 24, 2009 5:08 AM
    Moderator
  • Thanks for the info, Ben.  I guess I will just use my multiple send ports for now.  Maybe in the next incarnation of Commerce Server Adapters/BizTalk Interaction we will be able to do more.


    Tuesday, March 24, 2009 1:03 PM
  • As far as I know, the CS 2009 RC1 release has not updated the CS 2007 adapters at all, which is frustrating. I have played with CS 2009 RC1 and the install directions basically have you run the CS 2007 adapter install. I can suggest this as a new product feature.

    Thanks,
    If this answers your question, please use the "Answer" button to say so | Ben Cline
    • Proposed as answer by Mirko3 Wednesday, March 25, 2009 12:15 PM
    Tuesday, March 24, 2009 4:31 PM
    Moderator
  • Until those new features make their way in we will just have to be more creative.  Thanks for the info.


    Regards,

    Mirko.
    Wednesday, March 25, 2009 12:20 PM
  • I checked about this feature with the CS product group and dynamic send ports with the CS 2007/2009 catalog adapter are officially not supported. So the send port re-routing workaround may be the only available solution.

    Thanks,
    If this answers your question, please use the "Answer" button to say so | Ben Cline
    Thursday, March 26, 2009 2:30 AM
    Moderator