Create more applications using the Microsoft Dynamics Xrm platform. more-xrm enables querying the dynamics data model from any application.
` export async function DynamicsClientSample() { const dynamicsClient = dynamics();
const allAccounts = await dynamicsClient.batch() .requestAllUrls(['accounts']) .execute(); await dynamicsClient.save('accounts', { name: 'test' }, allAccounts[0].accountid); const xrmAccounts = await dynamicsClient.fetch( query('account').path('accounts') .where('name', QueryOperator.Contains, 'xrm') .orderBy('name') .select('name') ); return <Grid data={xrmAccounts} />; } `
` export interface Dynamics { batch(): DynamicsBatch; fetch(query: Query, maxRowCount?: number): Promise<T[]>; save(entitySetName: string, data: any, id?: string): Promise; }
export interface DynamicsBatch { execute(): Promise<any[]>; request(query: Query, maxRowCount?: number): DynamicsBatch; requestAll(queries: Query[]): DynamicsBatch; requestAllUrls(urls: string[]): DynamicsBatch; saveEntity(entitySetName: string, data: any, id?: string): DynamicsBatch & { createRelatedEntity(entitySetName: string, data: any, navigationPropertyName: string): void }; }
export interface Query { alias(attributeName: string, alias: string): Query; path(entityPath: string): Query; select(...attributeNames: string[]): Query; where(attributeName: string, operator: QueryOperator, ...values: any[]): Query; whereAny(any: (or: (attributeName: string, operator: QueryOperator, ...values: any[]) => void) => void): Query; orderBy(attributeName: string, isDescendingOrder?: boolean): Query; join(entityName: string, fromAttribute: string, toAttribute?: string, alias?: string, isOuterJoin?: boolean): Query; } `
` function dynamics(accessToken?: string): Dynamics
function dynamicsQuery(query: Query, maxRowCount?: number, headers?: any): Promise<T[]>; function dynamicsQueryUrl(dynamicsEntitySetUrl: string, query: Query, maxRowCount?: number, headers?: any): Promise<T[]>; function dynamicsRequest(dynamicsEntitySetUrl: string, headers?: any): Promise; function dynamicsSave(entitySetName: string, data: any, id?: string, headers?: any): Promise;
function dynamicsBatch(headers?: any): DynamicsBatch; function dynamicsBatchRequest<T = any>(...url: string[]): Promise<T[]>; function dynamicsBatchQuery<T = any>(...query: Query[]): Promise<T[]>;
function query(entityName: string, ...attributeNames: string[]): Query; function GetQueryXml(query: Query, maxRowCount?: number, format?: boolean): string; `