{"id":2364,"date":"2017-05-10T15:32:34","date_gmt":"2017-05-10T13:32:34","guid":{"rendered":"http:\/\/www.capri-soft.de\/blog\/?p=2364"},"modified":"2018-03-05T10:16:37","modified_gmt":"2018-03-05T09:16:37","slug":"ibm-doors-dxl-recursively-load-formal-module-by-name-without-knowing-the-path-modul-nach-name-laden-folder-bekannt","status":"publish","type":"post","link":"https:\/\/www.capri-soft.de\/blog\/?p=2364","title":{"rendered":"IBM Doors DXL: Recursively load formal module by name without knowing the path \/ Modul nach Name Laden (Folder bekannt)"},"content":{"rendered":"<h1>Problem<\/h1>\n<p>A module should be loaded by name independend from the position in the Doors Project Structure.<br \/>\nEin Modul soll nur anhand seines Namens geladen werden, ohne die genaue Position im Doors Projekt zu wissen. <\/p>\n<h1>Premise &#8211; Prerequirement &#8211; Voraussetzung<\/h1>\n<p>Start Folder is known. The doors module name is unique in the project, otherwise only the first found module with that name will be loaded.<br \/>\nDer Startordner ist bekannt. Der Doors Modulname ist im Projekt eindeutig. Ist dies nicht der Fall, wird nur das erste Modul mit diesem Namen geladen.<\/p>\n<h1>L\u00f6sung -Solution<\/h1>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nModule getModule(Folder selectedFolder, string moduleNameToCompare)\r\n{\r\n Item itm;\r\n Module moduleToReturn = null\r\n\r\n for itm in selectedFolder do \r\n { \r\n  if(type(itm) &quot;&quot; == &quot;Folder&quot;) \r\n  { \r\n   moduleToReturn = getModule(folder(itm), moduleNameToCompare);\t\r\n   if(moduleToReturn != null)\r\n   {\r\n    break\r\n   } \r\n  } \r\n  else if(type(itm) &quot;&quot; == &quot;Formal&quot;)\r\n  {\r\n   Module mod;\t\t\r\n   mod = edit(fullName(itm), false);\r\n   if(!null mod)\r\n   {\r\n     if(name(mod) &quot;&quot; == moduleNameToCompare) \r\n     {  \r\n      moduleToReturn = mod;\r\n      objectFound = true\r\n      break;\r\n     }\r\n   }\r\n  }\r\n  else if(type(itm) &quot;&quot; == &quot;Link&quot;)\r\n  {\r\n  }\r\n }\r\n\r\n return moduleToReturn;\r\n}\r\n<\/pre>\n<iframe src=\"http:\/\/www.facebook.com\/plugins\/like.php?href=https%3A%2F%2Fwww.capri-soft.de%2Fblog%2F%3Fp%3D2364&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;colorscheme=light\" scrolling=\"no\" frameborder=\"0\" allowTransparency=\"true\" style=\"border:none; overflow:hidden; width:450px;margin-top:5px;\"><\/iframe>","protected":false},"excerpt":{"rendered":"<p>Problem A module should be loaded by name independend from the position in the Doors Project Structure. Ein Modul soll nur anhand seines Namens geladen werden, ohne die genaue Position im Doors Projekt zu wissen. Premise &#8211; Prerequirement &#8211; Voraussetzung Start Folder is known. The doors module name is unique in the project, otherwise only &hellip; <a href=\"https:\/\/www.capri-soft.de\/blog\/?p=2364\" class=\"more-link\"><span class=\"screen-reader-text\">IBM Doors DXL: Recursively load formal module by name without knowing the path \/ Modul nach Name Laden (Folder bekannt)<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[22,19,3],"tags":[],"class_list":["post-2364","post","type-post","status-publish","format-standard","hentry","category-dxl","category-ibm-doors","category-programmierung"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4yGeN-C8","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2364"}],"version-history":[{"count":3,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2364\/revisions"}],"predecessor-version":[{"id":2617,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2364\/revisions\/2617"}],"wp:attachment":[{"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.capri-soft.de\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}