{"id":763,"date":"2010-05-03T21:11:03","date_gmt":"2010-05-03T21:11:03","guid":{"rendered":"https:\/\/www.wapshere.com\/missmiis\/?p=763"},"modified":"2022-10-31T03:05:34","modified_gmt":"2022-10-31T03:05:34","slug":"fim-walkthroughs-import-data-from-hr-to-the-fim-portal","status":"publish","type":"post","link":"https:\/\/www.wapshere.com\/missmiis\/fim-walkthroughs-import-data-from-hr-to-the-fim-portal","title":{"rendered":"FIM Walkthroughs &#8211; Import data from HR to the FIM Portal"},"content":{"rendered":"<p>In this post I will show how to attach an HR data source to the FIM Sync Service, and then import data about employees into the FIM Portal.<\/p>\n<p>This post assumes you already have FIM <a href=\"https:\/\/www.wapshere.com\/missmiis\/fim-walkthroughs-planning-and-installation\">installed<\/a>, and have created the <a href=\"https:\/\/www.wapshere.com\/missmiis\/fim-walkthroughs-create-the-fim-ma\">FIM Management Agent<\/a>.<!--more--><\/p>\n<h2>Create the HR Management Agent<\/h2>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>The aim is to create a management agent for your HR data source. In this example I&#8217;m using a SQL database, but it could equally be CSV, SAP, Oracle or something else. The product Help tells you how to configure the prerequisites for each of these MA types.<\/td>\n<td width=\"400\"><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/1 Import HR - MAs.jpg\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<tr>\n<td>We&#8217;re going to use a codeless sync rule to import data, so we don&#8217;t need a join or projection rule here.If you&#8217;re not using the Portal,you will need to configure this tab &#8211; see <a href=\"https:\/\/www.wapshere.com\/missmiis\/creating-a-management-agent\">Creating a Management Agent<\/a><\/td>\n<td><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/sync 02 hr join and project.jpg\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<tr>\n<td>If using codeless sync you can also leave the flow rules blank for now, though you may find you need to revisit this tab if you want to created Advanced flow rules that aren&#8217;t currently possible with codeless. Note that it&#8217;s fine to use a combination of codeless and coded rules. See <a href=\"https:\/\/www.wapshere.com\/missmiis\/advanced-attribute-flow-rules\">Advance Attribute Flow Rules<\/a>.<\/td>\n<td><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/sync 03 hr flows.jpg\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Create the Import Sync Rule<\/h2>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>Now go into the Portal and open the Synchronization Rules page from under the Administration menu. Create a new Inbound Sync Rule.<\/td>\n<td width=\"400\"><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/SR 1.JPG\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<tr>\n<td>The rule matches an external object type with a Metaverse object type, via the selected MA.<\/td>\n<td><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/SR 2.JPG\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<tr>\n<td>On this page we specify how to identify that an object in the external system matches an object in the Metaverse. In this case we&#8217;ll use the employeeID, which we will also be flowing from this source.<\/p>\n<p>Note I&#8217;ve also ticked &#8220;Create resource in FIM&#8221; which will cause an object to be automatically provisioned into the connector space of the FIM MA, ready to export to the FIM Portal.<\/td>\n<td><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/SR 3.JPG\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<tr>\n<td>Finally we specify our import flow rules, which should be pretty self-explanatory. It&#8217;s a good idea to make use of functions such as Trim and ProperCase to make sure that your data comes into the Metaverse in a fairly consistent state. Also be very sure to flow in the identifying attribute you specified in the form above!<\/td>\n<td><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/SR 4.JPG\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<tr>\n<td>If you need extra Metaverse attributes to import your data to then you will have to go back to the Synchronization Service GUI and modify the Metaverse schema.<\/td>\n<td><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/mv schema.jpg\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Configure the Metaverse -&gt; Portal Flows<\/h2>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>This is where it gets a bit odd. We&#8217;ve created HR -&gt; Metaverse flow rules using a codeless Sync Rule created in the Portal, but to get the data from the Metaverse into the Portal itself we actually have to use old-style MA rules.<\/p>\n<p>In The Synchronization Service GUI, open the properties of the FIM MA and open the Configure Attribute Flow page.<\/td>\n<td width=\"400\"><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/fimma person flow 0.jpg\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<tr>\n<td>Add the Export flow rules that will copy data from the Metaverse to the Portal.<\/p>\n<p>If you need extra attributes in the Portal for your HR data then see then see this <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ee652458.aspx\">document on the Portal schema<\/a>. You will need to refresh the schema on the MA, and select the new attributes in the Attributes tab before they will be available for the flow rules.<\/td>\n<td width=\"400\"><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/fimma person flow 1.jpg\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<tr>\n<td>To avoid permissions problems when your export data to the Portal, check the MPR &#8220;Synchronization: Synchronization controls users it synchronizes&#8221; and make sure that the account used by the Sync Service has the rights to update all required attributes. It&#8217;s easy to just give the Sync Service rights to all user attributes in this MPR, but it depends on your requirements and security rules whether you&#8217;d do this.<\/td>\n<td width=\"400\"><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/sync mpr.jpg\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Create the Run Profiles<\/h2>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>Create Import and Sync <a href=\"https:\/\/www.wapshere.com\/missmiis\/run-profiles\">run profiles<\/a> for the HR MA. Here I&#8217;ve created a single-step &#8220;Full Import and Full Sync&#8221; run profile.<\/td>\n<td width=\"400\"><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/rp 1.jpg\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<tr>\n<td>For the FIM MA I need Import\/Sync and Export run profiles.<\/td>\n<td width=\"400\"><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/fimma rp.jpg\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Finally &#8211; Make something happen!<\/h2>\n<table border=\"1\">\n<tbody>\n<tr>\n<td>The first job you need to run is the Import\/Sync on the FIM MA. In a freshly installed system you should see three objects being projected into the Metaverse. Inspecting these objects shows them to be the Administrator user, the Built-In Synchronization user, and the HR Import Sync Rule we created above.<\/td>\n<td width=\"400\"><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/fimma import.jpg\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<tr>\n<td>Now you can Import\/Sync the HR MA. You should see objects being projected into the metaverse, and also provisioned as Adds into the FIM MA. If you inspect some of these objects in the Metaverse you should see them populated with attributes from the HR data source.<\/td>\n<td width=\"400\"><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/fimma provision.jpg\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<tr>\n<td>Finally you are ready to export your HR data to the Portal.<\/p>\n<p>Various errors can happen here, and they will mostly be connected to Portal schema (particularly check the Validation tabs in both attribute and binding definitions) or Portal permissions (check MPRs that apply to the Built-In Synchronization accout).<\/p>\n<p>If you see nice &#8220;Adds&#8221; counting up here then things are good, and you&#8217;ll find users defined in the Portal. It may not be quick though &#8211; the first load of data into the Portal is not the most performant part of this platform.<\/td>\n<td width=\"400\"><img decoding=\"async\" src=\"https:\/\/www.wapshere.com\/images\/hrimport\/fimma export.jpg\" alt=\"\" width=\"400\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>In this post I will show how to attach an HR data source to the FIM Sync Service, and then import data about employees into the FIM Portal. This post assumes you already have FIM installed, and have created the FIM Management Agent.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"footnotes":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":[]},"categories":[42,19],"tags":[],"class_list":["post-763","post","type-post","status-publish","format-standard","hentry","category-fim-2010","category-newbie"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pkp1o-cj","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/posts\/763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/comments?post=763"}],"version-history":[{"count":13,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/posts\/763\/revisions"}],"predecessor-version":[{"id":3311,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/posts\/763\/revisions\/3311"}],"wp:attachment":[{"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/media?parent=763"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/categories?post=763"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wapshere.com\/missmiis\/wp-json\/wp\/v2\/tags?post=763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}