| 4D v18LOG FILE TO JSON | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 LOG FILE TO JSON 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| LOG FILE TO JSON ( rotaPastaDest {; tamMax {; rotaHist {; atrCampo}}} ) | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| rotaPastaDest | Texto |   | Rota da pasta de destino do arquivo salvo | |||||
| tamMax | Inteiro longo |   | Tamanho máximo do arquivo JSON a criar (bytes) | |||||
| rotaHist | Texto |   | Rota do arquivo de histórico a exportar; se omitido, usa o arquivo de histórico atual | |||||
| atrCampo | Inteiro longo |   | Descrição do atributo do campo: 1 = usa número (padrão), 2 = usa nome | |||||
O comando LOG FILE TO JSON salva em formato JSON o arquivo de histórico atual ou todo arquivo de histórico especificado.
Quando o histórico (arquivo binário) for salvado em JSON, seu conteúdo pode ser lido e interpretado pelo administrador do banco de dados ou por qualquer usuário com o objetivo de analisar os eventos do banco de dados, por exemplo.
Em rotaPastaDest, passe a rota da pasta na que deseja armazenar o arquivo JSON. Este arquivo se chama JournalExport.json.
De forma pré-determinada, o tamanho máximo do arquivo JSON exportada é de 10 MB. Quando for alcançado este tamanho, o arquivo é fechado e é criado um novo arquivo. Limitar o tamanho de cada arquivo JSON reduz as exigências de memória para a análise dos arquivos. Pode mudar o tamanho máximo para o arquivo exportado definindo um valor (em bytes) no parâmetro tamMax. Passar 0 restaura o tamanho pré-determinado. Passar um valor negativo elimina todo limite de tamanho.
De forma pré-determinada, se o parâmetro rotaHist, for omitido o comando salva o arquivo de histórico atual. Se desejar exportar um arquivo de histórico específico, passe sua rota no parâmetro rotaHist. O arquivo de histórico deve ser um arquivo com uma extensão ".journal". Se desejar exportar um arquivo de histórico arquivado (extensão ".4bl"), é necessário converter o arquivo anteriormente com o comando RESTORE. Pode passar uma string vazia ("") para mostrar o diálogo padrão de abrir arquivo, o que permite ao usuário selecionar o arquivo de histórico a salvar. A rota do arquivo de histórico selecionado é devolvido na variável sistema Document.
Nota: quando o comando guardar o arquivo de histórico atual, o banco de dados não está bloqueado. As novas operações podem ser executadas enquanto o arquivo é escrito no disco, estas operações não são incluidas no arquivo salvo.
O parâmetro atribCampo lhe permite definir como se descrevem os campos no atributo exportado: por número (pré-determinado), ou por nome. Pode passar uma das seguintes constantes, que se encontra no tema "Backup":
| Constante | Tipo | Valor | Comentário | 
| Field attribute with name | Inteiro longo | 2 | Os campos são identificados por seu nome. Exemplo: {"Sobrenome":"Gómez"} | 
| Field attribute with number | Inteiro longo | 1 | Os campos são identificados por seu número (como padrão se for omitido). Exemplo: { "5":"Jones"}. | 
O arquivo JSON salvo contém todas as operações registradas no histórico, em forma de um array de objetos JSON. Cada objeto contém várias propriedades que descrevem a operação. Exemplo:
[
   {
      "operationType":25,
      "operationName":"Modify record",
      "operationNumber":45,
      "contextID":37,
      "timeStamp":"2015-06-11T09:13:17.138Z",
      "dataLen":42,
      "recordNumber":4,
      "tableID":"5AFA15123F991C43B6ACF8B46A914BD0",
      "tableName":"elem",
      "fields": {
            "1": "primkey5",
            "2": -5,
            "5": "data 25"
        },
      "primaryKey": "8"
   },
   {
      "operationType":23,
      "operationName":"Save seqnum",
      "operationNumber":46,
      "contextID":37,
      "timeStamp":"2015-06-11T09:13:17.138Z",
      "sequenceNumber":23,
      "tableID":"5AFA15123F991C43B6ACF8B46A914BD0",
      "tableName":"elem" 
   },
   {
      "operationType":24,
      "operationName":"Create record",
      "operationNumber":47,
      "contextID":37,
      "timeStamp":"2015-06-11T09:13:17.138Z",
      "dataLen":570,
      "recordNumber":7,
      "tableID":"5AFA15123F991C43B6ACF8B46A914BD0",
      "tableName":"elem",
      "fields": {
            "1": 9,
            "2": "test value",
            "3": "2003-03-03T00:00:00.000Z",
            "4": "BlobPath: Table 1/Field 4/Data_9ACB28F1A2744FDFA5822B22F18B2E12.png",
            "8": "BlobID: 2" 
      },
      "extraData": {
          "task_id": 1,
          "user_name": "Vanessa Smith",
          "user4d_id": 1,
          "host_name": "iMac-VSmith-0833",
          "task_name": "Application process",
          "client_version": -1610541776
      },
      "primaryKey": "9"
   }
]Nota: se passou Field attribute with name no parâmetro atribCampo, o objeto "fields" conterá:
...
      "fields": {
            "ID": 9,
            "Field_2": "test value",
            "Date_Field": "2003-03-03T00:00:00.000Z",
            "Field_4": "BlobPath: Table 1/Field 4/Data_9ACB28F1A2744FDFA5822B22F18B2E12.png",
            "Field_8": "BlobID: 2" 
      },...A lista atual de propriedades disponíveis depende do tipo de operação (por exemplo: criar registros, apagar registros, modificar registros, etc.). Aqui estão algumas das propriedades principais:
Para exportar o arquivo atual de journal em JSON:
 LOG FILE TO JSON("c:\\4Dv15\\ExportLogs")Para exportar um arquivo de journal arquivado em JSON:
 LOG FILE TO JSON("c:\\4Dv15\\ExportLogs";0;"c:\\4Dv15\\Backup\\old_myDB.journal";Field attribute with name)Ocomando LOG FILE TO JSON modifica o valor das variáveis OK e Document: se o arquivo JSON for  guardado corretamente, OK toma o valor 1 e Document contem o nome  de rota do arquivo de histórico. Se for passado "" no parâmetro rutaLog e o usuário cancelar o quadro de diálogo de seleção de arquivos, OK toma o valor 0 e o Document contém uma string vazia. Se o usuário selecionar um arquivo não válido, OK toma o valor 0 e o documento contém a rota do arquivo.
	Produto: 4D
	Tema: Backup
	Número 
        1352
        
        
        
	
	Criado por: 4D v15 R4
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	Manual de linguagem 4D ( 4D v18)
	
	
 Adicionar um comentário
Adicionar um comentário