Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Revertida da versão 4

...

01. Visão geral

Disponibilização de funções métodos para consulta aos consultar campos protegidos ativos e passíveis de anonimização configurados em Gerenciamento dos campos pessoais e/ou sensíveis.

02. Formatos de anonimização

...

  • Para o tipo de dado Texto/caractere, será retornado o valor "X"
  • Para o tipo de dado Numérico, será retornado o valor 0
  • Para o tipo de dado Data, será retornado a data 01/01/1753, data minima compatível para os bancos dados: Progress, Oracle e SQL Server.

...



Bloco de código
themeRDark
title
exemplo
programa.p
USING com.totvs.framework.sec.ProtectedData.

FIND FIRST tabela_negocio EXCLUSIVE-LOCK:
ASSIGN tabela_negocio.nom_cliente    = ProtectedData:DefaultAnonymousCharacter
       tabela_negocio.cod_rg         = ProtectedData:DefaultAnonymousNumber
       tabela_negocio.dat_nascimento = ProtectedData:DefaultAnonymousDate.

03. getAnonymizableFieldsByDatabase

...

Responsável por retornar os campos ativos e passíveis de anonimização, filtrando filtrados por uma lista de bancos.

Parâmetros de entrada

São retornados os registros configurados em Gerenciamento dos campos pessoais e/ou sensíveis, não é realizada consistência de banco de dados. Para verificação do campo com validações de consistência no banco de dados utilize o método 06. isFieldAnonymizable.

Parâmetros de entrada

Tipo

Descrição

JsonArray

Formato JSON Array.

Bloco de código

Tipo

Descrição

JsonArray
Bloco de código
themeRDark
collapsetrue
[  
    {  
        "databaseName":"emsfnd"
    },
    {  
        "databaseName":"emsfnd2"
    }
]

Retorno


Retorno

TipoDescrição
JsonArray
TipoDescriçãoJsonArraySão retornados os registros configurados em Gerenciamento dos campos pessoais e/ou sensíveis, não é realizada consistência de banco de dados.
  • Formato de retorno é do tipo JsonArray.
  • O agrupamento dos registros será por banco.
  • Caso não exista registro para o banco informado será retornado o objeto anonymizableFields sem registros.
Bloco de código
themeRDark
collapsetrue
[
  {
    "databaseName": "emsfnd",
    "anonymizableFields": [
      {
        "tableName": "tabela_teste",
        "fieldName": "campo_teste",
        "defaultRecord": true,
        "sensitiveField": true,
        "documentTypeId": 1,
        "documentTypeDes": "CPF",
        "classifiers": [
          {
            "id": 1,
            "defaultRelation": true,
            "justificative": "Justificativa do Campo",
            "description": "Execução de Contrato"
          }
        ]
      }      
    ]
  },
  {
    "databaseName": "emsfnd2",
    "anonymizableFields": []
  }
]
Exemplo de programa
Bloco de código
themeRDark
title
exemplo
programa.p
collapsetrue
USING Progress.Json.ObjectModel.*.
USING com.totvs.framework.sec.ProtectedData.

DEFINE VARIABLE jObjRequest  AS JsonObject NO-UNDO.
DEFINE VARIABLE jArrRequest  AS JsonArray  NO-UNDO.
DEFINE VARIABLE jArrResponse AS JsonArray  NO-UNDO.

jArrRequest = NEW JsonArray().

jObjRequest = NEW JsonObject().
jObjRequest:ADD("databaseName","emsfnd").
jArrRequest:ADD(jObjRequest).

jObjRequest = NEW JsonObject().
jObjRequest:ADD("databaseName","emsfnd2").
jArrRequest:ADD(jObjRequest).

jArrResponse = ProtectedData:getAnonymizableFieldsByDatabase(jArrRequest).

jArrResponse:WriteFile("c:\temp\resultado.json", TRUE).


04. getAnonymizableFieldsByTable

...

Responsável por retornar os campos ativos e passíveis de anonimização, filtrando filtrados por uma lista de bancos e tabelase tabelas.

São retornados os registros configurados em Gerenciamento dos campos pessoais e/ou sensíveis, não é realizada consistência de banco de dados. Para verificação do campo com validações de consistência no banco de dados utilize o método 06. isFieldAnonymizable.

Parâmetros de entrada

Tipo

Descrição

