Ir para o conteúdo

Dicas para trabalhar com colunas binárias no Jitterbit App Builder

Por questões de desempenho com apps do App Builder, adicione uma coluna binária a um Business Object apenas se você for usá-la em um controle de arquivo. Ao construir um Business Object com uma tabela que inclui colunas binárias, não selecione o botão Todos para adicionar todas as colunas, a menos que esse objeto seja usado para exibir um controle de arquivo em um painel. Vale a pena criar Business Objects especificamente para usar em painéis onde um arquivo é enviado/baixado. Além disso, considere se você pode ter adicionado uma a uma tabela de usuário/parâmetro e poderia tê-la adicionado a outros Business Objects e depois selecionado todas as colunas.

Se você tiver um Painel Multi-linha (MRP) com 25 registros retornando e houver um campo binário selecionado no Business Object por trás desse painel, ele recuperará todos os 25 arquivos toda vez que esse painel for renderizado. Se você tiver 4 arquivos binários nesse Business Object, ele recuperará 100 arquivos toda vez que esse painel for renderizado.

Se você quiser que um arquivo seja baixável de um MRP, considere chamar o botão de download em uma página oculta para que ele não recupere o arquivo como parte da renderização do painel MRP.

Para restringir os tipos de arquivos que uma coluna binária aceita, consulte Arquivo.

Abaixo está uma consulta que você pode executar no seu servidor para encontrar ALGUNS dos arquivos em um Business Object por trás de um painel onde o arquivo não é usado em um controle:

SELECT        TOP (100) PERCENT Ui_Control_1.Name AS Page, dbo.Ui_Control.Name AS Panel, dbo.Db_Table.Name AS DataObjectName, dbo.Db_Column.Name AS ColumnName
FROM            dbo.Ui_Control INNER JOIN
                         dbo.Ui_Control AS Ui_Control_1 ON dbo.Ui_Control.RootControlId = Ui_Control_1.ControlId INNER JOIN
                         dbo.Db_Table ON dbo.Ui_Control.SourceTableId = dbo.Db_Table.TableId INNER JOIN
                         dbo.Db_Column ON dbo.Db_Table.TableId = dbo.Db_Column.TableId INNER JOIN
                         dbo.Db_Column AS Db_Column_1 ON dbo.Db_Column.TargetColumnId = Db_Column_1.ColumnId INNER JOIN
                         dbo.Db_StorageDataType ON Db_Column_1.StorageDataTypeId = dbo.Db_StorageDataType.StorageDataTypeId LEFT OUTER JOIN
                         dbo.Ui_Control AS Ui_Control_2 ON dbo.Ui_Control.ControlId = Ui_Control_2.PanelControlId AND dbo.Db_Column.ColumnId = Ui_Control_2.SourceColumnId
WHERE        (dbo.Ui_Control.ControlTypeId = '81d20b00-15b2-f8c3-7fe1-d889d9c7e95f') AND (dbo.Db_StorageDataType.Name = N'binary') AND (Ui_Control_2.ControlId IS NULL)
ORDER BY DataObjectName

Nota

Ao recuperar os resultados do Business Object por trás de um painel, ele recuperará apenas as colunas necessárias para os controles, A MENOS que você esteja usando formatação condicional, caso em que recupera todas as colunas para a lógica condicional.