Login / Register  search  syndication  about

          Kris Halsrud's Blog

Kris Halsrud on development and Integration with CRM and Development

SalesLogix Web Manifest "wizards" buggy

I had a phone call yesterday with a client who was trying to use the Application Architect's manifest creation "wizards" by project difference and by change date and was running into the fact that these wizards have bugs that malforms the XML representing the manifest. This prevents the user from being able to save the manifest, or if they do save, when installed do not properly add the components that are defined in the bundle.  here is a specific example:

A custom business rule was added to the system on the Lead entity.  When using the manifest wizard by create date here is the XML that is created:

 <bundleItem modelId="a7bdd2d9-93b0-499d-9fd4-c3f7a5f94e28" itemTypeName="Sage.Platform.Orm.Entities.BundleSupport.PackageBundleItem, Sage.Platform">
    <PackageBundleItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <ItemId>7ddc7cbe-e71d-483a-8599-6c5c483ee050</ItemId>
        <Url>\Entity Model\SalesLogix Application Entities\SalesLogix Application Entities.T.package.xml</Url>
        <BundleItemType>Context</BundleItemType>
        <Caption>SalesLogix Application Entities</Caption>
    </PackageBundleItem>
    <children>
        <bundleItem modelId="a7bdd2d9-93b0-499d-9fd4-c3f7a5f94e28" itemTypeName="Sage.Platform.Orm.Entities.BundleSupport.EntityBundleItem, Sage.Platform">
            <EntityBundleItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                <ItemId>27f9e8e9-34d8-4eaf-8fd7-c70d133e6f90</ItemId>
                <Url>\Entity Model\SalesLogix Application Entities\Lead\Lead.LEAD.entity.xml</Url>
                <BundleItemType>Context</BundleItemType>
                <Caption>Lead</Caption>
            </EntityBundleItem>
            <children>
                <bundleItem modelId="a7bdd2d9-93b0-499d-9fd4-c3f7a5f94e28" itemTypeName="Sage.Platform.Orm.Entities.BundleSupport.EntitySubFolderContext, Sage.Platform">
                    <EntitySubFolderContext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                        <ItemId>27f9e8e9-34d8-4eaf-8fd7-c70d133e6f90rules</ItemId>
                        <Url>\Entity Model\SalesLogix Application Entities\Lead\Lead.LEAD.entity.xml::Business Rules</Url>
                        <BundleItemType>Container</BundleItemType>
                        <Caption>Business Rules</Caption>
                        <ParentUrl>\Entity Model\SalesLogix Application Entities\Lead\Lead.LEAD.entity.xml</ParentUrl>
                        <CaptionKey>rules</CaptionKey>
                    </EntitySubFolderContext>
                    <children>                                 
                        <bundleItem modelId="a7bdd2d9-93b0-499d-9fd4-c3f7a5f94e28" itemTypeName="Sage.Platform.Orm.Entities.BundleSupport.BusinessRuleBundleItem, Sage.Platform">
                            <BusinessRuleBundleItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                                <ItemId>9a195e56-aa58-446f-8b49-e5b54a8f3a52</ItemId>
                                <Url>\Entity Model\SalesLogix Application Entities\Lead\CopyCommunityData.method.xml</Url>
                                <BundleItemType>ModelItem</BundleItemType>
                                <Caption>CopyCommunityData</Caption>
                            </BusinessRuleBundleItem>
                        </bundleItem>
                    </children>
                </bundleItem>

Of course, this is only a portion of the XML.You can see in the red text area what was added for the new business rule by the wizard.

While that might look like it added it, what it added was only the top level or stub of the business rule.  The actual steps the business rule performs (i.e. the code) is not included in the definition.  Lets take a look at what the XML looks like for the same business rule when you manually create a manifest:

(NOTE: again this is only the partial XML.  What follows is the correct XML representation of the text that was shown in Red above)

