bi-superpowers 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/.claude-plugin/marketplace.json +31 -0
  2. package/.claude-plugin/plugin.json +34 -0
  3. package/.claude-plugin/skill-manifest.json +79 -0
  4. package/.mcp.json +13 -0
  5. package/.plugin/plugin.json +14 -0
  6. package/LICENSE +21 -0
  7. package/README.md +849 -0
  8. package/bin/build-plugin.js +97 -0
  9. package/bin/cli.js +891 -0
  10. package/bin/commands/autoupdate.js +128 -0
  11. package/bin/commands/build-desktop.js +368 -0
  12. package/bin/commands/create-from-template.js +165 -0
  13. package/bin/commands/diff.js +435 -0
  14. package/bin/commands/install.js +542 -0
  15. package/bin/commands/lint.js +441 -0
  16. package/bin/commands/mcp-setup.js +255 -0
  17. package/bin/commands/session-update.js +204 -0
  18. package/bin/commands/smoke-test.js +20 -0
  19. package/bin/commands/uninstall.js +611 -0
  20. package/bin/commands/update-check.js +427 -0
  21. package/bin/commands/validate-cases.js +264 -0
  22. package/bin/commands/validate-projects.js +426 -0
  23. package/bin/commands/watch.js +251 -0
  24. package/bin/lib/agents.js +62 -0
  25. package/bin/lib/base-template-smoke.js +299 -0
  26. package/bin/lib/claude-hooks.js +160 -0
  27. package/bin/lib/generators/claude-plugin.js +529 -0
  28. package/bin/lib/generators/index.js +116 -0
  29. package/bin/lib/generators/shared.js +257 -0
  30. package/bin/lib/mcp-config.js +835 -0
  31. package/bin/lib/microsoft-mcp.js +206 -0
  32. package/bin/lib/powerbi-mcp-session.js +140 -0
  33. package/bin/lib/skills.js +164 -0
  34. package/bin/lib/template-scaffold.js +366 -0
  35. package/bin/mcp/powerbi-modeling-launcher.js +42 -0
  36. package/bin/postinstall.js +50 -0
  37. package/bin/utils/mcp-detect.js +346 -0
  38. package/bin/utils/tui.js +314 -0
  39. package/commands/bi-connect.md +520 -0
  40. package/commands/bi-dax.md +464 -0
  41. package/commands/bi-kickoff.md +550 -0
  42. package/commands/bi-modeling.md +485 -0
  43. package/commands/bi-performance.md +521 -0
  44. package/commands/bi-powerquery.md +229 -0
  45. package/commands/bi-refactor.md +249 -0
  46. package/commands/bi-scorecard.md +268 -0
  47. package/commands/bi-start.md +272 -0
  48. package/config.example.json +23 -0
  49. package/config.json +23 -0
  50. package/desktop-extension/manifest.json +30 -0
  51. package/desktop-extension/package.json +10 -0
  52. package/desktop-extension/server.js +137 -0
  53. package/package.json +94 -0
  54. package/skills/bi-connect/SKILL.md +522 -0
  55. package/skills/bi-connect/scripts/update-check.js +427 -0
  56. package/skills/bi-dax/SKILL.md +466 -0
  57. package/skills/bi-dax/scripts/update-check.js +427 -0
  58. package/skills/bi-kickoff/SKILL.md +552 -0
  59. package/skills/bi-kickoff/references/flow.html +78 -0
  60. package/skills/bi-kickoff/references/flow.md +62 -0
  61. package/skills/bi-kickoff/scripts/update-check.js +427 -0
  62. package/skills/bi-modeling/SKILL.md +487 -0
  63. package/skills/bi-modeling/scripts/update-check.js +427 -0
  64. package/skills/bi-performance/SKILL.md +523 -0
  65. package/skills/bi-performance/scripts/install-tabular-editor.ps1 +159 -0
  66. package/skills/bi-performance/scripts/run-bpa.ps1 +265 -0
  67. package/skills/bi-performance/scripts/update-check.js +427 -0
  68. package/skills/bi-powerquery/SKILL.md +231 -0
  69. package/skills/bi-powerquery/references/base-template-data-contract.md +323 -0
  70. package/skills/bi-powerquery/references/power-query-standards.md +74 -0
  71. package/skills/bi-powerquery/scripts/new-powerquery-staging.ps1 +371 -0
  72. package/skills/bi-powerquery/scripts/test-powerquery-contract.ps1 +225 -0
  73. package/skills/bi-powerquery/scripts/update-check.js +427 -0
  74. package/skills/bi-refactor/SKILL.md +251 -0
  75. package/skills/bi-refactor/references/flow.md +27 -0
  76. package/skills/bi-refactor/scripts/update-check.js +427 -0
  77. package/skills/bi-scorecard/SKILL.md +270 -0
  78. package/skills/bi-scorecard/examples/base-template-scorecard-overlay.json +82 -0
  79. package/skills/bi-scorecard/scripts/new-scorecard-blueprint-from-base-template.ps1 +124 -0
  80. package/skills/bi-scorecard/scripts/powerbi-goal-status-rules-api.ps1 +39 -0
  81. package/skills/bi-scorecard/scripts/powerbi-goal-values-api.ps1 +48 -0
  82. package/skills/bi-scorecard/scripts/powerbi-goals-api.ps1 +68 -0
  83. package/skills/bi-scorecard/scripts/powerbi-rest-common.ps1 +197 -0
  84. package/skills/bi-scorecard/scripts/powerbi-scorecards-api.ps1 +53 -0
  85. package/skills/bi-scorecard/scripts/update-check.js +427 -0
  86. package/skills/bi-start/SKILL.md +274 -0
  87. package/skills/bi-start/scripts/update-check.js +427 -0
  88. package/src/content/base.md +197 -0
  89. package/src/content/mcp-requirements.json +57 -0
  90. package/src/content/routing.md +201 -0
  91. package/src/content/skills/bi-connect.md +493 -0
  92. package/src/content/skills/bi-dax.md +437 -0
  93. package/src/content/skills/bi-kickoff/SKILL.md +523 -0
  94. package/src/content/skills/bi-kickoff/references/flow.html +78 -0
  95. package/src/content/skills/bi-kickoff/references/flow.md +62 -0
  96. package/src/content/skills/bi-modeling.md +458 -0
  97. package/src/content/skills/bi-performance/SKILL.md +494 -0
  98. package/src/content/skills/bi-performance/scripts/install-tabular-editor.ps1 +159 -0
  99. package/src/content/skills/bi-performance/scripts/run-bpa.ps1 +265 -0
  100. package/src/content/skills/bi-powerquery/SKILL.md +202 -0
  101. package/src/content/skills/bi-powerquery/references/base-template-data-contract.md +323 -0
  102. package/src/content/skills/bi-powerquery/references/power-query-standards.md +74 -0
  103. package/src/content/skills/bi-powerquery/scripts/new-powerquery-staging.ps1 +371 -0
  104. package/src/content/skills/bi-powerquery/scripts/test-powerquery-contract.ps1 +225 -0
  105. package/src/content/skills/bi-refactor/SKILL.md +222 -0
  106. package/src/content/skills/bi-refactor/references/flow.md +27 -0
  107. package/src/content/skills/bi-scorecard/SKILL.md +241 -0
  108. package/src/content/skills/bi-scorecard/examples/base-template-scorecard-blueprint.expected.json +105 -0
  109. package/src/content/skills/bi-scorecard/examples/base-template-scorecard-overlay.json +82 -0
  110. package/src/content/skills/bi-scorecard/scripts/new-scorecard-blueprint-from-base-template.ps1 +124 -0
  111. package/src/content/skills/bi-scorecard/scripts/powerbi-goal-status-rules-api.ps1 +39 -0
  112. package/src/content/skills/bi-scorecard/scripts/powerbi-goal-values-api.ps1 +48 -0
  113. package/src/content/skills/bi-scorecard/scripts/powerbi-goals-api.ps1 +68 -0
  114. package/src/content/skills/bi-scorecard/scripts/powerbi-rest-common.ps1 +197 -0
  115. package/src/content/skills/bi-scorecard/scripts/powerbi-scorecards-api.ps1 +53 -0
  116. package/src/content/skills/bi-start.md +266 -0
  117. package/templates/base-template/AGENTS.md +33 -0
  118. package/templates/base-template/base-template.Report/.platform +11 -0
  119. package/templates/base-template/base-template.Report/StaticResources/RegisteredResources/BISuperpowers.json +3888 -0
  120. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BaseThemes/CY18SU07.json +177 -0
  121. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BaseThemes/Fluent2-CY26SU03.json +4104 -0
  122. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/AccessibleCityPark.json +26 -0
  123. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/AccessibleDefault.json +26 -0
  124. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/AccessibleNeutral.json +26 -0
  125. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/AccessibleOrchid.json +26 -0
  126. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/AccessibleTidal.json +26 -0
  127. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Bloom.json +139 -0
  128. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/CityPark.json +40 -0
  129. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Classroom.json +40 -0
  130. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/ColorblindSafe.json +48 -0
  131. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/CopilotDefault.json +1861 -0
  132. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Divergent.json +127 -0
  133. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Electric.json +48 -0
  134. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Frontier.json +136 -0
  135. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/HighContrast.json +40 -0
  136. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Highrise.json +41 -0
  137. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Innovate.json +227 -0
  138. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/NewExecutive.json +41 -0
  139. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Solar.json +33 -0
  140. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Storm.json +25 -0
  141. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Sunset.json +48 -0
  142. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Temperature.json +33 -0
  143. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Tidal.json +100 -0
  144. package/templates/base-template/base-template.Report/StaticResources/SharedResources/BuiltInThemes/Twilight.json +40 -0
  145. package/templates/base-template/base-template.Report/definition/bookmarks/1d40d43c7ade66e8603c.bookmark.json +2297 -0
  146. package/templates/base-template/base-template.Report/definition/bookmarks/af068ff51c0ca3089ea7.bookmark.json +2300 -0
  147. package/templates/base-template/base-template.Report/definition/bookmarks/bookmarks.json +11 -0
  148. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/page.json +130 -0
  149. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/0352fd80d074693a65db/mobile.json +11 -0
  150. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/0352fd80d074693a65db/visual.json +669 -0
  151. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/1c5a14bf493697344b68/mobile.json +11 -0
  152. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/1c5a14bf493697344b68/visual.json +723 -0
  153. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/3486cf7624c5b109b4e5/mobile.json +11 -0
  154. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/3486cf7624c5b109b4e5/visual.json +333 -0
  155. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/4d8b989008edc0db28d1/mobile.json +11 -0
  156. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/4d8b989008edc0db28d1/visual.json +109 -0
  157. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/55e10ac7d76a1954f94f/mobile.json +31 -0
  158. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/55e10ac7d76a1954f94f/visual.json +378 -0
  159. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/57f52ecf4490f70e4da1/mobile.json +11 -0
  160. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/57f52ecf4490f70e4da1/visual.json +175 -0
  161. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/5f4d76bbc870118e9840/mobile.json +11 -0
  162. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/5f4d76bbc870118e9840/visual.json +468 -0
  163. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/73629e1abebb7a444b59/mobile.json +11 -0
  164. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/73629e1abebb7a444b59/visual.json +359 -0
  165. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/749cb1388c7e0a88161c/mobile.json +11 -0
  166. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/749cb1388c7e0a88161c/visual.json +690 -0
  167. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/90677f13cea5d1275990/visual.json +17 -0
  168. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/92cf92e3da10493adb78/mobile.json +11 -0
  169. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/92cf92e3da10493adb78/visual.json +468 -0
  170. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/9fe17b1971f68443fc15/mobile.json +10 -0
  171. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/9fe17b1971f68443fc15/visual.json +328 -0
  172. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/a30bd0950630ed94e8a3/mobile.json +11 -0
  173. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/a30bd0950630ed94e8a3/visual.json +578 -0
  174. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/a56e91d9400a835e4814/mobile.json +11 -0
  175. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/a56e91d9400a835e4814/visual.json +432 -0
  176. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/aded24cd205c0b528642/mobile.json +11 -0
  177. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/aded24cd205c0b528642/visual.json +801 -0
  178. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/af34b26f14a8a724c9a9/mobile.json +37 -0
  179. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/af34b26f14a8a724c9a9/visual.json +1318 -0
  180. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/b529688fe5a226643322/visual.json +209 -0
  181. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/c4c6f332d05e72e2eb06/mobile.json +11 -0
  182. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/c4c6f332d05e72e2eb06/visual.json +174 -0
  183. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/fa81f184e2cb0e8b087c/mobile.json +29 -0
  184. package/templates/base-template/base-template.Report/definition/pages/6a4808bb8bb9166f49ff/visuals/fa81f184e2cb0e8b087c/visual.json +241 -0
  185. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/page.json +130 -0
  186. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/07e9c4302e29029c5462/mobile.json +11 -0
  187. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/07e9c4302e29029c5462/visual.json +690 -0
  188. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/109ceede4bc015b0c006/mobile.json +11 -0
  189. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/109ceede4bc015b0c006/visual.json +468 -0
  190. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/118257e006d472277e10/mobile.json +11 -0
  191. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/118257e006d472277e10/visual.json +359 -0
  192. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/2caf02e0137c4a1280cc/mobile.json +11 -0
  193. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/2caf02e0137c4a1280cc/visual.json +669 -0
  194. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/311e76fe3c9edad68204/mobile.json +11 -0
  195. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/311e76fe3c9edad68204/visual.json +109 -0
  196. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/31c21f8cbeb3b208940a/visual.json +209 -0
  197. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/3ab72c25062437149b03/visual.json +17 -0
  198. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/5959867442abcb0ce2b3/mobile.json +11 -0
  199. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/5959867442abcb0ce2b3/visual.json +788 -0
  200. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/5b96e0f88d192b044a13/mobile.json +11 -0
  201. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/5b96e0f88d192b044a13/visual.json +592 -0
  202. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/64e749a63d0786000e22/mobile.json +11 -0
  203. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/64e749a63d0786000e22/visual.json +468 -0
  204. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/7ae1ca604edac6586ad0/mobile.json +11 -0
  205. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/7ae1ca604edac6586ad0/visual.json +1310 -0
  206. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/840300733885141a6603/mobile.json +11 -0
  207. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/840300733885141a6603/visual.json +175 -0
  208. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/a38448cdb203279273d2/mobile.json +11 -0
  209. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/a38448cdb203279273d2/visual.json +516 -0
  210. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/d1e86f213a3841d12e20/visual.json +328 -0
  211. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/d4a484c1bcc8ee3075e2/mobile.json +11 -0
  212. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/d4a484c1bcc8ee3075e2/visual.json +432 -0
  213. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/d87cb5cf06acca19bbb5/mobile.json +11 -0
  214. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/d87cb5cf06acca19bbb5/visual.json +241 -0
  215. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/e243da2677209ed69408/mobile.json +11 -0
  216. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/e243da2677209ed69408/visual.json +174 -0
  217. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/f3aaf24f5b22b67573b0/mobile.json +11 -0
  218. package/templates/base-template/base-template.Report/definition/pages/9a5b670b015cab882629/visuals/f3aaf24f5b22b67573b0/visual.json +333 -0
  219. package/templates/base-template/base-template.Report/definition/pages/pages.json +8 -0
  220. package/templates/base-template/base-template.Report/definition/report.json +89 -0
  221. package/templates/base-template/base-template.Report/definition/version.json +4 -0
  222. package/templates/base-template/base-template.Report/definition.pbir +9 -0
  223. package/templates/base-template/base-template.SemanticModel/.platform +11 -0
  224. package/templates/base-template/base-template.SemanticModel/definition/cultures/es-AR.tmdl +11185 -0
  225. package/templates/base-template/base-template.SemanticModel/definition/database.tmdl +3 -0
  226. package/templates/base-template/base-template.SemanticModel/definition/expressions.tmdl +234 -0
  227. package/templates/base-template/base-template.SemanticModel/definition/functions.tmdl +637 -0
  228. package/templates/base-template/base-template.SemanticModel/definition/model.tmdl +82 -0
  229. package/templates/base-template/base-template.SemanticModel/definition/relationships.tmdl +271 -0
  230. package/templates/base-template/base-template.SemanticModel/definition/tables/Calendario.tmdl +200 -0
  231. package/templates/base-template/base-template.SemanticModel/definition/tables/Campa/303/261as.tmdl +75 -0
  232. package/templates/base-template/base-template.SemanticModel/definition/tables/Canales.tmdl +84 -0
  233. package/templates/base-template/base-template.SemanticModel/definition/tables/Clientes.tmdl +143 -0
  234. package/templates/base-template/base-template.SemanticModel/definition/tables/Devoluciones.tmdl +95 -0
  235. package/templates/base-template/base-template.SemanticModel/definition/tables/Ejecuci/303/263n proyectos.tmdl" +130 -0
  236. package/templates/base-template/base-template.SemanticModel/definition/tables/Entregas.tmdl +122 -0
  237. package/templates/base-template/base-template.SemanticModel/definition/tables/Equipos m/303/251tricas.tmdl" +40 -0
  238. package/templates/base-template/base-template.SemanticModel/definition/tables/Equipos.tmdl +73 -0
  239. package/templates/base-template/base-template.SemanticModel/definition/tables/Horas.tmdl +122 -0
  240. package/templates/base-template/base-template.SemanticModel/definition/tables/Interacciones clientes.tmdl +146 -0
  241. package/templates/base-template/base-template.SemanticModel/definition/tables/Leads.tmdl +119 -0
  242. package/templates/base-template/base-template.SemanticModel/definition/tables/Monedas.tmdl +44 -0
  243. package/templates/base-template/base-template.SemanticModel/definition/tables/Movimientos financieros.tmdl +145 -0
  244. package/templates/base-template/base-template.SemanticModel/definition/tables/M/303/251tricas.tmdl +1294 -0
  245. package/templates/base-template/base-template.SemanticModel/definition/tables/N/303/263mina.tmdl +110 -0
  246. package/templates/base-template/base-template.SemanticModel/definition/tables/Oportunidades.tmdl +135 -0
  247. package/templates/base-template/base-template.SemanticModel/definition/tables/Presupuesto.tmdl +125 -0
  248. package/templates/base-template/base-template.SemanticModel/definition/tables/Productos.tmdl +98 -0
  249. package/templates/base-template/base-template.SemanticModel/definition/tables/Proyectos.tmdl +77 -0
  250. package/templates/base-template/base-template.SemanticModel/definition/tables/Servicios.tmdl +75 -0
  251. package/templates/base-template/base-template.SemanticModel/definition/tables/Tareas proyecto.tmdl +102 -0
  252. package/templates/base-template/base-template.SemanticModel/definition/tables/Tipo de cambio.tmdl +67 -0
  253. package/templates/base-template/base-template.SemanticModel/definition/tables/Ventas.tmdl +180 -0
  254. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux An/303/241lisis dimensiones.tmdl" +38 -0
  255. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Comparaciones.tmdl +227 -0
  256. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Compatibilidad m/303/251trica-dimensi/303/263n.tmdl" +68 -0
  257. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Modelo configuraci/303/263n.tmdl" +44 -0
  258. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Modo fechas.tmdl +36 -0
  259. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux M/303/251trica-Equipo.tmdl" +102 -0
  260. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Overrides m/303/251trica-dimensi/303/263n.tmdl" +54 -0
  261. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Per/303/255odos.tmdl" +182 -0
  262. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Rango fechas modo.tmdl +36 -0
  263. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Rango fechas.tmdl +27 -0
  264. package/templates/base-template/base-template.SemanticModel/definition/tables/_Aux Vista de calendario.tmdl +30 -0
  265. package/templates/base-template/base-template.SemanticModel/definition/tables/_GC C/303/241lculo.tmdl" +70 -0
  266. package/templates/base-template/base-template.SemanticModel/definition/tables/_GC Eje X.tmdl +63 -0
  267. package/templates/base-template/base-template.SemanticModel/definition/tables/_GC M/303/251trica.tmdl" +374 -0
  268. package/templates/base-template/base-template.SemanticModel/definition/tables/_GC Tipo c/303/241lculo.tmdl" +223 -0
  269. package/templates/base-template/base-template.SemanticModel/definition/tables/_PC Dimensi/303/263n.tmdl" +98 -0
  270. package/templates/base-template/base-template.SemanticModel/definition/tables/_PC Eje X.tmdl +68 -0
  271. package/templates/base-template/base-template.SemanticModel/definition/tables//303/223rdenes servicio.tmdl" +151 -0
  272. package/templates/base-template/base-template.SemanticModel/definition.pbism +5 -0
  273. package/templates/base-template/base-template.SemanticModel/diagramLayout.json +568 -0
  274. package/templates/base-template/base-template.pbip +14 -0
  275. package/templates/base-template/template.manifest.json +41 -0
  276. package/theme/BISuperpowers.json +3888 -0
