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
   Confirming Actions With an "Are you sure?" Prompt in Infor CRM (Saleslogix)
I'm not a huge fan of bugging end users. I figure, if an end user clicked something, he or she meant
Posted on Nov 18, 2014 by Ryan Farley to Ryan Farley's Blog
 
   Manipulating the DependencyLookup Control in the Infor CRM Web Client (Formerly Saleslogix)
 The Dependency Lookup control in the Saleslogix web client is what is used for the hierarchical Are
Posted on Nov 14, 2014 by Kris Halsrud to Kris Halsrud's Blog
 
   Infor CRM (formerly Saleslogix) Statement of Direction
Learn more about the future of Infor CRM. Recently I received my login information for the Infor Partn
Posted on Nov 13, 2014 by Brianna Ojard to The Inbox
 
   Adding a report link to the Common Tasks pane in Infor CRM (formerly Saleslogix)
When you are viewing an Entity Detail page, the Common Tasks pane on the right of the page provides a nu
Posted on Nov 12, 2014 by Jason Buss to Jason Buss' Blog
 
   How to Sum a Collection using Hibernate Criteria and Projections
 To sum the results of a criteria collection you can use code such as the following, which gets the
Posted on Nov 07, 2014 by Kris Halsrud to Kris Halsrud's 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