Introduction

This project depends on the Sdk.Soap.js library included in the Sdk.Soap.js project.

Use the classes generated by this project to support the early-bound style of development. This project will generate separate JavaScript class files for most entities in your organization, including any custom entities. Any custom attributes or entity relationships included for system entities will also be included.

Before you can use this solution, you must install required NuGet packages.

Install NuGet packages

Use the following steps to install the required assemblies for the Sdk.Soap.js Entity Class Generator :

  1. Download the Sdk.Soap.js Entity Class Generator solution files.
  2. Open the Sdk.Soap.js Entity Class Generator.sln solution file using Visual Studio 2013.
  3. In Visual Studio 2013, right-click the Sdk.Soap.js Entity Class Generator project and choose Manage NuGet Packages.
  4. In the search window, search for “Microsoft Dynamics CRM 2013 core assemblies”. Locate the NuGet package described in Microsoft Dynamics CRM 2013 SDK core assemblies.

  5. Click Install. You’ll need to accept the license terms to complete installing this package. When you are finished close the window.

Generate JavaScript class files for entities

Use the following steps to generate JavaScript class files for entities:

  1. In Visual Studio with the Sdk.Soap.js Entity Class Generator solution open and the necessary NuGet packages installed, press F5.
  2. If you have not previously run one of the Microsoft Dynamics CRM managed code samples before, you’ll need to enter information to run the code, otherwise enter the number for one of the CRM servers you have previously set up.

    Prompt Description
    Enter a CRM server name and port [crm.dynamics.com]

    Type the name of your Microsoft Dynamics CRM server. The default is Microsoft Dynamics CRM Online (crm.dynamics.com) in North America.

    Example: myservername

    Example: myprefix.myservername:5500

    Example: crm5.dynamics.com

    Don’t include the name of your organization or Internet protocol (http or https). You’ll be prompted for that later.

    Is this server configured for Secure Sockets Layer (https) (y/n) [n] Type y if the URL you use to access Microsoft Dynamics CRM 2013 begins with https://, otherwise type n. Microsoft Dynamics CRM Online users won’t see this prompt.
    Is this organization provisioned in Microsoft online services (y/n) [n]

    Type y if this is a Microsoft online services provisioned organization. Otherwise, type n.

    Only CRM Online users see this prompt.

    Enter domain\username

    For Microsoft Dynamics CRM 2013, type your network domain and user name separated by a backslash (\). For CRM Online, enter your Microsoft account.

    On-premises/IFD example: mydomain\tadams

    Online example: terryadams@somedomain.onmicrosoft.com

    If you just press <Enter> for the user name, the program will look for and use saved credentials. If there are no saved credentials, the program will fail.

    Enter password Type your password. The characters will show as “*” in the window. Your password is securely saved in the Microsoft Credential Manager for later reuse.
    Specify an organization number (1-n) [1] From the list of organizations shown that you belong to, type the corresponding number. The default is 1, indicating the first organization in the list.
  3. For most entities found in your organization, a pair of corresponding JavaScript libraries will be saved in the \bin\Debug\classFiles folder. One version will be in the vsdoc folder and a second will be in the runtime folder.

Example: Files for a custom entity

The following example is a simple custom entity named “Custom Entity” where the default organization solution publisher is “new”.

Sdk.new_customentity.vsdoc.js

The following sample shows the Sdk.new_customentity.vsdoc.js file generated for the custom entity. Use this library for design-time IntelliSense in Visual Studio:

JavaScript
Edit|Remove
  "use strict"/* 
 
IMPORTANT: Use this file at design time for IntelliSense support ONLY. 
Use the corresponding Sdk.new_customentity.js in your project 
 
*/ 
 