@@ -0,0 +1,82 @@
1
+ model Model
2
+ culture: es-AR
3
+ defaultPowerBIDataSourceVersion: powerBI_V3
4
+ discourageImplicitMeasures
5
+ sourceQueryCulture: es-AR
6
+ dataAccessOptions
7
+ legacyRedirects
8
+ returnErrorValuesAsNull
9
+
10
+ queryGroup Params
11
+
12
+ annotation PBI_QueryGroupOrder = 0
13
+
14
+ queryGroup 'Sample Dataset'
15
+
16
+ annotation PBI_QueryGroupOrder = 1
17
+
18
+ queryGroup Calendario
19
+
20
+ annotation PBI_QueryGroupOrder = 2
21
+
22
+ /// Sample dimension queries for the demo company.
23
+ queryGroup 'Sample Dataset\Dimensiones'
24
+
25
+ annotation PBI_QueryGroupOrder = 0
26
+
27
+ /// Sample fact queries for the demo company.
28
+ queryGroup 'Sample Dataset\Hechos'
29
+
30
+ annotation PBI_QueryGroupOrder = 1
31
+
32
+ annotation __PBI_TimeIntelligenceEnabled = 0
33
+
34
+ annotation PBI_ProTooling = ["MCP-PBIModeling","DevMode","DaxQueryView_Desktop"]
35
+
36
+ annotation PBI_QueryOrder = ["fxTemplateIsoWeek","fxTemplateCalendar445Year","fxTemplateCalendar445MonthNr","FechaInicio","ZonaHoraria","IncluirHoy","MonedaBase","Tipos de calendario","Períodos predefinidos","Comparaciones predefinidas","Calendario","Productos","Canales","Monedas","Clientes","Servicios","Proyectos","Equipos","Campañas","Tipo de cambio","Ventas","Oportunidades","Leads","Interacciones clientes","Entregas","Órdenes servicio","Movimientos financieros","Presupuesto","Devoluciones","Horas","Nómina","Ejecución proyectos","Tareas proyecto","_Aux Períodos","_Aux Comparaciones","_Aux Modelo configuración","_Aux Modo fechas","_Aux Rango fechas","_Aux Rango fechas modo"]
37
+
38
+ ref table '_Aux Vista de calendario'
39
+ ref table Métricas
40
+ ref table '_PC Eje X'
41
+ ref table '_GC Cálculo'
42
+ ref table '_GC Eje X'
43
+ ref table '_Aux Períodos'
44
+ ref table '_Aux Comparaciones'
45
+ ref table '_PC Dimensión'
46
+ ref table Calendario
47
+ ref table '_Aux Modelo configuración'
48
+ ref table Productos
49
+ ref table Canales
50
+ ref table Monedas
51
+ ref table Clientes
52
+ ref table 'Tipo de cambio'
53
+ ref table Ventas
54
+ ref table '_GC Métrica'
55
+ ref table '_GC Tipo cálculo'
56
+ ref table '_Aux Modo fechas'
57
+ ref table '_Aux Rango fechas'
58
+ ref table '_Aux Rango fechas modo'
59
+ ref table '_Aux Análisis dimensiones'
60
+ ref table '_Aux Overrides métrica-dimensión'
61
+ ref table '_Aux Compatibilidad métrica-dimensión'
62
+ ref table 'Equipos métricas'
63
+ ref table '_Aux Métrica-Equipo'
64
+ ref table Servicios
65
+ ref table Proyectos
66
+ ref table Equipos
67
+ ref table Campañas
68
+ ref table Oportunidades
69
+ ref table Leads
70
+ ref table 'Interacciones clientes'
71
+ ref table Entregas
72
+ ref table 'Órdenes servicio'
73
+ ref table 'Movimientos financieros'
74
+ ref table Presupuesto
75
+ ref table Devoluciones
76
+ ref table Horas
77
+ ref table Nómina
78
+ ref table 'Ejecución proyectos'
79
+ ref table 'Tareas proyecto'
80
+
81
+ ref cultureInfo es-AR
82
+
@@ -0,0 +1,271 @@
1
+ relationship Ventas_ProductoId_Productos_ProductoId
2
+ fromColumn: Ventas.ProductoId
3
+ toColumn: Productos.ProductoId
4
+
5
+ relationship Ventas_ClienteId_Clientes_ClienteId
6
+ fromColumn: Ventas.ClienteId
7
+ toColumn: Clientes.ClienteId
8
+
9
+ relationship Ventas_CanalId_Canales_CanalId
10
+ fromColumn: Ventas.CanalId
11
+ toColumn: Canales.CanalId
12
+
13
+ relationship Ventas_Fecha_Calendario_Fecha
14
+ fromColumn: Ventas.Fecha
15
+ toColumn: Calendario.Fecha
16
+
17
+ relationship '_PC Eje X_Tipo de calendario__Aux Vista de calendario_Vista de calendario'
18
+ crossFilteringBehavior: bothDirections
19
+ fromColumn: '_PC Eje X'.'Tipo de calendario'
20
+ toColumn: '_Aux Vista de calendario'.'Vista de calendario'
21
+
22
+ relationship '_Aux Compatibilidad métrica-dimensión_Métrica_Métricas_Métrica'
23
+ fromColumn: '_Aux Compatibilidad métrica-dimensión'.Métrica
24
+ toColumn: Métricas.Métrica
25
+
26
+ relationship '_Aux Compatibilidad métrica-dimensión_DimensionKey__PC Dimensión_DimensionKey'
27
+ crossFilteringBehavior: bothDirections
28
+ fromColumn: '_Aux Compatibilidad métrica-dimensión'.DimensionKey
29
+ toColumn: '_PC Dimensión'.DimensionKey
30
+
31
+ relationship '_Aux Métrica-Equipo_Equipo_Equipos métricas_Equipo'
32
+ fromColumn: '_Aux Métrica-Equipo'.Equipo
33
+ toColumn: 'Equipos métricas'.Equipo
34
+
35
+ relationship '_Aux Métrica-Equipo_Métrica_Métricas_Métrica'
36
+ crossFilteringBehavior: bothDirections
37
+ fromColumn: '_Aux Métrica-Equipo'.Métrica
38
+ toColumn: Métricas.Métrica
39
+
40
+ relationship Oportunidades_Fecha_Calendario_Fecha
41
+ fromColumn: Oportunidades.Fecha
42
+ toColumn: Calendario.Fecha
43
+
44
+ relationship Oportunidades_ClienteId_Clientes_ClienteId
45
+ fromColumn: Oportunidades.ClienteId
46
+ toColumn: Clientes.ClienteId
47
+
48
+ relationship Oportunidades_CanalId_Canales_CanalId
49
+ fromColumn: Oportunidades.CanalId
50
+ toColumn: Canales.CanalId
51
+
52
+ relationship Oportunidades_ProductoId_Productos_ProductoId
53
+ fromColumn: Oportunidades.ProductoId
54
+ toColumn: Productos.ProductoId
55
+
56
+ relationship Oportunidades_ServicioId_Servicios_ServicioId
57
+ fromColumn: Oportunidades.ServicioId
58
+ toColumn: Servicios.ServicioId
59
+
60
+ relationship Leads_Fecha_Calendario_Fecha
61
+ fromColumn: Leads.Fecha
62
+ toColumn: Calendario.Fecha
63
+
64
+ relationship Leads_CampañaId_Campañas_CampañaId
65
+ fromColumn: Leads.CampañaId
66
+ toColumn: Campañas.CampañaId
67
+
68
+ relationship Leads_CanalId_Canales_CanalId
69
+ fromColumn: Leads.CanalId
70
+ toColumn: Canales.CanalId
71
+
72
+ relationship Leads_ClienteId_Clientes_ClienteId
73
+ fromColumn: Leads.ClienteId
74
+ toColumn: Clientes.ClienteId
75
+
76
+ relationship 'Interacciones clientes_Fecha_Calendario_Fecha'
77
+ fromColumn: 'Interacciones clientes'.Fecha
78
+ toColumn: Calendario.Fecha
79
+
80
+ relationship 'Interacciones clientes_ClienteId_Clientes_ClienteId'
81
+ fromColumn: 'Interacciones clientes'.ClienteId
82
+ toColumn: Clientes.ClienteId
83
+
84
+ relationship 'Interacciones clientes_CanalId_Canales_CanalId'
85
+ fromColumn: 'Interacciones clientes'.CanalId
86
+ toColumn: Canales.CanalId
87
+
88
+ relationship 'Interacciones clientes_ProductoId_Productos_ProductoId'
89
+ fromColumn: 'Interacciones clientes'.ProductoId
90
+ toColumn: Productos.ProductoId
91
+
92
+ relationship 'Interacciones clientes_ServicioId_Servicios_ServicioId'
93
+ fromColumn: 'Interacciones clientes'.ServicioId
94
+ toColumn: Servicios.ServicioId
95
+
96
+ relationship Entregas_Fecha_Calendario_Fecha
97
+ fromColumn: Entregas.Fecha
98
+ toColumn: Calendario.Fecha
99
+
100
+ relationship Entregas_ClienteId_Clientes_ClienteId
101
+ fromColumn: Entregas.ClienteId
102
+ toColumn: Clientes.ClienteId
103
+
104
+ relationship Entregas_CanalId_Canales_CanalId
105
+ fromColumn: Entregas.CanalId
106
+ toColumn: Canales.CanalId
107
+
108
+ relationship Entregas_ProductoId_Productos_ProductoId
109
+ fromColumn: Entregas.ProductoId
110
+ toColumn: Productos.ProductoId
111
+
112
+ relationship Entregas_ServicioId_Servicios_ServicioId
113
+ fromColumn: Entregas.ServicioId
114
+ toColumn: Servicios.ServicioId
115
+
116
+ relationship 'Órdenes servicio_Fecha_Calendario_Fecha'
117
+ fromColumn: 'Órdenes servicio'.Fecha
118
+ toColumn: Calendario.Fecha
119
+
120
+ relationship 'Órdenes servicio_ClienteId_Clientes_ClienteId'
121
+ fromColumn: 'Órdenes servicio'.ClienteId
122
+ toColumn: Clientes.ClienteId
123
+
124
+ relationship 'Órdenes servicio_ProductoId_Productos_ProductoId'
125
+ fromColumn: 'Órdenes servicio'.ProductoId
126
+ toColumn: Productos.ProductoId
127
+
128
+ relationship 'Órdenes servicio_ServicioId_Servicios_ServicioId'
129
+ fromColumn: 'Órdenes servicio'.ServicioId
130
+ toColumn: Servicios.ServicioId
131
+
132
+ relationship 'Órdenes servicio_EquipoId_Equipos_EquipoId'
133
+ fromColumn: 'Órdenes servicio'.EquipoId
134
+ toColumn: Equipos.EquipoId
135
+
136
+ relationship 'Movimientos financieros_Fecha_Calendario_Fecha'
137
+ fromColumn: 'Movimientos financieros'.Fecha
138
+ toColumn: Calendario.Fecha
139
+
140
+ relationship 'Movimientos financieros_ClienteId_Clientes_ClienteId'
141
+ fromColumn: 'Movimientos financieros'.ClienteId
142
+ toColumn: Clientes.ClienteId
143
+
144
+ relationship 'Movimientos financieros_CanalId_Canales_CanalId'
145
+ fromColumn: 'Movimientos financieros'.CanalId
146
+ toColumn: Canales.CanalId
147
+
148
+ relationship 'Movimientos financieros_ProductoId_Productos_ProductoId'
149
+ fromColumn: 'Movimientos financieros'.ProductoId
150
+ toColumn: Productos.ProductoId
151
+
152
+ relationship 'Movimientos financieros_ServicioId_Servicios_ServicioId'
153
+ fromColumn: 'Movimientos financieros'.ServicioId
154
+ toColumn: Servicios.ServicioId
155
+
156
+ relationship 'Movimientos financieros_ProyectoId_Proyectos_ProyectoId'
157
+ fromColumn: 'Movimientos financieros'.ProyectoId
158
+ toColumn: Proyectos.ProyectoId
159
+
160
+ relationship 'Movimientos financieros_EquipoId_Equipos_EquipoId'
161
+ fromColumn: 'Movimientos financieros'.EquipoId
162
+ toColumn: Equipos.EquipoId
163
+
164
+ relationship Presupuesto_Fecha_Calendario_Fecha
165
+ fromColumn: Presupuesto.Fecha
166
+ toColumn: Calendario.Fecha
167
+
168
+ relationship Presupuesto_ClienteId_Clientes_ClienteId
169
+ fromColumn: Presupuesto.ClienteId
170
+ toColumn: Clientes.ClienteId
171
+
172
+ relationship Presupuesto_CanalId_Canales_CanalId
173
+ fromColumn: Presupuesto.CanalId
174
+ toColumn: Canales.CanalId
175
+
176
+ relationship Presupuesto_ProductoId_Productos_ProductoId
177
+ fromColumn: Presupuesto.ProductoId
178
+ toColumn: Productos.ProductoId
179
+
180
+ relationship Presupuesto_ServicioId_Servicios_ServicioId
181
+ fromColumn: Presupuesto.ServicioId
182
+ toColumn: Servicios.ServicioId
183
+
184
+ relationship Presupuesto_ProyectoId_Proyectos_ProyectoId
185
+ fromColumn: Presupuesto.ProyectoId
186
+ toColumn: Proyectos.ProyectoId
187
+
188
+ relationship Presupuesto_EquipoId_Equipos_EquipoId
189
+ fromColumn: Presupuesto.EquipoId
190
+ toColumn: Equipos.EquipoId
191
+
192
+ relationship Devoluciones_Fecha_Calendario_Fecha
193
+ fromColumn: Devoluciones.Fecha
194
+ toColumn: Calendario.Fecha
195
+
196
+ relationship Devoluciones_ClienteId_Clientes_ClienteId
197
+ fromColumn: Devoluciones.ClienteId
198
+ toColumn: Clientes.ClienteId
199
+
200
+ relationship Devoluciones_CanalId_Canales_CanalId
201
+ fromColumn: Devoluciones.CanalId
202
+ toColumn: Canales.CanalId
203
+
204
+ relationship Devoluciones_ProductoId_Productos_ProductoId
205
+ fromColumn: Devoluciones.ProductoId
206
+ toColumn: Productos.ProductoId
207
+
208
+ relationship Horas_Fecha_Calendario_Fecha
209
+ fromColumn: Horas.Fecha
210
+ toColumn: Calendario.Fecha
211
+
212
+ relationship Horas_EquipoId_Equipos_EquipoId
213
+ fromColumn: Horas.EquipoId
214
+ toColumn: Equipos.EquipoId
215
+
216
+ relationship Horas_ProyectoId_Proyectos_ProyectoId
217
+ fromColumn: Horas.ProyectoId
218
+ toColumn: Proyectos.ProyectoId
219
+
220
+ relationship Horas_ServicioId_Servicios_ServicioId
221
+ fromColumn: Horas.ServicioId
222
+ toColumn: Servicios.ServicioId
223
+
224
+ relationship Nómina_Fecha_Calendario_Fecha
225
+ fromColumn: Nómina.Fecha
226
+ toColumn: Calendario.Fecha
227
+
228
+ relationship Nómina_EquipoId_Equipos_EquipoId
229
+ fromColumn: Nómina.EquipoId
230
+ toColumn: Equipos.EquipoId
231
+
232
+ relationship Nómina_ProyectoId_Proyectos_ProyectoId
233
+ fromColumn: Nómina.ProyectoId
234
+ toColumn: Proyectos.ProyectoId
235
+
236
+ relationship Nómina_ServicioId_Servicios_ServicioId
237
+ fromColumn: Nómina.ServicioId
238
+ toColumn: Servicios.ServicioId
239
+
240
+ relationship 'Ejecución proyectos_Fecha_Calendario_Fecha'
241
+ fromColumn: 'Ejecución proyectos'.Fecha
242
+ toColumn: Calendario.Fecha
243
+
244
+ relationship 'Ejecución proyectos_ProyectoId_Proyectos_ProyectoId'
245
+ fromColumn: 'Ejecución proyectos'.ProyectoId
246
+ toColumn: Proyectos.ProyectoId
247
+
248
+ relationship 'Ejecución proyectos_ClienteId_Clientes_ClienteId'
249
+ fromColumn: 'Ejecución proyectos'.ClienteId
250
+ toColumn: Clientes.ClienteId
251
+
252
+ relationship 'Ejecución proyectos_ServicioId_Servicios_ServicioId'
253
+ fromColumn: 'Ejecución proyectos'.ServicioId
254
+ toColumn: Servicios.ServicioId
255
+
256
+ relationship 'Ejecución proyectos_EquipoId_Equipos_EquipoId'
257
+ fromColumn: 'Ejecución proyectos'.EquipoId
258
+ toColumn: Equipos.EquipoId
259
+
260
+ relationship 'Tareas proyecto_Fecha_Calendario_Fecha'
261
+ fromColumn: 'Tareas proyecto'.Fecha
262
+ toColumn: Calendario.Fecha
263
+
264
+ relationship 'Tareas proyecto_ProyectoId_Proyectos_ProyectoId'
265
+ fromColumn: 'Tareas proyecto'.ProyectoId
266
+ toColumn: Proyectos.ProyectoId
267
+
268
+ relationship 'Tareas proyecto_EquipoId_Equipos_EquipoId'
269
+ fromColumn: 'Tareas proyecto'.EquipoId
270
+ toColumn: Equipos.EquipoId
271
+
@@ -0,0 +1,200 @@
1
+ /// Dimensión de fechas generada en Power Query. Usa el parámetro FechaInicio y mantiene el contrato del calendario original del template.
2
+ table Calendario
3
+ lineageTag: fc2b01ae-35f8-43a7-9daf-840d8d051fc3
4
+ dataCategory: Time
5
+
6
+ column Fecha
7
+ dataType: dateTime
8
+ isUnique
9
+ isKey
10
+ formatString: ddd d/M
11
+ lineageTag: 1e0ef155-a40c-4313-86f8-b20f516f7e24
12
+ summarizeBy: none
13
+ sourceColumn: Fecha
14
+
15
+ annotation UnderlyingDateTimeDataType = Date
16
+
17
+ column Año
18
+ dataType: int64
19
+ formatString: 0
20
+ lineageTag: 62d06d49-ffb4-4de2-becd-8506d910959b
21
+ summarizeBy: none
22
+ sourceColumn: Año
23
+
24
+ column 'Número de mes'
25
+ dataType: int64
26
+ isHidden
27
+ formatString: 0
28
+ lineageTag: b3fc12e9-9a3f-43a3-a07e-ff07772d83f5
29
+ summarizeBy: none
30
+ sourceColumn: Número de mes
31
+
32
+ column Mes
33
+ dataType: string
34
+ lineageTag: 2302ab09-e96d-41ee-9532-2735fb84f65e
35
+ summarizeBy: none
36
+ sourceColumn: Mes
37
+ sortByColumn: 'Orden año mes'
38
+
39
+ column 'Año mes'
40
+ dataType: string
41
+ lineageTag: ae89004f-54bf-4202-b16c-b4f91cc165f5
42
+ summarizeBy: none
43
+ sourceColumn: Año mes
44
+ sortByColumn: 'Orden año mes'
45
+
46
+ column 'Orden año mes'
47
+ dataType: int64
48
+ isHidden
49
+ formatString: 0
50
+ lineageTag: fc2e5c02-4dc6-4b91-acb3-1a096c35bca1
51
+ summarizeBy: none
52
+ sourceColumn: Orden año mes
53
+
54
+ column Trimestre
55
+ dataType: string
56
+ lineageTag: 81037ded-e661-4e9c-b222-532ceff66df9
57
+ summarizeBy: none
58
+ sourceColumn: Trimestre
59
+ sortByColumn: 'Trimestre Orden'
60
+
61
+ column Semana
62
+ dataType: string
63
+ lineageTag: e127647f-e6dc-4491-bf3b-d39680cef7d7
64
+ summarizeBy: none
65
+ sourceColumn: Semana
66
+ sortByColumn: 'Semana Orden'
67
+
68
+ column 'Trimestre Orden'
69
+ dataType: int64
70
+ isHidden
71
+ formatString: 0
72
+ lineageTag: 76c5b649-a987-4058-b491-1ce85317f2b5
73
+ sourceColumn: Trimestre Orden
74
+
75
+ column 'Semana Orden'
76
+ dataType: int64
77
+ isHidden
78
+ formatString: 0
79
+ lineageTag: d92f289b-1949-48c3-979c-d5b950b4c4ca
80
+ sourceColumn: Semana Orden
81
+
82
+ column Fiscal445Year
83
+ dataType: int64
84
+ isHidden
85
+ lineageTag: eb46cab4-413f-4000-a55d-f84fc7f5da22
86
+ summarizeBy: none
87
+ sourceColumn: Fiscal445Year
88
+
89
+ column Fiscal445MonthNr
90
+ dataType: int64
91
+ isHidden
92
+ lineageTag: 3467957a-082e-4b33-af38-53379e25ce88
93
+ summarizeBy: none
94
+ sourceColumn: Fiscal445MonthNr
95
+
96
+ column Fiscal445QuarterNr
97
+ dataType: int64
98
+ isHidden
99
+ lineageTag: b2d6bdd1-7bd0-4fbc-813e-5d22de24417c
100
+ summarizeBy: none
101
+ sourceColumn: Fiscal445QuarterNr
102
+
103
+ column Fiscal445SemesterNr
104
+ dataType: int64
105
+ isHidden
106
+ lineageTag: bfb0e639-0c4a-4a15-86df-b8116c227bff
107
+ summarizeBy: none
108
+ sourceColumn: Fiscal445SemesterNr
109
+
110
+ column Fiscal445MonthKey
111
+ dataType: int64
112
+ isHidden
113
+ lineageTag: e8f647cd-3033-48c9-a33d-5ccc52b244e6
114
+ summarizeBy: none
115
+ sourceColumn: Fiscal445MonthKey
116
+
117
+ column Fiscal445QuarterKey
118
+ dataType: int64
119
+ isHidden
120
+ lineageTag: c6d09169-b938-4eb6-a30a-7600fa043f55
121
+ summarizeBy: none
122
+ sourceColumn: Fiscal445QuarterKey
123
+
124
+ column Fiscal445SemesterKey
125
+ dataType: int64
126
+ isHidden
127
+ lineageTag: ddb27e62-672c-4cae-8c2b-c7fc38608dcf
128
+ summarizeBy: none
129
+ sourceColumn: Fiscal445SemesterKey
130
+
131
+ /// Drill-down estándar de Calendario: Año -> Trimestre -> Año mes -> Semana -> Fecha. Útil para visuales que permiten expand/collapse temporal.
132
+ hierarchy 'Jerarquía de fechas'
133
+ lineageTag: 1b532d19-e2dc-4b39-9ec0-7fec1f5e6c8b
134
+
135
+ level Año
136
+ lineageTag: 74148cbb-3e80-4d23-bba8-b003b8ecae99
137
+ column: Año
138
+
139
+ level Trimestre
140
+ lineageTag: db5bc9a3-45f2-4a8f-9a63-2c93a1508470
141
+ column: Trimestre
142
+
143
+ level 'Año mes'
144
+ lineageTag: d37f6098-923f-48bf-aea1-4e7b9f00761c
145
+ column: 'Año mes'
146
+
147
+ level Semana
148
+ lineageTag: a6d53cdc-03d4-4237-b8a9-38e6bfed27d1
149
+ column: Semana
150
+
151
+ level Fecha
152
+ lineageTag: 069c9ce9-c661-432c-8793-18b3ebfbd7fa
153
+ column: Fecha
154
+
155
+ partition 'Calendario M' = m
156
+ mode: import
157
+ queryGroup: Calendario
158
+ source =
159
+ let
160
+ // Lee el parametro de zona horaria para calcular Today rolling.
161
+ OffsetHours = Number.From(ZonaHoraria),
162
+ Today = Date.From(DateTimeZone.SwitchZone(DateTimeZone.UtcNow(), OffsetHours)),
163
+ StartDate = Date.From(FechaInicio),
164
+ // Calendario rolling: arranca en FechaInicio y termina en Today (con timezone).
165
+ DateCount = Duration.Days(Today - StartDate) + 1,
166
+ Dates = List.Dates(StartDate, DateCount, #duration(1, 0, 0, 0)),
167
+ Source = Table.FromList(Dates, Splitter.SplitByNothing(), {"Fecha"}),
168
+ TypedDate = Table.TransformColumnTypes(Source, {{"Fecha", type date}}),
169
+ // Etiquetas en espanol para meses abreviados.
170
+ MonthAbbr = {"Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"},
171
+ // Columnas gregorianas visibles (consumidas por DAX, slicers y ejes).
172
+ AddYear = Table.AddColumn(TypedDate, "Año", each Date.Year([Fecha]), Int64.Type),
173
+ AddMonthNumber = Table.AddColumn(AddYear, "Número de mes", each Date.Month([Fecha]), Int64.Type),
174
+ AddMonth = Table.AddColumn(AddMonthNumber, "Mes", each MonthAbbr{[Número de mes] - 1} & " '" & Text.End(Text.From([Año]), 2), type text),
175
+ AddYearMonth = Table.AddColumn(AddMonth, "Año mes", each Text.From([Año]) & "-" & Text.PadStart(Text.From([Número de mes]), 2, "0"), type text),
176
+ AddYearMonthOrder = Table.AddColumn(AddYearMonth, "Orden año mes", each [Año] * 100 + [Número de mes], Int64.Type),
177
+ AddQuarterNumber = Table.AddColumn(AddYearMonthOrder, "Quarter Nr", each Date.QuarterOfYear([Fecha]), Int64.Type),
178
+ AddQuarter = Table.AddColumn(AddQuarterNumber, "Trimestre", each "Q" & Text.From([Quarter Nr]) & " '" & Text.End(Text.From([Año]), 2), type text),
179
+ AddQuarterOrder = Table.AddColumn(AddQuarter, "Trimestre Orden", each [Año] * 10 + [Quarter Nr], Int64.Type),
180
+ // La semana se etiqueta por su fecha de inicio para leerla facil.
181
+ AddWeek = Table.AddColumn(AddQuarterOrder, "Semana", each let weekStart = Date.StartOfWeek([Fecha], Day.Monday) in "S" & Text.PadStart(Text.From(Date.WeekOfYear([Fecha], Day.Monday)), 2, "0") & " (" & Text.From(Date.Day(weekStart)) & "/" & Text.From(Date.Month(weekStart)) & ")", type text),
182
+ AddWeekOrder = Table.AddColumn(AddWeek, "Semana Orden", each let weekStart = Date.StartOfWeek([Fecha], Day.Monday) in Date.Year(weekStart) * 100 + Date.WeekOfYear(weekStart, Day.Monday), Int64.Type),
183
+ // Columnas fiscales 4-4-5 (ocultas, las consume Aux Periodos para construir presets fiscales).
184
+ AddFiscalYear = Table.AddColumn(AddWeekOrder, "Fiscal445Year", each fxTemplateCalendar445Year([Fecha]), Int64.Type),
185
+ AddFiscalMonthNr = Table.AddColumn(AddFiscalYear, "Fiscal445MonthNr", each fxTemplateCalendar445MonthNr([Fecha]), Int64.Type),
186
+ AddFiscalQuarterNr = Table.AddColumn(AddFiscalMonthNr, "Fiscal445QuarterNr", each Number.IntegerDivide([Fiscal445MonthNr] - 1, 3) + 1, Int64.Type),
187
+ AddFiscalSemesterNr = Table.AddColumn(AddFiscalQuarterNr, "Fiscal445SemesterNr", each if [Fiscal445MonthNr] <= 6 then 1 else 2, Int64.Type),
188
+ AddFiscalMonthKey = Table.AddColumn(AddFiscalSemesterNr, "Fiscal445MonthKey", each [Fiscal445Year] * 100 + [Fiscal445MonthNr], Int64.Type),
189
+ AddFiscalQuarterKey = Table.AddColumn(AddFiscalMonthKey, "Fiscal445QuarterKey", each [Fiscal445Year] * 10 + [Fiscal445QuarterNr], Int64.Type),
190
+ AddFiscalSemesterKey = Table.AddColumn(AddFiscalQuarterKey, "Fiscal445SemesterKey", each [Fiscal445Year] * 10 + [Fiscal445SemesterNr], Int64.Type),
191
+ // Quita columnas auxiliares que no deben quedar visibles.
192
+ RemovedHelpers = Table.RemoveColumns(AddFiscalSemesterKey, {"Quarter Nr"}),
193
+ Reordered = Table.ReorderColumns(RemovedHelpers, {"Fecha", "Año", "Número de mes", "Mes", "Año mes", "Orden año mes", "Trimestre", "Semana", "Trimestre Orden", "Semana Orden", "Fiscal445Year", "Fiscal445MonthNr", "Fiscal445QuarterNr", "Fiscal445SemesterNr", "Fiscal445MonthKey", "Fiscal445QuarterKey", "Fiscal445SemesterKey"})
194
+ in
195
+ Reordered
196
+
197
+ annotation PBI_NavigationStepName = Navegación
198
+
199
+ annotation PBI_ResultType = Table
200
+
@@ -0,0 +1,75 @@
1
+ /// Dimensión demo de campañas de marketing para analizar leads, inversión y ventas atribuidas.
2
+ table Campañas
3
+ lineageTag: e79c4180-58f2-439b-8b6d-57b1bd273fdf
4
+
5
+ column CampañaId
6
+ dataType: string
7
+ isHidden
8
+ lineageTag: a0bf1a37-76ea-4fee-a5e8-df4fe10fd4b6
9
+ sourceColumn: CampañaId
10
+
11
+ column Campaña
12
+ dataType: string
13
+ lineageTag: f33c3b88-8645-4336-af59-a4e649d5f918
14
+ sourceColumn: Campaña
15
+
16
+ column 'Canal marketing'
17
+ dataType: string
18
+ lineageTag: 27739b47-4936-4e73-b045-d56b430571bb
19
+ sourceColumn: Canal marketing
20
+
21
+ column 'Objetivo campaña'
22
+ dataType: string
23
+ lineageTag: 6f25f99c-4147-45a3-ac6d-3ac979fa7d0e
24
+ sourceColumn: Objetivo campaña
25
+
26
+ column Data
27
+ dataType: string
28
+ isHidden
29
+ lineageTag: 95a55e98-fe5e-4dcc-9d78-52c992455471
30
+ sourceColumn: Data
31
+
32
+ partition Campañas = m
33
+ mode: import
34
+ queryGroup: 'Sample Dataset\Dimensiones'
35
+ source =
36
+ let
37
+ EntityCode = (entity as text, n as number) as text =>
38
+ let
39
+ CleanNumber = Number.From(n),
40
+ ToLetters = (value as number) as text =>
41
+ let
42
+ Current = Number.IntegerDivide(value, 1),
43
+ Prefix = if Current < 26 then "" else @ToLetters(Number.IntegerDivide(Current, 26) - 1),
44
+ Suffix = Character.FromNumber(65 + Number.Mod(Current, 26))
45
+ in
46
+ Prefix & Suffix,
47
+ BlockCode = ToLetters(Number.IntegerDivide(CleanNumber - 1, 100)),
48
+ NumberPart = Text.PadStart(Text.From(Number.Mod(CleanNumber - 1, 100) + 1, "en-US"), 2, "0"),
49
+ CheckLetter = Character.FromNumber(65 + Number.Mod(CleanNumber * 7 + Text.Length(entity) + 3, 26))
50
+ in
51
+ entity & BlockCode & NumberPart & CheckLetter,
52
+ Source = #table(
53
+ type table [CampañaId = Int64.Type, Campaña = text, #"Canal marketing" = text, #"Objetivo campaña" = text],
54
+ {
55
+ {1, "Lanzamiento Analytics", "LinkedIn", "Demanda"},
56
+ {2, "Webinars Ejecutivos", "Webinar", "Educación"},
57
+ {3, "Partner ERP", "Partners", "Pipeline"},
58
+ {4, "Search BI", "Search", "Captura"},
59
+ {5, "Customer Stories", "Contenido", "Confianza"},
60
+ {6, "Data Governance Week", "Email", "Demanda"},
61
+ {7, "Servicios 360", "LinkedIn", "Pipeline"},
62
+ {8, "Productividad Comercial", "Search", "Captura"}
63
+ }
64
+ ),
65
+ #"Tipo cambiado" = Table.TransformColumnTypes(Source, {{"CampañaId", Int64.Type}, {"Campaña", type text}, {"Canal marketing", type text}, {"Objetivo campaña", type text}}, "es-ES"),
66
+ AddData = Table.AddColumn(#"Tipo cambiado", "Data", each "Demo", type text),
67
+ AddCampanaCodigo = Table.AddColumn(AddData, "CampanaCodigo", each EntityCode("Campana", [CampañaId]), type text),
68
+ SelectForOutput = Table.SelectColumns(AddCampanaCodigo, {"Data", "CampanaCodigo", "Campaña", "Canal marketing", "Objetivo campaña"}),
69
+ Result = Table.RenameColumns(SelectForOutput, {{"CampanaCodigo", "CampañaId"}}),
70
+ #"Tipo final" = Table.TransformColumnTypes(Result, {{"Data", type text}, {"CampañaId", type text}, {"Campaña", type text}, {"Canal marketing", type text}, {"Objetivo campaña", type text}}, "es-ES")
71
+ in
72
+ #"Tipo final"
73
+
74
+ annotation PBI_ResultType = Exception
75
+