<children>
    <bundleItem modelId="a7bdd2d9-93b0-499d-9fd4-c3f7a5f94e28" itemTypeName="Sage.Platform.Orm.Entities.BundleSupport.PackagesContext, Sage.Platform">
        <PackagesContext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <ItemId>entitymodel\packages</ItemId>
            <Url>\::Entity Model::Packages</Url>
            <BundleItemType>Container</BundleItemType>
            <Caption>Packages</Caption>
        </PackagesContext>
        <children>
            <bundleItem modelId="a7bdd2d9-93b0-499d-9fd4-c3f7a5f94e28" itemTypeName="Sage.Platform.Orm.Entities.BundleSupport.BusinessRuleBundleItem, Sage.Platform">
                <BusinessRuleBundleItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                    <ItemId>9a195e56-aa58-446f-8b49-e5b54a8f3a52</ItemId>
                    <Url>\Entity Model\SalesLogix Application Entities\Lead\CopyCommunityData.method.xml</Url>
                    <BundleItemType>ModelItem</BundleItemType>
                    <Caption>CopyCommunityData</Caption>
                </BusinessRuleBundleItem>
                <children>
                    <bundleItem modelId="a7bdd2d9-93b0-499d-9fd4-c3f7a5f94e28" itemTypeName="Sage.Platform.Orm.Entities.BundleSupport.StepsSubFolderContext, Sage.Platform">
                        <StepsSubFolderContext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                            <ItemId>9a195e56-aa58-446f-8b49-e5b54a8f3a52pre</ItemId>
                            <Url>\Entity Model\SalesLogix Application Entities\Lead\CopyCommunityData.method.xml::Pre Execute Steps</Url>
                            <BundleItemType>Container</BundleItemType>
                            <Caption>Pre Execute Steps</Caption>
                            <ParentUrl>\Entity Model\SalesLogix Application Entities\Lead\CopyCommunityData.method.xml</ParentUrl>
                            <CaptionKey>pre</CaptionKey>
                        </StepsSubFolderContext>
                    </bundleItem>
                    <bundleItem modelId="a7bdd2d9-93b0-499d-9fd4-c3f7a5f94e28" itemTypeName="Sage.Platform.Orm.Entities.BundleSupport.StepsSubFolderContext, Sage.Platform">
                        <StepsSubFolderContext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                            <ItemId>9a195e56-aa58-446f-8b49-e5b54a8f3a52primary</ItemId>
                            <Url>\Entity Model\SalesLogix Application Entities\Lead\CopyCommunityData.method.xml::Primary Steps</Url>
                            <BundleItemType>Container</BundleItemType>
                            <Caption>Primary Steps</Caption>
                            <ParentUrl>\Entity Model\SalesLogix Application Entities\Lead\CopyCommunityData.method.xml</ParentUrl>
                            <CaptionKey>primary</CaptionKey>
                        </StepsSubFolderContext>
                        <children>
                            <bundleItem modelId="a7bdd2d9-93b0-499d-9fd4-c3f7a5f94e28" itemTypeName="Sage.Platform.Orm.Entities.BundleSupport.BusinessRuleStepBundleItem, Sage.Platform">
                                <BusinessRuleStepBundleItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                                    <ItemId>2c7bf420-0abd-42ca-bf38-eaf02e131b95</ItemId>
                                    <Url>\Entity Model\SalesLogix Application Entities\Lead\CopyCommunityData.method.xml::Primary Steps::CopyCommunityDataStep</Url>
                                    <BundleItemType>Other</BundleItemType>
                                    <Caption>CopyCommunityDataStep</Caption>
                                    <SerializationOptions>ProcessDependentUrls</SerializationOptions>
                                    <InstallOptions>ProcessDependentUrls</InstallOptions>
                                </BusinessRuleStepBundleItem>
                            </bundleItem>
                        </children>
                    </bundleItem>
                    <bundleItem modelId="a7bdd2d9-93b0-499d-9fd4-c3f7a5f94e28" itemTypeName="Sage.Platform.Orm.Entities.BundleSupport.StepsSubFolderContext, Sage.Platform">
                        <StepsSubFolderContext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                            <ItemId>9a195e56-aa58-446f-8b49-e5b54a8f3a52post</ItemId>
                            <Url>\Entity Model\SalesLogix Application Entities\Lead\CopyCommunityData.method.xml::Post Execute Steps</Url>
                            <BundleItemType>Container</BundleItemType>
                            <Caption>Post Execute Steps</Caption>
                            <ParentUrl>\Entity Model\SalesLogix Application Entities\Lead\CopyCommunityData.method.xml</ParentUrl>
                            <CaptionKey>post</CaptionKey>
                        </StepsSubFolderContext>
                    </bundleItem>
                    <bundleItem modelId="a7bdd2d9-93b0-499d-9fd4-c3f7a5f94e28" itemTypeName="Sage.Platform.Orm.Entities.BundleSupport.StepsSubFolderContext, Sage.Platform">
                        <StepsSubFolderContext xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                            <ItemId>9a195e56-aa58-446f-8b49-e5b54a8f3a52postflush</ItemId>
                            <Url>\Entity Model\SalesLogix Application Entities\Lead\CopyCommunityData.method.xml::Post Flush Steps</Url>
                            <BundleItemType>Container</BundleItemType>
                            <Caption>Post Flush Steps</Caption>
                            <ParentUrl>\Entity Model\SalesLogix Application Entities\Lead\CopyCommunityData.method.xml</ParentUrl>
                            <CaptionKey>postflush</CaptionKey>
                        </StepsSubFolderContext>
                    </bundleItem>
                </children>
            </bundleItem>