(function () { 
this.new_customentity = function (entity) { 
///<summary> 
/// This is a custom entity 
///</summary> 
/// <param name='entity' type='Sdk.Entity' mayBeNull='true' optional='true'> 
/// Optional. Use only to convert an Sdk.Entity into an Sdk.new_customentity 
///</param> 
  if (!(this instanceof Sdk.new_customentity)) { 
   return new Sdk.new_customentity(); 
  } 
  Sdk.Entity.call(this); 
  this.setType("new_customentity"); 
  if (typeof entity != "undefined" && entity != null) { 
   if (entity instanceof Sdk.Entity) { 
    if (entity.getType() == this.getType()) { 
     this.setAttributes(entity.getAttributes()); 
     this.setFormattedValues(entity.getFormattedValues()); 
     this.setRelatedEntities(entity.getRelatedEntities()); 
     if (entity.getId() != null) { 
      this.setId(entity.getId()); 
     } 
    } 
    else { 
     throw new Error("Invalid type Sdk.new_customentity entity constructor parameter must be an Sdk.Entity of Type new_customentity"); 
    } 
   } 
   else { 
    throw new Error("Invalid argument Sdk.new_customentity entity constructor parameter must be an Sdk.Entity"); 
   } 
  } 
 
// CreatedBy START -------------------------------------------------------------- 
var CreatedBy = new Sdk.Lookup("createdby"); 
this.addAttribute(CreatedBy, false); 
/// <field name='CreatedBy' type='Sdk.Lookup'>Created By : Unique identifier of the user who created the record.</field> 
this.CreatedBy = {}this.CreatedBy.getValue = function () { 
 ///<summary> 
 /// Gets the CreatedBy value 
 ///</summary> 
 /// <returns type="Sdk.EntityReference">Unique identifier of the user who created the record.</returns> 
 return CreatedBy.getValue(); 
} 
// CreatedBy END -------------------------------------------------------------- 
 
 
// CreatedOn START -------------------------------------------------------------- 
var CreatedOn = new Sdk.DateTime("createdon"); 
this.addAttribute(CreatedOn, false); 
/// <field name='CreatedOn' type='Sdk.DateTime'>Created On : Date and time when the record was created.</field> 
this.CreatedOn = {}this.CreatedOn.getValue = function () { 
 ///<summary> 
 /// Gets the CreatedOn value 
 ///</summary> 
 /// <returns type="Date">Date and time when the record was created.</returns> 
 return CreatedOn.getValue(); 
} 
// CreatedOn END -------------------------------------------------------------- 
 
 
// CreatedOnBehalfBy START -------------------------------------------------------------- 
var CreatedOnBehalfBy = new Sdk.Lookup("createdonbehalfby"); 
this.addAttribute(CreatedOnBehalfBy, false); 
/// <field name='CreatedOnBehalfBy' type='Sdk.Lookup'>Created By (Delegate) : Unique identifier of the delegate user who created the record.</field> 
this.CreatedOnBehalfBy = {}this.CreatedOnBehalfBy.getValue = function () { 
 ///<summary> 
 /// Gets the CreatedOnBehalfBy value 
 ///</summary> 
 /// <returns type="Sdk.EntityReference">Unique identifier of the delegate user who created the record.</returns> 
 return CreatedOnBehalfBy.getValue(); 
} 
// CreatedOnBehalfBy END -------------------------------------------------------------- 
 
 
// ImportSequenceNumber START -------------------------------------------------------------- 
var ImportSequenceNumber = new Sdk.Int("importsequencenumber"); 
this.addAttribute(ImportSequenceNumber, false); 
/// <field name='ImportSequenceNumber' type='Sdk.Int'>Import Sequence Number : Sequence number of the import that created this record.</field> 
this.ImportSequenceNumber = {}this.ImportSequenceNumber.setValue = function (value) { 
 ///<summary>Sets the ImportSequenceNumber value</summary> 
 /// <param name="value" type="Number" optional="false"> 
 /// <para>Import Sequence Number : Sequence number of the import that created this record.</para> 
 /// <para>MaxValue: 2147483647</para> 
 /// <para>MinValue: -2147483648</para> 
 /// <para>RequiredLevel: None</para> 
 /// </param> 
 ImportSequenceNumber.setValue(value); 
}this.ImportSequenceNumber.getValue = function () { 
 ///<summary> 
 /// Gets the ImportSequenceNumber value 
 ///</summary> 
 /// <returns type="Number">Sequence number of the import that created this record.</returns> 
 return ImportSequenceNumber.getValue(); 
} 
// ImportSequenceNumber END -------------------------------------------------------------- 
 
 
// ModifiedBy START -------------------------------------------------------------- 
var ModifiedBy = new Sdk.Lookup("modifiedby"); 
this.addAttribute(ModifiedBy, false); 
/// <field name='ModifiedBy' type='Sdk.Lookup'>Modified By : Unique identifier of the user who modified the record.</field> 
this.ModifiedBy = {}this.ModifiedBy.getValue = function () { 
 ///<summary> 
 /// Gets the ModifiedBy value 
 ///</summary> 
 /// <returns type="Sdk.EntityReference">Unique identifier of the user who modified the record.</returns> 
 return ModifiedBy.getValue(); 
} 
// ModifiedBy END -------------------------------------------------------------- 
 
 
// ModifiedOn START -------------------------------------------------------------- 
var ModifiedOn = new Sdk.DateTime("modifiedon"); 
this.addAttribute(ModifiedOn, false); 
/// <field name='ModifiedOn' type='Sdk.DateTime'>Modified On : Date and time when the record was modified.</field> 
this.ModifiedOn = {}this.ModifiedOn.getValue = function () { 
 ///<summary> 
 /// Gets the ModifiedOn value 
 ///</summary> 
 /// <returns type="Date">Date and time when the record was modified.</returns> 
 return ModifiedOn.getValue(); 
} 
// ModifiedOn END -------------------------------------------------------------- 
 
 
// ModifiedOnBehalfBy START -------------------------------------------------------------- 
var ModifiedOnBehalfBy = new Sdk.Lookup("modifiedonbehalfby"); 
this.addAttribute(ModifiedOnBehalfBy, false); 
/// <field name='ModifiedOnBehalfBy' type='Sdk.Lookup'>Modified By (Delegate) : Unique identifier of the delegate user who modified the record.</field> 
this.ModifiedOnBehalfBy = {}this.ModifiedOnBehalfBy.getValue = function () { 
 ///<summary> 
 /// Gets the ModifiedOnBehalfBy value 
 ///</summary> 
 /// <returns type="Sdk.EntityReference">Unique identifier of the delegate user who modified the record.</returns> 
 return ModifiedOnBehalfBy.getValue(); 
} 
// ModifiedOnBehalfBy END -------------------------------------------------------------- 
 
 
// new_customentityId START -------------------------------------------------------------- 
var new_customentityId = new Sdk.Guid("new_customentityid"); 
this.addAttribute(new_customentityId, false); 
 /// <field name='new_customentityId' type='Sdk.Guid'>Custom Entity : Unique identifier for entity instances</field> 
this.new_customentityId = {}this.new_customentityId.setValue = function (value) { 
 ///<summary><para>Sets the new_customentityId (Custom Entity) value</para> 
 /// <para>RequiredLevel: SystemRequired</para> 
 ///</summary> 
 /// <param name="value" type="String" mayBeNull="true" optional="false">Unique identifier for entity instances</param> 
new_customentityId.setValue(value); 
}this.new_customentityId.getValue = function () { 
 ///<summary>Gets the new_customentityId value</summary> 
 /// <returns type="String" mayBeNull="true">Unique identifier for entity instances</returns> 
return new_customentityId.getValue(); 
} 
// new_customentityId END -------------------------------------------------------------- 
 
 
// new_name START -------------------------------------------------------------- 
  var new_name = new Sdk.String("new_name"); 
  this.addAttribute(new_name, false); 
  /// <field name='new_name' type='Sdk.String'>Name : The name of the custom entity.</field> 
this.new_name = {}; 
  this.new_name.setValue = function (value) { 
   ///<summary>Sets the new_name value</summary> 
   /// <param name="value" type="String" optional="false"> 
   /// <para>Name : The name of the custom entity.</para> 
   /// <para>MaxLength: 100</para> 
   /// <para>RequiredLevel: ApplicationRequired</para> 
   /// </param> 
   new_name.setValue(value); 
  }; 
  this.new_name.getValue = function () { 
   ///<summary> 
   /// Gets the new_name value 
   ///</summary> 
   /// <returns type="String">The name of the custom entity.</returns> 
   return new_name.getValue(); 
  } 
// new_name END -------------------------------------------------------------- 
 
 
// OverriddenCreatedOn START -------------------------------------------------------------- 
var OverriddenCreatedOn = new Sdk.DateTime("overriddencreatedon"); 
this.addAttribute(OverriddenCreatedOn, false); 
/// <field name='OverriddenCreatedOn' type='Sdk.DateTime'>Record Created On : Date and time that the record was migrated.</field> 
this.OverriddenCreatedOn = {}this.OverriddenCreatedOn.setValue = function (value) { 
 ///<summary><para>Sets the OverriddenCreatedOn (Record Created On) value</para> 
 /// <para>RequiredLevel: None</para> 
 ///</summary> 
 /// <param name="value" type="Date" optional="false">Date and time that the record was migrated.</param> 
 OverriddenCreatedOn.setValue(value); 
}this.OverriddenCreatedOn.getValue = function () { 
 ///<summary> 
 /// Gets the OverriddenCreatedOn value 
 ///</summary> 
 /// <returns type="Date">Date and time that the record was migrated.</returns> 
 return OverriddenCreatedOn.getValue(); 
} 
// OverriddenCreatedOn END -------------------------------------------------------------- 
 
 
// OwnerId START -------------------------------------------------------------- 
var OwnerId = new Sdk.Lookup("ownerid"); 
this.addAttribute(OwnerId, false); 
/// <field name='OwnerId' type='Sdk.Lookup'>Owner : Owner Id</field> 
this.OwnerId = {}this.OwnerId.setValue = function (value) { 
///<summary><para>Sets the OwnerId value</para> 
/// <para>Display Name: Owner</para> 
/// <para>Targets: systemuser,team</para> 
/// <para>RequiredLevel: SystemRequired</para> 
///</summary> 
/// <param name="value" type="Sdk.EntityReference" optional="false">Owner Id</param> 
 OwnerId.setValue(value); 
}this.OwnerId.getValue = function () { 
 ///<summary> 
 /// Gets the OwnerId value 
 ///</summary> 
 /// <returns type="Sdk.EntityReference">Owner Id</returns> 
 return OwnerId.getValue(); 
} 
// OwnerId END -------------------------------------------------------------- 
 
 
// OwningBusinessUnit START -------------------------------------------------------------- 
var OwningBusinessUnit = new Sdk.Lookup("owningbusinessunit"); 
this.addAttribute(OwningBusinessUnit, false); 
/// <field name='OwningBusinessUnit' type='Sdk.Lookup'>Owning Business Unit : Unique identifier for the business unit that owns the record</field> 
this.OwningBusinessUnit = {}this.OwningBusinessUnit.getValue = function () { 
 ///<summary> 
 /// Gets the OwningBusinessUnit value 
 ///</summary> 
 /// <returns type="Sdk.EntityReference">Unique identifier for the business unit that owns the record</returns> 
 return OwningBusinessUnit.getValue(); 
} 
// OwningBusinessUnit END -------------------------------------------------------------- 
 
 
// OwningTeam START -------------------------------------------------------------- 
var OwningTeam = new Sdk.Lookup("owningteam"); 
this.addAttribute(OwningTeam, false); 
/// <field name='OwningTeam' type='Sdk.Lookup'>Owning Team : Unique identifier for the team that owns the record.</field> 
this.OwningTeam = {}this.OwningTeam.getValue = function () { 
 ///<summary> 
 /// Gets the OwningTeam value 
 ///</summary> 
 /// <returns type="Sdk.EntityReference">Unique identifier for the team that owns the record.</returns> 
 return OwningTeam.getValue(); 
} 
// OwningTeam END -------------------------------------------------------------- 
 
 
// OwningUser START -------------------------------------------------------------- 
var OwningUser = new Sdk.Lookup("owninguser"); 
this.addAttribute(OwningUser, false); 
/// <field name='OwningUser' type='Sdk.Lookup'>Owning User : Unique identifier for the user that owns the record.</field> 
this.OwningUser = {}this.OwningUser.getValue = function () { 
 ///<summary> 
 /// Gets the OwningUser value 
 ///</summary> 
 /// <returns type="Sdk.EntityReference">Unique identifier for the user that owns the record.</returns> 
 return OwningUser.getValue(); 
} 
// OwningUser END -------------------------------------------------------------- 
 
 
// statecode START -------------------------------------------------------------- 
var statecode = new Sdk.OptionSet("statecode"); 
  this.addAttribute(statecode, false); 
  /// <field name='statecode' type='Sdk.OptionSet'>Status : Status of the Custom Entity</field> 
  this.statecode = {}; 
  this.statecode.getValue = function () { 
   ///<summary>Gets the statecode value</summary> 
 /// <returns type="Number" integer="true" mayBeNull="true">Status of the Custom Entity</returns> 
   return statecode.getValue(); 
  } 
// statecode END -------------------------------------------------------------- 
 
 
// statuscode START -------------------------------------------------------------- 
var statuscode = new Sdk.OptionSet("statuscode"); 
  this.addAttribute(statuscode, false); 
  /// <field name='statuscode' type='Sdk.OptionSet'>Status Reason : Reason for the status of the Custom Entity</field> 
  this.statuscode = {}; 
 this.statuscode.setValue = function (value) { 
  ///<summary><para>Sets the statuscode (Status Reason) value</para> 
   /// <para>Reason for the status of the Custom Entity</para> 
   /// <para>RequiredLevel: None</para> 
  ///</summary> 
   /// <param name="value" type="Number" integer="true" mayBeNull="true" optional="false"> 
   /// <para>Options:</para> 
/// <para> 1 : Active State 0</para> 
/// <para> 2 : Inactive State 1</para> 
   /// </param> 
   statuscode.setValue(value); 
  }; 
  this.statuscode.getValue = function () { 
   ///<summary>Gets the statuscode value</summary> 
 /// <returns type="Number" integer="true" mayBeNull="true">Reason for the status of the Custom Entity</returns> 
   return statuscode.getValue(); 
  } 
// statuscode END -------------------------------------------------------------- 
 
 
// TimeZoneRuleVersionNumber START -------------------------------------------------------------- 
var TimeZoneRuleVersionNumber = new Sdk.Int("timezoneruleversionnumber"); 
this.addAttribute(TimeZoneRuleVersionNumber, false); 
/// <field name='TimeZoneRuleVersionNumber' type='Sdk.Int'>Time Zone Rule Version Number : For internal use only.</field> 
this.TimeZoneRuleVersionNumber = {}this.TimeZoneRuleVersionNumber.setValue = function (value) { 
 ///<summary>Sets the TimeZoneRuleVersionNumber value</summary> 
 /// <param name="value" type="Number" optional="false"> 
 /// <para>Time Zone Rule Version Number : For internal use only.</para> 
 /// <para>MaxValue: 2147483647</para> 
 /// <para>MinValue: -2147483648</para> 
 /// <para>RequiredLevel: None</para> 
 /// </param> 
 TimeZoneRuleVersionNumber.setValue(value); 
}this.TimeZoneRuleVersionNumber.getValue = function () { 
 ///<summary> 
 /// Gets the TimeZoneRuleVersionNumber value 
 ///</summary> 
 /// <returns type="Number">For internal use only.</returns> 
 return TimeZoneRuleVersionNumber.getValue(); 
} 
// TimeZoneRuleVersionNumber END -------------------------------------------------------------- 
 
 
// UTCConversionTimeZoneCode START -------------------------------------------------------------- 
var UTCConversionTimeZoneCode = new Sdk.Int("utcconversiontimezonecode"); 
this.addAttribute(UTCConversionTimeZoneCode, false); 
/// <field name='UTCConversionTimeZoneCode' type='Sdk.Int'>UTC Conversion Time Zone Code : Time zone code that was in use when the record was created.</field> 
this.UTCConversionTimeZoneCode = {}this.UTCConversionTimeZoneCode.setValue = function (value) { 
 ///<summary>Sets the UTCConversionTimeZoneCode value</summary> 
 /// <param name="value" type="Number" optional="false"> 
 /// <para>UTC Conversion Time Zone Code : Time zone code that was in use when the record was created.</para> 
 /// <para>MaxValue: 2147483647</para> 
 /// <para>MinValue: -2147483648</para> 
 /// <para>RequiredLevel: None</para> 
 /// </param> 
 UTCConversionTimeZoneCode.setValue(value); 
}this.UTCConversionTimeZoneCode.getValue = function () { 
 ///<summary> 
 /// Gets the UTCConversionTimeZoneCode value 
 ///</summary> 
 /// <returns type="Number">Time zone code that was in use when the record was created.</returns> 
 return UTCConversionTimeZoneCode.getValue(); 
} 
// UTCConversionTimeZoneCode END -------------------------------------------------------------- 
 
 
// VersionNumber START -------------------------------------------------------------- 
var VersionNumber = new Sdk.Long("versionnumber"); 
this.addAttribute(VersionNumber, false); 
/// <field name='VersionNumber' type='Sdk.Long'>No Display Name : No Description</field> 
this.VersionNumber = {}this.VersionNumber.getValue = function () { 
 ///<summary> 
 /// Gets the VersionNumber value 
 ///</summary> 
 /// <returns type="Number">No Description</returns> 
 return VersionNumber.getValue(); 
} 
// VersionNumber END -------------------------------------------------------------- 
 
 }}).call(Sdk) 
