O write-back permite que os utilizadores atualizem dados das análises.
Tópicos:
O write-back permite que os utilizadores atualizem os seus dados diretamente nos dashboards e análises.
Os utilizadores com o privilégio Write-Back na Base de Dados veem os campos de write-back como campos editáveis nas análises. Os valores introduzidos são gravados na base de dados. Os utilizadores sem o privilégio Write-Back na Base de Dados veem os campos de write-back como campos só de leitura.
Se um utilizador escrever um valor num campo editável e clicar no botão de write-back, a aplicação executa o comando de SQL insert
ou update
definido num modelo de write-back. Se o comando for bem-sucedido, a análise é atualizada com o novo valor. Se ocorrer um erro ao ler o modelo ou ao executar o comando de SQL, é apresentada uma mensagem de erro.
O comando insert
é executado quando um registo ainda não existir e o utilizador introduzir novos dados na tabela. Neste caso, o utilizador escreveu um registo de tabela cujo valor original era nulo. O comando update
é executado quando um utilizador modificar os dados existentes. Para apresentar um registo que ainda não existe na tabela física, pode criar outra tabela semelhante. Utilize esta tabela semelhante para apresentar os registos de repositório de valores que um utilizador pode modificar.
Nota:
Quando criar modelos de write-back, deve incluir um comando insert
e um comando update
, mesmo que ambos não sejam utilizados. Por exemplo, se estiver apenas a executar um comando insert
, deve incluir uma instrução update
vazia <update></update>
, como neste código de XML:
insert
e duas instruções update
vazias. Para obter mais informações sobre como criar e estruturar ficheiros XML de write-back, consulte Criar Ficheiros de Modelos de Write-Back.
<?xml version="1.0" encoding="utf-8" ?> <WebMessageTables xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="oracle.bi.presentation/writebackschemas/v1"> <WebMessageTable lang="en-us" system="WriteBack" table="Messages"> <WebMessage name="SetQuotaUseID"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypequota VALUES(@{c5f6e60e1d6eb1098},@{c5d7e483445037d9e},'@{c3a93e65731210ed1}','@{c6b8735ea60ff3011}',@{c0432jkl53eb92cd8})</insert> <update></update> </writeBack> </XML> </WebMessage> <WebMessage name="SetForecastUseID"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypeforecast VALUES(@{c83ebf607f3cb8320},@{cb7e2046a0fba2204},'@{c5a93e65d31f10e0}','@{c5a93e65d31f10e0}',@{c7322jkl93ev92cd8})</insert> <update></update> </writeBack> </XML> </WebMessage> </WebMessageTable> </WebMessageTables>
Os administradores podem permitir que os utilizadores editem os dados em análises e dashboards.
Os utilizadores podem efetuar o write-back para qualquer origem de dados que permita a execução das consultas de SQL do Oracle Analytics .
À medida que configura o write-back, não se esqueça do seguinte:
As colunas numéricas devem conter apenas números. Não devem conter caracteres de formatação de dados, como cifrões ($), cardinais (#), símbolos de percentagem (%), etc.
As colunas de texto devem conter apenas dados de cadeia de caracteres.
Se um utilizador com sessão iniciada já estiver a visualizar um dashboard que contenha uma análise em que os dados foram modificados utilizando o write-back, os dados não são automaticamente renovados no dashboard. Para ver os dados atualizados, o utilizador deve renovar manualmente o dashboard.
Só pode utilizar o mecanismo de modelo com visualizações de tabela para dados de valor único. O mecanismo não é suportado para visualizações de tabela dinâmica ou quaisquer tipos de visualização, para dados de valores múltiplos ou para colunas pendentes com dados de valor único.
Todos os valores nas colunas de write-back são editáveis. Ao serem apresentados num contexto não compatível com impressão, os campos editáveis são apresentados como se utilizador tivesse o privilégio Write-Back na Base de Dados. No entanto, quando a correspondência de uma coluna lógica é feita com uma coluna física que pode ser alterada, a coluna lógica devolve valores para múltiplas intersecções de nível. Este cenário poderá causar problemas.
Qualquer campo numa análise pode ser indicado como um campo de write-back, mesmo que não seja derivado da tabela de write-back que criou. No entanto, não pode executar com êxito a operação de write-back se a tabela não estiver ativada para write-back. É da responsabilidade do designer de conteúdo identificar corretamente os campos.
Um modelo pode conter instruções de SQL diferentes de insert
e update
. A função de write-back transmite estas instruções para a base de dados. No entanto, a Oracle não suporta nem recomenda a utilização de quaisquer instruções diferentes de insert
ou update
.
O Oracle Analytics só executa a validação mínima da entrada de dados. Se o campo for numérico e o utilizador introduzir dados de texto, o Oracle Analytics deteta e evita o acesso dos dados inválidos à base de dados. No entanto, não deteta outras formas de entrada de dados inválidos (valores fora do intervalo, de texto misto e numéricos, etc.). Quando o utilizador clica no botão de write-back e é executada uma inserção ou atualização, os dados inválidos resultam numa mensagem de erro da base de dados. Em seguida, o utilizador pode corrigir a entrada de dados com falhas. Os designers de conteúdo incluem texto na análise de write-back para ajudar o utilizador, por exemplo, "Introduzir valores alfanuméricos mistos num campo de dados numéricos não é permitido."
O mecanismo de modelo não é adequado para a introdução de novos registos arbitrários. Por outras palavras, não utilize como uma ferramenta de entrada de dados.
Quando criar uma tabela para write-back, certifique-se de que pelo menos uma coluna não inclui a capacidade de write-back mas que inclua valores exclusivos para cada linha e não nulos.
As análises de write-back não suportam o aprofundamento de detalhes. Uma vez que o aprofundamento de detalhes modifica a estrutura da tabela, o modelo de write-back não funciona.
Atenção:
O mecanismo de modelo assume a entrada de dados do utilizador e escreve-o diretamente na base de dados. A segurança da base de dados física é da responsabilidade do utilizador. Para uma segurança ideal, armazene as tabelas de base de dados de write-back numa única instância de base de dados.Um ficheiro de modelo de write-back é um ficheiro formatado como XML que contém um ou mais modelos de write-back.
Um modelo de write-back consiste num elemento WebMessage
que especifica o nome do modelo, o pool de ligações e as instruções de SQL que são necessários para inserir e atualizar registos nas tabelas de write-back e colunas que criou. Quando os designers de conteúdo ativam uma visualização de tabela para write-back, devem especificar o nome do modelo de write-back a utilizar para inserir e atualizar os registos na visualização de tabela.
Um modelo de write-back deve cumprir os seguintes requisitos:
WebMessage
: Deve especificar um nome do modelo de write-back utilizando o atributo name
no elemento WebMessage.
Para o write-back funcione corretamente, ao ativar uma visualização de tabela para write-back, um designer de conteúdo deve especificar o nome do modelo de write-back a utilizar para inserir e atualizar os registos na visualização.
Este exemplo mostra um modelo de write-back denominado SetQuotaUseID
.
<WebMessage name="SetQuotaUseID">
connectionPool
: Para cumprir os requisitos de segurança, deve especificar o pool de ligações juntamente com os comandos de SQL para inserir e atualizar registos. Estes comandos de SQL referenciam os valores que são transmitidos no schema de write-back para gerar as instruções de SQL de modo a modificar a tabela de base de dados.
VALUES
: Os valores de coluna podem ser referenciados por ID da coluna ou posição da coluna. A utilização da ID da coluna é preferencial.
Coloque entre plicas os valores de cadeia de caracteres e de data. As plicas não são necessárias em valores numéricos.
ID de coluna - Cada ID de coluna é alfanumérico e gerado aleatoriamente. Pode encontrar IDs de coluna na definição de XML da análise disponível no separador Avançadas do editor de análises. Por exemplo, valores de ID de coluna como: @{c5f6e60e1d6eb1098}
, @{c3a93e65731210ed1}
, '@{c6b8735ea60ff3011}'
Quando utiliza IDs de coluna, o write-back continua a funcionar mesmo quando a ordem das colunas muda.
Posição de coluna - As posições de coluna começa com o número 1. Por exemplo, valores de posição de coluna como: @1
, @3
, '@5'
Se a ordem das colunas for alterada, o write-back deixa de funcionar e este é o motivo pelo qual as IDs de coluna são preferenciais.
Deve incluir tanto um elemento <insert>
como um <update>
no modelo. Se não pretender incluir comandos de SQL nos elementos, deve inserir um espaço em branco entre os identificadores de abertura e de fecho. Por exemplo, deve introduzir o elemento como:
<insert> </insert>
Em vez de:
<insert></insert>
Se omitir o espaço em branco, verá uma mensagem de erro de write-back como "O sistema não pode ler o Modelo de Write-Back 'my_template'".
Se o tipo de dados de um parâmetro não for um número inteiro ou real, coloque-o entre plicas. Se a base de dados não fizer Confirmações automaticamente, acrescente o nó opcional postUpdate
após os nós insert
e update
para forçar a confirmação. Normalmente, o nó postUpdate
segue este exemplo:
<postUpdate>COMMIT</postUpdate>
Exemplo de Ficheiro de Modelo de Write-Back Utilizando a Sintaxe da ID da Coluna
Um ficheiro de modelo de write-back que referencia valores por ID de coluna pode ser semelhante ao seguinte exemplo:
<?xml version="1.0" encoding="utf-8" ?> <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1"> <WebMessageTable lang="en-us" system="WriteBack" table="Messages"> <WebMessage name="SetQuotaUseID"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypequota VALUES(@{c5f6e60e1d6eb1098},@{c5d7e483445037d9e},'@{c3a93e65731210ed1}','@{c6b8735ea60ff3011}',@{c0432jkl53eb92cd8})</insert> <update>UPDATE regiontypequota SET Dollars=@{c0432jkl53eb92cd8} WHERE YR=@{c5f6e60e1d6eb1098} AND Quarter=@{c5d7e483445037d9e} AND Region='@{c3a93e65731210ed1}' AND ItemType='@{c6b8735ea60ff3011}'</update> </writeBack> </XML> </WebMessage> </WebMessageTable> </WebMessageTables>
Exemplo de Ficheiro de Modelo de Write-Back Utilizando a Sintaxe da Posição da Coluna
Um ficheiro de modelo de write-back que referencia valores por posição de coluna pode ser semelhante ao seguinte exemplo:
<?xml version="1.0" encoding="utf-8" ?> <WebMessageTables xmlns:sawm="com.siebel.analytics.web/message/v1"> <WebMessageTable lang="en-us" system="WriteBack" table="Messages"> <WebMessage name="SetQuota"> <XML> <writeBack connectionPool="Supplier"> <insert>INSERT INTO regiontypequota VALUES(@1,@2,'@3','@4',@5)</insert> <update>UPDATE regiontypequota SET Dollars=@5 WHERE YR=@1 AND Quarter=@2 AND Region='@3' AND ItemType='@4'</update> </writeBack> </XML> </WebMessage> </WebMessageTable> </WebMessageTables>