Как безопасно использовать временный файл в скрипте Spotfire Iron Python для веб-использования? - PullRequest
2 голосов
/ 27 февраля 2020

Я пытаюсь экспортировать визуализацию Spotfire в файл xlsx. Чтобы экспортировать данные, мне нужно иметь возможность записать данные визуализации в временный файл. Сценарий Iron Python (2.7.7) работает при запуске в качестве приложения Spotfire Desktop, поскольку он использует расположение временного файла на локальном компьютере. Однако он не работает в Интернете, поскольку у сценария нет разрешения на запись в местоположение временного файла сервера, возвращаемое Path.GetTempFileName().

Как можно безопасно записать в временный файл сценарий для использования в Интернете ?

Скрипт:

from System.IO import Path, File, StreamWriter
from Spotfire.Dxp.Application.Visuals import TablePlot

tf = Path.GetTempFileName()
writer = StreamWriter(tf)

# visTable is a script parameter pointing to a TablePlot
visTable.As[TablePlot]().ExportText(writer)

Ошибка при запуске в сети:

Could not perform action 'write_to_file'.

Could not execute script 'write_to_file': The directory name is invalid.


   at Spotfire.Dxp.Application.Scripting.ScriptService.Execute(ScriptDefinition script, Dictionary`2 scope, InternalLibraryManager internalLibraryManager, NotificationService notificationService)
   at Spotfire.Dxp.Application.Scripting.ScriptManager.<>c__DisplayClass8_0.<ExecuteScript>b__0()
   at Spotfire.Dxp.Framework.Commands.CommandHistory.Transaction(Executor executor, Boolean visible, Boolean sticky, Guid stickyGuid, Boolean isHighlight)
   at Spotfire.Dxp.Framework.Commands.CommandHistory.Transaction(String displayName, Executor executor)
   at Spotfire.Dxp.Application.Scripting.ManagedScript.Execute(Dictionary`2 environment)
   at Spotfire.Dxp.Application.HtmlTextAreaControls.ActionControl.ModifyCore(Object value)
   at Spotfire.Dxp.Application.Visuals.HtmlTextArea.InteractWithControl(String id, Action`1 interaction)

Железо Python Версия: 2.7.7

Версия Spotfire : 10.3.2.8

Редактировать: Встроенная функция экспорта по щелчку правой кнопкой мыши недоступна, поскольку конечной целью является внедрение информации о соответствии моей компании.

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

Вы можете установить местоположение временного файла для сетевого диска, к которому у сервера и пользователя Spotfire есть доступ.

Мое лучшее предложение - дать пользователям возможность щелкнуть правой кнопкой мыши по изображению, чтобы загрузить таблицу, так как это самый простой метод и не требует кодирования.

Я достиг написания некоторых сценариев для экспорта данных в формате CSV, который работает как в Desktop Client, так и в WebPlayer, но это беспорядок из R, Python, Javascript и HTML. Это можно найти здесь: My Spotfire Wiki Post

0 голосов
/ 28 февраля 2020

Я использую Spotfire Javascript API, чтобы отобразить весь свой анализ на страницах HTML / ASPX. Поэтому, когда людям необходимо загрузить данные, я настроил кнопку, чтобы открыть страницу dxp, показывающую только таблицу, чтобы пользователи могли затем щелкнуть правой кнопкой мыши для загрузки. Этот метод помог не отображать данные до тех пор, пока они не понадобятся. ДАЖЕ API Javascript не имеет экспорта в CSV или EXCEL только в PDF, Visual (изображение), Powerpoint и отчеты (определенные экспорты в PDF)

https://community.tibco.com/wiki/tibco-spotfire-javascript-api-overview

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...