Best Practises for using Content Types

We had third party vendor who migrated and re structured contents and sites in Sharepoint 2010. I noticed one unusual thing : In most cases they new separate site content types for every library in a site i.e. even if two libraries contain same set of metadata
columns they created separate site content types by duplicating it from the first one and gave it unique name and used in second library.
My point of view for content type is that they are used for re usability, i.e. if another library is needing same set of metadata columns then I would just reuse existing content type rather than creating another content type with different name by inheriting
it from the first one and having same set of columns.
When I asked vendor reason for this approach (for every library they created new content types and for libraries needing same set of meta data columns they just inherited from a custom site content type and created another duplicate one with same set of
meta data columns and gave it different name in most cases name of library ) they said they did that to classify documents which I did not agree with because by creating two document libraries classification is already done.
I need some expert advice on this, I will really appreciate: I understand content types are useful and they provide re usability but,
 A) Do we need to create new site content types whenever we create new library ? (Even though we are not going to re use them)
B) What is best practice : if few libraries are needing same set of metadata columns
1) Create site a content type and reuse it in those libraries ? or
2) Create a site content type and create new content types by inheriting from site content type created at first and just give them different name even though all of them are having same set of columns  ?
I need expert advice on this but following is my own opinion on this
I do not think point A) is a good practice and should not be used, we should create site content type only when we think it will be re used and we do not need to create site content type every time we create document library. Also I do not think point 2)
of B is a good practice as well
Dhaval Raval

It depends on the nature of the content types and the libraries. If the document types really are shared between document libraries then use the same ones. If the content types are distinct and non overlapping items that have different processes, rules or
uses then breaking them out into a separate content type is the way forward.
As an example for sharing content types: Teams A and B have different document libraries. Both fill in purchase orders, although they work on different projects. In this case they use the same form and sharing a content type is the no question approach.
As an example for different content types: A company has two arms, a consultancy where they send people out to client sites and a manufacturing team who build hardware. Both need to fill in timesheets but whilst the metadata fields on both are the same the
forms are different and/or are processed in a different manner.
You can make a case either way, i prefer to keep the content types simple and only expand out when there's a proven need and a user base with experience with them. It means that if you wanted to subdivide later you'd have more of a headache but that's a
risk I generally think works out.

