Работа с библиотекой XrmServiceToolkit

Объекты и функции библиотеки JS-библиотеки XrmServiceToolkit и примеры работы с ними.

Объекты

Описание объектов библиотеки.

XrmServiceToolkit.Soap.BusinessEntity

XrmServiceToolkit.Soap.BusinessEntity {
   id : string, // GUID записи сущности
   logicalName : string // название сущности
   attributes : {
       // параметр типа string
       {
           type = "string",
           value : string
       }
       // параметр типа "Целое число"
       {
           type = "int",
           value : int
       }
       // параметр типа OptionSetValue
       {
           type = "OptionSetValue",
           value : string,
           formattedValue : string
       }
       // параметр типа AliasedValue<string>
       {
           type = "AliasedValue",
           value : string
       }
       // параметр типа AliasedValue<boolean>
       {
           type = "AliasedValue",
           value :  string, // "true" или "false"
           formattedValue : string
       }
       // параметр типа AliasedValue<DateTime>
       {
           type = "AliasedValue",
           value : string, // например "1974-02-01T12:00:00Z"
           formattedValue : string
       }
       // параметр типа AliasedValue<OptionSetValue>
       {
           type = "AliasedValue",
           value : string, // например "100000000"
           formattedValue : string
       }
       // параметр типа AliasedValue<EntityReference>
       {
           type = "EntityReference",
           id : string, // GUID
           logicalName : string,
           name : string
       }
   }
}

Метаданные

Массив метаданных, возвращаемый функциями RetrieveEntityMetadata и RetrieveAllEntitiesMetadata.

Array<object> [
   {
       Attributes: [
           {
               LogicalName : string // системное имя атрибута
               AttributeType : string // "Integer", "String", ...
               DisplayName: {
                   LocaligedLadels : [
                       {
                           Label : string,
                           LanguageCode: int
                       }
                   ]
                   UserLocalizedLabel : {
                       Label : string,
                       LanguageCode: int
                   }
               }
           }
       ],
       DisplayName: {
           LocaligedLadels : [
               {
                   Label : string,
                   LanguageCode: int
               }
           ]
           UserLocalizedLabel : {
               Label : string,
               LanguageCode: int
           }
       },
       IsActivityParty: bool,
       LogicalName: string,
       ObjectTypeCode: int,
       PrimaryIdAttribute: string,
       PrimaryNameAttribute: string
   }
]

Методы

XrmServiceToolkit.Soap.RetrieveEntityMetadata

Получение метаданных одной сущности.

Array<object> XrmServiceToolkit.Soap.RetrieveEntityMetadata(
   entityFilters : Array<string> // ['Entity', 'Attributes', 'Privileges', 'Relationships']
   logicalName: string
   retrieveIfPublished : bool
   callback : Function (result : Array<object>)
)

XrmServiceToolkit.Soap.RetrieveAllEntitiesMetadata

Array<object> XrmServiceToolkit.Soap.RetrieveAllEntitiesMetadata(
   entityFilters : Array<string> // ['Entity', 'Attributes', 'Privileges', 'Relationships']
   retrieveIfPublished : bool
   callback : Function (result : Array<object>)
)

XrmServiceToolkit.Soap.RetrieveAttributeMetadata

Возвращаемое значение

Array<object> [
   {
       AttributeType: string // "Picklist"|"DateTime"|...
       DisplayName: {
           LocalizedLabels: Array [
               {
                   Label: string,
                   LanguageCode: int
               }
           ],
           UserLocalizedLabel: {
               Label: string,
               LanguageCode: int
           }
       },
       EntityLogicalName: string,
       IsCustomAttribute: bool,
       IsPrimaryId: bool,
       IsPrimaryName: bool,
       LogicalName: string,
       OptionSet: {
           IsGlobal: bool,
           Options: Array [
               {
                   Label: {
                       LocalizedLabels: Array [
                           {
                               Label: string,
                               LanguageCode: int
                           }
                       ],
                       UserLocalizedLabel: {
                           Label: string,
                           LanguageCode: int
                       }
                   },
                   Value: int
               }
           ]
       }
   }
]

Пример

//Получение значения пиклиста по коду (последним трем цифрам)
var response = XrmServiceToolkit.Soap.RetrieveAttributeMetadata('be_question', 'be_typecode', true);
var questionScaleTypeCode = $.Enumerable.From(response[0]['OptionSet']['Options']).Where('$.Value % 1000 == 1').Select('$.Value').FirstOrDefault();
alert(questionScaleTypeCode);

XrmServiceToolkit.Soap.Fetch

ArrayObject {
   [
       XrmServiceToolkit.Soap.BusinessEntity
   ],
   MoreRecords: bool,
   TotalRecordCount: int, // -1 - не определенное значение
   TotalRecordCountLimitExceeded: bool,
   length: int
}

XrmServiceToolkit.Soap.Associate (Disassociate)

Пример

XrmServiceToolkit.Soap.Associate('new_response_questionanswer', 'new_response', responseId, 'new_questionanswer', { 'id': answerId });

XrmServiceToolkit.Soap.Update

Пример

var be = new XrmServiceToolkit.Soap.BusinessEntity("new_entity", id);
be.attributes['new_total_sum'] = 200.50;
be.attributes['new_entityrefid'] = { 'id': id, 'logicalName': entityName, 'type': 'EntityReference' };
Be.attributes['new_optionsetcode'] = { 'value': value, 'type': "OptionSetValue" };
XrmServiceToolkit.Soap.Update(be);

XrmServiceToolkit.Soap.SetState

Пример

XrmServiceToolkit.Soap.SetState("new_entity", id, 1, 1);

XrmServiceToolkit.Soap.GetCurrentUserId

Получение идентификатора текущего пользователя с помощью запроса WhoAmIRequest.
Пример

var systemUserId = XrmServiceToolkit.Soap.GetCurrentUserId();

About the author

Добавить комментарий

Сказать спасибо

Способ платежа:

Подписаться на обновления

Укажите свой e-mail чтобы получать уведомления о новых статьях.

Присоединиться к еще 2 подписчикам