Sdk.new_customentity.prototype = new Sdk.Entity("new_customentity"); 
 
(function () { 
 this.OneToMany = function () { 
  /// <summary>Properties represent the string values of One-to-Many relationships for Sdk.new_customentity</summary> 
  /// <field name="new_customentity_AsyncOperations" type="String" static="true"> Entity: asyncoperation  Attribute: regardingobjectid</field> 
  /// <field name="new_customentity_BulkDeleteFailures" type="String" static="true"> Entity: bulkdeletefailure  Attribute: regardingobjectid</field> 
  /// <field name="new_customentity_PrincipalObjectAttributeAccesses" type="String" static="true"> Entity: principalobjectattributeaccess  Attribute: objectid</field> 
  /// <field name="new_customentity_ProcessSession" type="String" static="true"> Entity: processsession  Attribute: regardingobjectid</field> 
  /// <field name="new_customentity_UserEntityInstanceDatas" type="String" static="true"> Entity: userentityinstancedata  Attribute: objectid</field> 
  throw new Error("Constructor not implemented this is a static enum."); 
} 
 this.OneToMany.__enum = true; 
 this.OneToMany.__flags = true; 
}).call(Sdk.new_customentity); 
 
Sdk.new_customentity.OneToMany.prototype = { 
 new_customentity_AsyncOperations: "new_customentity_AsyncOperations", 
 new_customentity_BulkDeleteFailures: "new_customentity_BulkDeleteFailures", 
 new_customentity_PrincipalObjectAttributeAccesses: "new_customentity_PrincipalObjectAttributeAccesses", 
 new_customentity_ProcessSession: "new_customentity_ProcessSession", 
 new_customentity_UserEntityInstanceDatas: "new_customentity_UserEntityInstanceDatas"}; 
 