JsonArray

Formato JSON Array.

Bloco de código
themeRDark
collapsetrue
[  
    {  
        "databaseName":"db1",
        "tableName":"tabela1"
    },
    {  
        "databaseName":"db2",
        "tableName":"tabela2"
    }
]
  • databaseName: Nome do banco de dados
  • tableName: Nome da tabela


Retorno

TipoDescrição
JsonArray

Formato JSON Array, com os campos anonimizáveis agrupados por banco e tabela.

Bloco de código
themeRDark
collapsetrue
[  
    {  
        "databaseName":"db1",
        "tableName":"tabela1",
        "anonymizableFields":[  
            {  
                "idNumber":0,
                "databaseName": "emsfnd",
                "tableName": "usuar_mestre",
                "fieldName":"string",
                "defaultRecord":false,
                "sensitiveField":false,
                "documentTypeId":0,
                "fieldClassId":0,
                "documentTypeDes":"string",
                "fieldClassDes":"string",
                "anonymize":false,
                "justification":"string"
            }
        ]
    },
    {  
        "databaseName":"db2",
        "tableName":"tabela2",
        "anonymizableFields":[  
            {  
                "idNumber":0,
                "databaseName": "emsfnd",
                "tableName": "usuar_mestre",
                "fieldName":"string",
                "defaultRecord":false,
                "sensitiveField":false,
                "documentTypeId":0,
                "fieldClassId":0,
                "documentTypeDes":"string",
                "fieldClassDes":"string",
                "anonymize":false,
                "justification":"string"
            }
        ]
    }
]

A função não realiza consistência de banco de dados, são retornados os registros configurados em Gerenciamento dos campos pessoais e/ou sensíveis.

Exemplo de programa
Bloco de código
themeRDark
titleprograma
_de_negocio
.p
collapsetrue
USING Progress.Json.ObjectModel.*.
USING com.totvs.framework.sec.ProtectedData.

DEFINE VARIABLE jObjRequest  AS JsonObject NO-UNDO.
DEFINE VARIABLE jArrRequest  AS JsonArray  NO-UNDO.
DEFINE VARIABLE jArrResponse AS JsonArray  NO-UNDO.

jArrRequest = NEW JsonArray().

jObjRequest = NEW JsonObject().
jObjRequest:ADD("databaseName","emsfnd").
jObjRequest:ADD("tableName","usuar_mestre").
jArrRequest:ADD(jObjRequest).

jObjRequest = NEW JsonObject().
jObjRequest:ADD("databaseName","emsfnd").
jObjRequest:ADD("tableName","video").
jArrRequest:ADD(jObjRequest).

jObjRequest = NEW JsonObject().
jObjRequest:ADD("databaseName","emsfnd").
jObjRequest:ADD("tableName","imagens").
jArrRequest:ADD(jObjRequest).

jArrResponse = ProtectedData:getAnonymizableFieldsByTable(jArrRequest).

jArrResponse:WriteFile("c:\temp\resultado.json", TRUE).


05. getAnonymizableFieldsByRoutine

...

Responsável por retornar os campos ativos e passíveis de anonimização filtrando , filtrados por uma lista de rotinas.

São retornados os registros configurados em Gerenciamento dos campos pessoais e/ou sensíveis, não é realizada consistência de banco de dados. Para verificação do campo com validações de consistência no banco de dados utilize o método 06. isFieldAnonymizable.

Parâmetros de entrada

Tipo

Descrição

JsonArray

Formato JSON Array, contendo códigos dos programas.

Bloco de código
themeRDark
collapsetrue
["routine_01","routine_02"]


Retorno

TipoDescrição
JsonArray

Formato JSON Array, com os campos anonimizáveis agrupados pelos códigos dos programas.

Bloco de código
themeRDark
collapsetrue
[  
    {  
        "programCode":"routine_01",
        "programName":"Routine 01",
        "personalFields":[  
            {  
                "idNumber":0,
                "databaseName": "database_a",
                "tableName": "usuar_mestre",
                "fieldName":"string",
                "defaultRecord":false,
                "sensitiveField":false,
                "documentTypeId":0,
                "fieldClassId":0,
                "documentTypeDes":"string",
                "fieldClassDes":"string",
                "anonymize":false,
                "justification":"string"
            },
            {  
                "idNumber":0,
                "databaseName": "emsfnd",
                "tableName": "usuar_mestre",
                "fieldName":"string",
                "defaultRecord":false,
                "sensitiveField":false,
                "documentTypeId":0,
                "fieldClassId":0,
                "documentTypeDes":"string",
                "fieldClassDes":"string",
                "anonymize":false,
                "justification":"string"
            }
        ]
    }
]

