<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mohamed Ibrahim Mostafa&#039;s Blog &#187; Integration</title>
	<atom:link href="http://www.mohamedibrahim.net/blog/category/integration/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mohamedibrahim.net/blog</link>
	<description>Technical issues, problems, errors, findings &#38; resolutions covering Microsoft Dynamics CRM, software development, Microsoft .NET, C#, VB.NET, Commerce Server, Integration, E-Commerce, Scribe, Online shops and more general technology and consultancy posts.</description>
	<lastBuildDate>Tue, 24 Aug 2010 09:22:45 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Methods to Bulk Delete Microsoft Dynamics CRM records and Using Scribe Insight to perform a Bulk Delete of all CRM records.</title>
		<link>http://www.mohamedibrahim.net/blog/2009/09/23/microsoft-dynamics-crm-bulk-delete-methods-using-scribe-insight-for-bulk-delete-dynamics-crm-records/</link>
		<comments>http://www.mohamedibrahim.net/blog/2009/09/23/microsoft-dynamics-crm-bulk-delete-methods-using-scribe-insight-for-bulk-delete-dynamics-crm-records/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 18:24:03 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim Mostafa</dc:creator>
				<category><![CDATA[Integration]]></category>
		<category><![CDATA[Microsoft Dynamics CRM]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Dynamics]]></category>
		<category><![CDATA[Field]]></category>
		<category><![CDATA[SCRIBE]]></category>
		<category><![CDATA[Scribe CRM Adaptor]]></category>

		<guid isPermaLink="false">http://www.mohamedibrahim.net/blog/?p=117</guid>
		<description><![CDATA[I&#8217;m sure many people needed to do a bulk delete operation on Microsoft Dynamics CRM 4.0. You may have uploaded thousands of records from an imported file or migrated them through Scribe or even used a .NET application to mass create records.
Unfortunately, and as far as I can see, there is no straight forward way [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sure many people needed to do a bulk delete operation on Microsoft Dynamics CRM 4.0. You may have uploaded thousands of records from an imported file or migrated them through Scribe or even used a .NET application to mass create records.</p>
<p>Unfortunately, and as far as I can see, there is no straight forward way to do bulk records deletion on Dynamics CRM 4.0 using the out of the box functionality and interface of Dynamics CRM 4.0.</p>
<p>To bulk delete records in Dynamics CRM 4.0, you have the following main options:</p>
<ul>
<li>Get a third party tool or CRM add-on to bulk delete records. This option is a straight forward one but you might have to pay for purchasing or using the tool. It may also have security issues. I would not recommend it to my clients as most probably the tool is created by a small company or an individual which I don&#8217;t know. Hence, it will be rather difficult to put this tool on a live Production environment or client server. Let alone adding it to CRM Online or to a CRM hosted solution by a partner.</li>
<li>Use CRM SDK to write a .NET application (or a .NET console application) that will run and delete all records for a specified entity or entities. This is a more robust way of doing it, but it may take longer time and is probably not suitable for people who do not come from .NET development background.</li>
<li>Use Scribe Insight. This is what this post is about really.. Using Scribe Insight to bulk Delete Dynamics CRM records.</li>
</ul>
<p>Please Note: This is a work around. It is not supported by Scribe and the advice in this post is provided as is with no warranty. I have tried it and it works perfectly but can not guarantee it will have the same acceptable results in any other environment.</p>
<p>Here is what you need to do:</p>
<ol>
<li>Create a new Scribe workbench DTS (or Job). Point to your usual source file (even a sample one) and point to CRM: either IFD Forms for hosted CRM or direct connection.</li>
<li>Configure the targe: Create one delete step on the target.</li>
<li>Make sure that the option to &#8220;Allow multiple record matches on updates/deletes&#8221; is ticked under the All steps tab.</li>
<li>Under Step control tab, leave failure to go to next row but change all the success records (Success (0), Success (1) and Success (&gt;1) ) to End Job. Select success radio button at the bottom and write a message to your log such as: &#8220;All records Deleted&#8221;.</li>
<li>No Data links are important as you are only deleting.</li>
<li>On the Lookup link, just make the lookup condition impossible. Such as: where Account Name = 123456789 or whatever.</li>
<li>Run the DTS.</li>
</ol>
<p>The Job will read the first source line. Will then try to find this record at the target (remember it is update/delete). Since we have setup the lookup link to look for something &#8220;impossible to find&#8221;, the result of the update will be Success (0).</p>
<p>Once this happens, Scribe will go and delete all records for your chosen entity (or CRM table). This will be a complete bulk delete of all CRM records using Scribe.</p>
<p>Remember, it&#8217;s a work around&#8230; that works.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mohamedibrahim.net/blog/2009/09/23/microsoft-dynamics-crm-bulk-delete-methods-using-scribe-insight-for-bulk-delete-dynamics-crm-records/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Post code and Address lookup Using PAF for auto filling address details on websites</title>
		<link>http://www.mohamedibrahim.net/blog/2009/09/02/post-code-and-address-lookup-paf-auto-fill-on-websites/</link>
		<comments>http://www.mohamedibrahim.net/blog/2009/09/02/post-code-and-address-lookup-paf-auto-fill-on-websites/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 09:45:44 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim Mostafa</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[General Development]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[Address]]></category>
		<category><![CDATA[Auto-fill]]></category>
		<category><![CDATA[Lookup]]></category>
		<category><![CDATA[PAF]]></category>
		<category><![CDATA[Royal Mail]]></category>

		<guid isPermaLink="false">http://www.mohamedibrahim.net/blog/?p=94</guid>
		<description><![CDATA[I was recently researching how to implement post code and address look-up on websites and on Microsoft Dynamic CRM. This feature is widely used in auto filling address details when a customer input their post code and sometimes the house number. This is also used in some desktop applications, plug-ins to Microsoft Dynamics CRM, in [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently researching how to implement post code and address look-up on websites and on Microsoft Dynamic CRM. This feature is widely used in auto filling address details when a customer input their post code and sometimes the house number. This is also used in some desktop applications, plug-ins to Microsoft Dynamics CRM, in store locator functions, bank details verification and in applications where the customer inputs their post code and the system can accordingly specifies which region or area the customer falls into. For example, quote websites, i.e. websites offering quotes for nationwide website visitors, will most probably need to know which region the customer is part of so if he is from the North East of England, the server may be much cheaper for example than in London.</p>
<p>After a bit of research, I found out that there several UK post code suppliers. The major supplier is of course as expected Royal Mail. Royal Mail provides a service called <a title="Postcode Address File (PAF)" href="http://www.royalmail.com/portal/rm/content3?mediaId=56000705&amp;catId=400085" target="_blank">Postcode Address File (PAF®)</a>. The problem though is that Royal Mail will not give you any application, they will just give you some raw data on a CD and they will be sending you updates for this data every month, 3 months, 6 months and even some daily changes depending on your choice. The data is great and I think it does have almost all Britain&#8217;s postcode areas and addresses. Regular updates also ensures that the information is up to date. The raw data though needs to be manipulated by an application. Some hard coding will be required which is not too difficult to do but if you are not an experienced developer or have no development background, this will be an issue for you. I will try to address the coding of such functionality in Microsoft .NET (C# and VB.NET) in a later post.</p>
<p>Alternatively, I found out about quite a few online companies that provide solutions for the raw data. So, basically they create web-services which manipulate Royal Mail (PAF ) raw data and all you need to do is to write simple code to return the details you require. So you pass on the post code to them for example and they send you back the full address details. Many of them will even give you example code making your life easier. If you do not need this for a website, you can always opt for their other services such as an online application for you that you can login to and get the address information you require.</p>
<p>Pricing of these post code data providers varies with most of them if not all providing the service using credits. So each credit gives you one address information request. Credits are sold in packs with prices averaging around £50 for 750 credits pack. Do not buy the first one you see, ask around and shop around. Royal Mail though has a different licence structure with prices starting from £85 for a single workstation and £2 for every extract up to £££thousands of pounds for a multi-organisation multi-server licences. </p>
<p>If you need more information, recommendation and links to the best providers of this post code and address information services, please get in touch and I will get back to you. I have now managed to nail down the best providers and got good offer from them. Just get in touch!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mohamedibrahim.net/blog/2009/09/02/post-code-and-address-lookup-paf-auto-fill-on-websites/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Scribe: Moving DTS from one location to another and changing source file location in Scribe</title>
		<link>http://www.mohamedibrahim.net/blog/2009/08/22/scribe-moving-dts-from-one-location-to-another-and-changing-source-file-location-in-scribe/</link>
		<comments>http://www.mohamedibrahim.net/blog/2009/08/22/scribe-moving-dts-from-one-location-to-another-and-changing-source-file-location-in-scribe/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 18:27:03 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim Mostafa</dc:creator>
				<category><![CDATA[Integration]]></category>
		<category><![CDATA[SCRIBE]]></category>
		<category><![CDATA[Scribe Console]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.mohamedibrahim.net/blog/?p=89</guid>
		<description><![CDATA[A challenging issue with Scribe is how to move a DTS (job) and source files (in case source is a text batch file) from one location to another or from one server to another without loosing mappings, corruptingdata links, lookup criteria, user variables, loosing fields names and basically corrupting the whole DTS.]]></description>
			<content:encoded><![CDATA[<p>A challenging issue with Scribe is how to move a DTS (job) and source files (in case source is a text batch file) from one location to another or from one server to another without loosing mappings, corruptingdata links, lookup criteria, user variables, loosing fields names and basically corrupting the whole DTS.</p>
<p>Again, I have looked online and could barely see any information or help in this regard (probably my mistake as I didn&#8217;t search properly!). I found out that the key for moving Scribe project files including source across to a new location or a new server, the key is always the QETXT.ini file. This file is vital for pointing the DTS to which source file it should be looking at. QETXT.ini files have all the field names, so mapping S1 to the name that you have chosen for the first source field. It also has the source file name, the ODBC name and the table name. From there you can do almost everything.</p>
<p>When you move the files across, you will obviously need to re-point to the new source location, but by editing QETXT.ini, you will be able to put back all the source (S1 to field name) mappings, point to the new source file name, ODBC name and everything else.</p>
<p>This has proved very efficient and have worked now with my whole deployment.</p>
<p>One more important piece of advice, always try to get a dedicated folder for every source file. So if you have more than one DTS jobs, make sure that the source for each DTS job is in a separate dedicated folder. This will ensure you have separate QETXT.ini file for each one of them, hence, you can easily update the information inside it. It will still work with one large QETXT.ini file but it&#8217;s always better to separate the sources and their associated QETXT.ini files. You can always manually split this file into source specific files and put each source in a separate folder later on (which is what I have done after &#8221;inventing&#8221; this best practice of having separate source folders!).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mohamedibrahim.net/blog/2009/08/22/scribe-moving-dts-from-one-location-to-another-and-changing-source-file-location-in-scribe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scribe Console: Renaming Source Text files before running a job and after processing and regularly changing source file names.</title>
		<link>http://www.mohamedibrahim.net/blog/2009/08/11/scribe-console-renaming-source-text-files-before-running-a-job-after-processing-and-regularly-changing-source-file-name/</link>
		<comments>http://www.mohamedibrahim.net/blog/2009/08/11/scribe-console-renaming-source-text-files-before-running-a-job-after-processing-and-regularly-changing-source-file-name/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 17:13:06 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim Mostafa</dc:creator>
				<category><![CDATA[General Development]]></category>
		<category><![CDATA[Integration]]></category>
		<category><![CDATA[DTS]]></category>
		<category><![CDATA[Jobs]]></category>
		<category><![CDATA[SCRIBE]]></category>
		<category><![CDATA[Scribe Console]]></category>
		<category><![CDATA[Scribe CRM Adaptor]]></category>
		<category><![CDATA[Scribe Server]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.mohamedibrahim.net/blog/?p=90</guid>
		<description><![CDATA[Have you ever looked in Scribe Insight for a way to rename a source file before processing it. Scribe console creates collaborations where integration processes can be configured so that they wait for a file to be added to a specific location and then run a specified job. Once the file is added the job will run and process the file. Also, Scribe DTS jobs can only be setup to process a source file that has its name always fixed and unchanged. So a DTS can be setup to process a source file named: customersdata.txt. It will never run if another source file is added to the location the Scribe console is looking at. In this case, if you get a source file with the date (and time) stamp in its name will need to rename it so the the DTS can detect it and run. So if the source file comes with time and date stamp that varies every day (for example: customers_1453_21092009.txt), you will need to rename "customers_1453_21092009.txt" to "customersdata.txt" only to get the DTS to work.]]></description>
			<content:encoded><![CDATA[<p>This post applies for Scribe Insight version 6.5.1. It may well apply to all Scribe version 6.5.x</p>
<p>Have you ever looked in Scribe Insight for a way to rename a source file before processing it. Scribe console creates collaborations where integration processes can be configured so that they wait for a file to be added to a specific location and then run a specified job. Once the file is added the job will run and process the file. Also, Scribe DTS jobs can only be setup to process a source file that has its name always fixed and unchanged. So a DTS can be setup to process a source file named: customersdata.txt. It will never run if another source file is added to the location the Scribe console is looking at. In this case, if you get a source file with the date (and time) stamp in its name will need to rename it so the the DTS can detect it and run. So if the source file comes with time and date stamp that varies every day (for example: customers_1453_21092009.txt), you will need to rename &#8220;customers_1453_21092009.txt&#8221; to &#8220;customersdata.txt&#8221; only to get the DTS to work.</p>
<p>After some research, I found out that you can only do this using pre and post processing commands step of the process. Every integration process has step 2 in it called pre and post processing commands. In this step, you can specify a pre-processing and post-processing commands or scripts. This feature lets you specify a pre and post processing file that can do this renaming for you. Accepted pre and post files are: *.vbs, *.js, *.vbe, *.bat, *.cmd, *.exe, *.com</p>
<p>You will then create a pre-processing script that finds all files that start with &#8220;customers*&#8221; in our example and rename it to customersdata.txt which is the source file name the job is expecting. Post processing can be to rename the file to something else so that you keep a record of processed files.</p>
<p>In step 3 of the Integration process, Scribe also gives you two options (in the form two check boxes) that I find very useful. You can either select to delete the source file after processing or you can select to rename it. So the source file will be processed and renamed to something like customersdata.L1.txt. Unfortunately Scribe doesn&#8217;t give you the choice to choose the new name of the file. Hence, you will need to write a post processing script again for renaming it afterwards if you are after a specific file name.</p>
<p>I&#8217;m not sure if there is any other way of renaming source files (also called event files by Scribe) before processing them or specifying a new name for them after processing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mohamedibrahim.net/blog/2009/08/11/scribe-console-renaming-source-text-files-before-running-a-job-after-processing-and-regularly-changing-source-file-name/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SAP and Microsoft Dynamics CRM Integration using SCRIBE</title>
		<link>http://www.mohamedibrahim.net/blog/2009/07/06/sap-and-microsoft-dynamics-crm-integration-using-scribe/</link>
		<comments>http://www.mohamedibrahim.net/blog/2009/07/06/sap-and-microsoft-dynamics-crm-integration-using-scribe/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 13:46:57 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim Mostafa</dc:creator>
				<category><![CDATA[Integration]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SCRIBE]]></category>

		<guid isPermaLink="false">http://www.mohamedibrahim.net/blog/?p=37</guid>
		<description><![CDATA[Few months ago, I was asked to research the possibility of integrating two systems for a client using SCRIBE Software specifically. The two systems are Microsoft CRM and SAP. I have done an intensive research in the subject and I have come up with a 9 pages document detailing the answer.
The quick answer is yes. [...]]]></description>
			<content:encoded><![CDATA[<p>Few months ago, I was asked to research the possibility of integrating two systems for a client using SCRIBE Software specifically. The two systems are Microsoft CRM and SAP. I have done an intensive research in the subject and I have come up with a 9 pages document detailing the answer.</p>
<p>The quick answer is yes. SCRIBE is a good application that can be used to provide an integration between Microsoft Dynamics CRM and SAP.</p>
<p>If you want the report I created studying the strength of SCRIBE and the possibility of using it to do such integration, please request it via a comment on this page and I will email you the document. I will also email you a technical specification document that SCRIBE has sent me which details such integration. This technical document is not publicly available on their website as far as I know but you can always request it directly from them.</p>
<p>My technical report/document also has some examples of case studies in which Microsoft CRM system has been integrated successfullywith SAP. It also lists some white papers and technical documents/documentation that has covered the subject in general and the specific integration between SAP and CRM using SCRIBE.</p>
<p>The document does not include any reference to the client, the exact project specification or any information that could be confidential. It&#8217;s just simple facts and findings on SCRIBE and the possibility of using it for SAP and CRM integration.</p>
<p>*****  Updated 18/02/2010:</p>
<p>The document is now available on Scribe Insight blog as a guest blog post: <a href="http://blog.scribesoft.com/2010/02/guest-post-crmsap-integration-using-scribe.html" target="_blank">http://blog.scribesoft.com/2010/02/guest-post-crmsap-integration-using-scribe.html</a>  .. </p>
<p>I can still send you the document if you want, just request it via a comment below please.</p>
<p>****** Mohamed Ibrahim Mostafa</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mohamedibrahim.net/blog/2009/07/06/sap-and-microsoft-dynamics-crm-integration-using-scribe/feed/</wfw:commentRss>
		<slash:comments>63</slash:comments>
		</item>
		<item>
		<title>A list of Important Questions you need to answer before starting any Integration solution or project.</title>
		<link>http://www.mohamedibrahim.net/blog/2009/02/06/a-list-of-important-questions-you-need-to-answer-before-starting-any-integration-solution-or-project/</link>
		<comments>http://www.mohamedibrahim.net/blog/2009/02/06/a-list-of-important-questions-you-need-to-answer-before-starting-any-integration-solution-or-project/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 14:12:27 +0000</pubDate>
		<dc:creator>Mohamed Ibrahim Mostafa</dc:creator>
				<category><![CDATA[Integration]]></category>
		<category><![CDATA[Column]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Field]]></category>
		<category><![CDATA[SCRIBE]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.mohamedibrahim.net/blog/?p=41</guid>
		<description><![CDATA[I am currently working on an Integration solution for one of our clients. The solution is a general integration between two systems. The main thing for me was that I wanted to come up with a list of questions that I need an answer for so that I can start planning and designing the integration [...]]]></description>
			<content:encoded><![CDATA[<p>I am currently working on an Integration solution for one of our clients. The solution is a general integration between two systems. The main thing for me was that I wanted to come up with a list of questions that I need an answer for so that I can start planning and designing the integration solution.</p>
<p>I thought about a list of general questions that most (if not all) consultants working on any integration solutions will need to have complete answers for before starting the design phase, let alone the development phase of the project.</p>
<p>In my opinion, the list of questions are as follows (not in real order &#8211; just a braindump!):</p>
<ul>
<li>How many environments do you have? Development, Test and Live? (recommended) or is the project is still in development so you can use live environment for development? Where will be the test environment later on?</li>
<li>Is this a direct integration or in-direct integration? Is this an instant, event driven integration or a periodic scheduled integration between two systems? Are their queues for data to be migrated?</li>
<li>What backup and restore operations can you do? The ability to Backup and restore data is vital.</li>
<li>What integration application or tool are you going to use or is available? SCRIBE, SQL Server Integration Services, Web Services (Microsoft .NET Web Services), console applications, plugins? What SDK will you need? CRM SDK and CRM API for example?</li>
<li>The Environment structure: How many physical servers? Where are these servers located? Where is the integration tool or application installed?</li>
<li>How and When can I get access to the environment? Access to all servers is required including access to all databases and to all applications. For example: Access to Microsoft Dynamics CRM application (via webclient) is essential to confirm that data imported to a CRM has been migrated successfully.</li>
<li>What type and format of extracts and data imports? CSV (Comma separated Values), XML, i-Doc, sql flat files, batch files, etc&#8230;</li>
<li>Where will the extracts be imported? directly using the tool or via an FTP server? Is an SFTP server required?</li>
<li>Are their duplicates? If so where, and what classifies a duplicate?</li>
<li>Are there data entry standards for each application in the overall integrated system?</li>
<li>Are there fields that are required in each system part of this integration?</li>
<li>Are there fields that aren&#8217;t used?</li>
<li>Are there any fields with null values?</li>
<li>What relationship does the data has? are there fields which are dependant on others?</li>
<li>What are the primary and forign keys of all tables in each system that will be part of the integrated system? Any field that does not allow null, business required (and preferably business recommended) must have a data upon migration (Defauls can be used then).</li>
<li>Overall high level mapping between the different systems.</li>
<li>What is the value, length, and format of fields/columns in the source system? What is the corresponding value, length and format in the target system?</li>
<li>Are there any Pick Lists? A cross reference is required to map source and target values.</li>
<li>What Data validation is required and is acceptable by the client and the project stakeholders?</li>
<li>Differencing: What are the business rules for differencing? What data does not need to be updated and when? what data is needed to be updated based on the business requirements?</li>
<li>using Default values for all required fields and columns in the target system to avoid causing any errors.</li>
</ul>
<p>This is the list I have thought of so far. I will keep on updating this list as and when I think of something important that needs to be considered.</p>
<p>Let me know if you have any comments or feedback on these questions and tell me whether or not are these questions helpful.</p>
<p>Thanks for reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mohamedibrahim.net/blog/2009/02/06/a-list-of-important-questions-you-need-to-answer-before-starting-any-integration-solution-or-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