Sdk.new_customentity.OneToMany.new_customentity_AsyncOperations = "new_customentity_AsyncOperations"; 
Sdk.new_customentity.OneToMany.new_customentity_BulkDeleteFailures = "new_customentity_BulkDeleteFailures"; 
Sdk.new_customentity.OneToMany.new_customentity_PrincipalObjectAttributeAccesses = "new_customentity_PrincipalObjectAttributeAccesses"; 
Sdk.new_customentity.OneToMany.new_customentity_ProcessSession = "new_customentity_ProcessSession"; 
Sdk.new_customentity.OneToMany.new_customentity_UserEntityInstanceDatas = "new_customentity_UserEntityInstanceDatas"; 
Sdk.new_customentity.OneToMany.__enum = true; 
Sdk.new_customentity.OneToMany.__flags = true;

Sdk.new_customentity.js

Edit this file to uncomment any attributes or one-to-many entity relationships that you’ll use in your code, then minimize it and create a JavaScript web resource to use with code that was written using the early-bound style with the Sdk.new_customentity.vsdoc.js library at design time.

JavaScript
Edit|Remove
  "use strict"/* 
 
IMPORTANT: Use this file at run time. 
Use the corresponding Sdk.new_customentity.vsdoc.js for IntelliSense support at design time 
Uncomment any of the attributes and relationships below that you will use in your code 
 
*/ 
Sdk.md = window.Sdk.md || { __namespace: true }; 
Sdk.md.new_customentity = { 
//"CreatedBy": { "Name": "CreatedBy", "AttributeType": Sdk.Lookup} 
//,"CreatedOn": { "Name": "CreatedOn", "AttributeType": Sdk.DateTime} 
//,"CreatedOnBehalfBy": { "Name": "CreatedOnBehalfBy", "AttributeType": Sdk.Lookup} 
//,"ImportSequenceNumber": { "Name": "ImportSequenceNumber", "AttributeType": Sdk.Int} 
//,"ModifiedBy": { "Name": "ModifiedBy", "AttributeType": Sdk.Lookup} 
//,"ModifiedOn": { "Name": "ModifiedOn", "AttributeType": Sdk.DateTime} 
//,"ModifiedOnBehalfBy": { "Name": "ModifiedOnBehalfBy", "AttributeType": Sdk.Lookup} 
//,"new_customentityId": { "Name": "new_customentityId", "AttributeType": Sdk.Guid} 
//,"new_name": { "Name": "new_name", "AttributeType": Sdk.String} 
//,"OverriddenCreatedOn": { "Name": "OverriddenCreatedOn", "AttributeType": Sdk.DateTime} 
//,"OwnerId": { "Name": "OwnerId", "AttributeType": Sdk.Lookup} 
//,"OwningBusinessUnit": { "Name": "OwningBusinessUnit", "AttributeType": Sdk.Lookup} 
//,"OwningTeam": { "Name": "OwningTeam", "AttributeType": Sdk.Lookup} 
//,"OwningUser": { "Name": "OwningUser", "AttributeType": Sdk.Lookup} 
//,"statecode": { "Name": "statecode", "AttributeType": Sdk.OptionSet} 
//,"statuscode": { "Name": "statuscode", "AttributeType": Sdk.OptionSet} 
//,"TimeZoneRuleVersionNumber": { "Name": "TimeZoneRuleVersionNumber", "AttributeType": Sdk.Int} 
//,"UTCConversionTimeZoneCode": { "Name": "UTCConversionTimeZoneCode", "AttributeType": Sdk.Int} 
//,"VersionNumber": { "Name": "VersionNumber", "AttributeType": Sdk.Long} 
 
}; 
(function () { 
this.new_customentity = function (entity) { 
  if (!(this instanceof Sdk.new_customentity)) { 
   return new Sdk.new_customentity(entity); 
  } 
  Sdk.Entity.call(this); 
  this.setType("new_customentity"); 
  if (typeof entity != "undefined" && entity != null) { 
   if (entity instanceof Sdk.Entity) { 
    if (entity.getType() == this.getType()) { 
     this.setAttributes(entity.getAttributes()); 
     this.setFormattedValues(entity.getFormattedValues()); 
     this.setRelatedEntities(entity.getRelatedEntities()); 
     if (entity.getId() != null) { 
      this.setId(entity.getId()); 
     } 
    } 
    else { 
     throw new Error("Invalid type Sdk.new_customentity entity constructor parameter must be an Sdk.Entity of Type new_customentity") 
    } 
   } 
   else { 
    throw new Error("Invalid argument Sdk.new_customentity entity constructor parameter must be an Sdk.Entity"); 
   } 
  } 
  this.initializeSubClass(Sdk.md.new_customentity) 
 }}).call(Sdk) 