Similar Messages

  • Best practises for using Excel functions on Power Pivot Data

    Hi
    How do you suggest to perform calculations on cells in a power pivot table? Obviously the ideal approach is to use a DAX measure. But given that DAX doesn't have every function, is there a recommended way of eg adding an "extra"  ( ie just
    adjacent)  column to a pivot table. ( in particular I want to use beta.inv )  
    I could imagine one option of adding some VBA that would update the extra column as the pivot table itself refreshed ( and added more/less rows)
    thanks
    sean

    Hi Sean,
    I don't know what's your expected requirement regarding this issue, maybe you can share some sample data or scenario to us for further investigation. As we know, if we need to add extra column to PowerPivot data model, we can directly
    create a calcuated column:
    calculated columns:
    http://www.powerpivot-info.com/post/178-how-to-add-dax-calculations-to-the-powerpivot-workbooks
    There are some different between Excel and DAX functions, here are the list for your reference:
    Excel functions (by category):
    http://office.microsoft.com/en-us/excel-help/excel-functions-by-category-HA102752955.aspx
    DAX Function Reference:
    http://msdn.microsoft.com/en-us/library/ee634396.aspx
    Hope this helps.
    Regards, 
    Elvis Long
    TechNet Community Support

  • What is best practise for using .movelast .movefirst?

    I was told at some point that I should always execute a .movelast   then .movefirst before starting to work on a recordset, so that I was sure all records were loaded.  But if there are NO records, I get a "no current record" when the .MoveLast statement is executed in the following code.  But if I use rstClassList.RecordCount before the .movelast, can I count on it's being valid?
    Also, I was unable to paste this code into this post.  I had to re-type it.  Is that expected behavior? Not to be able to paste stuff in?
    ls_sql = "Select * from tblStudents"
    Set rstClassList = CurrentDb.OpenRecordset(ls_sql)
    rstClassList.MoveLast
    rstClassList.MoveFirst
    li_count = rstClassList.RecordCount
    TIA
    LAS

    You do a MoveLast in order to make the RecordCount accurate.  If you access it before that, the results are unreliable.
    You want to do a MoveLast, then a RecordCount, and only then a MoveFirst if the count is greater that zero.
    That being said, the DataWindow is how people normally work with a database from PowerBuilder.

  • How to use custom aspx page as template for custom content type

    Hi,
    I have created custom content type and custom aspx page. I want to use aspx page as template for custom content type.
    Can anybody please let me know how to accomplish this?
    Any help would be appreciated.
    Thank you,
    AA.

    Check if you are looking for the below
    http://www.sharepointpals.com/post/How-to-Create-a-Page-Layout-(PageLayout)-with-ContentType-in-SharePoint-2013
    Please remember to click 'Mark as Answer' on the answer if it helps you

  • Best Practises for doing Master Scheduling using SNP

    Hello Gurus ,
                         Can you please suggest the best practises for doing Master Scheduling using SNP . Which engine to use , what would that mean etc
    Regards,
    Nick

    APC Back-UPS XS 1300.  $169.99 at Best Buy.
    Our power outages here are usually only a few seconds; this should give my server about 20 or 25 minutes run-time.
    I'm setting up the PowerChute software now to shut down the computer when 5 minutes of power is left.  The load with the monitor sleeping is 171 watts.
    This has surge protection and other nice features as well.
    -Noel

  • How to remove event handlers for a content type currently in use?

    Hi,
    We had a SP 2007 solution that managed event handlers as described in
    Brian Wilson's blog regarding event handlers. We then did a in-place upgrade to SP 2010. It so happend that we wanted to remove some of our old event handlers and this is where our problem started. We managed to delete event handlers
    (SPEventReceiverDefinitions) for
    Site and List by using the ui from Brian Wilsons feature "Manage Event Handlers" (ref the link above), but not anyone at all for
    Content Types... It simply wouldn't be deleted
    (remove was grayed out in the ui). 
    We then tried to do it by code. Below is a code snippet illustrating how we tried to delete the event handlers for content types:
    using (SPWeb web = properties.Feature.Parent as SPWeb)
    string targetClassName = "targetClassName.";
    web.AllowUnsafeUpdates = true;
    // Removing Content Type event handlers
    foreach (SPContentType ct in web.ContentTypes)
    for (int i = ct.EventReceivers.Count - 1; i >= 0; i--)
    if (ct.EventReceivers[i].Class.StartsWith(targetClassName))
    ct.EventReceivers[i].Delete();
    ct.Update(true);
    web.Update();
    The Content Types are not sealed and are
    not readonly. When debugging, we can see that the
    Delete() method are called on one of the Content Types we wanted to delete event handlers for. We noted that the
    ct.EventReceivers.Count remains the same, before and after Delete() is called. We did not get any exceptions when running this code.
    When running the code a second time and debugging again, we see that the very same Content Type still has the very same event handler attached... As in, it wasn't deleted....
    We also tried to delete the event handlers through PowerShell as described
    here in the post by Per Jakobsen. However, the script did not really seem to find any EventReceivers... We tried to write the
    $site.AllWebs | % {$_.Lists} | % {$_.ContentTypes} | % {$_.EventReceivers} list to file, but it was empty.. We did however get a long list when writing $site.AllWebs | % {$_.Lists} | % {$_.ContentTypes} to file. We could then in
    that file see the event handler references we want to remove registered to our Content Types, as we did during code debugging earlier on. So PowerShell might still be the way to go here...
    So, does anyone know if there is a way to force this delete through, either by code, PowerShell or some other means? Any help regarding this matter would be very much appreciated :)

    Hi,
    For your information, there's two versions (at least) exists for each content types. One is Site Content Type - exists in Root web and another is list content type. Once you add a content type to a list, a copy of the site content type is taken and stored
    in the list. If you update the site content type, it may or may not affect the list conten type. So make sure you are updating the both - site content and list content type. Once you update site content type with passing paramater true to 'ct.Update(true)',
    the list content types are supposed to updated too.
    Thanks,
    Sohel Rana
    http://ranaictiu-technicalblog.blogspot.com

  • Workflow Status column for new content type

    Hi,
    Initially I had a document library and several workflows associated with it. After that I created a new content type inheriting Folder content type. My existing workflows could be started and work fine with any item of this new content type except anything
    related to the workflow status column, such as "Automatically update workflow status to the current stage name", or workflow action "Set workflow status". If I use the OOTB Folder content type, everything's fine. But I need custom fields
    for folder as well.
    The workflows can be started then it seems unreasonable that they are not associated with the items of the new content type, considering I set my new content type to be the child of the existing Folder content type. So why any item under this new content
    type does not have the workflow status column? I've tried removing the workflow from the list and publishing back using SPD without success.
    I also notice that when you associate a new content type to a document library/list which has some custom columns, you cannot edit those columns to be used in the new content type. You need to delete those columns and recreate them, then the option "Add
    to all content types" is there. Is this expected design?
    Thanks

    Hi,
    According to your post, an error occurred when you created a custom Edit form for new content type.
    We can do as follows:
    1.Add the MyNameSpace.MyNewEditPage dll file into GAC(C:\Windows\assembly).
    2. Execute the iisreset command.
    We can create a new content type using visual studio 2012/2013.
    http://www.sharepoint-journey.com/sharepoint-list-content-types-and-site-columns.html
    Best Regards
    Dennis Guo
    TechNet Community Support

  • Basics:  Best practise when using a thesaurus?

    Hi all,
    I currently use a function which returns info for a search on our website, the function is used by the java code to return hits:
    CREATE OR REPLACE FUNCTION fn_product_search(v_search_string IN VARCHAR2)
    RETURN TYPES.ref_cursor
    AS
    wildcard_search_string VARCHAR2(100);
    search_results TYPES.ref_cursor;
    BEGIN
    OPEN search_results FOR
    SELECT
              DCS_PRODUCT.product_id,
              DCS_CATEGORY.category_id,
              hazardous,
              direct_delivery,
              standard_delivery,
              DCS_CATEGORY.short_name,
              priority
              FROM
              DCS_CATEGORY,
              DCS_PRODUCT,
              SCS_CAT_CHLDPRD
              WHERE
              NOT DCS_PRODUCT.display_on_web = 'HIDE'
              AND ( contains(DCS_PRODUCT.search_terms, v_search_string, 0) > 0)
              AND SCS_CAT_CHLDPRD.child_prd_id = DCS_PRODUCT.product_id
              AND DCS_CATEGORY.category_id = SCS_CAT_CHLDPRD.category_id
              ORDER BY SCORE(0) DESC,
              SCS_CAT_CHLDPRD.priority DESC,
              DCS_PRODUCT.display_name;
    RETURN search_results;
    END;
    I want to develop this function so that is will use a thesaurus in case of no data found.
    I have been trying to find any documentation that might discuss 'best practise' for this type of query.
    I am not sure if I should just include the SYN call in this code directly or whether the use of the thesaurus should be restricted so that it is only used in circumstances where the existing fuction does not return a hit against the search.
    I want to keep overheads and respose times to an absolute minimum.
    Does anyone know the best logic to use for this?

    Hi.
    You want so much ("... absolute minimum for responce time...") from OracleText on 9.2.x.x.
    First, text queries on 9.2 is so slowly than on 10.x . Second - this is bad idea - trying to call query expansion functions directly from application.
    My own expirience:
    The best practise with thesauri usage is:
    1. Write a good searcg string parser which add thes expansion function (like NT,BT,RT,SYN...) directly in result string passed through to DRG engine.
    2. Use effective text queries: do not use direct or indirect sorts (hint DOMAIN_INDEX_NO_SORT can help).
    3. Finally - write effective application code. Code you show is inefficient.
    Hope this helps.
    WBR Yuri

  • Best practices for using AUTOARCHIVING in Exchange 2010

    Hi guys!
    Exchange 2010 SP3 environment. We have 150 users. We bought two 2TB in RAID1 disk and they Will be used for Autoarchive DB's. We have currently about 10 Production DB's named by department. We have created 10 Archive DB's named by department and added Word
    ARCHIVE at the end of the databasename.
    We have 150 users. Some of them (let's say 50) are having 20 - 30 GB of PST files, all the others have about 4-5GB PST files.
    What would be the best practise for putting quota restrictions? As I can see by the default a user is limited with 50GB per archive mailbox. In this scenario where 50 users have more then 20GB+ PST files long, and all the other less then 4GB what would
    be the best practise for setting up quota limitation on newly created 10 ARCHIVE db's to achieve optimal solution?
    with best regards,
    bostjanc

    Hi,
    As far as I know,  by default, in Exchange 2010 SP1, the archive warning quota is set to 45 gigabytes (GB) and the archive quota is set to 50 GB. And we can depend on the following command to set the quotas for all mailboxes in one database:
    Get-Mailbox -ResultSize Unlimited | Where {$_.ArchiveDatabase -ne $null} | Set-Mailbox -Archive Quota 20GB -ArchiveWarningQuota 19GB
    Please note that this is not at database level but mailbox level.
    For more information, you can refer to the following articles:
    http://technet.microsoft.com/en-us/library/dd979795.aspx#AQ
    http://social.technet.microsoft.com/Forums/exchange/en-US/599b2871-6fcc-482f-845b-b59dec342097/usedatabasequotadefaults-for-archive-mailbox?forum=exchange2010
    Thanks,
    Angela Shi
    TechNet Community Support

  • What is the best practise for setting dirty flag of a page/view?

    For a page/view, normaylly there are 2 things to do for diry data:
    1. when it's clean, Save button is disabled, when it's dirty, save button is enabled.
    2. when it's dirty and the window is closed, a popup says "you have unsaved data, close will lose the data".
    My thought is: it must be handled at client side, because not all valuechange is auto submitted. E.g., you type the 1st letter of a string in a input box, the server side does not know it, but save button should be enabled immediately.
    Is it possible to capture all valueChange events in a page or a view at client side?
    I'm not sure what is the best practise for setting dirty flag? If there is better solution? Does ADF provide facility for this?

    public void save(ActionEvent event){
    boolean formValid = isFormValid();
       if (formValid) {
      save button is enabled.
        private boolean isFormValid() {
            boolean valid = true;
            if (Check Condition 1) {
                valid = false;
               showErrorMessage1();
            if (Check Condition 2) {
                valid = false;
               showErrorMessage1();
            return valid;
        private void showErrorMessage1() {
                    when it's dirty and the window is closed, a popup says "you have unsaved data, close will lose the data".

  • Best Practise for connecting to Ethernet based device

    Hi,
    I have inherited a system where we have a cDAQ-9181 controlling an vehicle access barrier, with a LabView application on  a PC talking to it via Ethernet.
    (The application is very simple - press a button > send a value to the 9181 unit > opens the barrier )
    All works fine most of the time.
    ( We occasionally get network related errors. The LabView application sometimes thinks another PC has reserved the unit, or gives “error 89130 - device not available for routing” )
    The users would now like to be able to easily run the application from a second PC ( not at the same time ), but this seems to be a problem. If I exit the application on PC “A” and run it on PC “B” it struggles to reserve the chassis, and throws the “89130” error and I have to restart the unit via MAC.
    While I’m a “veteran” control programmer, I’m new to LabView, and would be very grateful for any pointers on “best practise” for talking to devices via Ethernet, or any specific suggestions for handling multiple PCs talking to a single device.
    Thank You.
    Tim.

    Hi Tim,
    Thank you for your post and welcome to the NI forums.
    There are lots of knowledgebase articles on our website and you should be able to find documentation for most of our hardware.
    There is a good troubleshooting guide for cDAQ Ethernet here (http://ae.natinst.com/public.nsf/web/searchinternal/e67b4e4749f378ff862577270059bd4b?OpenDocument) - it outlines the steps to take to ensure you have a stable a connection as possible. You may have already seen it, but the quick-start guide for your specific device may also be worth consulting for best practices. Are these helpful?
    As for using more than one PC - this shouldn't be too much of an issue. I would expect that the resource isn't being closed correctly - when you exit the App on PC 'A', how are you closing off the resource?
    Best regards,
    Eden S
    Applications Engineer
    National Instruments UK & Ireland

  • Best Practise for rebooting ISE Nodes?

    Hello Community,
    I administer an ISE installation with two nodes (I am not an ISE Specialist, my job is just to manage the user/mac-adresses... but now I have to move my ISE Nodes from one VMWare Cluster to another VMWare Cluster.
    (Both VMWare environments are connected to our enterprise network, but are different environments. vMotion not possible)
    I would shutdown ISE02, move it to our new VMWare environment and start it again.
    Than I would do this with our ISE01 Node...
    Are there any best practises for doing this? (Shutdown application first, stopl replikation etc)?
    Can I really simply reboot an ISE Node - or have I consider something bevor I doing this? After I doing this?
    Any tasks after reboot?
    Thank you for any answer!
    ISE01    
    Administration, Monitoring, Policy Service    
    PRI(A), SEC(M)
    ISE02    
    Administration, Monitoring, Policy Service    
    SEC(A), PRI(M)

    There is a lot to consider here.  If changing environments means changing IP Address and IP Scopes, then your policies, profiles, and dACLs would also have to change among other things.  If this is the case, create a new ISE VM in the new environment using the built in evaluation license and recreate the deployment from the old environment using the addressing scheme of the new environment.  Then spin-up a new Secondary node and register it on the Primary.  Once this is done, you can re-host the license from your old environment onto your new environment.  You can use this tool to re-host:
    https://tools.cisco.com/SWIFT/LicensingUI/loadDemoLicensee?FormId=3999
    If IP Addressing is to remain the same, it gets simpler. 
    First, and always, perform a configuration and operational backup.
    If downtime is not an issue, or if you have a maintenance window of an hour or so: Simply shut down both nodes.  Transfer them to the New Environment and turn them on, Primary Node first, of course.
    If downtime is an issue, shut down the Secondary Node and transfer it to the New Environment.  Start the Secondary Node and when it is up, shut down the Primary Node.  Once services on the primary node have stopped, promote the Secondary Node to Primary Node.
    Transfer the OLD Primary Node to the New Environment and turn it on.  It should assume the role of Secondary Node.  If it does not, assign that role through the GUI.
    Remember, the correct way to shut down an ISE node is:
    application stop ise
    halt
    By using these commands, the risk of database corruption decreases by about 90% (Remember to always backup).
    Please Rate Helpful posts and mark this question as answered if, in fact, this does answer your question.  Otherwise, feel free to post follow-up questions.
    Charles Moreton

  • How to assign permissions to choice values when using content types in a library

    Hi,
    I just now started using content types in document libraries instead of folder structure.  The structure I was given is as follows:
    Master group (library name)
    L.A.
      South Street
           Number 1
           Number 2
      North Street
           Number 1
           Number 2
    Boston
      West Street
           Number 1
           Number 2
    East street
           Number 1
           Number 2
    India
      North Street
           Number 1
           Number 2
      West Street
           Number 1
           Number 2
    So, I created a Content Type called Areas (which included LA, Boston, and India) and I created choice field values for each columns (South street and North street).  Then, I gave the choice values as Number 1 and Number 2.
    Now, the complexity was in terms of permission levels, wherein the client was accustomed to using folder structure.  And hence, they had given a set to users to have access only to Number 1 of West street of Boston.  Now that I have the content
    type structure in place, how do I configure the granular permission for the 3rd level of the hierarchy?
    Shonilchi..

    Thanks for your post. I had already done this via Windows Explorer, and it works for all of the My Docs files
    but not Acrobat files, which still come up in List View. I am running Windows XP still, is that a factor?

  • Best practises for replication

    Hi,
    I want to know what is best practise for duration of replicaation of database between two Cisco ACS.
    Regards,
    Atif.

    Hi Atif,
    The replication time interval should always be higher.
    Reason: Everytime you replicate the data it requires ACS services to restart so doing this frequently may affect your production enviroment.
    However, if you want to replicate internal user's password then there is an option to replicate password changes right awayvwithout a full replication.  You can enable this option under System Configuration -> Local Password Management.  With this enabled you could potentially set the replications to a larger interval.
    It also depend how often you do changes in your ACS. If its normal then I would say set it to every sunday 12:00 PM.
    This is how replication happens:
    The primary ACS stops its authentication and creates a copy of the ACSinternal database components that it is configured to replicate. During this
    step, if AAA clients are configured properly, those that usually use the primary ACS fail over to another ACS. The primary ACS resumes its authentication service.
    After the preceding events on the primary ACS, the database replication process continues on the secondary ACS. The secondary ACS stops its authentication service and replaces its database components with the database components that it received from the primary ACS. During this step, if AAA clients are configured properly, those that usually use the secondary ACS fail over to another ACS. The secondary ACS resumes its authentication service.
    HTH
    Regards,
    JK
    Plz rate helpful posts-

  • How to install Best Practise for HCM

    Hi all:
        Could you please tell me how to install best practise for HCM , as there is no autoran file.
        Thank you very much!!!
    Best regards
    Frank

    Hi,
    Did you chk this link;
    http://help.sap.com/content/bestpractices/overview/index.htm
    http://help.sap.com/bp_hcmv1600/HCM_US/HTML/index.htm
    Regards
    CSM Reddy

Maybe you are looking for

  • Issue with characterset setting in OWB flat file target

    an OWB mapping reads from the database source and writes to flat file target in unix os but junk characters are displayed for non english characters in the target file . The database table contains french,spanish,german,arabic characters.The nls db p

  • Bad Bind Variable

    Hi friend, I do want to use a trigger to update a varchar2 value: create or replace trigger WORK_STITCH_NAME_TRIG after insert or update on ASS_WORK_STITCH for each row declare NAME VARCHAR2(100); begin if inserting then select ENAME into NAME from U

  • Idle users and away users both are shown with red blip

    Hi, In my ichat (even when I was using tiger) I can see only two status for all my buddies. Its either green or red. I am not able to get the yellow for idle buddies. Any ideas how to get the yellow ones to work? Thanks

  • Oracle BI Server Failed

    Hi, OBIEE 10g. Suddenly "Oracle BI Server" failed on the server. Environment is "Windows 2008" I am bit new. Could you please guide me how can i check what exactly is the problem? Regards Suresh

  • Error running an excel xlsm file version office 2010

    Microsoft Visual Basic for Applications Compile error in hidden module MainControl this error commonly occurs when code  is incompatible with the version platform or architecture of this application The excel macro file was runnuning in windows vista