// Create an import (data import) entity instance. import import = new import(); import.name = "Importing data"; // Distinguish between an import and an update. import.isimport = new CrmBoolean(); import.isimport.Value = true; import.modecode = new Picklist(); import.modecode.Value = ImportModeCode.Create; // Create the import (data import) entity instance. // in Microsoft Dynamics CRM Guid importId = service.Create(import); // Create a logical source file of the data being imported. importfile importFile = new importfile(); importFile.name = "Account record import."; importFile.source = "import_accounts.csv"; importFile.sourceentityname = "Account_1"; importFile.targetentityname = EntityName.account.ToString(); // Read contents from disk. importFile.content = ReadCsvFile("import_accounts.csv"); // Configure delimiters. importFile.datadelimitercode = new Picklist(); importFile.datadelimitercode.Value = ImportDataDelimiter.DoubleQuote; importFile.fielddelimitercode = new Picklist(); importFile.fielddelimitercode.Value = ImportFieldDelimiter.Comma; // Do not allow duplicate records to import. importFile.enableduplicatedetection = new CrmBoolean(); importFile.enableduplicatedetection.Value = false; // Relate the import file to the parent import (data import). importFile.importid = new Lookup(); importFile.importid.type = EntityName.import.ToString(); importFile.importid.Value = importId; // Relate this import file to the parent data map. importFile.importmapid = new Lookup(); importFile.importmapid.type = EntityName.importmap.ToString(); importFile.importmapid.Value = importMapId; // Do not use the first row during import. importFile.isfirstrowheader = new CrmBoolean(); importFile.isfirstrowheader.Value = true; // Specify to process the column. importFile.processcode = new Picklist(); importFile.processcode.Value = ImportProcessCode.Process; // Specify the current user as the record owner. WhoAmIRequest systemUserRequest = new WhoAmIRequest(); WhoAmIResponse systemUserReponse = (WhoAmIResponse)service.Execute(systemUserRequest); // Specify the owner ID. importFile.recordsownerid = new Lookup(); importFile.recordsownerid.type = EntityName.systemuser.ToString(); importFile.recordsownerid.Value = systemUserReponse.UserId; // Create the import file. Guid importFileId = service.Create(importFile); // Retrieve the header columns used in the import file. GetHeaderColumnsImportFileRequest headerColumnsRequest = new GetHeaderColumnsImportFileRequest(); headerColumnsRequest.ImportFileId = importFileId; GetHeaderColumnsImportFileResponse headerColumnsResponse = (GetHeaderColumnsImportFileResponse)service.Execute(headerColumnsRequest); // Output the header columns. int columnNum = 1; foreach(string headerName in headerColumnsResponse.Columns) { Console.WriteLine("Column[" + columnNum.ToString() + "] = " + headerName); columnNum++; }
Rechercher dans ce blog
lundi 13 août 2012
API : GetHeaderColumnsImportFileRequest
Récupère les entêtes des colonnes du fichier source; ou récupère les entêtes de colonnes générées si le fichier source ne contient pas d'entêtes de colonnes
vendredi 10 août 2012
Comment importer les pièces jointes par programme
How to Import attachments programmatically
Voici les étapes:
1. Créer un fichier CSV contenant les pièces jointes que tu souhaites importer.
2. créer un enregistrement d'import.
3. Créer un enregistrement pour les pièces jointes qui contient le contenu des fichiers actuels.
4. Créer un enregistrement qui contient le mapping.
5. Appeler les méthodes SDK d'import.
Voici les étapes:
1. Créer un fichier CSV contenant les pièces jointes que tu souhaites importer.
2. créer un enregistrement d'import.
3. Créer un enregistrement pour les pièces jointes qui contient le contenu des fichiers actuels.
4. Créer un enregistrement qui contient le mapping.
5. Appeler les méthodes SDK d'import.
////// Impport attachments in CRM /// public void ImportAttachmentRecords() { OrganizationServiceProxy _serviceProxy; // Initialize the _serviceProxy appropriately. // 1. Create a CSV file containing the details of attachments that you want to import. string fileName = DateTime.UtcNow.Ticks + ".txt"; string attachmentContent = "This is the attachment content"; // Put your attachment contents here. string attachmentData = Convert.ToBase64String(Encoding.UTF8.GetBytes(attachmentContent)); StringBuilder sb = new StringBuilder(); //Add header row sb.AppendLine("Title, Document, File Name, Regarding"); string accountId = "04AFD3BF-16D6-E111-A43C-00155D187A0A"; // This is the unique id of CRM record e.g. account with which you want to attach this note. string dataRow = "attachment1, " + fileName + ", " + fileName + "," + accountId; sb.AppendLine(dataRow); string csvData = sb.ToString(); // 2. Create the root import record Import import = new Import() { ModeCode = new OptionSetValue((int)ImportModeCode.Create), Name = "Importing data" }; Guid importId = _serviceProxy.Create(import); // 3. Create import file record for attachments which contains actual file contents. ImportFile importAttachmentFile = new ImportFile() { Content = attachmentData, // Read contents from disk. Name = fileName, UseSystemMap = true, ImportId = new EntityReference(Import.EntityLogicalName, importId), ProcessCode = new OptionSetValue((int)ImportFileProcessCode.Internal), FileTypeCode = new OptionSetValue(2) }; Guid importAttachmentFileId = _serviceProxy.Create(importAttachmentFile); // 4. Create import file record which contains mapping for attachments. ImportFile importFile = new ImportFile() { Content = csvData, // Read contents from disk. Name = "Attachment Import File", IsFirstRowHeader = true, UseSystemMap = true, Source = "Import Attachment", SourceEntityName = "attachment", TargetEntityName = Annotation.EntityLogicalName, ImportId = new EntityReference(Import.EntityLogicalName, importId), EnableDuplicateDetection = false, FieldDelimiterCode = new OptionSetValue((int)ImportFileFieldDelimiterCode.Comma), DataDelimiterCode = new OptionSetValue((int)ImportFileDataDelimiterCode.DoubleQuote), ProcessCode = new OptionSetValue((int)ImportFileProcessCode.Process) }; Guid importFileId = _serviceProxy.Create(importFile); // 5. Call import SDK APIs // Parse the import file. ParseImportRequest parseImportRequest = new ParseImportRequest() { ImportId = importId }; ParseImportResponse parseImportResponse = (ParseImportResponse)_serviceProxy.Execute(parseImportRequest); WaitForAsyncJobCompletion(_serviceProxy, parseImportResponse.AsyncOperationId); // Transform the import TransformImportRequest transformImportRequest = new TransformImportRequest() { ImportId = importId }; TransformImportResponse transformImportResponse = (TransformImportResponse)_serviceProxy.Execute(transformImportRequest); WaitForAsyncJobCompletion(_serviceProxy, transformImportResponse.AsyncOperationId); // Upload the records. ImportRecordsImportRequest importRequest = new ImportRecordsImportRequest() { ImportId = importId }; ImportRecordsImportResponse importResponse = (ImportRecordsImportResponse)_serviceProxy.Execute(importRequest); WaitForAsyncJobCompletion(_serviceProxy, importResponse.AsyncOperationId); } ////// Waits for the async job to complete. /// /// public void WaitForAsyncJobCompletion(OrganizationServiceProxy serviceProxy, Guid asyncJobId) { ColumnSet cs = new ColumnSet("statecode", "statuscode"); AsyncOperation asyncjob = (AsyncOperation)serviceProxy.Retrieve("asyncoperation", asyncJobId, cs); int retryCount = 100; while (asyncjob.StateCode.Value != AsyncOperationState.Completed && retryCount > 0) { asyncjob = (AsyncOperation)serviceProxy.Retrieve("asyncoperation", asyncJobId, cs); System.Threading.Thread.Sleep(2000); retryCount--; } }
dimanche 29 juillet 2012
Cacher des groupes de navigation
Pour cacher un groupe de navigation, nous pouvons utiliser du javascript. Mais on peut aussi modifier la solution. Exporter dans une solution, l'entité concernée. Modifier le fichier customizations.xml. Rechercher les balises suivantes :
Supprimer les groupes de navigation non souhaités.
Ajouter le fichier customization.xml dans la solution. Importer la solution et publier.
API : ExportMappingsImportMapRequest
Export au format XML le mapping pour l'import de données
ExportMappingsImportMapRequest exportRequest = new ExportMappingsImportMapRequest(); exportRequest.ImportMapId = importResponse.ImportMapId; //Execute la requête ExportMappingsImportMapResponse exportResponse = (ExportMappingsImportMapResponse)Proxy.Execute(exportRequest);
API : ImportMappingsImportMapRequest
Importe une représentation XML du mappage de données et crée un mappage de données
ImportMappingsImportMapRequest importRequest = new ImportMappingsImportMapRequest(); //Chemin du fichier xml importRequest.MappingsXml = "C:\\Mapping\\SFMap.xml; importRequest.ReplaceIds = true; //Execute la requête ImportMappingsImportMapResponse importResponse = (ImportMappingsImportMapResponse)Proxy.Execute(importRequest);
samedi 28 juillet 2012
API : CreateActivitiesListRequest
Crée une campagne rapide en distribuant les activités aux membres d'une liste marketing
CreateActivitiesListRequest request = new CreateActivitiesListRequest() { Activity = activityEntity, ListId = marketingListId, OwnershipOptions = ownershipOption, Propagate = isPropagate, TemplateId = Guid.Empty, FriendlyName = "Quick Campaign for My List" /*+ _uniqStringForThisRun*/, Owner = new EntityReference("systemuser", _currentUser) }; //Execute the request CreateActivitiesListResponse response = (CreateActivitiesListResponse)_serviceProxy.Execute(request); //The response has BulkOperationId. This is the Id of the bulkoperation that mimics QuickCampaign in CRM Guid BOId = response.BulkOperationId;
SP2 pour SQL Server 2008 R2
Version 10.50.4000.0
Nouveauté : les vues de gestion dynamique (DMV) sys.dm_db_stats_properties
Ces vues présentent les informations d'état des serveurs pour diagnostiquer les problèmes et régler les performances des bases de données.
List of the bugs that are fixed in SQL Server 2008 R2 Service Pack 2
Microsoft SQL Server 2008 R2 SP2
Microsoft SQL Server 2008 R2 Express SP2
Microsoft SQL Server 2008 R2 SP2 Feature Pack
Nouveauté : les vues de gestion dynamique (DMV) sys.dm_db_stats_properties
Ces vues présentent les informations d'état des serveurs pour diagnostiquer les problèmes et régler les performances des bases de données.
List of the bugs that are fixed in SQL Server 2008 R2 Service Pack 2
Microsoft SQL Server 2008 R2 SP2
Microsoft SQL Server 2008 R2 Express SP2
Microsoft SQL Server 2008 R2 SP2 Feature Pack
lundi 16 juillet 2012
Vidéos WPC 2012
Microsoft Dynamics CRM—Now and in the Future
Microsoft Office 365 + Microsoft Dynamics CRM Online: Taking Advantage of the Cloud Opportunity for Productivity
Take On the Competition and WIN with Microsoft Dynamics CRM
Power of Possibilities with Microsoft Dynamics CRM
Social Media Strategies with Microsoft Dynamics CRM
Grow Your Business with Microsoft Dynamics AX, Microsoft Dynamics CRM, and Microsoft SharePoint Solutions
Microsoft Dynamics CRM—Demonstrating the Power of the Connected Cloud
vendredi 13 juillet 2012
Nouvelles vidéos
12 nouvelles vidéos ont été ajoutées à la liste des vidéos sur Dynamics CRM.
Le compteur passe à 366.
Cole Systems's Channel
Microsoft Dynamics CRM: Resolving a Case
Microsoft Dynamics CRM: Creating a Planning Activity
Microsoft Dynamics CRM: Creating a Team
Microsoft Dynamics CRM: Reassigning a Case
Microsoft Dynamics CRM: Manually Entering a Lead
Microsoft Dynamics CRM: Assigning a User a New Security Role
Microsoft Dynamics CRM: Entering a Case
Microsoft Dynamics CRM: Importing Leads
Microsoft Dynamics Crm: Adding A New User
Microsoft Dynamics CRM: Quick Campaigns
Microsoft Dynamics CRM: Static Marketing Lists
Microsoft Dynamics CRM: Dynamic Marketing Lists
Le compteur passe à 366.
Cole Systems's Channel
Microsoft Dynamics CRM: Resolving a Case
Microsoft Dynamics CRM: Creating a Planning Activity
Microsoft Dynamics CRM: Creating a Team
Microsoft Dynamics CRM: Reassigning a Case
Microsoft Dynamics CRM: Manually Entering a Lead
Microsoft Dynamics CRM: Assigning a User a New Security Role
Microsoft Dynamics CRM: Entering a Case
Microsoft Dynamics CRM: Importing Leads
Microsoft Dynamics Crm: Adding A New User
Microsoft Dynamics CRM: Quick Campaigns
Microsoft Dynamics CRM: Static Marketing Lists
Microsoft Dynamics CRM: Dynamic Marketing Lists
lundi 9 juillet 2012
Recommandations de la CNIL sur le Cloud
Source : CNIL du 25 juin 2012
Cloud computing : les conseils de la CNIL pour les entreprises qui utilisent ces nouveaux services
Les offres de "Cloud computing" se sont fortement développées ces dernières années. Cependant, le recours par les entreprises à ces services pose des questions nouvelles en termes juridiques et de gestion des risques. Afin de préciser le cadre juridique applicable, la CNIL a lancé fin 2011 une consultation publique sur le Cloud computing. Forte des nombreuses contributions recueillies, elle actualise aujourd'hui son analyse sur le cadre juridique applicable. Elle publie également des recommandations pratiques à destination des entreprises françaises, et notamment des PME, qui souhaitent avoir recours à des prestations de Cloud.
Cloud computing : les conseils de la CNIL pour les entreprises qui utilisent ces nouveaux services
Les offres de "Cloud computing" se sont fortement développées ces dernières années. Cependant, le recours par les entreprises à ces services pose des questions nouvelles en termes juridiques et de gestion des risques. Afin de préciser le cadre juridique applicable, la CNIL a lancé fin 2011 une consultation publique sur le Cloud computing. Forte des nombreuses contributions recueillies, elle actualise aujourd'hui son analyse sur le cadre juridique applicable. Elle publie également des recommandations pratiques à destination des entreprises françaises, et notamment des PME, qui souhaitent avoir recours à des prestations de Cloud.
Inscription à :
Articles (Atom)