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 ModelSalesLogix Application EntitiesSalesLogix 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 ModelSalesLogix Application EntitiesLeadLead.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 ModelSalesLogix Application EntitiesLeadLead.LEAD.entity.xml::Business Rules</Url>
                        <BundleItemType>Container</BundleItemType>
                        <Caption>Business Rules</Caption>
                        <ParentUrl>Entity ModelSalesLogix Application EntitiesLeadLead.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 ModelSalesLogix Application EntitiesLeadCopyCommunityData.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>entitymodelpackages</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 ModelSalesLogix Application EntitiesLeadCopyCommunityData.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 ModelSalesLogix Application EntitiesLeadCopyCommunityData.method.xml::Pre Execute Steps</Url>
                            <BundleItemType>Container</BundleItemType>
                            <Caption>Pre Execute Steps</Caption>
                            <ParentUrl>Entity ModelSalesLogix Application EntitiesLeadCopyCommunityData.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 ModelSalesLogix Application EntitiesLeadCopyCommunityData.method.xml::Primary Steps</Url>
                            <BundleItemType>Container</BundleItemType>
                            <Caption>Primary Steps</Caption>
                            <ParentUrl>Entity ModelSalesLogix Application EntitiesLeadCopyCommunityData.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 ModelSalesLogix Application EntitiesLeadCopyCommunityData.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 ModelSalesLogix Application EntitiesLeadCopyCommunityData.method.xml::Post Execute Steps</Url>
                            <BundleItemType>Container</BundleItemType>
                            <Caption>Post Execute Steps</Caption>
                            <ParentUrl>Entity ModelSalesLogix Application EntitiesLeadCopyCommunityData.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 ModelSalesLogix Application EntitiesLeadCopyCommunityData.method.xml::Post Flush Steps</Url>
                            <BundleItemType>Container</BundleItemType>
                            <Caption>Post Flush Steps</Caption>
                            <ParentUrl>Entity ModelSalesLogix Application EntitiesLeadCopyCommunityData.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.

ABOUT THE AUTHOR

Kris Halsrud

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

1 Comment

Submit a Comment

Your email address will not be published. Required fields are marked *

Subscribe To Our Newsletter

Join our mailing list to receive the latest Infor CRM (Saleslogix) news and product updates!

You have Successfully Subscribed!