CRM Unmanaged Sln Deployment Behaviour - deployment

Sofar as I know deploying an unmanaged solution should completely wipe & replace all included forms, but this isn’t the behaviour I’m seeing and I’ve been suspicious of the MSDN docs for some time now. I’ve attached some form xml, ripped directly from my (unmanaged) solution which defines 10 fields in a "Product Interest" section. After import you can see in the customisations section that 13 fields remain, yet it seems that some of the form changes have been applied (e.g. change of checkbox to radio button field display) and all schema changes have applied (new fields, mappings, translations, etc..)
The import log file would indicate that everything was imported and overwritten successfully but I do have some maybe-relevant tid-bits to share with you.
Customisations are owned by 3 different publishers
Import was not performed in the root business unit
100% of existing customisations are already on the unmanaged layer
I am now performing the customisations manually, I’d like to understand this behaviour though so I can tell which changes won’t have applied and plan how I can work around this issue in future. Though in this instance I'm working with a CRM 2011 UR18 client system, I'd like to know if the behaviour is inconsistent across CRM 2013 and 2015 also.
<section showlabel="true" showbar="true" locklevel="0" id="{7ff259a4-27dd-df11-82c4-002481a8e9f0}" IsUserDefined="1" layout="varheight" columns="1111" labelwidth="115" name="Sec01ProductInterestUS" celllabelalignment="Left" celllabelposition="Left" labelid="{51d9f7d2-e17b-4c73-84ec-1c4633a6957c}">
<labels>
<label description="Product Interest" languagecode="1033" />
<label description="Interet du produit" languagecode="1036" />
</labels>
<rows>
<row>
<cell auto="false" showlabel="true" locklevel="0" rowspan="1" colspan="1" id="{7226b58f-b08a-4966-b0ed-ed275c09f05e}" labelid="{404b5467-fc39-4cab-8b3c-66b3b5bbc461}">
<labels>
<label description="Partnership Factoring" languagecode="1033" />
</labels>
<control id="ccrm_partnershipfactoring" classid="{B0C6723A-8503-4fd7-BB28-C8A06AC933C2}" datafieldname="ccrm_partnershipfactoring" disabled="false" />
</cell>
<cell auto="false" showlabel="true" locklevel="0" rowspan="1" colspan="1" id="{ab02e3eb-89fc-4cab-b78d-5f67ebbc1305}" labelid="{196844f4-0890-4bde-8f0c-1f312d0ceda6}">
<labels>
<label description="Fast Track" languagecode="1033" />
</labels>
<control id="ccrm_fasttrackus" classid="{B0C6723A-8503-4fd7-BB28-C8A06AC933C2}" datafieldname="ccrm_fasttrackus" disabled="false" />
</cell>
<cell auto="false" showlabel="true" locklevel="0" rowspan="1" colspan="1" id="{fddf76ad-247f-4d75-a6ba-7da304d8c360}" labelid="{daae06ac-3a88-444c-aaf2-534c3c0d5523}">
<labels>
<label description="Confidential Invoice Discounting" languagecode="1033" />
</labels>
<control id="ccrm_confidentialinvoicediscounting" classid="{B0C6723A-8503-4fd7-BB28-C8A06AC933C2}" datafieldname="ccrm_confidentialinvoicediscounting" disabled="false" />
</cell>
<cell auto="false" showlabel="true" locklevel="0" rowspan="1" colspan="1" id="{05a203dd-4844-4084-936d-99b408a0a934}" labelid="{375bdb4d-ebed-405d-ba81-e259b18c996a}">
<labels>
<label description="Export Factoring" languagecode="1033" />
</labels>
<control id="ccrm_exportfactoring" classid="{B0C6723A-8503-4fd7-BB28-C8A06AC933C2}" datafieldname="ccrm_exportfactoring" disabled="false" />
</cell>
</row>
<row>
<cell auto="false" showlabel="true" locklevel="0" rowspan="1" colspan="1" id="{d1733c2a-90bc-411c-817e-edf71f15d20e}" labelid="{3cf8df35-ccdf-40d9-a78d-92a1967be869}">
<labels>
<label description="Notified Invoice Discounting" languagecode="1033" />
</labels>
<control id="ccrm_notifiedinvoicediscounting" classid="{B0C6723A-8503-4fd7-BB28-C8A06AC933C2}" datafieldname="ccrm_notifiedinvoicediscounting" disabled="false" />
</cell>
<cell auto="false" showlabel="true" locklevel="0" rowspan="1" colspan="1" id="{840b3c14-a92b-48f3-b049-ca190f62d5ba}" labelid="{a1795428-c22f-4cdc-9006-16b55051c18d}">
<labels>
<label description="Confidential Invoice Finance" languagecode="1033" />
</labels>
<control id="ccrm_confidentialinvoicefinance" classid="{B0C6723A-8503-4fd7-BB28-C8A06AC933C2}" datafieldname="ccrm_confidentialinvoicefinance" disabled="false" />
</cell>
<cell auto="false" showlabel="true" locklevel="0" rowspan="1" colspan="1" id="{8271f3a4-884d-4c46-bf93-0d711771ac0a}" labelid="{46003870-1fac-45af-a1f2-9af6fe14fb09}">
<labels>
<label description="Full Service Factoring" languagecode="1033" />
</labels>
<control id="ccrm_fullservicefactoring" classid="{B0C6723A-8503-4fd7-BB28-C8A06AC933C2}" datafieldname="ccrm_fullservicefactoring" disabled="false" />
</cell>
<cell auto="false" showlabel="true" locklevel="0" rowspan="1" colspan="1" id="{d057821a-204c-4295-9c7e-baf2a904364d}" labelid="{3ab10852-3812-46e8-b860-6d7b0d39174c}">
<labels>
<label description="Asset Finance Loan" languagecode="1033" />
</labels>
<control id="ccrm_assetlend" classid="{B0C6723A-8503-4fd7-BB28-C8A06AC933C2}" datafieldname="ccrm_assetlend" disabled="false" />
</cell>
</row>
<row>
<cell id="{087c2759-8418-9375-714a-c59b75ccd6dc}" showlabel="true" locklevel="0">
<labels>
<label description="Progress Claim Finance" languagecode="1033" />
</labels>
<control id="bfs_constructionfinance" classid="{B0C6723A-8503-4fd7-BB28-C8A06AC933C2}" datafieldname="bfs_constructionfinance" disabled="false" />
</cell>
<cell id="{2ae1b646-910e-45e0-db48-34eecbe797a0}" showlabel="true" locklevel="0">
<labels>
<label description="Bad Debt Protection" languagecode="1033" />
</labels>
<control id="bfs_baddebtprotection" classid="{B0C6723A-8503-4fd7-BB28-C8A06AC933C2}" datafieldname="bfs_baddebtprotection" disabled="false" />
</cell>
<cell id="{64897183-533e-343e-dde3-8271ec4e10d6}" showlabel="false">
<labels>
<label description="" languagecode="1033" />
</labels>
</cell>
<cell id="{78dee79b-1882-0c86-942c-97969e844902}" showlabel="false">
<labels>
<label description="" languagecode="1033" />
</labels>
</cell>
</row>
</rows>
</section>