A little more detail, don't you think?                        

This bug in the manifest wizard creation has been around since the inception of these wizards and still exists in the current version of the Application Architect.

So how do you get around this?

Well unfortunately, right now there is not a good way.  What I do, is to use the wizard to get an onscreen representation of what a manifest should include.  it does appear to do a pretty good job of showing the contents on screen in the "Bundle items"tab.  With that on screen representation, I take screen shots and then manually build my manifest by manually adding into a new manifest all of the items that I took screen shots of from the "wizard"manifest.  Pretty lame but until the wizards get fixed the only way to get the items you need correctly recorded in a web manifest.

What's This?
  
Bookmark and Share

About Kris Halsrud

   Kris Halsrud is a Senior Analyst / Developer for Customer FX Corporation.


Related Content
   Saleslogix XBar Installation
When installing the new XBar application I found the instructions a little vague so I thought I would pas
Posted on Jul 18, 2014 by Mark Duthoy to SalesLogix Support
 
   Finding the Current Parent Record ID in SalesLogix Web
Sometimes it's the easiest things that can be a big barrier to entry for getting started with somet
Posted on Jun 27, 2014 by Ryan Farley to Ryan Farley's Blog
 
   SalesLogix 8.1 Job Service Scheduling Executions Error Resolution
Often times a web implementation will have an application server that is used to deploy the web portals t
Posted on Jun 20, 2014 by Mark Duthoy to SalesLogix Support
 
   Saleslogix 8.1 Web Access Tab Throws Null Reference Error
 I recently had a client experiencing a problem access the Contact's Web Access tab.  Whene
Posted on Jun 18, 2014 by Kris Halsrud to Kris Halsrud's Blog
 
   Debugging Custom Assemblies Using Visual Studio
Developing for Saleslogix web using external assemblies provides you with a lot of freedom when developin
Posted on Jun 10, 2014 by Jason Buss to Jason Buss' Blog
 
Comments

 

קלנועית said:

Great help thanks  

December 5, 2011 10:46 PM

Leave a Comment

(required)  
(optional)
(required)  
Add
All contents Copyright © 2014 Customer FX Corporation
Customer FX Corporation
2324 University Avenue West, Suite 115
Saint Paul, Minnesota 55114
Tel: 800.728.5783

  Follow @CustomerFX on twitter
Follow the best news, tips, and articles
  Subscribe to Customer FX on youtube
Watch SalesLogix tutorial videos from Customer FX
Login / Register