Sdk.new_customentity.prototype = new Sdk.Entity("new_customentity"); 
 
(function () { 
 this.OneToMany = { 
//Uncomment any of the relationships below you will use in your code 
//new_customentity_AsyncOperations: "new_customentity_AsyncOperations" 
//,new_customentity_BulkDeleteFailures: "new_customentity_BulkDeleteFailures" 
//,new_customentity_PrincipalObjectAttributeAccesses: "new_customentity_PrincipalObjectAttributeAccesses" 
//,new_customentity_ProcessSession: "new_customentity_ProcessSession" 
//,new_customentity_UserEntityInstanceDatas: "new_customentity_UserEntityInstanceDatas" 
 }}).call(Sdk.new_customentity);

Attributes not valid for read, create, or update

Each attribute for a class will have a getValue and setValue method only when the metadata for the attribute indicates that it is valid to read, create or update. If the design-time library doesn’t provide IntelliSense support for the getValue or setValue methods, this isn’t a valid action for the attribute.

Edit Run-time libraries

The run-time version of the entity class file is smaller because it depends on code found in the Sdk.Soap.js library to add attributes the entity when it is instantiated based on metadata included in the run-time version of the file. By default, this attribute and relationship metadata is commented out to mitigate the performance impact of instantiating each of these attributes and relationships. For some entities, such as account or systemuser, there are a very large number of attributes and relationships.