CRM Solutions are a very difficult beast to figure out when it comes to what happens upon import. General rule of thumb is that Unmanaged solutions are additions. Managed Solutions tend to be an update / replace. Different types of changes operate in different was as well. As far as defining columns / forms / views, unmanaged solutions will always be additive.

Related

Office Addin Manifest With a Ribbon Button for Office 2013

I have built a Word addin manifest that inserts a button in the Home tab. Button opens a taskpane, addin does not use commands, therefore is suitable not only for Office 2016, but for Office 2013 as well.
Even though the addin works fine on both Office versions, the button is inserted into the Home tab on Office 2016, but not on 2013.
I suspect there may be something else expected in the manifest, even though I read that VersionOverrides node is sufficient to support both versions.
This is the manifest that shows no problem in Word 2016:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OfficeApp
xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides"
xsi:type="TaskPaneApp">
<Id>05c2e1c9-3e1d-406e-9a91-e9ac64854143</Id>
<Version>1.0.0.0</Version>
<ProviderName>DEMO</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Name">
<Override Locale="en-US" Value="Name" />
</DisplayName>
<Description DefaultValue="Addin" >
<Override Locale="en-US" Value="Addin" />
</Description>
<IconUrl DefaultValue="https://localhost:3000/assets/logo-32.png"/>
<HighResolutionIconUrl DefaultValue="https://localhost:3000/assets/logo-80.png"/>
<SupportUrl DefaultValue="support.com" />
<AppDomains>
<AppDomain>localhost</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Document"/>
</Hosts>
<DefaultSettings>
<SourceLocation DefaultValue="https://localhost:3000/taskpane.html"/>
</DefaultSettings>
<Permissions>ReadWriteDocument</Permissions>
<ov:VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
<ov:Hosts>
<ov:Host xsi:type="Document">
<ov:DesktopFormFactor>
<ov:GetStarted>
<ov:Title resid="GetStarted.Title"/>
<ov:Description resid="GetStarted.Description"/>
<ov:LearnMoreUrl resid="GetStarted.LearnMoreUrl"/>
</ov:GetStarted>
<ov:ExtensionPoint xsi:type="PrimaryCommandSurface">
<ov:OfficeTab id="TabHome">
<ov:Group id="AddinGroup">
<ov:Label resid="CommandsGroup.Label" />
<ov:Icon>
<bt:Image size="16" resid="Icon.16x16" />
<bt:Image size="32" resid="Icon.32x32" />
<bt:Image size="80" resid="Icon.80x80" />
</ov:Icon>
<ov:Control xsi:type="Button" id="AddinButton">
<ov:Label resid="AddinButton.Label" />
<ov:Supertip>
<ov:Title resid="AddinButton.Label" />
<ov:Description resid="AddinButton.Tooltip" />
</ov:Supertip>
<ov:Icon>
<bt:Image size="16" resid="Icon.16x16" />
<bt:Image size="32" resid="Icon.32x32" />
<bt:Image size="80" resid="Icon.80x80" />
</ov:Icon>
<ov:Action xsi:type="ShowTaskpane">
<ov:TaskpaneId>AddinButtonTaskpane</ov:TaskpaneId>
<ov:SourceLocation resid="AddinTaskpane.Url" />
</ov:Action>
</ov:Control>
</ov:Group>
</ov:OfficeTab>
</ov:ExtensionPoint>
</ov:DesktopFormFactor>
</ov:Host>
</ov:Hosts>
<ov:Resources>
<bt:Images>
<bt:Image id="Icon.16x16" DefaultValue="https://localhost:3000/assets/logo-16.png"/>
<bt:Image id="Icon.32x32" DefaultValue="https://localhost:3000/assets/logo-32.png"/>
<bt:Image id="Icon.80x80" DefaultValue="https://localhost:3000/assets/logo-80.png"/>
</bt:Images>
<bt:Urls>
<bt:Url id="GetStarted.LearnMoreUrl" DefaultValue="http://started.com" />
<bt:Url id="AddinTaskpane.Url" DefaultValue="https://localhost:3000/taskpane.html" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="GetStarted.Title" DefaultValue="GetStarted" >
</bt:String>
<bt:String id="CommandsGroup.Label" DefaultValue="Addin" >
</bt:String>
<bt:String id="AddinButton.Label" DefaultValue="Addin" >
</bt:String>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="GetStarted.Description" DefaultValue="GetStarted" >
</bt:String>
<bt:String id="AddinButton.Tooltip" DefaultValue="Addin" >
</bt:String>
</bt:LongStrings>
</ov:Resources>
</ov:VersionOverrides>
</OfficeApp>
Add-in commands are not supported on Word 2013. For more information on supported platforms for add-in commands see here