A função não realiza consistência de banco de dados, são retornados os registros configurados em Relacionamento das rotinas com campos pessoais e/ou sensíveis.

Exemplo de programa
Bloco de código
themeRDark
titleprograma
_de_negocio
.p
collapsetrue
USING Progress.Json.ObjectModel.*.
USING com.totvs.framework.sec.ProtectedData.

DEFINE VARIABLE jArrRequest  AS JsonArray  NO-UNDO.
DEFINE VARIABLE jArrResponse AS JsonArray  NO-UNDO.

jArrRequest = NEW JsonArray().
jArrRequest:ADD("bas_prog_dtsul").
jArrRequest:ADD("bas_som").
jArrRequest:ADD("sec000aa").
jArrRequest:ADD("bas_procedimento").

jArrResponse = ProtectedData:getAnonymizableFieldsByRoutine(jArrRequest).

jArrResponse:WriteFile("c:\temp\resultado.json", TRUE).


06. isFieldAnonymizable

Objetivo

Responsável por retornar se o campo é anonimizável ou não.

Parâmetros de entrada

Tipo

Descrição

JsonObject

Formato JSON Object, com os atributos:

  • databaseName: Nome do banco de dados;
  • tableName: Nome da tabela;
  • fieldName: Nome do campo.
Bloco de código
themeRDark
collapsetrue
{
    "databaseName":"db1",
    "tableName":"tabela1",
    "fieldName":"campo1"
}


Retorno

TipoDescrição
JsonObject

Formato JSON Object.

Bloco de código
themeRDark
collapsetrue
{
    "databaseName":"db1",
    "tableName":"tabela1",
    "fieldName":"campo1",
    "anonymizable": true
}

Se houver campo pessoal cadastrado com os dados informados no objeto de parâmetro:

  • Será inserida a propriedade "anonymizable" com o valor recuperado da base de dados.
  • Caso  o objeto passado como parâmetro  esteja incorreto, o campo não esteja cadastrado ou o campo faça parte de um índice único, o método retornará um erro que deve ser capturado utilizando a declaração do 'CATCH'
  • Não será feita validação para verificar se o campo existe no metaschema do banco de dados.
Exemplo de programa
Bloco de código
themeRDark
titleprograma
_de_negocio
.p
collapsetrue
USING Progress.Json.ObjectModel.*.
USING com.totvs.framework.sec.ProtectedData.

DEFINE VARIABLE jObjRequest  AS JsonObject NO-UNDO.
DEFINE VARIABLE jObjResponse AS JsonObject NO-UNDO.

DO ON ERROR UNDO, LEAVE:
    jObjRequest = NEW JsonObject().
    jObjRequest:ADD("databaseName","emsfnd").
    jObjRequest:ADD("tableName","usuar_mestre").
    jObjRequest:ADD("fieldName","nom_usuario").
    jObjResponse = ProtectedData:isFieldAnonymizable(jObjRequest).
    
    MESSAGE STRING(jObjResponse:GetJsonText())
        VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.

    CATCH customError AS fwk.utils.CustomError:
        MESSAGE STRING(customError:arryaOfErrors:getJsonText())
            VIEW-AS ALERT-BOX INFO BUTTONS OK.
    END CATCH.
END.

DO ON ERROR UNDO, LEAVE:
    jObjRequest = NEW JsonObject().
    jObjRequest:ADD("databaseName","emsfnd").
    jObjRequest:ADD("tableName","agenda_rpw3").
    jObjRequest:ADD("fieldName","cdn_trans_edi2").
    jObjResponse = ProtectedData:isFieldAnonymizable(jObjRequest).
    
    MESSAGE STRING(jObjResponse:GetJsonText())
        VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
    
    CATCH customError AS fwk.utils.CustomError:
        MESSAGE STRING(customError:arryaOfErrors:getJsonText())
            VIEW-AS ALERT-BOX INFO BUTTONS OK.
    END CATCH.
END.



HTML
<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>