Active Form in Canvas


#1

Hi All,

I have an issue with an active form in Canvas for which I’m not able to enter data which is perfectly working in TM1 cube view or in active form XLS. The cell is displayed as writable, user is ok (both TM1 and Canvas), no security, no picklist, nothing special. The data I have to enter are a string element and the input works perfectly for consolidated level but not leaf level. I have tested with a simple element and it’s the same behavior, data enter for a leaf element are not taken into account and revert back to the original data.

Any idea of what can cause this issue ?
Thanks
Stephane


#2

Hi @sschreurs,

Can you please post this active form and application logs. As I remember Log folder should be ‘your_application\WEB-INF\logs’

Regards,
Eugene


#3

Hi Eugene

Here are the files.
Thanks
Stephane

Order Question.html (5.8 KB)application log.docx (52.1 KB)


#4

Just a guess: Is it any special character in the n-lvl element? Can you try input a value one more time, and just post only lastest error message, no need to post the whole log.

Also you can try to test input using an old tm1-ui-dbr directive.

Regards,
Eugene


#5

here is the last records in log file:
2017-06-07 12:26:28 com.cubewise.rest.api.a ERROR ActionBase:365 POST: https://localhost:8877/api/v1/Cubes(‘Question%20Management’)/tm1.Update?_t=1496834788145
2017-06-07 12:26:28 com.cubewise.rest.api.a ERROR ActionBase:367 Body: {“error”:{“code”:“278”,“message”:"‘1.1.3 - 2.4 Are Hub Governance Rules & Key Tasks formalized and communicated’ can not be found in collection of type ‘Element’."}}


#6

Our Development team should decide whether it is a bug, rest api bug or not, but it looks this is a special character issue. Log says that ‘1.1.3 - 2.4 Are Hub Governance Rules & Key Tasks formalized and communicated’ can not be found. As for me the best practice is to avoid having special characters in a principle name.

Does another n-lvl element (which does not have special characters) works fine in the active form?


#7

it’s not the principal name, that’s the alias description (so I do not know why it refers to the alias). The principal name is a code. And again for parent elements it works perfectly just for leaf


#8

In this case an old tm1-ui-dbr directive ( where you are able to construct request with .key elements) may help at least as a temporary solution. If table is not big, you would not feel any difference in terms of performance.

What tm1 vesion Fix Pack are you using for this?

Regards,
Eugene


#9

Hi all,

I have also found some issues with the Canvas active form. I have created an active form using the page creator. I have also created a simple chart to reflect the values in the form as they are being entered.
The issue is that the totals/consolidated elements as well as the chart do not refresh after a value is entered.