flux:form.section inside another flux:form.section not rendering flux:form.object Properly

I am creating a Layerslider with Fluid Content Element (FCE).
Below Is my code.
<flux:form.sheet name="elements" label="Elements">
<flux:form.section name="slides" label="Slides">
<flux:form.object name="slide" label="Slide">
<flux:field.input name="title" label="Slide Title" />
<flux:field.text name="layersliderdata" enableRichText="0" rows="4" label="Layerslider data" />
<flux:field.file name="background" allowed="jpg,png,jpeg,gif" label="Background" />
<flux:field.file name="thumbnail" allowed="jpg,png,jpeg,gif" label="Thumbnail" />
<flux:form.section name="elements" label="Elements">
<flux:form.object name="text" label="Text">
<flux:field.text name="content" rows="3" label="Text" />
<flux:field.select name="type" items="p,h1,h2,h3,h4,h5,h6,h7,h8" label="Type" />
<f:render section="SharedObjectFields" arguments="{_all}" />
</flux:form.object>
<flux:form.object name="image" label="Image">
<flux:field.file name="file" allowed="jpg,png,jpeg,gif" label="Image file" />
<f:render section="SharedObjectFields" arguments="{_all}" />
</flux:form.object>
</flux:form.section>
</flux:form.object>
</flux:form.section>
</flux:form.sheet>
<f:section name="SharedObjectFields">
<flux:field.text name="style" enableRichText="0" rows="4" label="CSS Styles" />
<flux:field.text name="layersliderdata" enableRichText="0" rows="4" label="Layerslider data" />
<flux:field.input name="class" label="Class" />
</f:section>
I am Getting Result Like this.
But I want Result as per below screenshot.
I Dont Know. What's going wrong.
I am using below Versions of fluid elements.
Typo3 6.2.14
vhs 2.3.3
fluidcontent 4.2.4
fluidpages 3.2.3
flux 7.2.1
I can confirm this on dcngmbh/moox_core for Split Button with DropDown FCE (Fluid Content Element) in which its display result in backend like this.
http://screencast.com/t/wIeYk8AUmGl
http://screencast.com/t/QLqnSmpy
I faced the same issue some days ago using fluidcontent. It seems, there is a bug in flux, which has been fixed in the GitHub repositories. You could try to switch to the development version of flux or wait for an official release on TER.

Joomla 3 cannot disable custom plugin

I just installed a custom plugin in Joomla 3 and now I cannot disable it.
When I click disable (or edit) I receive "Internal Server Error".
xml file:
<?xml version="1.0" encoding="utf-8"?>
<extension version="3.0" type="plugin" group="content">
<name>Content - Availability Calendar</name>
<author>Joomla! Project</author>
<creationDate>2010</creationDate>
<copyright>Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.</copyright>
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
<authorEmail>support#msc.gr</authorEmail>
<authorUrl>www.joomla.org</authorUrl>
<version>1.5</version>
<description></description>
<files>
<filename plugin="calendar">calendar.php</filename>
<filename>index.html</filename>
</files>
<params>
<param name="unit_id" type="text" size="5" default="50" label="Villa ID" description="Villa ID"/>
</params>
</extension>
You're XML code is old and is based on the code used for Joomla 1.5. You need to replace the following:
<params>
<param name="unit_id" type="text" size="5" default="50" label="Villa ID" description="Villa ID"/>
</params>
with this:
<config>
<fields name="params">
<fieldset name="basic">
<field name="unit_id" type="text" size="5" default="50" label="Villa ID" description="Villa ID"/>
</fieldset>
</fields>
</config>
Then for each new parameter you want to add, simply add a new <field>

Shorten WSDL syntax by using defaults

I am a newbie in WSDL syntax so I am just using it in a very basic way, e.g.
<message name="ping_Request">
</message>
<message name="ping_Response">
<part name="response" type="xsd:string" />
</message>
<message name="auth_Request">
<part name="username" type="xsd:string" />
<part name="password" type="xsd:string" />
</message>
<message name="auth_Response">
<part name="response" type="xsd:string" />
</message>
<portType name="ping_PortType">
<operation name="ping">
<input message="tns:ping_Request" />
<output message="tns:ping_Response" />
</operation>
</portType>
<portType name="auth_PortType">
<operation name="auth">
<input message="tns:auth_Request" />
<output message="tns:auth_Response" />
</operation>
</portType>
<binding name="auth_Binding" type="tns:auth_PortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="auth">
<soap:operation soapAction="auth"/>
<input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:auth_NameSpace"/>
</input>
<output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:auth_NameSpace"/>
</output>
</operation>
</binding>
<service name="info_Service">
<port binding="tns:ping_Binding" name="ping_Port">
<soap:address location="https://service.example.com/info/info.php"/>
</port>
<port binding="tns:auth_Binding" name="auth_Port">
<soap:address location="https://service.example.com/info/info.php"/>
</port>
</service>
I found my self copying and pasting these blocks for any new function, modifying only the relevant keywords, so I end up with quite a long WSDL even for a relatively small number of functions.
By using WSDL defaults, is it possible to shorten this syntax to a minimum, by removing unnecessary or repeated parameters?
NOTE: this WSDL has to be read by a VB6 soap client library, which has very limited features.

WiX wxs script with option to install on Selecting current-user or all-users install

I need a complete WiX script that can be build.It had
Welcome
EULA
Install Folder
Selecting current-user or all-users install
Install
Finish
I just need a single wxs file because it is for a simple application. Also I need an option to install it for the current user or all users.
have you checked the WixUI_Advanced UI that comes built-in in Wix3?
Here are the dialogs that it has:
AdvancedWelcomeEulaDlg
BrowseDlg
DiskCostDlg
FeaturesDlg
InstallDirDlg
InstallScopeDlg (for selecting user or per machine)
InvalidDirDlg
I've also used the WixUI_InstallDir, but copied it and tweaked it according to my needs by adding some "What to do next" text at the end of the installer. I used this detailed walkthrough to take the stock Wix GUI and change a couple of the screen for my own purposes. This does require that you grab the Wix source code, but just for the purpose of getting the uncompiled versions of the actual Product.wxs file that the Wix developers include to drive the WixUI_InstallDir installer.
So basically I have something like this in a solution (using Votive add-in for VS):
MyWeb project
Wix Project
MyWeb.wxs - my product stuff obviously
Product.wxs - the Wix file that comes from the Wix source that defines the structure, flow, and content of the WixUI_InstallDir
My_InstallDir.wxs - This is where the fun happens. Essentially copied the source code Wix file, changed it to satisfy my needs, then made sure that in the Product.wxs I have a reference to my screen, not the original one.
Product.wxs
<UI>
<UIRef Id="My_InstallDir"/>
</UI>
<!-- Add the customized EULA -->
<WixVariable Id="WixUILicenseRtf" Value="$(var.SolutionDir)\doc\license.rtf" />
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" />
<UIRef Id="My_InstallDir" />
<!-- Add the customized banner logo -->
<WixVariable Id="WixUIBannerBmp" Value="$(var.SolutionDir)\doc\InstallerBanner.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="$(var.SolutionDir)\doc\InstallerSidebar.bmp" />
My_InstallDir.wxs is totally unchanged, apart from the line referring to my exit dialog, which is where my "What to do next" notes are:
<Publish Dialog="MyExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
So then the real change is in the My_ExitDialog where I'm displaying the text:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<UI>
<Dialog Id="MyExitDialog" Width="370" Height="270" Title="!(loc.ExitDialog_Title) test">
<Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.WixUIFinish)" />
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUICancel)" />
<Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="!(loc.ExitDialogBitmap)" />
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUIBack)" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<!--<Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="40" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogDescription)" />-->
<Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogTitle)" />
<Control Id="NextSteps" Type="ScrollableText" X="135" Y="70" Width="220" Height="140" Sunken="yes" TabSkip="no">
<Text SourceFile="$(var.SolutionDir)\doc\GemWebAfterInstall.rtf" />
</Control>
</Dialog>
<InstallUISequence>
<Show Dialog="MyExitDialog" OnExit="success" />
</InstallUISequence>
<AdminUISequence>
<Show Dialog="MyExitDialog" OnExit="success" />
</AdminUISequence>
</UI>
</Fragment>
I know you're looking for a solution, not pointers necessarily. However, using the article I reference as the key starting point, I think you can find all of the parts you need either in the ready-baked WixUI bits, or by replacing small pieces of the "out-of-the-box" stuff like I have. Good luck.