{"id":3471,"date":"2023-04-12T15:33:22","date_gmt":"2023-04-12T15:33:22","guid":{"rendered":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/"},"modified":"2026-01-20T16:26:59","modified_gmt":"2026-01-20T16:26:59","slug":"ibm-planning-analytics-advanced-attribute-manipulation-part-1","status":"publish","type":"post","link":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/","title":{"rendered":"How Do I Perform Advanced Attribute Manipulation in IBM Planning Analytics? \u2014 Part 1"},"content":{"rendered":"<p>As IBM Planning Analytics (PA\/TM1) developers we often find ourselves in need to manipulate attributes in a dimension. This manipulation may be with the purpose of creating said attribute or populating it with data. We assume here the manipulation will be done via the Turbo Integrator (TI) tool. So, any manual interaction with attributes is out of scope for this article. Also, there are other types of attribute manipulation available in TI. These two are the most frequently needed, accordingly, they are the ones we will focus on.<\/p>\n<ol>\n<li>The natural progression, most of the time, when working with attributes is the following:<\/li>\n<li>check if the attribute exists, which avoids any potential TI errors<\/li>\n<li>If the attribute does not exist, then create it and specify an attribute type and populate it with data<\/li>\n<\/ol>\n<p>If the attribute exists, then check if the type is the correct type and populate it with data<\/p>\n<p>This article is the first in a three-part series that will walk you through a few useful functions for manipulating attributes in PA using TI. The progression of steps does not need to be followed exactly; the purpose is to illustrate the options available.<\/p>\n<p>Example set up:<\/p>\n<p>We start with a file called AttributeData.csv, which we will use as our data source to a TI process that will update the values stored in attributes on the dimension called <strong>plan_business_unit<\/strong>. (This dimension lives in the <strong>Planning Sample <\/strong>model provided by IBM Planning Analytics\u2019 samples, so you should be able to follow along if you have the samples running.)<\/p>\n<p>We will follow the steps outlined above to check if exists, create, and populate.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2288 alignnone\" src=\"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/06\/MAN1-min-1.jpg\" alt=\"\" width=\"453\" height=\"140\" \/><\/p>\n<h1>Check if an attribute exists, if not, create it<\/h1>\n<p>If a dimension contains the list of attributes, this list of attributes is itself a dimension, thus we can use the DIMIX function to check if the attribute exists. This step is important because if the attribute does not exist then any manipulation that references it will error out.<\/p>\n<p>Dimension Name: <strong>Plan_Business_Unit<\/strong><\/p>\n<p>Step 1: Use the DIMIX function to check if the attribute does exist, if not, then insert it using the ATTRINSERT function.<\/p>\n<p>Note: More info about syntax can be found <a href=\"https:\/\/www.ibm.com\/docs\/en\/planning-analytics\/2.0.0?topic=amtf-attrinsert\">here<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-2285\" src=\"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/06\/MAN2-min-1.jpg\" alt=\"\" width=\"571\" height=\"103\" \/><\/p>\n<h1><\/h1>\n<h1><\/h1>\n<h1>Check if an attribute exists, if yes, check the attribute type<\/h1>\n<p>We can again use the DIMX function to check if the attribute exists, if yes, then check the attribute\u2019s type using the DTYPE function, like this:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2286 alignnone\" src=\"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/06\/MAN3-min-1.jpg\" alt=\"\" width=\"604\" height=\"111\" \/><\/p>\n<p>Please note the following characteristic of the DTYPE function: the result is different when used against elements in an attribute dimension (control object) vs a \u201cnormal\u201d dimension.<\/p>\n<p>When used for checking a control object dimension, it will return the type with an <strong>A<\/strong> prefix. So, the result would be:<\/p>\n<p>&#8211; For Alias attributes: AA<\/p>\n<p>&#8211; For String attributes: AS<\/p>\n<p>&#8211; For numeric attributes: AN<\/p>\n<p>When used for checking types a \u201cnormal\u201d dimension it will return an <strong>N, S <\/strong>or<strong> C<\/strong> as shown in the example below.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2287 alignnone\" src=\"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/06\/MAN4-min-1.jpg\" alt=\"\" width=\"388\" height=\"277\" \/><\/p>\n<p>The DTYPE for <strong>Europe<\/strong> will return <strong>C<\/strong> and for the <strong>UK<\/strong> will return <strong>N<\/strong>.<\/p>\n<p>Example of situations when we need to check an attribute\u2019s type can be:<\/p>\n<p>&#8211; When looping through a dimension and only want to get S elements, or N elements.<\/p>\n<p>&#8211; When looping through attributes and only want to get A elements<\/p>\n<p>We will continue exploring attribute manipulations and functions in a <a href=\"https:\/\/quebit.com\/askquebit\/?post_type=ibm&amp;p=2289&amp;preview=true\">Part 2<\/a> article.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As IBM Planning Analytics (PA\/TM1) developers we often find ourselves in need to manipulate attributes in a dimension. This manipulation may be with the purpose of creating said attribute or populating it with data. We assume here the manipulation will be done via the Turbo Integrator (TI) tool. So, any manual interaction with attributes is&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[38,36,51],"class_list":["post-3471","post","type-post","status-publish","format-standard","hentry","category-ibm","tag-how-tos","tag-planning-analytics","tag-planning-analytics-how-tos"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How Do I Perform Advanced Attribute Manipulation in IBM Planning Analytics? \u2014 Part 1 - QueBIT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Do I Perform Advanced Attribute Manipulation in IBM Planning Analytics? \u2014 Part 1 - QueBIT\" \/>\n<meta property=\"og:description\" content=\"As IBM Planning Analytics (PA\/TM1) developers we often find ourselves in need to manipulate attributes in a dimension. This manipulation may be with the purpose of creating said attribute or populating it with data. We assume here the manipulation will be done via the Turbo Integrator (TI) tool. So, any manual interaction with attributes is&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"QueBIT\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-12T15:33:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-20T16:26:59+00:00\" \/>\n<meta name=\"author\" content=\"agoddard\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"agoddard\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\\\/\"},\"author\":{\"name\":\"agoddard\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/#\\\/schema\\\/person\\\/e52d72da0fd2f5f70d189343fe4f5084\"},\"headline\":\"How Do I Perform Advanced Attribute Manipulation in IBM Planning Analytics? \u2014 Part 1\",\"datePublished\":\"2023-04-12T15:33:22+00:00\",\"dateModified\":\"2026-01-20T16:26:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\\\/\"},\"wordCount\":572,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/MAN1-min-1.jpg\",\"keywords\":[\"How To\u2019s\",\"Planning Analytics\",\"Planning Analytics How To's\"],\"articleSection\":[\"IBM\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/quebit.com\\\/askquebit\\\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\\\/\",\"url\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\\\/\",\"name\":\"How Do I Perform Advanced Attribute Manipulation in IBM Planning Analytics? \u2014 Part 1 - QueBIT\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/MAN1-min-1.jpg\",\"datePublished\":\"2023-04-12T15:33:22+00:00\",\"dateModified\":\"2026-01-20T16:26:59+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/#\\\/schema\\\/person\\\/e52d72da0fd2f5f70d189343fe4f5084\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/quebit.com\\\/askquebit\\\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/MAN1-min-1.jpg\",\"contentUrl\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/MAN1-min-1.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How Do I Perform Advanced Attribute Manipulation in IBM Planning Analytics? \u2014 Part 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/#website\",\"url\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/\",\"name\":\"QueBIT\",\"description\":\"QueBIT\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/#\\\/schema\\\/person\\\/e52d72da0fd2f5f70d189343fe4f5084\",\"name\":\"agoddard\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d817b364cff1d66116debde8d1c85e5e76eeece9c5ae731b19276a6040231455?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d817b364cff1d66116debde8d1c85e5e76eeece9c5ae731b19276a6040231455?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d817b364cff1d66116debde8d1c85e5e76eeece9c5ae731b19276a6040231455?s=96&d=mm&r=g\",\"caption\":\"agoddard\"},\"sameAs\":[\"https:\\\/\\\/quebit.com\\\/askquebit\"],\"url\":\"https:\\\/\\\/quebit.com\\\/askquebit\\\/author\\\/agoddard\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How Do I Perform Advanced Attribute Manipulation in IBM Planning Analytics? \u2014 Part 1 - QueBIT","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/","og_locale":"en_US","og_type":"article","og_title":"How Do I Perform Advanced Attribute Manipulation in IBM Planning Analytics? \u2014 Part 1 - QueBIT","og_description":"As IBM Planning Analytics (PA\/TM1) developers we often find ourselves in need to manipulate attributes in a dimension. This manipulation may be with the purpose of creating said attribute or populating it with data. We assume here the manipulation will be done via the Turbo Integrator (TI) tool. So, any manual interaction with attributes is&hellip;","og_url":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/","og_site_name":"QueBIT","article_published_time":"2023-04-12T15:33:22+00:00","article_modified_time":"2026-01-20T16:26:59+00:00","author":"agoddard","twitter_card":"summary_large_image","twitter_misc":{"Written by":"agoddard","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/#article","isPartOf":{"@id":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/"},"author":{"name":"agoddard","@id":"https:\/\/quebit.com\/askquebit\/#\/schema\/person\/e52d72da0fd2f5f70d189343fe4f5084"},"headline":"How Do I Perform Advanced Attribute Manipulation in IBM Planning Analytics? \u2014 Part 1","datePublished":"2023-04-12T15:33:22+00:00","dateModified":"2026-01-20T16:26:59+00:00","mainEntityOfPage":{"@id":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/"},"wordCount":572,"commentCount":0,"image":{"@id":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/06\/MAN1-min-1.jpg","keywords":["How To\u2019s","Planning Analytics","Planning Analytics How To's"],"articleSection":["IBM"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/","url":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/","name":"How Do I Perform Advanced Attribute Manipulation in IBM Planning Analytics? \u2014 Part 1 - QueBIT","isPartOf":{"@id":"https:\/\/quebit.com\/askquebit\/#website"},"primaryImageOfPage":{"@id":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/#primaryimage"},"image":{"@id":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/06\/MAN1-min-1.jpg","datePublished":"2023-04-12T15:33:22+00:00","dateModified":"2026-01-20T16:26:59+00:00","author":{"@id":"https:\/\/quebit.com\/askquebit\/#\/schema\/person\/e52d72da0fd2f5f70d189343fe4f5084"},"breadcrumb":{"@id":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/#primaryimage","url":"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/06\/MAN1-min-1.jpg","contentUrl":"https:\/\/quebit.com\/askquebit\/wp-content\/uploads\/2022\/06\/MAN1-min-1.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/quebit.com\/askquebit\/ibm-planning-analytics-advanced-attribute-manipulation-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/quebit.com\/askquebit\/"},{"@type":"ListItem","position":2,"name":"How Do I Perform Advanced Attribute Manipulation in IBM Planning Analytics? \u2014 Part 1"}]},{"@type":"WebSite","@id":"https:\/\/quebit.com\/askquebit\/#website","url":"https:\/\/quebit.com\/askquebit\/","name":"QueBIT","description":"QueBIT","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/quebit.com\/askquebit\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/quebit.com\/askquebit\/#\/schema\/person\/e52d72da0fd2f5f70d189343fe4f5084","name":"agoddard","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d817b364cff1d66116debde8d1c85e5e76eeece9c5ae731b19276a6040231455?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d817b364cff1d66116debde8d1c85e5e76eeece9c5ae731b19276a6040231455?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d817b364cff1d66116debde8d1c85e5e76eeece9c5ae731b19276a6040231455?s=96&d=mm&r=g","caption":"agoddard"},"sameAs":["https:\/\/quebit.com\/askquebit"],"url":"https:\/\/quebit.com\/askquebit\/author\/agoddard\/"}]}},"_links":{"self":[{"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/posts\/3471","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/comments?post=3471"}],"version-history":[{"count":2,"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/posts\/3471\/revisions"}],"predecessor-version":[{"id":5096,"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/posts\/3471\/revisions\/5096"}],"wp:attachment":[{"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/media?parent=3471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/categories?post=3471"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/quebit.com\/askquebit\/wp-json\/wp\/v2\/tags?post=3471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}