Here is the code, but again this was actually done by the page creator.

    <tm1-ui-rpt-row tm1-dimension="Revenue Measure" tm1-subset="Canvas_Rows"></tm1-ui-rpt-row>
    <tm1-ui-rpt-row tm1-dimension="Sales Channel" tm1-attribute="Description" tm1-expand-elements="AAD2000,AAD4000,ISD1300,ISD1400,ISD1420"
      tm1-mdx="{DRILLDOWNMEMBER({DRILLDOWNMEMBER({DRILLDOWNMEMBER({[Sales Channel].[{{page.titles.salesChannel}}]},
                {[Sales Channel].[{{page.titles.salesChannel}}]})},{[Sales Channel].[AAD2000]})},{[Sales Channel].[AAD4000]})}"
    ></tm1-ui-rpt-row>
      
    <tm1-ui-rpt-column tm1-dimension="Day" tm1-subset="Canvas_Columns"></tm1-ui-rpt-column>
                
  </tm1-ui-rpt-config>
  
  <tm1-ui-rpt-template>
    <table id="af1" class="table table-condensed">
      <thead>
          <tr>
            <th>Measure</th>
            <th>Sales Channel</th>
            <th class="text-center">Sun</th>
            <th class="text-center">Mon</th>
            <th class="text-center">Tue</th>
            <th class="text-center">Wed</th>
            <th class="text-center">Thu</th>
            <th class="text-center">Fri</th>
            <th class="text-center">Sat</th>
          </tr>
      </thead>
      <tbody>
        <tr ng-repeat="rowData in data.rows track by $index" ng-if="rowData.inPage">
          <td tm1-ui-rpt-row-element="rowData" tm1-dimension="Revenue Measure"></td>
          <td tm1-ui-rpt-row-element="rowData" tm1-dimension="Sales Channel"></td>
        
          <td class="text-right">
            <tm1-ui-dbr tm1-instance="dev" tm1-cube="Revenue" tm1-rpt-view-model="data" tm1-rpt-row-cell="rowData.getCell('Sun')"></tm1-ui-dbr>
          </td>
          <td class="text-right">
            <tm1-ui-dbr tm1-instance="dev" tm1-cube="Revenue" tm1-rpt-view-model="data" tm1-rpt-row-cell="rowData.getCell('Mon')"></tm1-ui-dbr>
          </td>
          <td class="text-right">
            <tm1-ui-dbr tm1-instance="dev" tm1-cube="Revenue" tm1-rpt-view-model="data" tm1-rpt-row-cell="rowData.getCell('Tue')"></tm1-ui-dbr>
          </td>
          <td class="text-right">
            <tm1-ui-dbr tm1-instance="dev" tm1-cube="Revenue" tm1-rpt-view-model="data" tm1-rpt-row-cell="rowData.getCell('Wed')"></tm1-ui-dbr>
          </td>
          <td class="text-right">
            <tm1-ui-dbr tm1-instance="dev" tm1-cube="Revenue" tm1-rpt-view-model="data" tm1-rpt-row-cell="rowData.getCell('Thu')"></tm1-ui-dbr>
          </td>
          <td class="text-right">
            <tm1-ui-dbr tm1-instance="dev" tm1-cube="Revenue" tm1-rpt-view-model="data" tm1-rpt-row-cell="rowData.getCell('Fri')"></tm1-ui-dbr>
          </td>
          <td class="text-right">
            <tm1-ui-dbr tm1-instance="dev" tm1-cube="Revenue" tm1-rpt-view-model="data" tm1-rpt-row-cell="rowData.getCell('Sat')"></tm1-ui-dbr>
          </td>
        
        </tr>
      </tbody>
      </table>
 
  </tm1-ui-rpt-template>
</tm1-ui-rpt-view> 

Only after selecting a different element in the SUBNMs or by manually refreshing the entire page the data entered is reflected in the consolidation of the active form and the bar chart.


#10

I did add the instance and cube name in the “tm1-ui-dbr” hoping it would fix the issue but it made no difference.


#11

Hi @Nacho_Libre,

That seems like it was because of Angular not knowing that there was already an updated value.

How are you pushing/updating the chart? Through JS functions? If so, try to wrap your codes within Angular’s $timeout service. An example would be:

$scope.updateChartData = function(){
    $timeout(function(){
        // your chart updating codes here
    });
};

Let us know how it goes.


Paul


#12

Thank you Paul;

I will look into the chart and let you know.

What about the consolidated elements in the active form?


#13

Hi @Nacho_Libre,

What do you mean about the consolidated elements? Do you mean how to grab them? You should be able to grab those via the same way that you are accessing it on the table row elements.


Paul


#14

Hi Paul;

What I mean by consolidated elements is; if you look in below screen, the “Walk up” element is a leaf that sits under the C elements “Admissions” and “Consumer”. When entering a number in this active form against any leaf, in this case “Walk up”. The totals for “Admissions” and “Consumer” do not refresh despite being part of the same active form.


#15

Hi @Nacho_Libre,

I am assuming that you are using a JS function to update the chart data above? If so, can you try to check the values by doing a:

console.info(chartDataVariableHere); 

And verifying that the values that you are pushing into the chart already contains that updated data.

Because if this is the case, then the approach should be similar to the $timeout approach.

If not, can you post in here how are you updating the data in the chart?


Paul


#16

Hey @plim @Nacho_Libre

Luis is saying that creating an active form via the page creator in the admin console doesn’t refresh the totals in the active form if you change the editable cells.

Jack


#17

Hi @jtuckerman,

Thanks for clarifying that out! I would still need to see how the chart is being updated though. The active form part, yes, that seems to be a bug.

Hi @Nacho_Libre,

Could you submit a ticket for this one? Also include the following:

  • Canvas version
  • Your HTML and JS files used for the above


Paul