It’s unlikely that you’ll ever need to write code in JavaScript that uses every attribute defined for an entity. When you write code using the early-binding style, note which attributes you use and then edit the run-time version of the library so that they’ll be available.

Note: Pay special attention when un-commenting the items. For the JavaScript to be valid, the first item in the list must not have a comma at the beginning. In the following example, the highlighted comma must be removed.

System Entity Classes not generated

The EntityClassGenerator.cs file in the Sdk.Soap.js Entity Class Generator contains an excludedEntities String Array of entity schema names that won’t be generated by default. These are all system entities that are either for internal use only or are used infrequently. If you need to have a JavaScript class file generated for one of these entities, simply comment it out of the list.

ApplicationFile AsyncOperation AttributeMap
AuthorizationServer BulkDeleteFailure BulkDeleteOperation
BulkOperation BulkOperationLog BusinessProcessFlowInstance
BusinessUnitMap BusinessUnitNewsArticle ChildIncidentCount
ClientUpdate ColumnMapping Commitment
ComplexControl ConvertRule ConvertRuleItem
Dependency DependencyFeature DependencyNode
DisplayString DisplayStringMap DocumentIndex
DuplicateRecord DuplicateRule DuplicateRuleCondition
EmailHash EmailSearch EmailServerProfile
EntityMap ExchangeSyncIdMapping FieldPermission
FieldSecurityProfile FilterTemplate FixedMonthlyFiscalCalendar
ImageDescriptor Import ImportData
ImportEntityMapping ImportFile ImportJob
ImportLog ImportMap IntegrationStatus
InternalAddress InterProcessLock InvalidDependency
IsvConfig License LookUpMapping
Mailbox MailboxStatistics MetadataDifference
MultiEntitySearch MultiEntitySearchEntities Notification
OrganizationStatistic OrganizationUI OwnerMapping
PartnerApplication PickListMapping PluginAssembly
PluginType PluginTypeStatistic PrincipalObjectAccess
PrincipalObjectAccessReadSnapshot PrincipalObjectAttributeAccess Privilege
PrivilegeObjectTypeCodes ProcessSession ProcessStage
ProcessTrigger Publisher PublisherAddress
RecordCountSnapshot RelationshipRole RelationshipRoleMap
ReplicationBacklog Report ReportCategory
ReportEntity ReportLink ReportVisibility
RibbonCommand RibbonContextGroup RibbonCustomization
RibbonDiff RibbonRule RibbonTabToCommandMap
RoutingRule RoutingRuleItem SalesProcessInstance
SdkMessage SdkMessageFilter SdkMessagePair
SdkMessageProcessingStep SdkMessageProcessingStepImage SdkMessageProcessingStepSecureConfig
SdkMessageRequest SdkMessageRequestField SdkMessageResponse
SdkMessageResponseField ServiceEndpoint SiteMap
SLA SLAItem Solution
SolutionComponent SqlEncryptionAudit StatusMap
StringMap Subscription SubscriptionClients
SubscriptionSyncInfo SubscriptionTrackingDeletedObject SystemApplicationMetadata
SystemForm SystemUserBusinessUnitEntityMap SystemUserPrincipals
TraceAssociation TraceLog TraceRegarding
TransformationMapping TransformationParameterMapping UnresolvedAddress
UserApplicationMetadata UserEntityInstanceData UserEntityUISettings
WebWizard WizardAccessPrivilege WizardPage
WorkflowWaitSubscription    

Attribute Types not supported

The following types of attributes aren’t supported: