cloudThing logo in white
Menu open icon
email: info@cloudthing.com
tel: +44 (0) 121 393 4700
Menu closed icon

General

Generally useful pages

Sectors

We know loads about this stuff

What we do

The Building Blocks for cloudThing Magic

Lego toys in a keyboard drinking coffee

Microsoft Dynamics 365: Settings In Solutions

Craig Seymour – Dynamics Practice Lead, cloudThing

When you’re exporting a solution in Microsoft Dynamics 365, you can choose to include organization settings… but there’s no documentation

When you’re exporting a solution in Microsoft Dynamics 365, you can choose to include organization settings… but there’s no documentation

So do you know exactly what it is you are exporting?

Never fear, Craig Seymour is here!

cloudThing's Dynamics Practice Lead has the answers you seek...

 At cloudThing, we follow the guiding principle that the deployment of D365 solutions should be automated wherever possible and if it’s not possible, figure out a way to make it possible - hence the birth of our buildThing tools.

One exception to this has been organisation settings: when you're exporting a solution, you can choose to include organisation settings but there’s no documentation… so how do you know exactly what it is you are exporting?

 With that uncertainly and as these settings are generally a one-off change, we’ve covered them by documenting the necessary steps in the release note. 

But I’d really rather we didn’t have manual steps in the process, so when I had a bit of spare time recently I decided to take a bit of a goosey gander…

 So, if you've ever wondered what's included with each checkbox, read on!

So, if you've ever wondered what's included with each checkbox, read on!

Diving In...

So, how do you find out what settings are actually going to get transferred with your solution?

The first thing I tried was simply exporting the solution twice, once with the settings checked and once without. This gave the XML output at the bottom of this post, but I was left a bit unsure about what each setting was and where it had come from. For example, there seemed to be a lot of settings from the UI which were missing. Perhaps it doesn't export ones which are set to the default?

However, when I looked online for references to the XML attributes, I found the SDK documentation for the Request classes which can be called when you are generating a Solution programmatically; They're a bit hard to digest, but they do help to understand what exactly you're going to get.

And the answer is?

The short answer is, exactly the same list as above; the longer answer is as below:

Organization.WeekStartDayCode : Designated first day of the week throughout Microsoft Dynamics 365
Organization.DateSeparator : Character used to separate the month, the day, and the year in dates throughout Microsoft Dynamics 365.
Organization.ShowWeekNumber : Information that specifies whether to display the week number in calendar displays throughout Microsoft CRM.
Organization.DateFormatCode: Information about how the date is displayed throughout Microsoft CRM.

Organization.MaxAppointmentDurationDays : Maximum number of days an appointment can last.

Organization.TimeFormatCode : Information that specifies how the time is displayed throughout Microsoft CRM.

Organization.CalendarType : Calendar type for the system. Set to Gregorian US by default.

Customisation

Organization.IsAppMode : Indicates whether loading of Microsoft Dynamics 365 in a browser window that does not have address, tool, and menu bars is enabled.

Email Tracking

Organization.TrackingPrefix : History list of tracking token prefixes
Organization.TrackingTokenIdBase : Base number used to provide separate tracking token identifiers to users belonging to different deployments.
Organization.TrackingTokenIdDigits : Number of digits used to represent a tracking token identifier.
Organization.MaximumTrackingNumber : Maximum tracking number before recycling takes place.

Organization.IgnoreInternalEmail : Indicates whether incoming email sent by internal Microsoft Dynamics 365 users or queues should be tracked.

Organization.RenderSecureIFrameForEmail : Flag to render the body of email in the Web form in an IFRAME with the security='restricted' attribute set. This is additional security but can cause a credentials prompt.
Organization.AllowUnresolvedPartiesOnEmailSend : Indicates whether users are allowed to send email to unresolved parties (parties must still have an email address).

General

Organization.IsAutoSaveEnabled : Information on whether auto save is enabled.
Organization.FullNameConventionCode : Order in which names are to be displayed throughout Microsoft CRM.
Organization.IsPresenceEnabled : Information on whether IM presence is enabled.
Organization.PricingDecimalPrecision : Number of decimal places that can be used for prices
Organization.ShareToPreviousOwnerOnAssign : Information that specifies whether to share to previous owner on assign

Organization.BlockedAttachments : Prevent upload or download of certain attachment types that are considered dangerous.

Organization.NumberFormat : Specification of how numbers are displayed throughout Microsoft CRM.
Organization.NegativeFormatCode : Information that specifies how negative numbers are displayed throughout Microsoft CRM.

Organization.CurrencySymbol : Symbol used for currency throughout Microsoft Dynamics 365.

Organization.CurrencyFormatCode : Information about how currency symbols are placed throughout Microsoft Dynamics CRM.

Organization.GlobalHelpUrl : URL for the web page global help.
Organization.GlobalHelpUrlEnabled : Indicates whether the customizable global help is enabled.
Organization.GlobalAppendUrlParametersEnabled : Indicates whether the append URL parameters is enabled
Organization.GetStartedPaneContentEnabled : Indicates whether Get Started content is enabled for this organization.

Organization.MobileClientMashupEnabled :

Marketing

Organization.AllowMarketingEmailExecution : Indicates whether marketing emails execution is allowed.

Organization.AllowAutoResponseCreation : Indicates whether automatic response creation is allowed
Organization.AllowAutoUnsubscribe : Indicates whether automatic unsubscribe is allowed.
Organization.AllowAutoUnsubscribeAcknowledgement : Indicates whether automatic unsubscribe acknowledgement email is allowed to send.

Organization.TagPollingPeriod : Normal polling frequency used for email receive auto-tagging in outlook.

Organization.TagMaxAggressiveCycles : Maximum number of aggressive polling cycles executed for email auto-tagging when a new email is received.

Organization.AllowOutlookScheduledSyncs : Indicates whether scheduled synchronizations to Outlook are allowed.

Organization.EmailSendPollingPeriod : Normal polling frequency used for sending email in Microsoft Office Outlook.
Organization.MinOutlookSyncInterval : Minimum allowed time between scheduled Outlook synchronizations.
Organization.AllowOfflineScheduledSyncs : Indicates whether background offline synchronization in Microsoft Office Outlook is allowed
Organization.MinOfflineSyncInterval : Normal polling frequency used for background offline synchronization in Microsoft Office Outlook.
Organization.AllowAddressBookSyncs : Indicates whether background address book synchronization in Microsoft Office Outlook is allowed.
Organization.MinAddressBookSyncInterval : Normal polling frequency used for address book synchronization in Microsoft Office Outlook.

Sales

Organization.CreateProductsWithoutParentInActiveState : Enable Initial state of newly created products to be Active instead of Draft
Organization.UseInbuiltRuleForDefaultPricelistSelection : Flag indicates whether to Use Inbuilt Rule For DefaultPricelist.
Organization.MaxProductsInBundle : Restrict the maximum no of items in a bundle
Organization.OOBPriceCalculationEnabled : Enable OOB pricing calculation logic for Opportunity, Quote, Order and Invoice entities
Organization.DiscountCalculationMethod : Discount calculation method for the QOOI product
Organization.MaximumDynamicPropertiesAllowed : Restrict the maximum number of product properties for a product family/bundle

Relationship Roles

You're not still using these, right? :-)

Conclusions

If you bothered to read all the detail above, you'll have noticed that there's a few incomplete bits, and my intended next steps were to go through and track down the missing items or uncertain items, but actually I think that I'd be wasting my time.

We can see that:

  • Not all the visible settings in the UI under the tab of the same name as the checkbox in the Solution Export dialog are taken through (e.g. If you tick 'General' in the Solution Export, you don't get all the settings in the 'General' tab in Application Settings.
  • Functionally related settings are scattered throughout the UI (e.g. some of the 'General' settings are in the currency and locale areas of the UI)
  • There are settings for things which you shouldn't be using (e.g. Relationship Roles)

All of which makes me reticent to use this functionality - without careful checking, there's no certainty about which settings are actually going to make it through.

And with the dynamic nature of Dynamics 365 CE updates, it could change tomorrow...

So where next?

I think that cloudThing needs to write a buildThing which iterates through the the whole list of Organization Settings (not just those exposed as specific Request classes), and allows you to set them programmatically in your ALM pipeline.

Watch this space

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<OrganizationSettings>
    <general>
        <fullnameconventioncode>1</fullnameconventioncode>
        <numberformat>us</numberformat>
        <negativeformatcode>1</negativeformatcode>
        <currencysymbol>£</currencysymbol>
        <currencyformatcode>0</currencyformatcode>
        <pricingdecimalprecision>2</pricingdecimalprecision>
        <sharetopreviousowneronassign>False</sharetopreviousowneronassign>
        <blockedattachments>
          ade;
          adp;
          app;
          asa;
          ashx;
          asmx;
          asp;
          bas;
          bat;
          cdx;
          cer;
          chm;
          class;
          cmd;
          com;
          config;
          cpl;
          crt;
          csh;
          dll;
          exe;
          fxp;
          hlp;
          hta;
          htr;
          htw;
          ida;
          idc;
          idq;
          inf;
          ins;
          isp;
          its;
          jar;
          js;
          jse;
          ksh;
          lnk;
          mad;
          maf;
          mag;
          mam;
          maq;
          mar;
          mas;
          mat;
          mau;
          mav;
          maw;
          mda;
          mdb;
          mde;
          mdt;
          mdw;
          mdz;
          msc;
          msh;
          msh1;
          msh1xml;
          msh2;
          msh2xml;
          mshxml;
          msi;
          msp;
          mst;
          ops;
          pcd;
          pif;
          prf;
          prg;
          printer;
          pst;
          reg;
          rem;
          scf;
          scr;
          sct;
          shb;
          shs;
          shtm;
          shtml;
          soap;
          stm;
          tmp;
          url;
          vb;
          vbe;
          vbs;
          vsmacros;
          vss;
          vst;
          vsw;
          ws;
          wsc;
          wsf;
          wsh        
        </blockedattachments>
        <getstartedpanecontentenabled>True</getstartedpanecontentenabled>
        <ispresenceenabled>True</ispresenceenabled>
        <isautosaveenabled>True</isautosaveenabled>
        <globalhelpurl></globalhelpurl>
        <globalhelpurlenabled>False</globalhelpurlenabled>
        <globalappendurlparametersenabled>False</globalappendurlparametersenabled>
        <istextwrapenabled>False</istextwrapenabled>
        <enablelivepersonacarduci>True</enablelivepersonacarduci>
        <allowlegacydialogsembedding>True</allowlegacydialogsembedding>
    </general>
    <calendar>
        <weekstartdaycode>0</weekstartdaycode>
        <calendartype>0</calendartype>
        <dateformatcode>2</dateformatcode>
        <dateseparator>/</dateseparator>
        <timeformatcode>0</timeformatcode>
        <showweeknumber>False</showweeknumber>
        <maxappointmentdurationdays>10</maxappointmentdurationdays>
    </calendar>
    <email>
        <trackingprefix>CRM:;</trackingprefix>
        <trackingtokenidbase>0</trackingtokenidbase>
        <trackingtokeniddigits>3</trackingtokeniddigits>
        <maximumtrackingnumber>999</maximumtrackingnumber>
        <ignoreinternalemail>False</ignoreinternalemail>
        <rendersecureiframeforemail>False</rendersecureiframeforemail>
        <allowunresolvedpartiesonemailsend>False</allowunresolvedpartiesonemailsend>
    </email>
    <marketing>
        <allowmarketingemailexecution>True</allowmarketingemailexecution>
        <allowautoresponsecreation>True</allowautoresponsecreation>
        <allowautounsubscribe>False</allowautounsubscribe>
        <allowautounsubscribeacknowledgement>False</allowautounsubscribeacknowledgement>
    </marketing>
    <customization>
        <isappmode>False</isappmode>
    </customization>
    <outlookSynchronization>
        <tagpollingperiod>600000</tagpollingperiod>
        <tagmaxaggressivecycles>2</tagmaxaggressivecycles>
        <allowoutlookscheduledsyncs>True</allowoutlookscheduledsyncs>
        <minoutlooksyncinterval>900000</minoutlooksyncinterval>
        <emailsendpollingperiod>600000</emailsendpollingperiod>
        <allowofflinescheduledsyncs>True</allowofflinescheduledsyncs>
        <minofflinesyncinterval>900000</minofflinesyncinterval>
        <allowaddressbooksyncs>True</allowaddressbooksyncs>
        <minaddressbooksyncinterval>3600000</minaddressbooksyncinterval>
    </outlookSynchronization>
    <sales>
        <useinbuiltrulefordefaultpricelistselection>True</useinbuiltrulefordefaultpricelistselection>
        <maxproductsinbundle>15</maxproductsinbundle>
        <oobpricecalculationenabled>True</oobpricecalculationenabled>
        <discountcalculationmethod>0</discountcalculationmethod>
        <maximumdynamicpropertiesallowed>50</maximumdynamicpropertiesallowed>
        <createproductswithoutparentinactivestate>False</createproductswithoutparentinactivestate>
    </sales>
</OrganizationSettings>
<RelationshipRoles />
<IsvConfig>
    <configuration version="3.0.0000.0">
        <Root />
        <ServiceManagement>
            <AppointmentBook>
                <SmoothScrollLimit>2000</SmoothScrollLimit>
                <TimeBlocks>
                    <TimeBlock EntityType="4214" StatusCode="1" CssClass="ganttBlockServiceActivityStatus1" />
                    <TimeBlock EntityType="4214" StatusCode="2" CssClass="ganttBlockServiceActivityStatus2" />
                    <TimeBlock EntityType="4214" StatusCode="3" CssClass="ganttBlockServiceActivityStatus3" />
                    <TimeBlock EntityType="4214" StatusCode="4" CssClass="ganttBlockServiceActivityStatus4" />
                    <TimeBlock EntityType="4214" StatusCode="6" CssClass="ganttBlockServiceActivityStatus6" />
                    <TimeBlock EntityType="4214" StatusCode="7" CssClass="ganttBlockServiceActivityStatus7" />
                    <TimeBlock EntityType="4214" StatusCode="8" CssClass="ganttBlockServiceActivityStatus8" />
                    <TimeBlock EntityType="4214" StatusCode="9" CssClass="ganttBlockServiceActivityStatus9" />
                    <TimeBlock EntityType="4214" StatusCode="10" CssClass="ganttBlockServiceActivityStatus10" />
                    <TimeBlock EntityType="4201" StatusCode="1" CssClass="ganttBlockAppointmentStatus1" />
                    <TimeBlock EntityType="4201" StatusCode="2" CssClass="ganttBlockAppointmentStatus2" />
                    <TimeBlock EntityType="4201" StatusCode="3" CssClass="ganttBlockAppointmentStatus3" />
                    <TimeBlock EntityType="4201" StatusCode="4" CssClass="ganttBlockAppointmentStatus4" />
                    <TimeBlock EntityType="4201" StatusCode="5" CssClass="ganttBlockAppointmentStatus5" />
                    <TimeBlock EntityType="4201" StatusCode="6" CssClass="ganttBlockAppointmentStatus6" />
                </TimeBlocks>
            </AppointmentBook>
        </ServiceManagement>
    </configuration>
</IsvConfig>

Not quite ready to get back to work just yet?

13 Ways To Save Money When Using Microsoft Azure

The Problems With Addresses In Microsoft Dynamics 365

Avery Weigh-Tronix’s Cloud Migration & Future Proofing

Contact Us

If you're strugglining to maximise the potential of your Microsoft Dynamics 365 investment then cloudThing are happy to help...

Name

*

Company Name

Email Address

Telephone Number

Is there anything else you'd like us to know?

© cloudThing 2020
email iconinfo@cloudthing.com
© 2020 Copyright cloudThing ltd. All rights reserved. Company registered in England & Wales no. 7510381, VAT no. 152340739